1299 lines
22 KiB
ArmAsm
1299 lines
22 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_812B520
|
|
sub_812B520: @ 812B520
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r4, 0
|
|
movs r3, 0
|
|
ldr r0, _0812B598 @ =gUnknown_845C4B0
|
|
mov r9, r0
|
|
ldr r1, _0812B59C @ =gUnknown_203B0EC
|
|
mov r8, r1
|
|
ldr r0, _0812B5A0 @ =gUnknown_845C4B6
|
|
mov r12, r0
|
|
ldr r7, _0812B5A4 @ =gUnknown_845B080
|
|
_0812B53E:
|
|
mov r1, r9
|
|
adds r0, r3, r1
|
|
ldrb r2, [r0]
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r0, r2, r0
|
|
add r0, r12
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0812B56C
|
|
lsls r1, r4, 3
|
|
adds r1, r5
|
|
lsls r0, r2, 2
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
str r2, [r1, 0x4]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
_0812B56C:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x5
|
|
bls _0812B53E
|
|
lsls r0, r4, 3
|
|
adds r0, r5
|
|
subs r0, 0x8
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
str r1, [r0, 0x4]
|
|
movs r0, 0
|
|
strh r4, [r6, 0x4]
|
|
strh r4, [r6, 0x6]
|
|
strb r0, [r6, 0x8]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B598: .4byte gUnknown_845C4B0
|
|
_0812B59C: .4byte gUnknown_203B0EC
|
|
_0812B5A0: .4byte gUnknown_845C4B6
|
|
_0812B5A4: .4byte gUnknown_845B080
|
|
thumb_func_end sub_812B520
|
|
|
|
thumb_func_start sub_812B5A8
|
|
sub_812B5A8: @ 812B5A8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
bl sub_813BDE8
|
|
movs r0, 0
|
|
bl sub_813BFC0
|
|
movs r0, 0x1
|
|
bl sub_813BE78
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_812B4C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_812B614
|
|
ldr r0, _0812B608 @ =gUnknown_841DFC9
|
|
bl sub_812BF74
|
|
ldrb r1, [r4, 0xC]
|
|
ldrb r2, [r4, 0xD]
|
|
adds r0, r4, 0
|
|
bl sub_813C64C
|
|
ldr r1, _0812B60C @ =gUnknown_845B080
|
|
ldr r0, _0812B610 @ =gUnknown_3005E9C
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_813C4CC
|
|
movs r0, 0x1
|
|
bl sub_813BDA4
|
|
movs r0, 0x1
|
|
bl sub_813BD5C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B608: .4byte gUnknown_841DFC9
|
|
_0812B60C: .4byte gUnknown_845B080
|
|
_0812B610: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812B5A8
|
|
|
|
thumb_func_start sub_812B614
|
|
sub_812B614: @ 812B614
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
movs r6, 0
|
|
ldr r3, _0812B664 @ =gUnknown_845B9E0
|
|
ldr r0, _0812B668 @ =gUnknown_203B0EC
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 2
|
|
ldr r2, _0812B66C @ =gUnknown_3005E9C
|
|
adds r0, r1
|
|
ldrb r2, [r2, 0x1]
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r3, [r0]
|
|
movs r7, 0
|
|
ldrb r0, [r3]
|
|
cmp r0, 0xFF
|
|
beq _0812B6D0
|
|
_0812B640:
|
|
adds r4, r3, r7
|
|
ldrb r0, [r4]
|
|
str r3, [sp]
|
|
bl sub_812B780
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, [sp]
|
|
cmp r0, 0x1
|
|
bne _0812B6C2
|
|
ldr r0, _0812B66C @ =gUnknown_3005E9C
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0812B674
|
|
lsls r1, r6, 3
|
|
adds r1, r5
|
|
ldr r2, _0812B670 @ =gUnknown_845B0B0
|
|
b _0812B6AA
|
|
.align 2, 0
|
|
_0812B664: .4byte gUnknown_845B9E0
|
|
_0812B668: .4byte gUnknown_203B0EC
|
|
_0812B66C: .4byte gUnknown_3005E9C
|
|
_0812B670: .4byte gUnknown_845B0B0
|
|
_0812B674:
|
|
cmp r0, 0x1
|
|
bne _0812B684
|
|
lsls r1, r6, 3
|
|
adds r1, r5
|
|
ldr r2, _0812B680 @ =gUnknown_845B218
|
|
b _0812B6AA
|
|
.align 2, 0
|
|
_0812B680: .4byte gUnknown_845B218
|
|
_0812B684:
|
|
cmp r0, 0x2
|
|
bne _0812B694
|
|
lsls r1, r6, 3
|
|
adds r1, r5
|
|
ldr r2, _0812B690 @ =gUnknown_845B3A0
|
|
b _0812B6AA
|
|
.align 2, 0
|
|
_0812B690: .4byte gUnknown_845B3A0
|
|
_0812B694:
|
|
cmp r0, 0x3
|
|
bne _0812B6A4
|
|
lsls r1, r6, 3
|
|
adds r1, r5
|
|
ldr r2, _0812B6A0 @ =gUnknown_845B500
|
|
b _0812B6AA
|
|
.align 2, 0
|
|
_0812B6A0: .4byte gUnknown_845B500
|
|
_0812B6A4:
|
|
lsls r1, r6, 3
|
|
adds r1, r5
|
|
ldr r2, _0812B744 @ =gUnknown_845B540
|
|
_0812B6AA:
|
|
ldrb r0, [r4]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
lsls r0, r6, 3
|
|
adds r0, r5
|
|
ldrb r1, [r4]
|
|
str r1, [r0, 0x4]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
_0812B6C2:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r3, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0812B640
|
|
_0812B6D0:
|
|
bl sub_812B754
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0812B710
|
|
movs r7, 0
|
|
ldr r3, _0812B748 @ =gUnknown_845B9BE
|
|
ldrb r0, [r3]
|
|
cmp r0, 0xFF
|
|
beq _0812B710
|
|
ldr r4, _0812B74C @ =gUnknown_845B3A0
|
|
_0812B6E8:
|
|
lsls r1, r6, 3
|
|
adds r1, r5
|
|
adds r2, r3, r7
|
|
ldrb r0, [r2]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldrb r0, [r2]
|
|
str r0, [r1, 0x4]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
adds r0, r7, 0x1
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
adds r0, r3, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0812B6E8
|
|
_0812B710:
|
|
lsls r0, r6, 3
|
|
adds r0, r5
|
|
ldr r1, _0812B750 @ =gUnknown_81B2E6F
|
|
str r1, [r0]
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
str r1, [r0, 0x4]
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r1, 0
|
|
mov r0, r8
|
|
strh r6, [r0, 0x4]
|
|
movs r0, 0x7
|
|
mov r2, r8
|
|
strh r0, [r2, 0x6]
|
|
strb r1, [r2, 0x8]
|
|
movs r0, 0x15
|
|
strb r0, [r2, 0x9]
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B744: .4byte gUnknown_845B540
|
|
_0812B748: .4byte gUnknown_845B9BE
|
|
_0812B74C: .4byte gUnknown_845B3A0
|
|
_0812B750: .4byte gUnknown_81B2E6F
|
|
thumb_func_end sub_812B614
|
|
|
|
thumb_func_start sub_812B754
|
|
sub_812B754: @ 812B754
|
|
push {lr}
|
|
movs r0, 0x96
|
|
lsls r0, 3
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0812B778
|
|
ldr r0, _0812B774 @ =gUnknown_3005E9C
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x2
|
|
bne _0812B778
|
|
movs r0, 0x1
|
|
b _0812B77A
|
|
.align 2, 0
|
|
_0812B774: .4byte gUnknown_3005E9C
|
|
_0812B778:
|
|
movs r0, 0
|
|
_0812B77A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812B754
|
|
|
|
thumb_func_start sub_812B780
|
|
sub_812B780: @ 812B780
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r5, r1, 0
|
|
movs r4, 0
|
|
ldr r0, _0812B7A8 @ =gUnknown_3005E9C
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
beq _0812B794
|
|
b _0812B8AC
|
|
_0812B794:
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x2B
|
|
bls _0812B79C
|
|
b _0812BB04
|
|
_0812B79C:
|
|
lsls r0, 2
|
|
ldr r1, _0812B7AC @ =_0812B7B0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812B7A8: .4byte gUnknown_3005E9C
|
|
_0812B7AC: .4byte _0812B7B0
|
|
.align 2, 0
|
|
_0812B7B0:
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812B860
|
|
.4byte _0812BB08
|
|
.4byte _0812B868
|
|
.4byte _0812B870
|
|
.4byte _0812BB08
|
|
.4byte _0812B880
|
|
.4byte _0812B868
|
|
.4byte _0812B878
|
|
.4byte _0812B890
|
|
.4byte _0812B880
|
|
.4byte _0812B880
|
|
.4byte _0812B880
|
|
.4byte _0812B868
|
|
.4byte _0812B880
|
|
.4byte _0812B880
|
|
.4byte _0812B868
|
|
.4byte _0812B880
|
|
.4byte _0812B888
|
|
.4byte _0812B868
|
|
.4byte _0812B888
|
|
.4byte _0812B878
|
|
.4byte _0812B890
|
|
.4byte _0812B880
|
|
.4byte _0812B890
|
|
.4byte _0812B896
|
|
.4byte _0812B880
|
|
.4byte _0812B890
|
|
.4byte _0812B880
|
|
.4byte _0812B890
|
|
.4byte _0812B890
|
|
.4byte _0812BB08
|
|
.4byte _0812B868
|
|
.4byte _0812B868
|
|
.4byte _0812B880
|
|
.4byte _0812BB08
|
|
.4byte _0812B89C
|
|
.4byte _0812B896
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812B8A4
|
|
_0812B860:
|
|
ldr r0, _0812B864 @ =0x000002cf
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B864: .4byte 0x000002cf
|
|
_0812B868:
|
|
ldr r0, _0812B86C @ =0x00000891
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B86C: .4byte 0x00000891
|
|
_0812B870:
|
|
ldr r0, _0812B874 @ =0x00000895
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B874: .4byte 0x00000895
|
|
_0812B878:
|
|
ldr r0, _0812B87C @ =0x000008a4
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B87C: .4byte 0x000008a4
|
|
_0812B880:
|
|
ldr r0, _0812B884 @ =0x00000828
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B884: .4byte 0x00000828
|
|
_0812B888:
|
|
ldr r0, _0812B88C @ =0x00000829
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B88C: .4byte 0x00000829
|
|
_0812B890:
|
|
movs r0, 0x82
|
|
lsls r0, 4
|
|
b _0812BAF2
|
|
_0812B896:
|
|
bl sub_812BB10
|
|
b _0812BAF6
|
|
_0812B89C:
|
|
ldr r0, _0812B8A0 @ =0x0000029b
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B8A0: .4byte 0x0000029b
|
|
_0812B8A4:
|
|
ldr r0, _0812B8A8 @ =0x00000892
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B8A8: .4byte 0x00000892
|
|
_0812B8AC:
|
|
cmp r0, 0x1
|
|
beq _0812B8B2
|
|
b _0812B9D8
|
|
_0812B8B2:
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x2F
|
|
bls _0812B8BA
|
|
b _0812BB04
|
|
_0812B8BA:
|
|
lsls r0, 2
|
|
ldr r1, _0812B8C4 @ =_0812B8C8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812B8C4: .4byte _0812B8C8
|
|
.align 2, 0
|
|
_0812B8C8:
|
|
.4byte _0812B988
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A8
|
|
.4byte _0812B9A0
|
|
.4byte _0812BB08
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A0
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812B9A0
|
|
.4byte _0812B990
|
|
.4byte _0812B9BA
|
|
.4byte _0812B9C0
|
|
.4byte _0812B9C0
|
|
.4byte _0812B9C6
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812B988
|
|
.4byte _0812BB08
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A8
|
|
.4byte _0812B9A0
|
|
.4byte _0812BB08
|
|
.4byte _0812B988
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812B9A0
|
|
.4byte _0812B9A0
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812B9D0
|
|
_0812B988:
|
|
ldr r0, _0812B98C @ =0x00000829
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B98C: .4byte 0x00000829
|
|
_0812B990:
|
|
ldr r0, _0812B99C @ =0x00000169
|
|
movs r1, 0x1
|
|
bl CheckBagHasItem
|
|
b _0812BAF6
|
|
.align 2, 0
|
|
_0812B99C: .4byte 0x00000169
|
|
_0812B9A0:
|
|
ldr r0, _0812B9A4 @ =0x00000828
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B9A4: .4byte 0x00000828
|
|
_0812B9A8:
|
|
movs r0, 0x1
|
|
bl sub_8088EDC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _0812B9B8
|
|
b _0812BB08
|
|
_0812B9B8:
|
|
b _0812BB04
|
|
_0812B9BA:
|
|
movs r0, 0x82
|
|
lsls r0, 4
|
|
b _0812BAF2
|
|
_0812B9C0:
|
|
bl sub_812BB10
|
|
b _0812BAF6
|
|
_0812B9C6:
|
|
ldr r0, _0812B9CC @ =0x00000271
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B9CC: .4byte 0x00000271
|
|
_0812B9D0:
|
|
ldr r0, _0812B9D4 @ =0x0000082c
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812B9D4: .4byte 0x0000082c
|
|
_0812B9D8:
|
|
cmp r0, 0x2
|
|
beq _0812B9DE
|
|
b _0812BADC
|
|
_0812B9DE:
|
|
bl sub_812B754
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0812BA0E
|
|
ldr r0, _0812BA20 @ =gUnknown_845B9BE
|
|
ldrb r1, [r0]
|
|
adds r2, r0, 0
|
|
cmp r1, 0xFF
|
|
beq _0812BA0E
|
|
adds r1, r2, 0
|
|
_0812B9F6:
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, r5
|
|
bne _0812BA00
|
|
b _0812BB04
|
|
_0812BA00:
|
|
adds r0, r4, 0x1
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xFF
|
|
bne _0812B9F6
|
|
_0812BA0E:
|
|
subs r0, r5, 0x1
|
|
cmp r0, 0x26
|
|
bls _0812BA16
|
|
b _0812BB08
|
|
_0812BA16:
|
|
lsls r0, 2
|
|
ldr r1, _0812BA24 @ =_0812BA28
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812BA20: .4byte gUnknown_845B9BE
|
|
_0812BA24: .4byte _0812BA28
|
|
.align 2, 0
|
|
_0812BA28:
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAD2
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BB08
|
|
.4byte _0812BAD2
|
|
.4byte _0812BAC4
|
|
.4byte _0812BB08
|
|
.4byte _0812BAD2
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BAC4
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BB08
|
|
.4byte _0812BACC
|
|
.4byte _0812BACC
|
|
.4byte _0812BB08
|
|
.4byte _0812BAD2
|
|
_0812BAC4:
|
|
ldr r0, _0812BAC8 @ =0x00000828
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812BAC8: .4byte 0x00000828
|
|
_0812BACC:
|
|
bl sub_812BB10
|
|
b _0812BAF6
|
|
_0812BAD2:
|
|
ldr r0, _0812BAD8 @ =0x000008a4
|
|
b _0812BAF2
|
|
.align 2, 0
|
|
_0812BAD8: .4byte 0x000008a4
|
|
_0812BADC:
|
|
cmp r0, 0x3
|
|
bne _0812BB00
|
|
cmp r5, 0x5
|
|
beq _0812BAEA
|
|
cmp r5, 0x6
|
|
beq _0812BAF0
|
|
b _0812BB08
|
|
_0812BAEA:
|
|
movs r0, 0x82
|
|
lsls r0, 4
|
|
b _0812BAF2
|
|
_0812BAF0:
|
|
ldr r0, _0812BAFC @ =0x00000821
|
|
_0812BAF2:
|
|
bl FlagGet
|
|
_0812BAF6:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812BB0A
|
|
.align 2, 0
|
|
_0812BAFC: .4byte 0x00000821
|
|
_0812BB00:
|
|
cmp r0, 0x4
|
|
beq _0812BB08
|
|
_0812BB04:
|
|
movs r0, 0
|
|
b _0812BB0A
|
|
_0812BB08:
|
|
movs r0, 0x1
|
|
_0812BB0A:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812B780
|
|
|
|
thumb_func_start sub_812BB10
|
|
sub_812BB10: @ 812BB10
|
|
push {lr}
|
|
ldr r0, _0812BB7C @ =0x00000237
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
movs r0, 0x8E
|
|
lsls r0, 2
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
ldr r0, _0812BB80 @ =0x00000239
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
ldr r0, _0812BB84 @ =0x0000023a
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
ldr r0, _0812BB88 @ =0x0000023b
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
ldr r0, _0812BB8C @ =0x000002ef
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
ldr r0, _0812BB90 @ =0x000001f1
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _0812BB94
|
|
movs r0, 0
|
|
b _0812BB96
|
|
.align 2, 0
|
|
_0812BB7C: .4byte 0x00000237
|
|
_0812BB80: .4byte 0x00000239
|
|
_0812BB84: .4byte 0x0000023a
|
|
_0812BB88: .4byte 0x0000023b
|
|
_0812BB8C: .4byte 0x000002ef
|
|
_0812BB90: .4byte 0x000001f1
|
|
_0812BB94:
|
|
movs r0, 0x1
|
|
_0812BB96:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812BB10
|
|
|
|
thumb_func_start sub_812BB9C
|
|
sub_812BB9C: @ 812BB9C
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
ldrb r0, [r2, 0xE]
|
|
cmp r0, 0xA
|
|
bhi _0812BC4C
|
|
lsls r0, 2
|
|
ldr r1, _0812BBB4 @ =_0812BBB8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812BBB4: .4byte _0812BBB8
|
|
.align 2, 0
|
|
_0812BBB8:
|
|
.4byte _0812BC02
|
|
.4byte _0812BC0C
|
|
.4byte _0812BC16
|
|
.4byte _0812BC20
|
|
.4byte _0812BC2A
|
|
.4byte _0812BC34
|
|
.4byte _0812BC3E
|
|
.4byte _0812BC4C
|
|
.4byte _0812BBE4
|
|
.4byte _0812BBEE
|
|
.4byte _0812BBF8
|
|
_0812BBE4:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BC54
|
|
b _0812BC46
|
|
_0812BBEE:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BC80
|
|
b _0812BC46
|
|
_0812BBF8:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BCA8
|
|
b _0812BC46
|
|
_0812BC02:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BCD0
|
|
b _0812BC46
|
|
_0812BC0C:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BD2C
|
|
b _0812BC46
|
|
_0812BC16:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BD64
|
|
b _0812BC46
|
|
_0812BC20:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BD98
|
|
b _0812BC46
|
|
_0812BC2A:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BE10
|
|
b _0812BC46
|
|
_0812BC34:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BEEC
|
|
b _0812BC46
|
|
_0812BC3E:
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
bl sub_812BF18
|
|
_0812BC46:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0812BC4E
|
|
_0812BC4C:
|
|
movs r0, 0
|
|
_0812BC4E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812BB9C
|
|
|
|
thumb_func_start sub_812BC54
|
|
sub_812BC54: @ 812BC54
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _0812BC7C @ =gUnknown_841DFA5
|
|
bl sub_812BF74
|
|
bl sub_812BF5C
|
|
movs r0, 0x1
|
|
bl sub_813BDA4
|
|
movs r0, 0x1
|
|
bl sub_813BD5C
|
|
movs r0, 0x9
|
|
strb r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BC7C: .4byte gUnknown_841DFA5
|
|
thumb_func_end sub_812BC54
|
|
|
|
thumb_func_start sub_812BC80
|
|
sub_812BC80: @ 812BC80
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _0812BCA4 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0812BC9A
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0xA
|
|
strb r0, [r4, 0xE]
|
|
_0812BC9A:
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BCA4: .4byte gMain
|
|
thumb_func_end sub_812BC80
|
|
|
|
thumb_func_start sub_812BCA8
|
|
sub_812BCA8: @ 812BCA8
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, _0812BCCC @ =gUnknown_3005E9C
|
|
movs r5, 0
|
|
strb r5, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_812BF94
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_812B4D8
|
|
strb r5, [r4, 0xE]
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BCCC: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BCA8
|
|
|
|
thumb_func_start sub_812BCD0
|
|
sub_812BCD0: @ 812BCD0
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_813C690
|
|
adds r1, r0, 0
|
|
adds r0, r1, 0x6
|
|
cmp r0, 0x5
|
|
bhi _0812BD16
|
|
lsls r0, 2
|
|
ldr r1, _0812BCEC @ =_0812BCF0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812BCEC: .4byte _0812BCF0
|
|
.align 2, 0
|
|
_0812BCF0:
|
|
.4byte _0812BD08
|
|
.4byte _0812BD0C
|
|
.4byte _0812BD0C
|
|
.4byte _0812BD1E
|
|
.4byte _0812BD08
|
|
.4byte _0812BD1E
|
|
_0812BD08:
|
|
movs r0, 0
|
|
b _0812BD20
|
|
_0812BD0C:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_812BF9C
|
|
b _0812BD1E
|
|
_0812BD16:
|
|
ldr r0, _0812BD28 @ =gUnknown_3005E9C
|
|
strb r1, [r0, 0x1]
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xE]
|
|
_0812BD1E:
|
|
movs r0, 0x1
|
|
_0812BD20:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BD28: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BCD0
|
|
|
|
thumb_func_start sub_812BD2C
|
|
sub_812BD2C: @ 812BD2C
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r1, _0812BD60 @ =gUnknown_3005E9C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, 0xD]
|
|
strb r0, [r1, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_812BF94
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_812B5A8
|
|
bl sub_813C75C
|
|
movs r0, 0x2
|
|
bl sub_813C684
|
|
movs r0, 0x3
|
|
strb r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BD60: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BD2C
|
|
|
|
thumb_func_start sub_812BD64
|
|
sub_812BD64: @ 812BD64
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_813C004
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_813C004
|
|
ldr r0, _0812BD94 @ =gUnknown_3005E9C
|
|
movs r4, 0
|
|
strb r4, [r0]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_812B4D8
|
|
strb r4, [r5, 0xE]
|
|
movs r0, 0x1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BD94: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BD64
|
|
|
|
thumb_func_start sub_812BD98
|
|
sub_812BD98: @ 812BD98
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_813C690
|
|
adds r1, r0, 0
|
|
adds r0, r1, 0x6
|
|
cmp r0, 0x5
|
|
bhi _0812BDD8
|
|
lsls r0, 2
|
|
ldr r1, _0812BDB4 @ =_0812BDB8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0812BDB4: .4byte _0812BDB8
|
|
.align 2, 0
|
|
_0812BDB8:
|
|
.4byte _0812BDD0
|
|
.4byte _0812BDE0
|
|
.4byte _0812BDE0
|
|
.4byte _0812BDE0
|
|
.4byte _0812BDD4
|
|
.4byte _0812BDE0
|
|
_0812BDD0:
|
|
movs r0, 0
|
|
b _0812BDE2
|
|
_0812BDD4:
|
|
movs r0, 0x2
|
|
b _0812BDDE
|
|
_0812BDD8:
|
|
ldr r0, _0812BDE8 @ =gUnknown_3005E9C
|
|
strb r1, [r0, 0x3]
|
|
movs r0, 0x4
|
|
_0812BDDE:
|
|
strb r0, [r4, 0xE]
|
|
_0812BDE0:
|
|
movs r0, 0x1
|
|
_0812BDE2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BDE8: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BD98
|
|
|
|
thumb_func_start sub_812BDEC
|
|
sub_812BDEC: @ 812BDEC
|
|
push {lr}
|
|
ldr r1, _0812BE08 @ =gUnknown_845B080
|
|
ldr r0, _0812BE0C @ =gUnknown_3005E9C
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_813C4CC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812BE08: .4byte gUnknown_845B080
|
|
_0812BE0C: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BDEC
|
|
|
|
thumb_func_start sub_812BE10
|
|
sub_812BE10: @ 812BE10
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _0812BE4C @ =gUnknown_3005E9C
|
|
movs r0, 0x2
|
|
strb r0, [r4]
|
|
movs r0, 0
|
|
bl sub_813BDA4
|
|
bl sub_813C624
|
|
ldr r0, _0812BE50 @ =gUnknown_841DFBE
|
|
bl sub_812BF74
|
|
movs r0, 0x1
|
|
bl sub_813BDE8
|
|
movs r0, 0x1
|
|
bl sub_813BEE4
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
bne _0812BE5C
|
|
ldr r0, _0812BE54 @ =gUnknown_845B0B0
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ldr r2, _0812BE58 @ =gUnknown_845B164
|
|
b _0812BEA4
|
|
.align 2, 0
|
|
_0812BE4C: .4byte gUnknown_3005E9C
|
|
_0812BE50: .4byte gUnknown_841DFBE
|
|
_0812BE54: .4byte gUnknown_845B0B0
|
|
_0812BE58: .4byte gUnknown_845B164
|
|
_0812BE5C:
|
|
cmp r0, 0x1
|
|
bne _0812BE78
|
|
ldr r0, _0812BE70 @ =gUnknown_845B218
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ldr r2, _0812BE74 @ =gUnknown_845B2DC
|
|
b _0812BEA4
|
|
.align 2, 0
|
|
_0812BE70: .4byte gUnknown_845B218
|
|
_0812BE74: .4byte gUnknown_845B2DC
|
|
_0812BE78:
|
|
cmp r0, 0x2
|
|
bne _0812BE94
|
|
ldr r0, _0812BE8C @ =gUnknown_845B3A0
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ldr r2, _0812BE90 @ =gUnknown_845B450
|
|
b _0812BEA4
|
|
.align 2, 0
|
|
_0812BE8C: .4byte gUnknown_845B3A0
|
|
_0812BE90: .4byte gUnknown_845B450
|
|
_0812BE94:
|
|
cmp r0, 0x3
|
|
bne _0812BEB8
|
|
ldr r0, _0812BEB0 @ =gUnknown_845B500
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ldr r2, _0812BEB4 @ =gUnknown_845B520
|
|
_0812BEA4:
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl sub_813C50C
|
|
b _0812BECC
|
|
.align 2, 0
|
|
_0812BEB0: .4byte gUnknown_845B500
|
|
_0812BEB4: .4byte gUnknown_845B520
|
|
_0812BEB8:
|
|
ldr r0, _0812BEE4 @ =gUnknown_845B540
|
|
ldrb r1, [r4, 0x3]
|
|
lsls r1, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
ldr r2, _0812BEE8 @ =gUnknown_845B5D0
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl sub_813C50C
|
|
_0812BECC:
|
|
movs r0, 0x1
|
|
bl sub_813BDA4
|
|
movs r0, 0x1
|
|
bl sub_813BD5C
|
|
movs r0, 0x6
|
|
strb r0, [r5, 0xE]
|
|
movs r0, 0x1
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BEE4: .4byte gUnknown_845B540
|
|
_0812BEE8: .4byte gUnknown_845B5D0
|
|
thumb_func_end sub_812BE10
|
|
|
|
thumb_func_start sub_812BEEC
|
|
sub_812BEEC: @ 812BEEC
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r2, _0812BF14 @ =gUnknown_3005E9C
|
|
movs r0, 0x1
|
|
strb r0, [r2]
|
|
adds r0, r4, 0
|
|
bl sub_812B5A8
|
|
bl sub_813C75C
|
|
movs r0, 0x2
|
|
bl sub_813C684
|
|
movs r0, 0x3
|
|
strb r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812BF14: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BEEC
|
|
|
|
thumb_func_start sub_812BF18
|
|
sub_812BF18: @ 812BF18
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _0812BF40 @ =gMain
|
|
ldrh r1, [r0, 0x2E]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0812BF30
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0812BF44
|
|
_0812BF30:
|
|
movs r0, 0x5
|
|
bl PlaySE
|
|
movs r0, 0x5
|
|
strb r0, [r4, 0xE]
|
|
movs r0, 0x1
|
|
b _0812BF54
|
|
.align 2, 0
|
|
_0812BF40: .4byte gMain
|
|
_0812BF44:
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0812BF52
|
|
movs r0, 0x1
|
|
b _0812BF54
|
|
_0812BF52:
|
|
movs r0, 0
|
|
_0812BF54:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812BF18
|
|
|
|
thumb_func_start sub_812BF5C
|
|
sub_812BF5C: @ 812BF5C
|
|
push {lr}
|
|
bl sub_813C624
|
|
ldr r0, _0812BF70 @ =gUnknown_81B2FC9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_813C4CC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812BF70: .4byte gUnknown_81B2FC9
|
|
thumb_func_end sub_812BF5C
|
|
|
|
thumb_func_start sub_812BF74
|
|
sub_812BF74: @ 812BF74
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_813C5FC
|
|
adds r0, r4, 0
|
|
bl sub_813C488
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812BF74
|
|
|
|
thumb_func_start sub_812BF88
|
|
sub_812BF88: @ 812BF88
|
|
ldr r0, _0812BF90 @ =gUnknown_3005E9C
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812BF90: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812BF88
|
|
|
|
thumb_func_start sub_812BF94
|
|
sub_812BF94: @ 812BF94
|
|
movs r1, 0
|
|
strb r1, [r0, 0xC]
|
|
strb r1, [r0, 0xD]
|
|
bx lr
|
|
thumb_func_end sub_812BF94
|
|
|
|
thumb_func_start sub_812BF9C
|
|
sub_812BF9C: @ 812BF9C
|
|
push {lr}
|
|
ldrb r2, [r0, 0xC]
|
|
ldrb r0, [r0, 0xD]
|
|
adds r2, r0
|
|
lsls r2, 3
|
|
adds r2, r1
|
|
ldr r1, [r2, 0x4]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0812BFC0
|
|
ldr r0, _0812BFBC @ =gUnknown_845B098
|
|
ldr r0, [r0, 0x14]
|
|
bl sub_813C584
|
|
b _0812BFCC
|
|
.align 2, 0
|
|
_0812BFBC: .4byte gUnknown_845B098
|
|
_0812BFC0:
|
|
ldr r0, _0812BFD8 @ =gUnknown_845B098
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
bl sub_813C584
|
|
_0812BFCC:
|
|
movs r0, 0x1
|
|
bl sub_813BE30
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812BFD8: .4byte gUnknown_845B098
|
|
thumb_func_end sub_812BF9C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|