mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-11 22:45:18 -05:00
1762 lines
30 KiB
ArmAsm
1762 lines
30 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_812B1E0
|
|
sub_812B1E0: @ 812B1E0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0812B1EC @ =gUnknown_203B0EC
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B1EC: .4byte gUnknown_203B0EC
|
|
thumb_func_end sub_812B1E0
|
|
|
|
thumb_func_start sub_812B1F0
|
|
sub_812B1F0: @ 812B1F0
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
ldr r0, _0812B21C @ =gUnknown_203B0EC
|
|
ldrh r2, [r0]
|
|
cmp r2, 0x1A
|
|
bgt _0812B216
|
|
cmp r2, 0x17
|
|
blt _0812B216
|
|
cmp r1, 0x9
|
|
beq _0812B218
|
|
cmp r1, 0x5
|
|
beq _0812B218
|
|
cmp r1, 0x6
|
|
beq _0812B218
|
|
cmp r1, 0x7
|
|
beq _0812B218
|
|
cmp r1, 0x8
|
|
beq _0812B218
|
|
_0812B216:
|
|
strh r1, [r0]
|
|
_0812B218:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B21C: .4byte gUnknown_203B0EC
|
|
thumb_func_end sub_812B1F0
|
|
|
|
thumb_func_start sub_812B220
|
|
sub_812B220: @ 812B220
|
|
ldr r0, _0812B22C @ =gUnknown_203B0EC
|
|
ldr r1, _0812B230 @ =gUnknown_20370C0
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B22C: .4byte gUnknown_203B0EC
|
|
_0812B230: .4byte gUnknown_20370C0
|
|
thumb_func_end sub_812B220
|
|
|
|
thumb_func_start sub_812B234
|
|
sub_812B234: @ 812B234
|
|
ldr r0, _0812B240 @ =gUnknown_3005EA0
|
|
ldr r1, _0812B244 @ =gUnknown_203B0EC
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B240: .4byte gUnknown_3005EA0
|
|
_0812B244: .4byte gUnknown_203B0EC
|
|
thumb_func_end sub_812B234
|
|
|
|
thumb_func_start sub_812B248
|
|
sub_812B248: @ 812B248
|
|
ldr r0, _0812B254 @ =gUnknown_203B0EC
|
|
ldr r1, _0812B258 @ =gUnknown_3005EA0
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B254: .4byte gUnknown_203B0EC
|
|
_0812B258: .4byte gUnknown_3005EA0
|
|
thumb_func_end sub_812B248
|
|
|
|
thumb_func_start sub_812B25C
|
|
sub_812B25C: @ 812B25C
|
|
push {lr}
|
|
ldr r0, _0812B268 @ =gUnknown_845C594
|
|
bl sub_812B27C
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812B268: .4byte gUnknown_845C594
|
|
thumb_func_end sub_812B25C
|
|
|
|
thumb_func_start sub_812B26C
|
|
sub_812B26C: @ 812B26C
|
|
push {lr}
|
|
ldr r0, _0812B278 @ =gUnknown_845C5BC
|
|
bl sub_812B27C
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812B278: .4byte gUnknown_845C5BC
|
|
thumb_func_end sub_812B26C
|
|
|
|
thumb_func_start sub_812B27C
|
|
sub_812B27C: @ 812B27C
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _0812B2AC @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
ldrsb r1, [r0, r1]
|
|
lsls r1, 8
|
|
ldrb r0, [r0, 0x5]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
lsrs r3, r0, 16
|
|
ldrh r0, [r2]
|
|
ldr r1, _0812B2B0 @ =0x0000ffff
|
|
cmp r0, r1
|
|
beq _0812B2BC
|
|
adds r4, r1, 0
|
|
adds r1, r2, 0
|
|
_0812B2A2:
|
|
ldrh r0, [r1]
|
|
cmp r0, r3
|
|
bne _0812B2B4
|
|
movs r0, 0x1
|
|
b _0812B2BE
|
|
.align 2, 0
|
|
_0812B2AC: .4byte gSaveBlock1Ptr
|
|
_0812B2B0: .4byte 0x0000ffff
|
|
_0812B2B4:
|
|
adds r1, 0x2
|
|
ldrh r0, [r1]
|
|
cmp r0, r4
|
|
bne _0812B2A2
|
|
_0812B2BC:
|
|
movs r0, 0
|
|
_0812B2BE:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812B27C
|
|
|
|
thumb_func_start sub_812B2C4
|
|
sub_812B2C4: @ 812B2C4
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r5, 0
|
|
ldr r0, _0812B2E8 @ =gUnknown_845C5CE
|
|
mov r9, r0
|
|
movs r0, 0x2
|
|
add r0, r9
|
|
mov r8, r0
|
|
_0812B2D8:
|
|
movs r6, 0
|
|
mov r4, r9
|
|
lsls r1, r5, 1
|
|
adds r0, r1, r5
|
|
add r0, r8
|
|
adds r7, r1, 0
|
|
b _0812B33A
|
|
.align 2, 0
|
|
_0812B2E8: .4byte gUnknown_845C5CE
|
|
_0812B2EC:
|
|
adds r3, r1, r5
|
|
adds r0, r3, r4
|
|
ldrb r1, [r0]
|
|
ldr r0, _0812B324 @ =gSaveBlock1Ptr
|
|
ldr r2, [r0]
|
|
movs r0, 0x4
|
|
ldrsb r0, [r2, r0]
|
|
cmp r1, r0
|
|
bne _0812B32C
|
|
adds r0, r4, 0x1
|
|
adds r0, r3, r0
|
|
ldrb r0, [r0]
|
|
adds r0, r6
|
|
movs r1, 0x5
|
|
ldrsb r1, [r2, r1]
|
|
cmp r0, r1
|
|
bne _0812B32C
|
|
cmp r5, 0xF
|
|
bne _0812B320
|
|
ldr r0, _0812B328 @ =0x00000849
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _0812B32C
|
|
_0812B320:
|
|
movs r0, 0x1
|
|
b _0812B34C
|
|
.align 2, 0
|
|
_0812B324: .4byte gSaveBlock1Ptr
|
|
_0812B328: .4byte 0x00000849
|
|
_0812B32C:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
ldr r4, _0812B358 @ =gUnknown_845C5CE
|
|
adds r1, r7, 0
|
|
adds r0, r1, r5
|
|
add r0, r8
|
|
_0812B33A:
|
|
ldrb r0, [r0]
|
|
cmp r6, r0
|
|
bcc _0812B2EC
|
|
adds r0, r5, 0x1
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0xF
|
|
bls _0812B2D8
|
|
movs r0, 0
|
|
_0812B34C:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812B358: .4byte gUnknown_845C5CE
|
|
thumb_func_end sub_812B2C4
|
|
|
|
thumb_func_start sub_812B35C
|
|
sub_812B35C: @ 812B35C
|
|
push {lr}
|
|
bl sub_812B4B8
|
|
movs r0, 0x8
|
|
bl TestPlayerAvatarFlags
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0812B376
|
|
movs r0, 0x16
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B376:
|
|
bl sub_812B2C4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0812B388
|
|
movs r0, 0x15
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B388:
|
|
ldr r0, _0812B3B0 @ =gMapHeader
|
|
ldrb r0, [r0, 0x17]
|
|
bl is_light_level_8_or_9
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0812B400
|
|
ldr r0, _0812B3B4 @ =gSaveBlock1Ptr
|
|
ldr r0, [r0]
|
|
ldrh r1, [r0, 0x4]
|
|
cmp r1, 0x4
|
|
beq _0812B3A8
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _0812B3B8
|
|
_0812B3A8:
|
|
movs r0, 0xE
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
.align 2, 0
|
|
_0812B3B0: .4byte gMapHeader
|
|
_0812B3B4: .4byte gSaveBlock1Ptr
|
|
_0812B3B8:
|
|
movs r0, 0xC1
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
bne _0812B3C8
|
|
movs r0, 0xF
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B3C8:
|
|
bl IsCurMapPokeCenter
|
|
cmp r0, 0x1
|
|
bne _0812B3D8
|
|
movs r0, 0x10
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B3D8:
|
|
bl sub_812B25C
|
|
cmp r0, 0x1
|
|
bne _0812B3E8
|
|
movs r0, 0x11
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B3E8:
|
|
bl sub_812B26C
|
|
cmp r0, 0x1
|
|
bne _0812B3F8
|
|
movs r0, 0x12
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B3F8:
|
|
movs r0, 0x13
|
|
bl sub_812B1F0
|
|
b _0812B406
|
|
_0812B400:
|
|
movs r0, 0x14
|
|
bl sub_812B1F0
|
|
_0812B406:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_812B35C
|
|
|
|
thumb_func_start sub_812B40C
|
|
sub_812B40C: @ 812B40C
|
|
push {lr}
|
|
ldr r0, _0812B434 @ =gUnknown_203B0EE
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0812B42E
|
|
ldr r0, _0812B438 @ =gSaveFileStatus
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _0812B440
|
|
cmp r0, 0x2
|
|
beq _0812B440
|
|
ldr r0, _0812B43C @ =0x0000083c
|
|
bl FlagGet
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0812B440
|
|
_0812B42E:
|
|
movs r0, 0
|
|
b _0812B44E
|
|
.align 2, 0
|
|
_0812B434: .4byte gUnknown_203B0EE
|
|
_0812B438: .4byte gSaveFileStatus
|
|
_0812B43C: .4byte 0x0000083c
|
|
_0812B440:
|
|
ldr r0, _0812B454 @ =0x0000083c
|
|
bl FlagSet
|
|
ldr r1, _0812B458 @ =gUnknown_203B0EE
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
_0812B44E:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0812B454: .4byte 0x0000083c
|
|
_0812B458: .4byte gUnknown_203B0EE
|
|
thumb_func_end sub_812B40C
|
|
|
|
thumb_func_start sub_812B45C
|
|
sub_812B45C: @ 812B45C
|
|
push {lr}
|
|
ldr r0, _0812B46C @ =gUnknown_3003F64
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0812B470
|
|
movs r0, 0x1
|
|
b _0812B472
|
|
.align 2, 0
|
|
_0812B46C: .4byte gUnknown_3003F64
|
|
_0812B470:
|
|
movs r0, 0
|
|
_0812B472:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_812B45C
|
|
|
|
thumb_func_start sub_812B478
|
|
sub_812B478: @ 812B478
|
|
ldr r1, _0812B480 @ =gUnknown_3005ECC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B480: .4byte gUnknown_3005ECC
|
|
thumb_func_end sub_812B478
|
|
|
|
thumb_func_start sub_812B484
|
|
sub_812B484: @ 812B484
|
|
push {lr}
|
|
ldr r0, _0812B4A4 @ =gUnknown_203ADFA
|
|
ldrb r0, [r0]
|
|
subs r0, 0x2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _0812B49E
|
|
ldr r1, _0812B4A8 @ =gUnknown_3005ECC
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bl sub_812B4B8
|
|
_0812B49E:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B4A4: .4byte gUnknown_203ADFA
|
|
_0812B4A8: .4byte gUnknown_3005ECC
|
|
thumb_func_end sub_812B484
|
|
|
|
thumb_func_start sub_812B4AC
|
|
sub_812B4AC: @ 812B4AC
|
|
ldr r1, _0812B4B4 @ =gUnknown_203F175
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B4B4: .4byte gUnknown_203F175
|
|
thumb_func_end sub_812B4AC
|
|
|
|
thumb_func_start sub_812B4B8
|
|
sub_812B4B8: @ 812B4B8
|
|
ldr r1, _0812B4C0 @ =gUnknown_203F175
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0812B4C0: .4byte gUnknown_203F175
|
|
thumb_func_end sub_812B4B8
|
|
|
|
thumb_func_start sub_812B4C4
|
|
sub_812B4C4: @ 812B4C4
|
|
str r1, [r0]
|
|
movs r2, 0x1
|
|
movs r1, 0x1
|
|
strh r1, [r0, 0x4]
|
|
strh r1, [r0, 0x6]
|
|
strb r2, [r0, 0x8]
|
|
movs r1, 0x4
|
|
strb r1, [r0, 0x9]
|
|
bx lr
|
|
thumb_func_end sub_812B4C4
|
|
|
|
thumb_func_start sub_812B4D8
|
|
sub_812B4D8: @ 812B4D8
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_812B4C4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_812B520
|
|
ldr r0, _0812B518 @ =gUnknown_841DFAC
|
|
bl sub_812BF74
|
|
ldr r0, _0812B51C @ =gUnknown_3005E9C
|
|
ldrb r2, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_813C64C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_812BF9C
|
|
movs r0, 0x1
|
|
bl sub_813BDA4
|
|
movs r0, 0x1
|
|
bl sub_813BD5C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0812B518: .4byte gUnknown_841DFAC
|
|
_0812B51C: .4byte gUnknown_3005E9C
|
|
thumb_func_end sub_812B4D8
|
|
|
|
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 sub_8099F40
|
|
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.
|