pokediamond/arm9/asm/unk_0201E00C.s

924 lines
15 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.section .bss
.global UNK_021C5998
UNK_021C5998: ; 0x021C5998
.space 0x4
.text
thumb_func_start sub_0201E00C
sub_0201E00C: ; 0x0201E00C
push {r3-r7, lr}
add r6, r0, #0x0
ldr r0, _0201E064 ; =UNK_021C5998
add r4, r1, #0x0
ldr r0, [r0, #0x0]
cmp r0, #0x0
bne _0201E060
add r0, r4, #0x0
mov r1, #0x28
bl Heap_Alloc
add r1, r0, #0x0
ldr r0, _0201E064 ; =UNK_021C5998
mov r2, #0x28
str r1, [r0, #0x0]
mov r0, #0x0
bl MIi_CpuClear32
ldr r0, _0201E064 ; =UNK_021C5998
mov r1, #0x30
ldr r0, [r0, #0x0]
mul r1, r6
str r6, [r0, #0x4]
add r0, r4, #0x0
bl Heap_Alloc
ldr r7, _0201E064 ; =UNK_021C5998
mov r4, #0x0
ldr r1, [r7, #0x0]
cmp r6, #0x0
str r0, [r1, #0x0]
ble _0201E060
add r5, r4, #0x0
_0201E04E:
ldr r0, [r7, #0x0]
ldr r0, [r0, #0x0]
add r0, r0, r5
bl sub_0201E2F8
add r4, r4, #0x1
add r5, #0x30
cmp r4, r6
blt _0201E04E
_0201E060:
pop {r3-r7, pc}
nop
_0201E064: .word UNK_021C5998
thumb_func_start sub_0201E068
sub_0201E068: ; 0x0201E068
cmp r1, #0x1
bne _0201E078
ldr r1, _0201E088 ; =UNK_021C5998
ldr r2, [r1, #0x0]
ldrh r1, [r2, #0x24]
orr r0, r1
strh r0, [r2, #0x24]
bx lr
_0201E078:
cmp r1, #0x2
bne _0201E086
ldr r1, _0201E088 ; =UNK_021C5998
ldr r2, [r1, #0x0]
ldrh r1, [r2, #0x26]
orr r0, r1
strh r0, [r2, #0x26]
_0201E086:
bx lr
.balign 4
_0201E088: .word UNK_021C5998
thumb_func_start sub_0201E08C
sub_0201E08C: ; 0x0201E08C
push {r3, lr}
ldr r0, _0201E0B4 ; =UNK_021C5998
ldr r0, [r0, #0x0]
cmp r0, #0x0
beq _0201E0B2
bl sub_0201E1F0
ldr r0, _0201E0B4 ; =UNK_021C5998
ldr r0, [r0, #0x0]
ldr r0, [r0, #0x0]
bl Heap_Free
ldr r0, _0201E0B4 ; =UNK_021C5998
ldr r0, [r0, #0x0]
bl Heap_Free
ldr r0, _0201E0B4 ; =UNK_021C5998
mov r1, #0x0
str r1, [r0, #0x0]
_0201E0B2:
pop {r3, pc}
.balign 4
_0201E0B4: .word UNK_021C5998
thumb_func_start sub_0201E0B8
sub_0201E0B8: ; 0x0201E0B8
bx lr
.balign 4
thumb_func_start sub_0201E0BC
sub_0201E0BC: ; 0x0201E0BC
push {r3, lr}
ldr r0, _0201E0E0 ; =UNK_021C5998
mov r2, #0x0
ldr r1, [r0, #0x0]
str r2, [r1, #0xc]
ldr r1, [r0, #0x0]
str r2, [r1, #0x10]
ldr r1, [r0, #0x0]
str r2, [r1, #0x14]
ldr r0, [r0, #0x0]
str r2, [r0, #0x18]
bl sub_0201E464
ldr r0, _0201E0E0 ; =UNK_021C5998
ldr r0, [r0, #0x0]
bl sub_0201E574
pop {r3, pc}
.balign 4
_0201E0E0: .word UNK_021C5998
thumb_func_start sub_0201E0E4
sub_0201E0E4: ; 0x0201E0E4
push {r3-r5, lr}
add r5, r0, #0x0
bl sub_0201E428
add r4, r0, #0x0
bne _0201E0F8
bl GF_AssertFail
mov r0, #0x0
pop {r3-r5, pc}
_0201E0F8:
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0201E2C4
cmp r0, #0x0
bne _0201E108
mov r0, #0x0
pop {r3-r5, pc}
_0201E108:
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0201E314
cmp r0, #0x0
bne _0201E11E
ldr r0, [r5, #0xc]
bl sub_0201E1C8
mov r0, #0x0
pop {r3-r5, pc}
_0201E11E:
add r0, r4, #0x0
bl sub_0201E57C
mov r0, #0x1
pop {r3-r5, pc}
thumb_func_start sub_0201E128
sub_0201E128: ; 0x0201E128
push {r3-r5, lr}
add r5, r0, #0x0
bl sub_0201E428
add r4, r0, #0x0
bne _0201E13C
bl GF_AssertFail
mov r0, #0x0
pop {r3-r5, pc}
_0201E13C:
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0201E2C4
cmp r0, #0x0
bne _0201E14C
mov r0, #0x0
pop {r3-r5, pc}
_0201E14C:
add r0, r5, #0x0
add r1, r4, #0x0
bl sub_0201E36C
cmp r0, #0x0
bne _0201E162
ldr r0, [r5, #0xc]
bl sub_0201E1C8
mov r0, #0x0
pop {r3-r5, pc}
_0201E162:
mov r0, #0x1
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0201E168
sub_0201E168: ; 0x0201E168
push {r3-r5, lr}
add r4, r0, #0x0
add r5, r1, #0x0
bne _0201E174
bl GF_AssertFail
_0201E174:
add r0, r4, #0x0
bl sub_0201E3F0
add r4, r0, #0x0
bne _0201E182
bl GF_AssertFail
_0201E182:
str r5, [r4, #0x0]
ldr r1, [r4, #0x4]
mov r0, #0x1
tst r0, r1
beq _0201E19A
ldr r3, [r4, #0x8]
ldr r1, [r4, #0x24]
ldr r2, [r5, #0xc]
mov r0, #0xe
lsl r3, r3, #0x5
bl sub_0201C2C8
_0201E19A:
ldr r1, [r4, #0x4]
mov r0, #0x2
tst r0, r1
beq _0201E1B0
ldr r3, [r4, #0x8]
ldr r1, [r4, #0x28]
ldr r2, [r5, #0xc]
mov r0, #0x1e
lsl r3, r3, #0x5
bl sub_0201C2C8
_0201E1B0:
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0201E1B4
sub_0201E1B4: ; 0x0201E1B4
push {r3, lr}
bl sub_0201E3F0
cmp r0, #0x0
beq _0201E1C2
mov r0, #0x1
pop {r3, pc}
_0201E1C2:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start sub_0201E1C8
sub_0201E1C8: ; 0x0201E1C8
push {r4, lr}
bl sub_0201E3F0
add r4, r0, #0x0
bne _0201E1D6
bl GF_AssertFail
_0201E1D6:
add r0, r4, #0x0
add r0, #0x2c
ldrb r0, [r0, #0x0]
cmp r0, #0x1
bne _0201E1EC
add r0, r4, #0x0
bl sub_0201E5B8
add r0, r4, #0x0
bl sub_0201E2BC
_0201E1EC:
pop {r4, pc}
.balign 4
thumb_func_start sub_0201E1F0
sub_0201E1F0: ; 0x0201E1F0
push {r4-r6, lr}
ldr r6, _0201E22C ; =UNK_021C5998
mov r4, #0x0
ldr r1, [r6, #0x0]
ldr r0, [r1, #0x4]
cmp r0, #0x0
ble _0201E228
add r5, r4, #0x0
_0201E200:
ldr r1, [r1, #0x0]
add r0, r1, r5
add r0, #0x2c
ldrb r0, [r0, #0x0]
cmp r0, #0x1
bne _0201E21C
add r0, r1, r5
bl sub_0201E5B8
ldr r0, [r6, #0x0]
ldr r0, [r0, #0x0]
add r0, r0, r5
bl sub_0201E2BC
_0201E21C:
ldr r1, [r6, #0x0]
add r4, r4, #0x1
ldr r0, [r1, #0x4]
add r5, #0x30
cmp r4, r0
blt _0201E200
_0201E228:
pop {r4-r6, pc}
nop
_0201E22C: .word UNK_021C5998
thumb_func_start sub_0201E230
sub_0201E230: ; 0x0201E230
push {r3, lr}
bl sub_0201E3F0
cmp r0, #0x0
bne _0201E244
bne _0201E240
bl GF_AssertFail
_0201E240:
mov r0, #0x0
pop {r3, pc}
_0201E244:
add r1, r0, #0x0
add r1, #0x2c
ldrb r1, [r1, #0x0]
cmp r1, #0x1
bne _0201E252
add r0, #0x10
pop {r3, pc}
_0201E252:
mov r0, #0x0
pop {r3, pc}
.balign 4
thumb_func_start sub_0201E258
sub_0201E258: ; 0x0201E258
push {r4, lr}
add r4, r1, #0x0
bl sub_0201E3F0
cmp r0, #0x0
bne _0201E26E
bne _0201E26A
bl GF_AssertFail
_0201E26A:
mov r0, #0x0
pop {r4, pc}
_0201E26E:
add r1, r0, #0x0
add r1, #0x2c
ldrb r1, [r1, #0x0]
cmp r1, #0x1
beq _0201E27C
mov r0, #0x0
pop {r4, pc}
_0201E27C:
ldr r1, [r0, #0x0]
ldr r1, [r1, #0x4]
cmp r1, #0x0
beq _0201E288
mov r1, #0x1
str r1, [r4, #0x18]
_0201E288:
add r0, #0x10
pop {r4, pc}
thumb_func_start sub_0201E28C
sub_0201E28C: ; 0x0201E28C
push {r4, lr}
ldr r2, [r0, #0x4]
cmp r2, #0x0
beq _0201E29A
mov r4, #0x2
lsl r4, r4, #0x8
b _0201E2A6
_0201E29A:
ldr r2, [r0, #0x0]
cmp r2, #0x4
bne _0201E2A4
mov r4, #0x0
b _0201E2A6
_0201E2A4:
mov r4, #0x20
_0201E2A6:
cmp r4, #0x0
beq _0201E2B6
bl NNS_G2dGetImagePaletteLocation
add r1, r4, #0x0
bl _u32_div_f
pop {r4, pc}
_0201E2B6:
mov r0, #0x0
pop {r4, pc}
.balign 4
thumb_func_start sub_0201E2BC
sub_0201E2BC: ; 0x0201E2BC
ldr r3, _0201E2C0 ; =sub_0201E2F8
bx r3
.balign 4
_0201E2C0: .word sub_0201E2F8
thumb_func_start sub_0201E2C4
sub_0201E2C4: ; 0x0201E2C4
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, [r5, #0x0]
add r4, r1, #0x0
str r0, [r4, #0x0]
ldr r0, [r5, #0xc]
bl sub_0201E1B4
cmp r0, #0x1
bne _0201E2E0
bl GF_AssertFail
mov r0, #0x0
pop {r3-r5, pc}
_0201E2E0:
ldr r0, [r5, #0xc]
add r1, r4, #0x0
str r0, [r4, #0xc]
ldr r0, [r5, #0x4]
add r1, #0x2c
str r0, [r4, #0x4]
mov r0, #0x1
strb r0, [r1, #0x0]
ldr r1, [r5, #0x8]
str r1, [r4, #0x8]
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0201E2F8
sub_0201E2F8: ; 0x0201E2F8
push {r4, lr}
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
bl memset
mov r0, #0x0
mvn r0, r0
str r0, [r4, #0xc]
add r4, #0x10
add r0, r4, #0x0
bl NNS_G2dInitImagePaletteProxy
pop {r4, pc}
thumb_func_start sub_0201E314
sub_0201E314: ; 0x0201E314
push {r3-r6, lr}
sub sp, #0x4
add r6, r1, #0x0
ldr r0, [r6, #0x0]
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0201E334
ldr r0, _0201E368 ; =UNK_021C5998
ldr r0, [r0, #0x0]
add r4, r0, #0x0
add r5, r0, #0x0
ldr r3, [r0, #0x1c]
add r4, #0x14
add r5, #0x18
ldr r0, [r0, #0x20]
b _0201E344
_0201E334:
ldr r0, _0201E368 ; =UNK_021C5998
mov r3, #0x2
ldr r5, [r0, #0x0]
lsl r3, r3, #0x8
add r4, r5, #0x0
add r4, #0xc
add r5, #0x10
add r0, r3, #0x0
_0201E344:
str r0, [sp, #0x0]
ldr r1, [r4, #0x0]
ldr r2, [r5, #0x0]
add r0, r6, #0x0
bl sub_0201E5F4
add r0, r6, #0x0
bl sub_0201E4AC
add r0, r6, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
bl sub_0201E640
mov r0, #0x1
add sp, #0x4
pop {r3-r6, pc}
nop
_0201E368: .word UNK_021C5998
thumb_func_start sub_0201E36C
sub_0201E36C: ; 0x0201E36C
push {r4-r6, lr}
add r5, r1, #0x0
ldr r0, [r5, #0x0]
ldr r0, [r0, #0x4]
cmp r0, #0x0
beq _0201E37C
bl GF_AssertFail
_0201E37C:
ldr r1, [r5, #0x4]
mov r0, #0x1
tst r0, r1
beq _0201E39E
ldr r0, _0201E3EC ; =UNK_021C5998
ldr r1, [r5, #0x8]
ldr r0, [r0, #0x0]
ldrh r0, [r0, #0x24]
bl sub_0201E534
add r6, r0, #0x0
mov r0, #0x0
mvn r0, r0
cmp r6, r0
bne _0201E39E
mov r0, #0x0
pop {r4-r6, pc}
_0201E39E:
ldr r1, [r5, #0x4]
mov r0, #0x2
tst r0, r1
beq _0201E3C0
ldr r0, _0201E3EC ; =UNK_021C5998
ldr r1, [r5, #0x8]
ldr r0, [r0, #0x0]
ldrh r0, [r0, #0x26]
bl sub_0201E534
add r4, r0, #0x0
mov r0, #0x0
mvn r0, r0
cmp r4, r0
bne _0201E3C0
mov r0, #0x0
pop {r4-r6, pc}
_0201E3C0:
ldr r1, [r5, #0x4]
mov r0, #0x1
tst r0, r1
beq _0201E3CA
str r6, [r5, #0x24]
_0201E3CA:
ldr r1, [r5, #0x4]
mov r0, #0x2
tst r0, r1
beq _0201E3D4
str r4, [r5, #0x28]
_0201E3D4:
ldr r0, [r5, #0x8]
lsl r1, r0, #0x5
ldr r0, [r5, #0x0]
str r1, [r0, #0x8]
add r0, r5, #0x0
bl sub_0201E4BC
add r0, r5, #0x0
bl sub_0201E57C
mov r0, #0x1
pop {r4-r6, pc}
.balign 4
_0201E3EC: .word UNK_021C5998
thumb_func_start sub_0201E3F0
sub_0201E3F0: ; 0x0201E3F0
push {r4-r5}
ldr r2, _0201E424 ; =UNK_021C5998
mov r1, #0x0
ldr r5, [r2, #0x0]
ldr r2, [r5, #0x4]
cmp r2, #0x0
ble _0201E41C
ldr r2, [r5, #0x0]
add r4, r2, #0x0
_0201E402:
ldr r3, [r4, #0xc]
cmp r0, r3
bne _0201E412
mov r0, #0x30
mul r0, r1
add r0, r2, r0
pop {r4-r5}
bx lr
_0201E412:
ldr r3, [r5, #0x4]
add r1, r1, #0x1
add r4, #0x30
cmp r1, r3
blt _0201E402
_0201E41C:
mov r0, #0x0
pop {r4-r5}
bx lr
nop
_0201E424: .word UNK_021C5998
thumb_func_start sub_0201E428
sub_0201E428: ; 0x0201E428
push {r3-r4}
ldr r1, _0201E460 ; =UNK_021C5998
mov r0, #0x0
ldr r4, [r1, #0x0]
ldr r1, [r4, #0x4]
cmp r1, #0x0
ble _0201E458
ldr r1, [r4, #0x0]
add r3, r1, #0x0
_0201E43A:
add r2, r3, #0x0
add r2, #0x2c
ldrb r2, [r2, #0x0]
cmp r2, #0x0
bne _0201E44E
mov r2, #0x30
mul r2, r0
add r0, r1, r2
pop {r3-r4}
bx lr
_0201E44E:
ldr r2, [r4, #0x4]
add r0, r0, #0x1
add r3, #0x30
cmp r0, r2
blt _0201E43A
_0201E458:
mov r0, #0x0
pop {r3-r4}
bx lr
nop
_0201E460: .word UNK_021C5998
thumb_func_start sub_0201E464
sub_0201E464: ; 0x0201E464
push {r3, lr}
bl GX_GetBankForOBJExtPltt
cmp r0, #0x20
beq _0201E472
cmp r0, #0x40
bne _0201E47E
_0201E472:
ldr r0, _0201E4A8 ; =UNK_021C5998
mov r1, #0x2
ldr r0, [r0, #0x0]
lsl r1, r1, #0xc
str r1, [r0, #0x1c]
b _0201E486
_0201E47E:
ldr r0, _0201E4A8 ; =UNK_021C5998
mov r1, #0x0
ldr r0, [r0, #0x0]
str r1, [r0, #0x1c]
_0201E486:
bl GX_GetBankForSubOBJExtPltt
mov r1, #0x1
lsl r1, r1, #0x8
cmp r0, r1
bne _0201E49C
ldr r0, _0201E4A8 ; =UNK_021C5998
lsl r1, r1, #0x5
ldr r0, [r0, #0x0]
str r1, [r0, #0x20]
pop {r3, pc}
_0201E49C:
ldr r0, _0201E4A8 ; =UNK_021C5998
mov r1, #0x0
ldr r0, [r0, #0x0]
str r1, [r0, #0x20]
pop {r3, pc}
nop
_0201E4A8: .word UNK_021C5998
thumb_func_start sub_0201E4AC
sub_0201E4AC: ; 0x0201E4AC
ldr r1, [r0, #0x8]
ldr r3, _0201E4B8 ; =sub_0201E4BC
lsl r2, r1, #0x5
ldr r1, [r0, #0x0]
str r2, [r1, #0x8]
bx r3
.balign 4
_0201E4B8: .word sub_0201E4BC
thumb_func_start sub_0201E4BC
sub_0201E4BC: ; 0x0201E4BC
push {r4, lr}
add r4, r0, #0x0
add r0, #0x10
bl NNS_G2dInitImagePaletteProxy
ldr r0, [r4, #0x4]
mov r2, #0x1
tst r0, r2
beq _0201E4DA
add r3, r4, #0x0
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x24]
add r3, #0x10
bl NNS_G2dLoadPalette
_0201E4DA:
ldr r0, [r4, #0x4]
mov r2, #0x2
tst r0, r2
beq _0201E4EE
ldr r0, [r4, #0x0]
ldr r1, [r4, #0x28]
add r4, #0x10
add r3, r4, #0x0
bl NNS_G2dLoadPalette
_0201E4EE:
pop {r4, pc}
thumb_func_start sub_0201E4F0
sub_0201E4F0: ; 0x0201E4F0
push {r4-r7}
mov r3, #0x0
cmp r1, #0x0
ble _0201E50E
mov r5, #0x1
_0201E4FA:
ldrh r7, [r0, #0x0]
add r4, r2, r3
add r6, r5, #0x0
lsl r6, r4
add r4, r7, #0x0
orr r4, r6
add r3, r3, #0x1
strh r4, [r0, #0x0]
cmp r3, r1
blt _0201E4FA
_0201E50E:
pop {r4-r7}
bx lr
.balign 4
thumb_func_start sub_0201E514
sub_0201E514: ; 0x0201E514
push {r4-r7}
mov r4, #0x0
cmp r1, #0x0
ble _0201E530
mov r6, #0x1
_0201E51E:
add r5, r2, r4
add r7, r6, #0x0
ldrh r3, [r0, #0x0]
lsl r7, r5
bic r3, r7
add r4, r4, #0x1
strh r3, [r0, #0x0]
cmp r4, r1
blt _0201E51E
_0201E530:
pop {r4-r7}
bx lr
thumb_func_start sub_0201E534
sub_0201E534: ; 0x0201E534
push {r4-r7}
mov r3, #0x0
mov r6, #0x1
add r2, r3, #0x0
_0201E53C:
add r4, r2, #0x0
b _0201E546
_0201E540:
cmp r5, #0x10
bge _0201E554
add r4, r4, #0x1
_0201E546:
add r5, r3, r4
add r7, r6, #0x0
lsl r7, r5
tst r7, r0
bne _0201E554
cmp r4, r1
blt _0201E540
_0201E554:
cmp r4, r1
bge _0201E560
add r3, r3, r4
add r3, r3, #0x1
cmp r3, #0x10
blt _0201E53C
_0201E560:
cmp r3, #0x10
blt _0201E56C
mov r0, #0x0
mvn r0, r0
pop {r4-r7}
bx lr
_0201E56C:
lsl r0, r3, #0x5
pop {r4-r7}
bx lr
.balign 4
thumb_func_start sub_0201E574
sub_0201E574: ; 0x0201E574
mov r1, #0x0
strh r1, [r0, #0x24]
strh r1, [r0, #0x26]
bx lr
thumb_func_start sub_0201E57C
sub_0201E57C: ; 0x0201E57C
push {r4, lr}
add r4, r0, #0x0
ldr r1, [r4, #0x4]
mov r0, #0x1
tst r0, r1
beq _0201E598
ldr r0, _0201E5B4 ; =UNK_021C5998
ldr r2, [r4, #0x24]
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x8]
add r0, #0x24
lsr r2, r2, #0x5
bl sub_0201E4F0
_0201E598:
ldr r1, [r4, #0x4]
mov r0, #0x2
tst r0, r1
beq _0201E5B0
ldr r0, _0201E5B4 ; =UNK_021C5998
ldr r2, [r4, #0x28]
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x8]
add r0, #0x26
lsr r2, r2, #0x5
bl sub_0201E4F0
_0201E5B0:
pop {r4, pc}
nop
_0201E5B4: .word UNK_021C5998
thumb_func_start sub_0201E5B8
sub_0201E5B8: ; 0x0201E5B8
push {r4, lr}
add r4, r0, #0x0
ldr r1, [r4, #0x4]
mov r0, #0x1
tst r0, r1
beq _0201E5D4
ldr r0, _0201E5F0 ; =UNK_021C5998
ldr r2, [r4, #0x24]
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x8]
add r0, #0x24
lsr r2, r2, #0x5
bl sub_0201E514
_0201E5D4:
ldr r1, [r4, #0x4]
mov r0, #0x2
tst r0, r1
beq _0201E5EC
ldr r0, _0201E5F0 ; =UNK_021C5998
ldr r2, [r4, #0x28]
ldr r0, [r0, #0x0]
ldr r1, [r4, #0x8]
add r0, #0x26
lsr r2, r2, #0x5
bl sub_0201E514
_0201E5EC:
pop {r4, pc}
nop
_0201E5F0: .word UNK_021C5998
thumb_func_start sub_0201E5F4
sub_0201E5F4: ; 0x0201E5F4
push {r3-r5, lr}
add r5, r0, #0x0
add r4, r2, #0x0
ldr r2, [r5, #0x4]
mov r0, #0x1
tst r2, r0
beq _0201E61A
ldr r2, [r5, #0x8]
lsl r2, r2, #0x5
add r2, r1, r2
cmp r2, r3
bls _0201E618
bl GF_AssertFail
bl sub_0201E0B8
mov r0, #0x0
b _0201E61A
_0201E618:
str r1, [r5, #0x24]
_0201E61A:
ldr r2, [r5, #0x4]
mov r1, #0x2
tst r1, r2
beq _0201E63C
ldr r1, [r5, #0x8]
lsl r1, r1, #0x5
add r2, r4, r1
ldr r1, [sp, #0x10]
cmp r2, r1
bls _0201E63A
bl GF_AssertFail
bl sub_0201E0B8
mov r0, #0x0
pop {r3-r5, pc}
_0201E63A:
str r4, [r5, #0x28]
_0201E63C:
pop {r3-r5, pc}
.balign 4
thumb_func_start sub_0201E640
sub_0201E640: ; 0x0201E640
push {r3-r4}
ldr r4, [r0, #0x4]
mov r3, #0x1
tst r3, r4
beq _0201E654
ldr r3, [r0, #0x8]
ldr r4, [r1, #0x0]
lsl r3, r3, #0x5
add r3, r4, r3
str r3, [r1, #0x0]
_0201E654:
ldr r3, [r0, #0x4]
mov r1, #0x2
tst r1, r3
beq _0201E666
ldr r0, [r0, #0x8]
ldr r1, [r2, #0x0]
lsl r0, r0, #0x5
add r0, r1, r0
str r0, [r2, #0x0]
_0201E666:
pop {r3-r4}
bx lr
.balign 4