Files
Pokemon-Firered/asm/help_system_812B1E0.s
T
2019-06-11 17:32:33 -04:00

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.