pokeheartgold/asm/unk_0200A090.s
2021-10-26 16:50:59 -04:00

2358 lines
39 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start sub_0200A090
sub_0200A090: ; 0x0200A090
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r6, r1, #0
str r2, [sp]
add r0, r2, #0
mov r1, #0x14
bl AllocFromHeap
add r4, r0, #0
ldr r1, [sp]
add r0, r5, #0
bl sub_02025534
str r0, [r4]
mov r0, #0xc
add r7, r5, #0
mul r7, r0
ldr r0, [sp]
add r1, r7, #0
bl AllocFromHeap
mov r1, #0
add r2, r7, #0
str r0, [r4, #4]
bl memset
str r5, [r4, #8]
mov r0, #0
str r0, [r4, #0xc]
str r6, [r4, #0x10]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A090
thumb_func_start sub_0200A0D0
sub_0200A0D0: ; 0x0200A0D0
push {r4, lr}
add r4, r0, #0
bne _0200A0DA
bl GF_AssertFail
_0200A0DA:
ldr r0, [r4]
cmp r0, #0
bne _0200A0E4
bl GF_AssertFail
_0200A0E4:
ldr r0, [r4, #4]
cmp r0, #0
bne _0200A0EE
bl GF_AssertFail
_0200A0EE:
add r0, r4, #0
bl sub_0200A790
ldr r0, [r4]
bl sub_02025580
mov r0, #0
str r0, [r4]
ldr r0, [r4, #4]
bl FreeToHeap
mov r0, #0
str r0, [r4, #4]
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
thumb_func_end sub_0200A0D0
thumb_func_start sub_0200A110
sub_0200A110: ; 0x0200A110
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r5, #0
bne _0200A124
bl GF_AssertFail
_0200A124:
cmp r4, #0
bne _0200A12C
bl GF_AssertFail
_0200A12C:
ldr r0, [r4, #4]
cmp r0, r6
bgt _0200A136
bl GF_AssertFail
_0200A136:
ldr r1, [r5, #0x10]
ldr r0, [r4, #8]
cmp r1, r0
beq _0200A142
bl GF_AssertFail
_0200A142:
add r0, r5, #0
bl sub_0200AA70
str r0, [sp, #0x1c]
cmp r0, #0
bne _0200A152
bl GF_AssertFail
_0200A152:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0200A18E
ldr r2, [r4]
mov r0, #0x4c
add r1, r6, #0
mul r1, r0
add r6, r2, r1
ldr r1, [r2, r1]
add r0, r5, #0
bl sub_0200A728
cmp r0, #1
beq _0200A172
bl GF_AssertFail
_0200A172:
ldr r0, [r6, #0x44]
ldr r1, [sp, #0x1c]
str r0, [sp]
ldr r0, [r6, #0x48]
add r2, r6, #4
str r0, [sp, #4]
ldr r0, [r4, #8]
str r0, [sp, #8]
str r7, [sp, #0xc]
ldr r3, [r6]
add r0, r5, #0
bl sub_0200ABEC
b _0200A1CC
_0200A18E:
mov r0, #0x18
ldr r1, [r4]
mul r0, r6
add r6, r1, r0
ldr r1, [r6, #0xc]
add r0, r5, #0
bl sub_0200A728
cmp r0, #1
beq _0200A1A6
bl GF_AssertFail
_0200A1A6:
ldr r0, [r6, #8]
ldr r1, [sp, #0x1c]
str r0, [sp]
ldr r0, [r6, #0xc]
str r0, [sp, #4]
ldr r0, [r6, #0x10]
str r0, [sp, #8]
ldr r0, [r6, #0x14]
str r0, [sp, #0xc]
ldr r0, [r4, #8]
str r0, [sp, #0x10]
str r7, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
ldr r2, [r6]
ldr r3, [r6, #4]
add r0, r5, #0
bl sub_0200AC18
_0200A1CC:
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
ldr r0, [sp, #0x1c]
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A110
thumb_func_start sub_0200A1D8
sub_0200A1D8: ; 0x0200A1D8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A1EC
bl GF_AssertFail
_0200A1EC:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _0200A1F6
bl GF_AssertFail
_0200A1F6:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A204
bl GF_AssertFail
_0200A204:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x3c]
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [sp, #0x40]
str r1, [sp, #0x10]
str r0, [sp, #0x14]
str r1, [sp, #0x18]
ldr r3, [sp, #0x1c]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl sub_0200AC18
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200A1D8
thumb_func_start sub_0200A234
sub_0200A234: ; 0x0200A234
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A248
bl GF_AssertFail
_0200A248:
ldr r0, [r5, #0x10]
cmp r0, #1
beq _0200A252
bl GF_AssertFail
_0200A252:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A260
bl GF_AssertFail
_0200A260:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x3c]
ldr r3, [sp, #0x1c]
str r0, [sp, #8]
ldr r0, [sp, #0x40]
add r1, r6, #0
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [sp, #0x44]
add r2, r7, #0
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
add r0, r5, #0
bl sub_0200AC18
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200A234
thumb_func_start sub_0200A294
sub_0200A294: ; 0x0200A294
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A2A8
bl GF_AssertFail
_0200A2A8:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A2B6
bl GF_AssertFail
_0200A2B6:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
mov r1, #0
str r1, [sp, #8]
ldr r0, [sp, #0x3c]
str r1, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [sp, #0x40]
ldr r3, [sp, #0x1c]
str r0, [sp, #0x14]
str r1, [sp, #0x18]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl sub_0200AC18
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A294
thumb_func_start sub_0200A2E4
sub_0200A2E4: ; 0x0200A2E4
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
add r4, r1, #0
str r2, [sp, #0x1c]
str r3, [sp, #0x20]
cmp r5, #0
bne _0200A2F8
bl GF_AssertFail
_0200A2F8:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _0200A302
bl GF_AssertFail
_0200A302:
cmp r4, #0
bne _0200A30A
bl GF_AssertFail
_0200A30A:
ldr r0, [r4, #4]
cmp r0, #0
beq _0200A314
bl GF_AssertFail
_0200A314:
add r0, r4, #0
bl sub_0200A7FC
add r6, r0, #0
add r0, r4, #0
bl sub_0200A8B0
add r7, r0, #0
add r0, r5, #0
add r1, r4, #0
bl sub_0200A75C
ldr r0, [sp, #0x38]
mov r1, #0
str r0, [sp]
str r6, [sp, #4]
str r7, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [sp, #0x3c]
str r1, [sp, #0x10]
str r0, [sp, #0x14]
str r1, [sp, #0x18]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
add r0, r5, #0
add r1, r4, #0
bl sub_0200AC18
add sp, #0x24
pop {r4, r5, r6, r7, pc}
thumb_func_end sub_0200A2E4
thumb_func_start sub_0200A350
sub_0200A350: ; 0x0200A350
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r5, r0, #0
add r4, r1, #0
str r2, [sp, #0x1c]
str r3, [sp, #0x20]
cmp r5, #0
bne _0200A364
bl GF_AssertFail
_0200A364:
ldr r0, [r5, #0x10]
cmp r0, #1
beq _0200A36E
bl GF_AssertFail
_0200A36E:
cmp r4, #0
bne _0200A376
bl GF_AssertFail
_0200A376:
ldr r0, [r4, #4]
cmp r0, #1
beq _0200A380
bl GF_AssertFail
_0200A380:
add r0, r4, #0
bl sub_0200A7FC
add r6, r0, #0
add r0, r4, #0
bl sub_0200A8B0
add r7, r0, #0
add r0, r4, #0
bl sub_0200A8DC
str r0, [sp, #0x24]
add r0, r5, #0
add r1, r4, #0
bl sub_0200A75C
ldr r0, [sp, #0x40]
ldr r2, [sp, #0x1c]
str r0, [sp]
str r6, [sp, #4]
ldr r0, [sp, #0x24]
str r7, [sp, #8]
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [sp, #0x44]
ldr r3, [sp, #0x20]
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
add r0, r5, #0
add r1, r4, #0
bl sub_0200AC18
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A350
thumb_func_start sub_0200A3C8
sub_0200A3C8: ; 0x0200A3C8
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A3DC
bl GF_AssertFail
_0200A3DC:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _0200A3E6
bl GF_AssertFail
_0200A3E6:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A3F4
bl GF_AssertFail
_0200A3F4:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x3c]
mov r1, #0
str r0, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [sp, #0x40]
str r1, [sp, #0x10]
str r0, [sp, #0x14]
str r1, [sp, #0x18]
ldr r3, [sp, #0x1c]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl sub_0200AC50
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200A3C8
thumb_func_start sub_0200A424
sub_0200A424: ; 0x0200A424
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A438
bl GF_AssertFail
_0200A438:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _0200A442
bl GF_AssertFail
_0200A442:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A450
bl GF_AssertFail
_0200A450:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x3c]
ldr r3, [sp, #0x1c]
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [sp, #0x40]
add r1, r6, #0
str r0, [sp, #0x14]
ldr r0, [sp, #0x44]
add r2, r7, #0
str r0, [sp, #0x18]
add r0, r5, #0
bl sub_0200AC50
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A424
thumb_func_start sub_0200A480
sub_0200A480: ; 0x0200A480
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A494
bl GF_AssertFail
_0200A494:
ldr r0, [r5, #0x10]
cmp r0, #1
beq _0200A49E
bl GF_AssertFail
_0200A49E:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A4AC
bl GF_AssertFail
_0200A4AC:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x3c]
ldr r3, [sp, #0x1c]
str r0, [sp, #8]
ldr r0, [sp, #0x40]
add r1, r6, #0
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [sp, #0x44]
add r2, r7, #0
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
add r0, r5, #0
bl sub_0200AC50
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200A480
thumb_func_start sub_0200A4E0
sub_0200A4E0: ; 0x0200A4E0
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A4F4
bl GF_AssertFail
_0200A4F4:
ldr r0, [r5, #0x10]
cmp r0, #1
beq _0200A4FE
bl GF_AssertFail
_0200A4FE:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A50C
bl GF_AssertFail
_0200A50C:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
ldr r0, [sp, #0x3c]
ldr r3, [sp, #0x1c]
str r0, [sp, #8]
ldr r0, [sp, #0x40]
add r1, r6, #0
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [sp, #0x44]
add r2, r7, #0
str r0, [sp, #0x14]
ldr r0, [sp, #0x48]
str r0, [sp, #0x18]
add r0, r5, #0
bl sub_0200AC50
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200A4E0
thumb_func_start sub_0200A540
sub_0200A540: ; 0x0200A540
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x20
add r5, r0, #0
add r7, r1, #0
add r4, r3, #0
str r2, [sp, #0x1c]
cmp r5, #0
bne _0200A554
bl GF_AssertFail
_0200A554:
add r0, r5, #0
bl sub_0200AA70
add r6, r0, #0
bne _0200A562
bl GF_AssertFail
_0200A562:
ldr r0, [sp, #0x38]
str r4, [sp]
str r0, [sp, #4]
mov r1, #0
str r1, [sp, #8]
ldr r0, [sp, #0x3c]
str r1, [sp, #0xc]
str r0, [sp, #0x10]
ldr r0, [sp, #0x40]
ldr r3, [sp, #0x1c]
str r0, [sp, #0x14]
str r1, [sp, #0x18]
add r0, r5, #0
add r1, r6, #0
add r2, r7, #0
bl sub_0200AC50
ldr r0, [r5, #0xc]
add r0, r0, #1
str r0, [r5, #0xc]
add r0, r6, #0
add sp, #0x20
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A540
thumb_func_start sub_0200A590
sub_0200A590: ; 0x0200A590
push {r4, r5, r6, r7, lr}
sub sp, #0x24
add r5, r0, #0
add r4, r1, #0
str r2, [sp, #0x1c]
str r3, [sp, #0x20]
cmp r5, #0
bne _0200A5A4
bl GF_AssertFail
_0200A5A4:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _0200A5AE
bl GF_AssertFail
_0200A5AE:
cmp r4, #0
bne _0200A5B6
bl GF_AssertFail
_0200A5B6:
ldr r0, [r4, #4]
cmp r0, #0
beq _0200A5C0
bl GF_AssertFail
_0200A5C0:
add r0, r4, #0
bl sub_0200A7FC
add r6, r0, #0
add r0, r4, #0
bl sub_0200A8B0
add r7, r0, #0
add r0, r5, #0
add r1, r4, #0
bl sub_0200A75C
ldr r0, [sp, #0x38]
mov r1, #0
str r0, [sp]
str r6, [sp, #4]
str r7, [sp, #8]
str r1, [sp, #0xc]
ldr r0, [sp, #0x3c]
str r1, [sp, #0x10]
str r0, [sp, #0x14]
str r1, [sp, #0x18]
ldr r2, [sp, #0x1c]
ldr r3, [sp, #0x20]
add r0, r5, #0
add r1, r4, #0
bl sub_0200AC50
add sp, #0x24
pop {r4, r5, r6, r7, pc}
thumb_func_end sub_0200A590
thumb_func_start sub_0200A5FC
sub_0200A5FC: ; 0x0200A5FC
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x28
add r5, r0, #0
add r4, r1, #0
str r2, [sp, #0x1c]
str r3, [sp, #0x20]
cmp r5, #0
bne _0200A610
bl GF_AssertFail
_0200A610:
ldr r0, [r5, #0x10]
cmp r0, #1
beq _0200A61A
bl GF_AssertFail
_0200A61A:
cmp r4, #0
bne _0200A622
bl GF_AssertFail
_0200A622:
ldr r0, [r4, #4]
cmp r0, #1
beq _0200A62C
bl GF_AssertFail
_0200A62C:
add r0, r4, #0
bl sub_0200A7FC
add r6, r0, #0
add r0, r4, #0
bl sub_0200A8B0
add r7, r0, #0
add r0, r4, #0
bl sub_0200A8DC
str r0, [sp, #0x24]
add r0, r5, #0
add r1, r4, #0
bl sub_0200A75C
ldr r0, [sp, #0x40]
ldr r2, [sp, #0x1c]
str r0, [sp]
str r6, [sp, #4]
ldr r0, [sp, #0x24]
str r7, [sp, #8]
str r0, [sp, #0xc]
mov r0, #1
str r0, [sp, #0x10]
ldr r0, [sp, #0x44]
ldr r3, [sp, #0x20]
str r0, [sp, #0x14]
mov r0, #0
str r0, [sp, #0x18]
add r0, r5, #0
add r1, r4, #0
bl sub_0200AC50
add sp, #0x28
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A5FC
thumb_func_start sub_0200A674
sub_0200A674: ; 0x0200A674
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
add r5, r0, #0
add r4, r1, #0
add r6, r2, #0
add r7, r3, #0
cmp r5, #0
bne _0200A688
bl GF_AssertFail
_0200A688:
cmp r4, #0
bne _0200A690
bl GF_AssertFail
_0200A690:
str r6, [sp]
str r7, [sp, #4]
ldr r3, [r4, #4]
add r0, r5, #0
add r1, r4, #0
mov r2, #0
bl sub_0200A6A8
ldr r0, [r4, #4]
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200A674
thumb_func_start sub_0200A6A8
sub_0200A6A8: ; 0x0200A6A8
push {r3, r4, r5, r6, r7, lr}
sub sp, #8
str r0, [sp]
add r5, r2, #0
ldr r0, [sp, #0x24]
add r7, r5, r3
str r1, [sp, #4]
ldr r4, [sp, #0x20]
str r0, [sp, #0x24]
cmp r5, r7
bge _0200A6EC
add r6, r4, #0
add r6, #8
_0200A6C2:
ldr r0, [sp]
ldr r1, [sp, #4]
ldr r3, [sp, #0x24]
add r2, r5, #0
bl sub_0200A110
cmp r4, #0
beq _0200A6E6
ldr r2, [r4, #8]
ldr r1, [r4, #4]
cmp r1, r2
ble _0200A6E6
ldr r1, [r4]
lsl r2, r2, #2
str r0, [r1, r2]
ldr r0, [r6]
add r0, r0, #1
str r0, [r6]
_0200A6E6:
add r5, r5, #1
cmp r5, r7
blt _0200A6C2
_0200A6EC:
add sp, #8
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A6A8
thumb_func_start sub_0200A6F0
sub_0200A6F0: ; 0x0200A6F0
push {r4, r5, r6, lr}
add r6, r1, #0
add r5, r0, #0
add r0, r6, #0
mov r1, #0xc
bl AllocFromHeap
add r4, r0, #0
add r0, r6, #0
lsl r1, r5, #2
bl AllocFromHeap
str r0, [r4]
str r5, [r4, #4]
mov r0, #0
str r0, [r4, #8]
add r0, r4, #0
pop {r4, r5, r6, pc}
thumb_func_end sub_0200A6F0
thumb_func_start sub_0200A714
sub_0200A714: ; 0x0200A714
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
bl FreeToHeap
add r0, r4, #0
bl FreeToHeap
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A714
thumb_func_start sub_0200A728
sub_0200A728: ; 0x0200A728
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200A736
bl GF_AssertFail
_0200A736:
ldr r0, [r5]
add r1, r4, #0
bl sub_020255A0
pop {r3, r4, r5, pc}
thumb_func_end sub_0200A728
thumb_func_start sub_0200A740
sub_0200A740: ; 0x0200A740
push {r4, lr}
add r4, r0, #0
bne _0200A74A
bl GF_AssertFail
_0200A74A:
add r0, r4, #0
bl sub_0200ABC0
ldr r0, [r4]
mov r1, #0
bl sub_0202570C
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A740
thumb_func_start sub_0200A75C
sub_0200A75C: ; 0x0200A75C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200A76A
bl GF_AssertFail
_0200A76A:
ldr r0, [r5, #4]
cmp r0, #0
bne _0200A774
bl GF_AssertFail
_0200A774:
add r0, r4, #0
bl sub_0200ABC0
ldr r0, [r5]
ldr r1, [r4]
bl sub_02025658
mov r0, #0
str r0, [r4]
ldr r0, [r5, #0xc]
sub r0, r0, #1
str r0, [r5, #0xc]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200A75C
thumb_func_start sub_0200A790
sub_0200A790: ; 0x0200A790
push {r4, r5, r6, lr}
add r5, r0, #0
ldr r0, [r5, #8]
mov r6, #0
cmp r0, #0
ble _0200A7B8
add r4, r6, #0
_0200A79E:
ldr r1, [r5, #4]
ldr r0, [r1, r4]
cmp r0, #0
beq _0200A7AE
add r0, r5, #0
add r1, r1, r4
bl sub_0200A75C
_0200A7AE:
ldr r0, [r5, #8]
add r6, r6, #1
add r4, #0xc
cmp r6, r0
blt _0200A79E
_0200A7B8:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0200A790
thumb_func_start sub_0200A7BC
sub_0200A7BC: ; 0x0200A7BC
push {r3, r4, r5, r6, r7, lr}
add r5, r0, #0
add r7, r1, #0
cmp r5, #0
bne _0200A7CA
bl GF_AssertFail
_0200A7CA:
ldr r0, [r5, #8]
mov r6, #0
cmp r0, #0
ble _0200A7F8
add r4, r6, #0
_0200A7D4:
ldr r0, [r5, #4]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200A7EE
bl sub_02025728
cmp r0, r7
bne _0200A7EE
mov r0, #0xc
ldr r1, [r5, #4]
mul r0, r6
add r0, r1, r0
pop {r3, r4, r5, r6, r7, pc}
_0200A7EE:
ldr r0, [r5, #8]
add r6, r6, #1
add r4, #0xc
cmp r6, r0
blt _0200A7D4
_0200A7F8:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200A7BC
thumb_func_start sub_0200A7FC
sub_0200A7FC: ; 0x0200A7FC
push {r4, lr}
add r4, r0, #0
bne _0200A806
bl GF_AssertFail
_0200A806:
ldr r0, [r4]
bl sub_02025728
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A7FC
thumb_func_start sub_0200A810
sub_0200A810: ; 0x0200A810
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #0
beq _0200A81E
bl GF_AssertFail
_0200A81E:
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0]
pop {r4, pc}
thumb_func_end sub_0200A810
thumb_func_start sub_0200A828
sub_0200A828: ; 0x0200A828
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #1
beq _0200A836
bl GF_AssertFail
_0200A836:
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0]
pop {r4, pc}
thumb_func_end sub_0200A828
thumb_func_start sub_0200A840
sub_0200A840: ; 0x0200A840
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #2
beq _0200A84E
bl GF_AssertFail
_0200A84E:
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0]
pop {r4, pc}
thumb_func_end sub_0200A840
thumb_func_start sub_0200A858
sub_0200A858: ; 0x0200A858
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #3
beq _0200A866
bl GF_AssertFail
_0200A866:
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0]
pop {r4, pc}
thumb_func_end sub_0200A858
thumb_func_start sub_0200A870
sub_0200A870: ; 0x0200A870
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #4
beq _0200A87E
bl GF_AssertFail
_0200A87E:
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0]
pop {r4, pc}
thumb_func_end sub_0200A870
thumb_func_start sub_0200A888
sub_0200A888: ; 0x0200A888
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #4]
cmp r0, #5
beq _0200A896
bl GF_AssertFail
_0200A896:
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0]
pop {r4, pc}
thumb_func_end sub_0200A888
thumb_func_start sub_0200A8A0
sub_0200A8A0: ; 0x0200A8A0
push {r4, lr}
add r4, r0, #0
bne _0200A8AA
bl GF_AssertFail
_0200A8AA:
ldr r0, [r4, #4]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A8A0
thumb_func_start sub_0200A8B0
sub_0200A8B0: ; 0x0200A8B0
push {r4, lr}
add r4, r0, #0
bne _0200A8BA
bl GF_AssertFail
_0200A8BA:
ldr r0, [r4, #4]
cmp r0, #0
bne _0200A8CA
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0, #4]
pop {r4, pc}
_0200A8CA:
cmp r0, #1
bne _0200A8D8
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0, #4]
pop {r4, pc}
_0200A8D8:
mov r0, #0
pop {r4, pc}
thumb_func_end sub_0200A8B0
thumb_func_start sub_0200A8DC
sub_0200A8DC: ; 0x0200A8DC
push {r4, lr}
add r4, r0, #0
bne _0200A8E6
bl GF_AssertFail
_0200A8E6:
ldr r0, [r4, #4]
cmp r0, #1
bne _0200A8F6
add r0, r4, #0
bl sub_0200ABD4
ldr r0, [r0, #8]
pop {r4, pc}
_0200A8F6:
mov r0, #0
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A8DC
thumb_func_start sub_0200A8FC
sub_0200A8FC: ; 0x0200A8FC
mov r0, #0x10
bx lr
thumb_func_end sub_0200A8FC
thumb_func_start sub_0200A900
sub_0200A900: ; 0x0200A900
lsl r1, r1, #4
add r0, r0, r1
bx lr
.balign 4, 0
thumb_func_end sub_0200A900
thumb_func_start sub_0200A908
sub_0200A908: ; 0x0200A908
push {r4, r5, r6, lr}
add r4, r1, #0
add r5, r0, #0
add r6, r2, #0
cmp r4, #0
bne _0200A918
bl GF_AssertFail
_0200A918:
ldr r0, [r5]
str r0, [r4, #8]
mov r0, #1
strb r0, [r4, #0xc]
add r0, r5, #4
bl sub_0200AC88
add r2, r0, #0
str r0, [r4, #4]
cmp r2, #0
ble _0200A93A
mov r1, #0x18
add r0, r6, #0
mul r1, r2
bl AllocFromHeap
b _0200A93C
_0200A93A:
mov r0, #0
_0200A93C:
str r0, [r4]
ldr r0, [r4]
cmp r0, #0
beq _0200A950
ldr r3, [r4, #4]
mov r2, #0x18
add r1, r5, #4
mul r2, r3
bl memcpy
_0200A950:
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0200A908
thumb_func_start sub_0200A954
sub_0200A954: ; 0x0200A954
push {r4, lr}
add r4, r0, #0
ldr r0, [r4]
cmp r0, #0
beq _0200A962
bl FreeToHeap
_0200A962:
mov r0, #0
str r0, [r4]
str r0, [r4, #4]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A954
thumb_func_start sub_0200A96C
sub_0200A96C: ; 0x0200A96C
push {r4, lr}
add r4, r0, #0
bne _0200A976
bl GF_AssertFail
_0200A976:
ldr r0, [r4, #4]
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200A96C
thumb_func_start sub_0200A97C
sub_0200A97C: ; 0x0200A97C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200A98A
bl GF_AssertFail
_0200A98A:
ldr r0, [r5, #4]
cmp r0, r4
bgt _0200A994
bl GF_AssertFail
_0200A994:
ldrb r0, [r5, #0xc]
ldr r1, [r5]
cmp r0, #0
bne _0200A9A4
mov r0, #0x4c
mul r0, r4
ldr r0, [r1, r0]
pop {r3, r4, r5, pc}
_0200A9A4:
mov r0, #0x18
mul r0, r4
add r0, r1, r0
ldr r0, [r0, #0xc]
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200A97C
thumb_func_start sub_0200A9B0
sub_0200A9B0: ; 0x0200A9B0
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200A9BE
bl GF_AssertFail
_0200A9BE:
ldr r0, [r5, #4]
cmp r0, r4
bgt _0200A9C8
bl GF_AssertFail
_0200A9C8:
ldrb r0, [r5, #0xc]
cmp r0, #1
bne _0200A9D8
mov r0, #0x18
ldr r1, [r5]
mul r0, r4
add r0, r1, r0
ldr r6, [r0, #4]
_0200A9D8:
add r0, r6, #0
pop {r4, r5, r6, pc}
thumb_func_end sub_0200A9B0
thumb_func_start sub_0200A9DC
sub_0200A9DC: ; 0x0200A9DC
push {r4, r5, r6, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200A9EA
bl GF_AssertFail
_0200A9EA:
ldr r0, [r5, #4]
cmp r0, r4
bgt _0200A9F4
bl GF_AssertFail
_0200A9F4:
ldrb r0, [r5, #0xc]
cmp r0, #1
bne _0200AA04
mov r0, #0x18
ldr r1, [r5]
mul r0, r4
add r0, r1, r0
ldr r6, [r0, #8]
_0200AA04:
add r0, r6, #0
pop {r4, r5, r6, pc}
thumb_func_end sub_0200A9DC
thumb_func_start sub_0200AA08
sub_0200AA08: ; 0x0200AA08
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200AA16
bl GF_AssertFail
_0200AA16:
ldr r0, [r5, #4]
cmp r0, r4
bgt _0200AA20
bl GF_AssertFail
_0200AA20:
ldrb r0, [r5, #0xc]
ldr r1, [r5]
cmp r0, #0
bne _0200AA32
mov r0, #0x4c
mul r0, r4
add r0, r1, r0
ldr r0, [r0, #0x44]
pop {r3, r4, r5, pc}
_0200AA32:
mov r0, #0x18
mul r0, r4
add r0, r1, r0
ldr r0, [r0, #0x10]
pop {r3, r4, r5, pc}
thumb_func_end sub_0200AA08
thumb_func_start sub_0200AA3C
sub_0200AA3C: ; 0x0200AA3C
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200AA4A
bl GF_AssertFail
_0200AA4A:
ldr r0, [r5, #4]
cmp r0, r4
bgt _0200AA54
bl GF_AssertFail
_0200AA54:
ldrb r0, [r5, #0xc]
ldr r1, [r5]
cmp r0, #0
bne _0200AA66
mov r0, #0x4c
mul r0, r4
add r0, r1, r0
ldr r0, [r0, #0x48]
pop {r3, r4, r5, pc}
_0200AA66:
mov r0, #0x18
mul r0, r4
add r0, r1, r0
ldr r0, [r0, #0x14]
pop {r3, r4, r5, pc}
thumb_func_end sub_0200AA3C
thumb_func_start sub_0200AA70
sub_0200AA70: ; 0x0200AA70
push {r3, r4}
ldr r4, [r0, #8]
mov r1, #0
cmp r4, #0
ble _0200AA96
ldr r3, [r0, #4]
add r2, r3, #0
_0200AA7E:
ldr r0, [r2]
cmp r0, #0
bne _0200AA8E
mov r0, #0xc
mul r0, r1
add r0, r3, r0
pop {r3, r4}
bx lr
_0200AA8E:
add r1, r1, #1
add r2, #0xc
cmp r1, r4
blt _0200AA7E
_0200AA96:
mov r0, #0
pop {r3, r4}
bx lr
thumb_func_end sub_0200AA70
thumb_func_start sub_0200AA9C
sub_0200AA9C: ; 0x0200AA9C
push {r3, r4, r5, r6, r7, lr}
add r4, r0, #0
ldr r0, [r4]
add r6, r1, #0
add r7, r2, #0
str r3, [sp]
ldr r5, [sp, #0x18]
bl sub_020256FC
cmp r6, #5
bhi _0200AB0A
add r1, r6, r6
add r1, pc
ldrh r1, [r1, #6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0200AABE: ; jump table
.short _0200AACA - _0200AABE - 2 ; case 0
.short _0200AAD6 - _0200AABE - 2 ; case 1
.short _0200AAE4 - _0200AABE - 2 ; case 2
.short _0200AAEE - _0200AABE - 2 ; case 3
.short _0200AAF8 - _0200AABE - 2 ; case 4
.short _0200AB02 - _0200AABE - 2 ; case 5
_0200AACA:
add r1, r7, #0
add r2, r5, #0
bl sub_0200AB0C
str r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0200AAD6:
ldr r2, [sp]
add r1, r7, #0
add r3, r5, #0
bl sub_0200AB2C
str r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0200AAE4:
add r1, r5, #0
bl sub_0200AB50
str r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0200AAEE:
add r1, r5, #0
bl sub_0200AB6C
str r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0200AAF8:
add r1, r5, #0
bl sub_0200AB88
str r0, [r4, #8]
pop {r3, r4, r5, r6, r7, pc}
_0200AB02:
add r1, r5, #0
bl sub_0200ABA4
str r0, [r4, #8]
_0200AB0A:
pop {r3, r4, r5, r6, r7, pc}
thumb_func_end sub_0200AA9C
thumb_func_start sub_0200AB0C
sub_0200AB0C: ; 0x0200AB0C
push {r4, r5, r6, lr}
add r6, r0, #0
add r5, r1, #0
add r0, r2, #0
mov r1, #8
bl AllocFromHeap
add r4, r0, #0
add r0, r6, #0
add r1, r4, #0
bl NNS_G2dGetUnpackedCharacterData
str r5, [r4, #4]
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0200AB0C
thumb_func_start sub_0200AB2C
sub_0200AB2C: ; 0x0200AB2C
push {r3, r4, r5, r6, r7, lr}
add r7, r0, #0
add r5, r1, #0
add r0, r3, #0
mov r1, #0xc
add r6, r2, #0
bl AllocFromHeap
add r4, r0, #0
add r0, r7, #0
add r1, r4, #0
bl NNS_G2dGetUnpackedPaletteData
str r5, [r4, #4]
str r6, [r4, #8]
add r0, r4, #0
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
thumb_func_end sub_0200AB2C
thumb_func_start sub_0200AB50
sub_0200AB50: ; 0x0200AB50
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #4
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl NNS_G2dGetUnpackedCellBank
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200AB50
thumb_func_start sub_0200AB6C
sub_0200AB6C: ; 0x0200AB6C
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #4
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl NNS_G2dGetUnpackedAnimBank
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200AB6C
thumb_func_start sub_0200AB88
sub_0200AB88: ; 0x0200AB88
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #4
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl NNS_G2dGetUnpackedMultiCellBank
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200AB88
thumb_func_start sub_0200ABA4
sub_0200ABA4: ; 0x0200ABA4
push {r3, r4, r5, lr}
add r5, r0, #0
add r0, r1, #0
mov r1, #4
bl AllocFromHeap
add r4, r0, #0
add r0, r5, #0
add r1, r4, #0
bl NNS_G2dGetUnpackedMCAnimBank
add r0, r4, #0
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200ABA4
thumb_func_start sub_0200ABC0
sub_0200ABC0: ; 0x0200ABC0
push {r4, lr}
add r4, r0, #0
ldr r0, [r4, #8]
cmp r0, #0
beq _0200ABCE
bl FreeToHeap
_0200ABCE:
mov r0, #0
str r0, [r4, #8]
pop {r4, pc}
thumb_func_end sub_0200ABC0
thumb_func_start sub_0200ABD4
sub_0200ABD4: ; 0x0200ABD4
push {r4, lr}
add r4, r0, #0
bne _0200ABDE
bl GF_AssertFail
_0200ABDE:
ldr r0, [r4, #8]
cmp r0, #0
bne _0200ABE8
bl GF_AssertFail
_0200ABE8:
ldr r0, [r4, #8]
pop {r4, pc}
thumb_func_end sub_0200ABD4
thumb_func_start sub_0200ABEC
sub_0200ABEC: ; 0x0200ABEC
push {r3, r4, lr}
sub sp, #4
add r4, r1, #0
add r1, r2, #0
add r2, r3, #0
ldr r0, [r0]
ldr r3, [sp, #0x1c]
bl sub_02025600
str r0, [r4]
ldr r1, [sp, #0x18]
ldr r0, [sp, #0x1c]
str r1, [r4, #4]
str r0, [sp]
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x14]
add r0, r4, #0
bl sub_0200AA9C
add sp, #4
pop {r3, r4, pc}
.balign 4, 0
thumb_func_end sub_0200ABEC
thumb_func_start sub_0200AC18
sub_0200AC18: ; 0x0200AC18
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [sp, #0x28]
add r4, r1, #0
str r0, [sp]
add r0, r2, #0
add r1, r3, #0
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x24]
bl GfGfxLoader_LoadFromNarc
add r1, r0, #0
ldr r0, [r5]
ldr r2, [sp, #0x14]
bl sub_020255C4
str r0, [r4]
ldr r1, [sp, #0x20]
ldr r0, [sp, #0x24]
str r1, [r4, #4]
str r0, [sp]
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x1c]
add r0, r4, #0
bl sub_0200AA9C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200AC18
thumb_func_start sub_0200AC50
sub_0200AC50: ; 0x0200AC50
push {r3, r4, r5, lr}
add r5, r0, #0
ldr r0, [sp, #0x28]
add r4, r1, #0
str r0, [sp]
add r0, r2, #0
add r1, r3, #0
ldr r2, [sp, #0x10]
ldr r3, [sp, #0x24]
bl sub_0200ACA4
add r1, r0, #0
ldr r0, [r5]
ldr r2, [sp, #0x14]
bl sub_020255C4
str r0, [r4]
ldr r1, [sp, #0x20]
ldr r0, [sp, #0x24]
str r1, [r4, #4]
str r0, [sp]
ldr r2, [sp, #0x18]
ldr r3, [sp, #0x1c]
add r0, r4, #0
bl sub_0200AA9C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200AC50
thumb_func_start sub_0200AC88
sub_0200AC88: ; 0x0200AC88
mov r3, #0
ldr r2, [r0]
sub r1, r3, #2
cmp r2, r1
beq _0200AC9E
sub r1, r3, #2
_0200AC94:
add r0, #0x18
ldr r2, [r0]
add r3, r3, #1
cmp r2, r1
bne _0200AC94
_0200AC9E:
add r0, r3, #0
bx lr
.balign 4, 0
thumb_func_end sub_0200AC88
thumb_func_start sub_0200ACA4
sub_0200ACA4: ; 0x0200ACA4
push {r4, r5, r6, lr}
add r6, r3, #0
add r5, r2, #0
add r2, r6, #0
bl NARC_AllocAndReadWholeMember
add r4, r0, #0
beq _0200ACEA
cmp r5, #0
beq _0200ACEA
ldr r0, [sp, #0x10]
cmp r0, #0
bne _0200ACCA
ldr r1, [r4]
add r0, r6, #0
lsr r1, r1, #8
bl AllocFromHeap
b _0200ACD4
_0200ACCA:
ldr r1, [r4]
add r0, r6, #0
lsr r1, r1, #8
bl AllocFromHeapAtEnd
_0200ACD4:
add r5, r0, #0
cmp r5, #0
beq _0200ACE8
add r0, r4, #0
add r1, r5, #0
bl MI_UncompressLZ8
add r0, r4, #0
bl FreeToHeap
_0200ACE8:
add r4, r5, #0
_0200ACEA:
add r0, r4, #0
pop {r4, r5, r6, pc}
.balign 4, 0
thumb_func_end sub_0200ACA4
thumb_func_start sub_0200ACF0
sub_0200ACF0: ; 0x0200ACF0
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
bne _0200ACFC
bl GF_AssertFail
_0200ACFC:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200AD0A
bl GF_AssertFail
_0200AD0A:
add r0, r4, #0
bl sub_0200A810
str r0, [sp]
add r0, r4, #0
bl sub_0200A8B0
str r0, [sp, #4]
add r0, r4, #0
bl sub_0200A7FC
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
add r0, sp, #0
bl sub_02021758
add sp, #0x10
pop {r4, pc}
thumb_func_end sub_0200ACF0
thumb_func_start sub_0200AD30
sub_0200AD30: ; 0x0200AD30
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200AD3A
bl GF_AssertFail
_0200AD3A:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200AD62
add r4, r6, #0
_0200AD44:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200AD58
bl sub_0200ACF0
cmp r0, #0
bne _0200AD58
bl GF_AssertFail
_0200AD58:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200AD44
_0200AD62:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200AD30
thumb_func_start sub_0200AD64
sub_0200AD64: ; 0x0200AD64
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
bne _0200AD70
bl GF_AssertFail
_0200AD70:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200AD7E
bl GF_AssertFail
_0200AD7E:
add r0, r4, #0
bl sub_0200A810
str r0, [sp]
add r0, r4, #0
bl sub_0200A8B0
str r0, [sp, #4]
add r0, r4, #0
bl sub_0200A7FC
str r0, [sp, #8]
mov r0, #0
str r0, [sp, #0xc]
add r0, sp, #0
bl sub_020217B0
add sp, #0x10
pop {r4, pc}
thumb_func_end sub_0200AD64
thumb_func_start sub_0200ADA4
sub_0200ADA4: ; 0x0200ADA4
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
bne _0200ADB0
bl GF_AssertFail
_0200ADB0:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200ADBE
bl GF_AssertFail
_0200ADBE:
add r0, r4, #0
bl sub_0200A810
str r0, [sp]
add r0, r4, #0
bl sub_0200A8B0
str r0, [sp, #4]
add r0, r4, #0
bl sub_0200A7FC
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
add r0, sp, #0
bl sub_02021758
add sp, #0x10
pop {r4, pc}
thumb_func_end sub_0200ADA4
thumb_func_start sub_0200ADE4
sub_0200ADE4: ; 0x0200ADE4
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200ADEE
bl GF_AssertFail
_0200ADEE:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200AE16
add r4, r6, #0
_0200ADF8:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200AE0C
bl sub_0200ADA4
cmp r0, #0
bne _0200AE0C
bl GF_AssertFail
_0200AE0C:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200ADF8
_0200AE16:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200ADE4
thumb_func_start sub_0200AE18
sub_0200AE18: ; 0x0200AE18
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
bne _0200AE24
bl GF_AssertFail
_0200AE24:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200AE32
bl GF_AssertFail
_0200AE32:
add r0, r4, #0
bl sub_0200A810
str r0, [sp]
add r0, r4, #0
bl sub_0200A8B0
str r0, [sp, #4]
add r0, r4, #0
bl sub_0200A7FC
str r0, [sp, #8]
mov r0, #1
str r0, [sp, #0xc]
add r0, sp, #0
bl sub_020217B0
add sp, #0x10
pop {r4, pc}
thumb_func_end sub_0200AE18
thumb_func_start sub_0200AE58
sub_0200AE58: ; 0x0200AE58
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200AE62
bl GF_AssertFail
_0200AE62:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200AE8A
add r4, r6, #0
_0200AE6C:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200AE80
bl sub_0200AE18
cmp r0, #0
bne _0200AE80
bl GF_AssertFail
_0200AE80:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200AE6C
_0200AE8A:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200AE58
thumb_func_start sub_0200AE8C
sub_0200AE8C: ; 0x0200AE8C
push {r3, r4, r5, lr}
add r5, r0, #0
bne _0200AE96
bl GF_AssertFail
_0200AE96:
add r0, r5, #0
bl sub_0200A7FC
add r4, r0, #0
add r0, r5, #0
bl sub_0200A810
add r1, r0, #0
add r0, r4, #0
bl sub_0202183C
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200AE8C
thumb_func_start sub_0200AEB0
sub_0200AEB0: ; 0x0200AEB0
push {r4, lr}
add r4, r0, #0
bne _0200AEBA
bl GF_AssertFail
_0200AEBA:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200AEC8
bl GF_AssertFail
_0200AEC8:
add r0, r4, #0
bl sub_0200A7FC
bl sub_02021884
pop {r4, pc}
thumb_func_end sub_0200AEB0
thumb_func_start sub_0200AED4
sub_0200AED4: ; 0x0200AED4
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200AEDE
bl GF_AssertFail
_0200AEDE:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200AEFE
add r4, r6, #0
_0200AEE8:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200AEF4
bl sub_0200AEB0
_0200AEF4:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200AEE8
_0200AEFE:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200AED4
thumb_func_start sub_0200AF00
sub_0200AF00: ; 0x0200AF00
push {r4, lr}
add r4, r0, #0
bne _0200AF0A
bl GF_AssertFail
_0200AF0A:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200AF18
bl GF_AssertFail
_0200AF18:
add r0, r4, #0
bl sub_0200A7FC
bl sub_02021910
pop {r4, pc}
thumb_func_end sub_0200AF00
thumb_func_start sub_0200AF24
sub_0200AF24: ; 0x0200AF24
push {r3, r4, r5, lr}
add r4, r0, #0
add r5, r1, #0
cmp r4, #0
bne _0200AF32
bl GF_AssertFail
_0200AF32:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #0
beq _0200AF40
bl GF_AssertFail
_0200AF40:
cmp r5, #0
bne _0200AF48
bl GF_AssertFail
_0200AF48:
add r0, r5, #0
bl sub_0200A8A0
cmp r0, #2
beq _0200AF56
bl GF_AssertFail
_0200AF56:
add r0, r4, #0
bl sub_0200A7FC
add r4, r0, #0
add r0, r5, #0
bl sub_0200A840
add r1, r0, #0
ldr r1, [r1, #0xc]
add r0, r4, #0
ldr r1, [r1]
bl sub_02021934
cmp r0, #0
bne _0200AF7E
add r0, r4, #0
bl sub_02021910
bl sub_020219B8
_0200AF7E:
pop {r3, r4, r5, pc}
thumb_func_end sub_0200AF24
thumb_func_start sub_0200AF80
sub_0200AF80: ; 0x0200AF80
push {r4, lr}
add r4, r0, #0
bne _0200AF8A
bl GF_AssertFail
_0200AF8A:
add r0, r4, #0
bl sub_02021A50
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200AF80
thumb_func_start sub_0200AF94
sub_0200AF94: ; 0x0200AF94
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
bne _0200AFA0
bl GF_AssertFail
_0200AFA0:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #1
beq _0200AFAE
bl GF_AssertFail
_0200AFAE:
add r0, r4, #0
bl sub_0200A828
str r0, [sp]
add r0, r4, #0
bl sub_0200A8B0
str r0, [sp, #4]
add r0, r4, #0
bl sub_0200A7FC
str r0, [sp, #0xc]
add r0, r4, #0
bl sub_0200A8DC
str r0, [sp, #8]
add r0, sp, #0
bl sub_02022660
add sp, #0x10
pop {r4, pc}
thumb_func_end sub_0200AF94
thumb_func_start sub_0200AFD8
sub_0200AFD8: ; 0x0200AFD8
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200AFE2
bl GF_AssertFail
_0200AFE2:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200B00A
add r4, r6, #0
_0200AFEC:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200B000
bl sub_0200AF94
cmp r0, #0
bne _0200B000
bl GF_AssertFail
_0200B000:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200AFEC
_0200B00A:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200AFD8
thumb_func_start sub_0200B00C
sub_0200B00C: ; 0x0200B00C
push {r4, lr}
sub sp, #0x10
add r4, r0, #0
bne _0200B018
bl GF_AssertFail
_0200B018:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #1
beq _0200B026
bl GF_AssertFail
_0200B026:
add r0, r4, #0
bl sub_0200A828
str r0, [sp]
add r0, r4, #0
bl sub_0200A8B0
str r0, [sp, #4]
add r0, r4, #0
bl sub_0200A7FC
str r0, [sp, #0xc]
add r0, r4, #0
bl sub_0200A8DC
str r0, [sp, #8]
add r0, sp, #0
bl sub_020226A4
add sp, #0x10
pop {r4, pc}
thumb_func_end sub_0200B00C
thumb_func_start sub_0200B050
sub_0200B050: ; 0x0200B050
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200B05A
bl GF_AssertFail
_0200B05A:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200B082
add r4, r6, #0
_0200B064:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200B078
bl sub_0200B00C
cmp r0, #0
bne _0200B078
bl GF_AssertFail
_0200B078:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200B064
_0200B082:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200B050
thumb_func_start sub_0200B084
sub_0200B084: ; 0x0200B084
push {r3, r4, r5, lr}
add r5, r0, #0
bne _0200B08E
bl GF_AssertFail
_0200B08E:
add r0, r5, #0
bl sub_0200A7FC
add r4, r0, #0
add r0, r5, #0
bl sub_0200A828
add r1, r0, #0
add r0, r4, #0
bl sub_020226E4
pop {r3, r4, r5, pc}
.balign 4, 0
thumb_func_end sub_0200B084
thumb_func_start sub_0200B0A8
sub_0200B0A8: ; 0x0200B0A8
push {r4, lr}
add r4, r0, #0
bne _0200B0B2
bl GF_AssertFail
_0200B0B2:
add r0, r4, #0
bl sub_0200A8A0
cmp r0, #1
beq _0200B0C0
bl GF_AssertFail
_0200B0C0:
add r0, r4, #0
bl sub_0200A7FC
bl sub_02022744
pop {r4, pc}
thumb_func_end sub_0200B0A8
thumb_func_start sub_0200B0CC
sub_0200B0CC: ; 0x0200B0CC
push {r4, r5, r6, lr}
add r5, r0, #0
bne _0200B0D6
bl GF_AssertFail
_0200B0D6:
ldr r0, [r5, #4]
mov r6, #0
cmp r0, #0
ble _0200B0F6
add r4, r6, #0
_0200B0E0:
ldr r0, [r5]
ldr r0, [r0, r4]
cmp r0, #0
beq _0200B0EC
bl sub_0200B0A8
_0200B0EC:
ldr r0, [r5, #4]
add r6, r6, #1
add r4, r4, #4
cmp r6, r0
blt _0200B0E0
_0200B0F6:
pop {r4, r5, r6, pc}
thumb_func_end sub_0200B0CC
thumb_func_start sub_0200B0F8
sub_0200B0F8: ; 0x0200B0F8
push {r3, r4, r5, lr}
add r5, r0, #0
add r4, r1, #0
cmp r5, #0
bne _0200B106
bl GF_AssertFail
_0200B106:
add r0, r5, #0
bl sub_0200A8A0
cmp r0, #1
beq _0200B114
bl GF_AssertFail
_0200B114:
add r0, r5, #0
bl sub_0200A7FC
cmp r4, #0
beq _0200B126
add r1, r4, #0
bl sub_020227D4
pop {r3, r4, r5, pc}
_0200B126:
bl sub_020227AC
pop {r3, r4, r5, pc}
thumb_func_end sub_0200B0F8
thumb_func_start sub_0200B12C
sub_0200B12C: ; 0x0200B12C
push {r4, lr}
add r4, r1, #0
mov r1, #0
bl sub_0200B0F8
add r1, r4, #0
bl NNS_G2dGetImagePaletteLocation
mov r1, #0
mvn r1, r1
cmp r0, r1
beq _0200B14C
asr r1, r0, #4
lsr r1, r1, #0x1b
add r1, r0, r1
asr r0, r1, #5
_0200B14C:
pop {r4, pc}
.balign 4, 0
thumb_func_end sub_0200B12C