pokediamond/asm/unk_02000E0C.s
ProjectRevoTPP 4c5e350243 formatting
2020-04-19 20:12:31 -04:00

2759 lines
48 KiB
ArmAsm

.include "asm/macros.inc"
.include "global.inc"
.text
thumb_func_start FUN_02000E0C
FUN_02000E0C: ; 0x02000E0C
push {r3, lr}
ldr r0, _02000E74 ; =0x02106FA0
ldr r1, [r0, #0xc]
cmp r1, #0x0
bne _02000E4A
ldr r1, [r0, #0x14]
cmp r1, #0x0
beq _02000E70
mov r1, #0x0
ldr r0, [r0, #0x10]
mvn r1, r1
cmp r0, r1
beq _02000E2C
mov r1, #0x0
bl FUN_02005FDC
_02000E2C:
ldr r0, _02000E74 ; =0x02106FA0
mov r2, #0x0
ldr r1, [r0, #0x10]
str r1, [r0, #0x8]
ldr r0, [r0, #0x14]
ldr r1, _02000E78 ; =0x02106FB8
bl FUN_02006234
ldr r1, _02000E74 ; =0x02106FA0
str r0, [r1, #0xc]
mov r0, #0x0
mvn r0, r0
str r0, [r1, #0x10]
mov r0, #0x0
str r0, [r1, #0x14]
_02000E4A:
ldr r0, _02000E74 ; =0x02106FA0
ldr r0, [r0, #0xc]
bl FUN_02006290
cmp r0, #0x0
beq _02000E70
ldr r0, _02000E74 ; =0x02106FA0
ldr r0, [r0, #0xc]
bl FUN_02006260
ldr r0, _02000E74 ; =0x02106FA0
mov r1, #0x0
str r1, [r0, #0xc]
ldr r0, [r0, #0x8]
sub r1, r1, #0x1
cmp r0, r1
beq _02000E70
bl FUN_02005F60
_02000E70:
pop {r3, pc}
nop
_02000E74: .word 0x02106FA0
_02000E78: .word 0x02106FB8
thumb_func_start FUN_02000E7C
FUN_02000E7C: ; 0x02000E7C
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, _02000E98 ; =0x02106FA0
add r4, r1, #0x0
ldr r0, [r0, #0x14]
cmp r0, #0x0
beq _02000E8E
bl ErrorHandling
_02000E8E:
ldr r0, _02000E98 ; =0x02106FA0
str r5, [r0, #0x10]
str r4, [r0, #0x14]
pop {r3-r5, pc}
nop
_02000E98: .word 0x02106FA0
thumb_func_start FUN_02000E9C
FUN_02000E9C: ; 0x02000E9C
push {r3, lr}
bl FUN_0202FB80
mov r0, #0x1
add r1, r0, #0x0
blx OS_WaitIrq
ldr r0, _02000EC4 ; =0x021C48B8
ldr r1, [r0, #0x2c]
add r1, r1, #0x1
str r1, [r0, #0x2c]
mov r1, #0x0
str r1, [r0, #0x30]
ldr r1, [r0, #0x0]
cmp r1, #0x0
beq _02000EC0
ldr r0, [r0, #0x4]
blx r1
_02000EC0:
pop {r3, pc}
nop
_02000EC4: .word 0x021C48B8
thumb_func_start FUN_02000EC8
FUN_02000EC8: ; 0x02000EC8
push {r4, lr}
add r4, r0, #0x0
bl FUN_02033678
cmp r0, #0x0
beq _02000EE2
blx FUN_020D6DAC
cmp r0, #0x1
bne _02000EE2
add r0, r4, #0x0
blx OS_ResetSystem
_02000EE2:
bl FUN_02000E9C
pop {r4, pc}
thumb_func_start FUN_02000EE8
FUN_02000EE8: ; 0x02000EE8
push {r3, lr}
bl FUN_020335B8
add r1, r0, #0x0
cmp r1, #0x1
beq _02000EFE
cmp r1, #0x2
beq _02000F06
cmp r1, #0x3
beq _02000F0E
pop {r3, pc}
_02000EFE:
mov r0, #0x1
bl FUN_02000F4C
pop {r3, pc}
_02000F06:
mov r0, #0x0
bl FUN_02000F4C
pop {r3, pc}
_02000F0E:
mov r0, #0x1
bl FUN_02000F4C
pop {r3, pc}
.balign 4
thumb_func_start FUN_02000F18
FUN_02000F18: ; 0x02000F18
push {r4, lr}
ldr r1, _02000F48 ; =0x00007FFF
add r4, r0, #0x0
mov r0, #0x0
bl FUN_0200E3A0
ldr r1, _02000F48 ; =0x00007FFF
mov r0, #0x1
bl FUN_0200E3A0
bl FUN_02032DAC
cmp r0, #0x0
beq _02000F3C
bl FUN_020225F8
bl FUN_0202287C
_02000F3C:
bl FUN_02000FE8
add r0, r4, #0x0
bl FUN_02000EC8
b _02000F3C
.balign 4
_02000F48: .word 0x00007FFF
thumb_func_start FUN_02000F4C
FUN_02000F4C: ; 0x02000F4C
push {r4-r6, lr}
add r6, r0, #0x0
cmp r1, #0x3
bne _02000F60
mov r0, #0x0
mov r1, #0x3
add r2, r0, #0x0
bl FUN_02033F70
b _02000F7A
_02000F60:
cmp r6, #0x0
bne _02000F70
mov r0, #0x0
mov r1, #0x2
add r2, r0, #0x0
bl FUN_02033F70
b _02000F7A
_02000F70:
mov r0, #0x0
add r1, r0, #0x0
add r2, r0, #0x0
bl FUN_02033F70
_02000F7A:
bl FUN_02032DAC
ldr r5, _02000FA0 ; =0x021C48B8
mov r4, #0x1
_02000F82:
bl FUN_02000FE8
bl FUN_02016464
ldr r0, [r5, #0x48]
tst r0, r4
bne _02000F96
bl FUN_02000E9C
b _02000F82
_02000F96:
add r0, r6, #0x0
bl FUN_02000F18
pop {r4-r6, pc}
nop
_02000FA0: .word 0x021C48B8
thumb_func_start FUN_02000FA4
FUN_02000FA4: ; 0x02000FA4
push {r4-r5, lr}
sub sp, #0x1c
add r0, sp, #0xc
add r1, sp, #0x0
bl FUN_0201265C
ldr r0, _02000FE4 ; =0x021C48B8
ldr r3, [sp, #0x10]
ldr r4, [r0, #0x2c]
ldr r1, [sp, #0x4]
ldr r0, [sp, #0x8]
ldr r5, [sp, #0x14]
add r0, r1, r0
lsl r2, r0, #0x18
ldr r0, [sp, #0x0]
lsl r3, r3, #0x8
lsl r1, r0, #0x10
mul r3, r5
ldr r0, [sp, #0xc]
lsl r3, r3, #0x10
add r0, r0, r3
add r0, r1, r0
add r5, r2, r0
add r0, r4, r5
bl FUN_0201BA1C
add r0, r4, r5
bl FUN_0201B9E0
add sp, #0x1c
pop {r4-r5, pc}
nop
_02000FE4: .word 0x021C48B8
thumb_func_start FUN_02000FE8
FUN_02000FE8: ; 0x02000FE8
push {r3-r7, lr}
sub sp, #0x8
ldr r0, _0200109C ; =0x027FFFA8
ldrh r1, [r0, #0x0]
mov r0, #0x2
lsl r0, r0, #0xe
and r0, r1
asr r0, r0, #0xf
beq _0200107E
ldr r0, _020010A0 ; =0x021C4918
ldrb r0, [r0, #0x7]
cmp r0, #0x0
bne _02001064
bl FUN_0201CE04
blx FUN_020DB7A8
cmp r0, #0x1
bne _02001014
ldr r0, _020010A4 ; =0x02106FA0
mov r1, #0x1
str r1, [r0, #0x4]
_02001014:
ldr r6, _020010A4 ; =0x02106FA0
mov r0, #0xc
ldr r1, [r6, #0x4]
ldr r4, _0200109C ; =0x027FFFA8
mov r2, #0x10
add r5, r0, #0x0
ldr r7, _020010A0 ; =0x021C4918
orr r5, r2
_02001024:
ldrb r2, [r7, #0x6]
mov r0, #0xc
cmp r2, #0x0
beq _02001032
cmp r1, #0x0
bne _02001032
add r0, r5, #0x0
_02001032:
mov r1, #0x0
add r2, r1, #0x0
blx PM_GoSleepMode
blx CARD_IsPulledOut
cmp r0, #0x0
beq _02001048
blx FUN_020D5180
b _0200105C
_02001048:
ldrh r1, [r4, #0x0]
mov r0, #0x2
lsl r0, r0, #0xe
and r0, r1
asr r0, r0, #0xf
beq _0200105C
mov r0, #0x1
str r0, [r6, #0x4]
add r1, r0, #0x0
b _02001024
_0200105C:
bl FUN_0201CDD0
add sp, #0x8
pop {r3-r7, pc}
_02001064:
add r0, sp, #0x4
add r1, sp, #0x0
blx PM_GetBackLight
ldr r0, [sp, #0x4]
cmp r0, #0x1
bne _02001096
mov r0, #0x2
mov r1, #0x0
blx FUN_020D526C
add sp, #0x8
pop {r3-r7, pc}
_0200107E:
add r0, sp, #0x4
add r1, sp, #0x0
blx PM_GetBackLight
ldr r0, [sp, #0x4]
cmp r0, #0x0
bne _02001096
ldr r1, _020010A4 ; =0x02106FA0
mov r0, #0x2
ldr r1, [r1, #0x0]
blx FUN_020D526C
_02001096:
add sp, #0x8
pop {r3-r7, pc}
nop
_0200109C: .word 0x027FFFA8
_020010A0: .word 0x021C4918
_020010A4: .word 0x02106FA0
thumb_func_start FUN_020010A8
FUN_020010A8: ; 0x020010A8
push {r3-r7, lr}
add r5, r0, #0x0
add r6, r1, #0x0
add r0, r3, #0x0
mov r1, #0x38
add r7, r2, #0x0
str r3, [sp, #0x0]
bl FUN_02016998
add r4, r0, #0x0
add r3, r5, #0x0
add r2, r4, #0x0
ldmia r3!, {r0-r1}
stmia r2!, {r0-r1}
ldmia r3!, {r0-r1}
stmia r2!, {r0-r1}
ldmia r3!, {r0-r1}
stmia r2!, {r0-r1}
ldmia r3!, {r0-r1}
stmia r2!, {r0-r1}
ldr r0, [sp, #0x0]
bl FUN_02013690
str r0, [r4, #0x28]
strh r6, [r4, #0x2c]
add r1, r4, #0x0
strh r7, [r4, #0x2e]
mov r0, #0x0
add r1, #0x30
strb r0, [r1, #0x0]
add r1, r4, #0x0
add r1, #0x31
strb r0, [r1, #0x0]
add r1, r4, #0x0
mov r2, #0xff
add r1, #0x32
strb r2, [r1, #0x0]
add r1, r4, #0x0
add r1, #0x33
strb r0, [r1, #0x0]
add r1, r4, #0x0
ldr r0, [sp, #0x0]
add r1, #0x34
strb r0, [r1, #0x0]
add r0, r4, #0x0
ldrb r1, [r4, #0x17]
add r0, #0x20
ldrb r2, [r0, #0x0]
lsl r1, r1, #0x18
mov r0, #0xf
lsr r3, r1, #0x1c
mov r1, #0xf
bic r2, r0
and r3, r1
orr r3, r2
add r2, r4, #0x0
add r2, #0x20
strb r3, [r2, #0x0]
add r2, r4, #0x0
add r2, #0x20
ldrb r2, [r2, #0x0]
mov r3, #0xf0
bic r2, r3
ldrb r3, [r4, #0x18]
lsl r3, r3, #0x1c
lsr r3, r3, #0x1c
lsl r3, r3, #0x1c
lsr r3, r3, #0x18
orr r3, r2
add r2, r4, #0x0
add r2, #0x20
strb r3, [r2, #0x0]
add r2, r4, #0x0
add r2, #0x21
ldrb r2, [r2, #0x0]
bic r2, r0
ldrb r0, [r4, #0x18]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
and r0, r1
add r1, r2, #0x0
orr r1, r0
add r0, r4, #0x0
add r0, #0x21
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x22
ldrb r0, [r0, #0x0]
mov r1, #0x3f
bic r0, r1
ldrh r1, [r4, #0x1a]
lsl r1, r1, #0x1d
lsr r1, r1, #0x1d
lsl r1, r1, #0x18
lsr r2, r1, #0x18
mov r1, #0x3f
and r1, r2
orr r1, r0
add r0, r4, #0x0
add r0, #0x22
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x24
ldrb r0, [r0, #0x0]
mov r1, #0x7f
bic r0, r1
ldrh r1, [r4, #0x1a]
lsl r1, r1, #0x11
lsr r1, r1, #0x1a
lsl r1, r1, #0x18
lsr r2, r1, #0x18
mov r1, #0x7f
and r1, r2
orr r1, r0
add r0, r4, #0x0
add r0, #0x24
strb r1, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x24
ldrb r1, [r0, #0x0]
mov r0, #0x80
bic r1, r0
add r0, r4, #0x0
add r0, #0x24
strb r1, [r0, #0x0]
ldrh r1, [r4, #0x10]
ldrh r0, [r4, #0x12]
cmp r1, r0
bhs _020011AC
strh r1, [r4, #0x12]
_020011AC:
ldrb r2, [r4, #0x18]
ldr r0, [r4, #0x28]
lsl r1, r2, #0x1c
lsr r1, r1, #0x1c
lsl r1, r1, #0x18
lsr r3, r1, #0x18
ldrb r1, [r4, #0x17]
lsl r2, r2, #0x18
lsr r2, r2, #0x1c
lsl r1, r1, #0x18
lsr r1, r1, #0x1c
lsl r1, r1, #0x18
lsl r2, r2, #0x18
lsr r1, r1, #0x8
lsr r2, r2, #0x10
orr r1, r2
orr r1, r3
bl FUN_020136E0
ldrb r1, [r4, #0x18]
ldr r0, [r4, #0xc]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
bl FUN_02019620
ldrh r1, [r4, #0x2c]
ldrh r3, [r4, #0x12]
add r0, r4, #0x0
mov r2, #0x0
bl FUN_02001714
add r0, r4, #0x0
bl FUN_020017AC
add r0, r4, #0x0
mov r1, #0x1
bl FUN_02001B64
ldr r0, [r5, #0xc]
bl FUN_020191D0
add r0, r4, #0x0
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_02001204
FUN_02001204: ; 0x02001204
push {r4-r6, lr}
add r4, r0, #0x0
add r1, r4, #0x0
ldr r6, _020012FC ; =0x021C48B8
mov r3, #0x0
add r1, #0x33
strb r3, [r1, #0x0]
ldr r1, [r6, #0x48]
mov r2, #0x1
add r5, r1, #0x0
tst r5, r2
beq _0200122C
ldrh r1, [r4, #0x2c]
ldrh r0, [r4, #0x2e]
ldr r2, [r4, #0x0]
add r0, r1, r0
lsl r0, r0, #0x3
add r0, r2, r0
ldr r0, [r0, #0x4]
pop {r4-r6, pc}
_0200122C:
mov r5, #0x2
tst r1, r5
beq _02001236
sub r0, r5, #0x4
pop {r4-r6, pc}
_02001236:
ldr r5, [r6, #0x4c]
mov r1, #0x40
tst r1, r5
beq _02001254
add r1, r2, #0x0
bl FUN_02001AA4
cmp r0, #0x0
bne _0200124E
mov r0, #0x1
add r4, #0x33
strb r0, [r4, #0x0]
_0200124E:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_02001254:
mov r1, #0x80
add r3, r5, #0x0
tst r3, r1
beq _02001274
add r1, r2, #0x0
add r3, r2, #0x0
bl FUN_02001AA4
cmp r0, #0x0
bne _0200126E
mov r0, #0x2
add r4, #0x33
strb r0, [r4, #0x0]
_0200126E:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_02001274:
ldrh r0, [r4, #0x1a]
lsl r0, r0, #0x17
lsr r0, r0, #0x1e
beq _02001284
cmp r0, #0x1
beq _0200128A
cmp r0, #0x2
beq _0200129C
_02001284:
mov r0, #0x0
add r1, r0, #0x0
b _020012AC
_0200128A:
mov r0, #0x20
mov r1, #0x10
and r0, r5
and r1, r5
lsl r0, r0, #0x10
lsl r1, r1, #0x10
lsr r0, r0, #0x10
lsr r1, r1, #0x10
b _020012AC
_0200129C:
lsl r0, r1, #0x2
add r1, #0x80
and r0, r5
and r1, r5
lsl r0, r0, #0x10
lsl r1, r1, #0x10
lsr r0, r0, #0x10
lsr r1, r1, #0x10
_020012AC:
cmp r0, #0x0
beq _020012D0
ldrh r2, [r4, #0x12]
add r0, r4, #0x0
mov r1, #0x1
lsl r2, r2, #0x18
lsr r2, r2, #0x18
mov r3, #0x0
bl FUN_02001AA4
cmp r0, #0x0
bne _020012CA
mov r0, #0x3
add r4, #0x33
strb r0, [r4, #0x0]
_020012CA:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_020012D0:
cmp r1, #0x0
beq _020012F4
ldrh r2, [r4, #0x12]
mov r1, #0x1
add r0, r4, #0x0
lsl r2, r2, #0x18
lsr r2, r2, #0x18
add r3, r1, #0x0
bl FUN_02001AA4
cmp r0, #0x0
bne _020012EE
mov r0, #0x4
add r4, #0x33
strb r0, [r4, #0x0]
_020012EE:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_020012F4:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
nop
_020012FC: .word 0x021C48B8
thumb_func_start FUN_02001300
FUN_02001300: ; 0x02001300
push {r4, lr}
add r4, r0, #0x0
cmp r1, #0x0
beq _0200130C
ldrh r0, [r4, #0x2c]
strh r0, [r1, #0x0]
_0200130C:
cmp r2, #0x0
beq _02001314
ldrh r0, [r4, #0x2e]
strh r0, [r2, #0x0]
_02001314:
ldr r0, [r4, #0x28]
bl FUN_020136C0
add r0, r4, #0x0
add r0, #0x34
ldrb r0, [r0, #0x0]
add r1, r4, #0x0
bl FUN_02016A8C
pop {r4, pc}
thumb_func_start FUN_02001328
FUN_02001328: ; 0x02001328
push {r4, lr}
add r4, r0, #0x0
ldrb r1, [r4, #0x18]
ldr r0, [r4, #0xc]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
bl FUN_02019620
ldrh r1, [r4, #0x2c]
ldrh r3, [r4, #0x12]
add r0, r4, #0x0
mov r2, #0x0
bl FUN_02001714
add r0, r4, #0x0
bl FUN_020017AC
ldr r0, [r4, #0xc]
bl FUN_020191D0
pop {r4, pc}
.balign 4
thumb_func_start FUN_02001354
FUN_02001354: ; 0x02001354
push {r4-r6, lr}
add r4, r0, #0x0
add r6, r1, #0x0
beq _0200136E
add r5, r4, #0x0
ldmia r6!, {r0-r1}
stmia r5!, {r0-r1}
ldmia r6!, {r0-r1}
stmia r5!, {r0-r1}
ldmia r6!, {r0-r1}
stmia r5!, {r0-r1}
ldmia r6!, {r0-r1}
stmia r5!, {r0-r1}
_0200136E:
strh r2, [r4, #0x2c]
add r0, r4, #0x0
strh r3, [r4, #0x2e]
mov r3, #0x0
add r0, #0x30
strb r3, [r0, #0x0]
add r0, r4, #0x0
add r0, #0x31
add r1, sp, #0x0
strb r3, [r0, #0x0]
ldrh r0, [r1, #0x14]
cmp r0, #0x40
bne _02001398
ldrh r1, [r1, #0x10]
add r0, r4, #0x0
mov r2, #0x1
lsl r1, r1, #0x18
lsr r1, r1, #0x18
bl FUN_02001AA4
b _020013AC
_02001398:
cmp r0, #0x80
bne _020013AC
ldrh r1, [r1, #0x10]
mov r2, #0x1
add r0, r4, #0x0
lsl r1, r1, #0x18
lsr r1, r1, #0x18
add r3, r2, #0x0
bl FUN_02001AA4
_020013AC:
ldr r1, [sp, #0x18]
cmp r1, #0x0
beq _020013B6
ldrh r0, [r4, #0x2c]
strh r0, [r1, #0x0]
_020013B6:
ldr r1, [sp, #0x1c]
cmp r1, #0x0
beq _020013C0
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x0]
_020013C0:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
.balign 4
thumb_func_start FUN_020013C8
FUN_020013C8: ; 0x020013C8
push {r4, lr}
sub sp, #0x10
mov r4, #0x0
str r4, [sp, #0x0]
add r4, sp, #0x8
ldrh r4, [r4, #0x10]
str r4, [sp, #0x4]
ldr r4, [sp, #0x1c]
str r4, [sp, #0x8]
ldr r4, [sp, #0x20]
str r4, [sp, #0xc]
bl FUN_02001354
add sp, #0x10
pop {r4, pc}
.balign 4
thumb_func_start FUN_020013E8
FUN_020013E8: ; 0x020013E8
push {r3-r6}
add r4, r0, #0x0
add r4, #0x20
ldrb r6, [r4, #0x0]
mov r4, #0xf
mov r5, #0xf
bic r6, r4
and r1, r5
orr r6, r1
add r1, r0, #0x0
add r1, #0x20
strb r6, [r1, #0x0]
add r1, r0, #0x0
add r1, #0x20
lsl r2, r2, #0x1c
ldrb r1, [r1, #0x0]
mov r6, #0xf0
lsr r2, r2, #0x18
bic r1, r6
orr r2, r1
add r1, r0, #0x0
add r1, #0x20
strb r2, [r1, #0x0]
add r1, r0, #0x0
add r1, #0x21
ldrb r2, [r1, #0x0]
add r1, r3, #0x0
and r1, r5
bic r2, r4
orr r2, r1
add r1, r0, #0x0
add r1, #0x21
strb r2, [r1, #0x0]
add r1, r0, #0x0
add r1, #0x24
ldrb r2, [r1, #0x0]
mov r1, #0x80
add r0, #0x24
orr r1, r2
strb r1, [r0, #0x0]
pop {r3-r6}
bx lr
thumb_func_start FUN_0200143C
FUN_0200143C: ; 0x0200143C
ldrh r2, [r0, #0x2c]
ldrh r0, [r0, #0x2e]
add r0, r2, r0
strh r0, [r1, #0x0]
bx lr
.balign 4
thumb_func_start FUN_02001448
FUN_02001448: ; 0x02001448
cmp r1, #0x0
beq _02001450
ldrh r3, [r0, #0x2c]
strh r3, [r1, #0x0]
_02001450:
cmp r2, #0x0
beq _02001458
ldrh r0, [r0, #0x2e]
strh r0, [r2, #0x0]
_02001458:
bx lr
.balign 4
thumb_func_start FUN_0200145C
FUN_0200145C: ; 0x0200145C
add r0, #0x33
ldrb r0, [r0, #0x0]
bx lr
.balign 4
thumb_func_start FUN_02001464
FUN_02001464: ; 0x02001464
ldr r2, [r0, #0x0]
lsl r0, r1, #0x3
add r0, r2, r0
ldr r0, [r0, #0x4]
bx lr
.balign 4
thumb_func_start FUN_02001470
FUN_02001470: ; 0x02001470
push {r4, lr}
add r4, r0, #0x0
cmp r1, #0x13
bhi _02001532
add r0, r1, r1
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02001484: ; jump table (using 16-bit offset)
.short _020014AC - _02001484 - 2; case 0
.short _020014B0 - _02001484 - 2; case 1
.short _020014B4 - _02001484 - 2; case 2
.short _020014B8 - _02001484 - 2; case 3
.short _02001532 - _02001484 - 2; case 4
.short _020014BC - _02001484 - 2; case 5
.short _020014C0 - _02001484 - 2; case 6
.short _020014C4 - _02001484 - 2; case 7
.short _020014C8 - _02001484 - 2; case 8
.short _020014D0 - _02001484 - 2; case 9
.short _020014EA - _02001484 - 2; case 10
.short _020014F2 - _02001484 - 2; case 11
.short _020014FA - _02001484 - 2; case 12
.short _02001502 - _02001484 - 2; case 13
.short _0200150A - _02001484 - 2; case 14
.short _02001512 - _02001484 - 2; case 15
.short _0200151A - _02001484 - 2; case 16
.short _02001522 - _02001484 - 2; case 17
.short _0200152A - _02001484 - 2; case 18
.short _0200152E - _02001484 - 2; case 19
_020014AC:
ldr r0, [r4, #0x4]
pop {r4, pc}
_020014B0:
ldr r0, [r4, #0x8]
pop {r4, pc}
_020014B4:
ldrh r0, [r4, #0x10]
pop {r4, pc}
_020014B8:
ldrh r0, [r4, #0x12]
pop {r4, pc}
_020014BC:
ldrb r0, [r4, #0x14]
pop {r4, pc}
_020014C0:
ldrb r0, [r4, #0x15]
pop {r4, pc}
_020014C4:
ldrb r0, [r4, #0x16]
pop {r4, pc}
_020014C8:
ldrb r0, [r4, #0x17]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
pop {r4, pc}
_020014D0:
ldrh r0, [r4, #0x1a]
mov r1, #0x1
lsl r0, r0, #0x11
lsr r0, r0, #0x1a
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_02002E4C
ldrh r1, [r4, #0x1a]
lsl r1, r1, #0x19
lsr r1, r1, #0x1c
add r0, r1, r0
pop {r4, pc}
_020014EA:
ldrb r0, [r4, #0x17]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
pop {r4, pc}
_020014F2:
ldrb r0, [r4, #0x18]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
pop {r4, pc}
_020014FA:
ldrb r0, [r4, #0x18]
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
pop {r4, pc}
_02001502:
ldrh r0, [r4, #0x1a]
lsl r0, r0, #0x1d
lsr r0, r0, #0x1d
pop {r4, pc}
_0200150A:
ldrh r0, [r4, #0x1a]
lsl r0, r0, #0x19
lsr r0, r0, #0x1c
pop {r4, pc}
_02001512:
ldrh r0, [r4, #0x1a]
lsl r0, r0, #0x17
lsr r0, r0, #0x1e
pop {r4, pc}
_0200151A:
ldrh r0, [r4, #0x1a]
lsl r0, r0, #0x11
lsr r0, r0, #0x1a
pop {r4, pc}
_02001522:
ldrh r0, [r4, #0x1a]
lsl r0, r0, #0x10
lsr r0, r0, #0x1f
pop {r4, pc}
_0200152A:
ldr r0, [r4, #0xc]
pop {r4, pc}
_0200152E:
ldr r0, [r4, #0x1c]
pop {r4, pc}
_02001532:
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
thumb_func_start FUN_02001538
FUN_02001538: ; 0x02001538
cmp r1, #0x13
bls _0200153E
b _02001648
_0200153E:
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #0x6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_0200154A: ; jump table (using 16-bit offset)
.short _02001572 - _0200154A - 2; case 0
.short _02001576 - _0200154A - 2; case 1
.short _0200157A - _0200154A - 2; case 2
.short _0200157E - _0200154A - 2; case 3
.short _02001648 - _0200154A - 2; case 4
.short _02001582 - _0200154A - 2; case 5
.short _02001586 - _0200154A - 2; case 6
.short _0200158A - _0200154A - 2; case 7
.short _0200158E - _0200154A - 2; case 8
.short _02001648 - _0200154A - 2; case 9
.short _020015A2 - _0200154A - 2; case 10
.short _020015B6 - _0200154A - 2; case 11
.short _020015CA - _0200154A - 2; case 12
.short _020015DE - _0200154A - 2; case 13
.short _020015F2 - _0200154A - 2; case 14
.short _02001606 - _0200154A - 2; case 15
.short _0200161A - _0200154A - 2; case 16
.short _0200162E - _0200154A - 2; case 17
.short _02001642 - _0200154A - 2; case 18
.short _02001646 - _0200154A - 2; case 19
_02001572:
str r2, [r0, #0x4]
bx lr
_02001576:
str r2, [r0, #0x8]
bx lr
_0200157A:
strh r2, [r0, #0x10]
bx lr
_0200157E:
strh r2, [r0, #0x12]
bx lr
_02001582:
strb r2, [r0, #0x14]
bx lr
_02001586:
strb r2, [r0, #0x15]
bx lr
_0200158A:
strb r2, [r0, #0x16]
bx lr
_0200158E:
ldrb r3, [r0, #0x17]
mov r1, #0xf
bic r3, r1
lsl r1, r2, #0x18
lsr r2, r1, #0x18
mov r1, #0xf
and r1, r2
orr r1, r3
strb r1, [r0, #0x17]
bx lr
_020015A2:
ldrb r3, [r0, #0x17]
mov r1, #0xf0
bic r3, r1
lsl r1, r2, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1c
lsr r1, r1, #0x18
orr r1, r3
strb r1, [r0, #0x17]
bx lr
_020015B6:
ldrb r3, [r0, #0x18]
mov r1, #0xf
bic r3, r1
lsl r1, r2, #0x18
lsr r2, r1, #0x18
mov r1, #0xf
and r1, r2
orr r1, r3
strb r1, [r0, #0x18]
bx lr
_020015CA:
ldrb r3, [r0, #0x18]
mov r1, #0xf0
bic r3, r1
lsl r1, r2, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1c
lsr r1, r1, #0x18
orr r1, r3
strb r1, [r0, #0x18]
bx lr
_020015DE:
ldrh r3, [r0, #0x1a]
mov r1, #0x7
bic r3, r1
lsl r1, r2, #0x18
lsr r2, r1, #0x18
mov r1, #0x7
and r1, r2
orr r1, r3
strh r1, [r0, #0x1a]
bx lr
_020015F2:
ldrh r3, [r0, #0x1a]
mov r1, #0x78
bic r3, r1
lsl r1, r2, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1c
lsr r1, r1, #0x19
orr r1, r3
strh r1, [r0, #0x1a]
bx lr
_02001606:
ldrh r3, [r0, #0x1a]
ldr r1, _0200164C ; =0xFFFFFE7F
and r3, r1
lsl r1, r2, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1e
lsr r1, r1, #0x17
orr r1, r3
strh r1, [r0, #0x1a]
bx lr
_0200161A:
ldrh r3, [r0, #0x1a]
ldr r1, _02001650 ; =0xFFFF81FF
and r3, r1
lsl r1, r2, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1a
lsr r1, r1, #0x11
orr r1, r3
strh r1, [r0, #0x1a]
bx lr
_0200162E:
ldrh r3, [r0, #0x1a]
ldr r1, _02001654 ; =0xFFFF7FFF
and r3, r1
lsl r1, r2, #0x18
lsr r1, r1, #0x18
lsl r1, r1, #0x1f
lsr r1, r1, #0x10
orr r1, r3
strh r1, [r0, #0x1a]
bx lr
_02001642:
str r2, [r0, #0xc]
bx lr
_02001646:
str r2, [r0, #0x1c]
_02001648:
bx lr
nop
_0200164C: .word 0xFFFFFE7F
_02001650: .word 0xFFFF81FF
_02001654: .word 0xFFFF7FFF
thumb_func_start FUN_02001658
FUN_02001658: ; 0x02001658
str r1, [r0, #0x0]
bx lr
thumb_func_start FUN_0200165C
FUN_0200165C: ; 0x0200165C
push {r4-r6, lr}
sub sp, #0x18
add r5, r1, #0x0
add r6, r0, #0x0
add r4, r2, #0x0
cmp r5, #0x0
beq _02001710
add r0, #0x24
ldrb r0, [r0, #0x0]
lsl r0, r0, #0x18
lsr r0, r0, #0x1f
str r3, [sp, #0x0]
beq _020016CC
mov r0, #0xff
str r0, [sp, #0x4]
add r0, r6, #0x0
add r0, #0x20
ldrb r2, [r0, #0x0]
add r3, r4, #0x0
lsl r0, r2, #0x18
lsr r0, r0, #0x1c
lsl r0, r0, #0x18
lsr r1, r0, #0x18
lsl r0, r2, #0x1c
add r2, r6, #0x0
add r2, #0x21
ldrb r2, [r2, #0x0]
lsr r0, r0, #0x1c
lsl r0, r0, #0x18
lsl r2, r2, #0x1c
lsr r2, r2, #0x1c
lsl r2, r2, #0x18
lsr r0, r0, #0x8
lsr r2, r2, #0x10
orr r0, r2
orr r0, r1
str r0, [sp, #0x8]
add r0, r6, #0x0
add r0, #0x22
ldrb r0, [r0, #0x0]
add r2, r5, #0x0
lsl r0, r0, #0x1a
lsr r0, r0, #0x1a
str r0, [sp, #0xc]
mov r0, #0x0
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldr r0, [r6, #0xc]
add r6, #0x24
ldrb r1, [r6, #0x0]
lsl r1, r1, #0x19
lsr r1, r1, #0x19
bl FUN_0201BE3C
add sp, #0x18
pop {r4-r6, pc}
_020016CC:
mov r0, #0xff
str r0, [sp, #0x4]
ldrb r1, [r6, #0x18]
add r3, r4, #0x0
lsl r0, r1, #0x1c
lsr r0, r0, #0x1c
lsl r0, r0, #0x18
lsr r2, r0, #0x18
ldrb r0, [r6, #0x17]
lsl r1, r1, #0x18
lsr r1, r1, #0x1c
lsl r0, r0, #0x18
lsr r0, r0, #0x1c
lsl r0, r0, #0x18
lsl r1, r1, #0x18
lsr r0, r0, #0x8
lsr r1, r1, #0x10
orr r0, r1
orr r0, r2
str r0, [sp, #0x8]
ldrh r0, [r6, #0x1a]
add r2, r5, #0x0
lsl r0, r0, #0x1d
lsr r0, r0, #0x1d
str r0, [sp, #0xc]
mov r0, #0x0
str r0, [sp, #0x10]
str r0, [sp, #0x14]
ldrh r1, [r6, #0x1a]
ldr r0, [r6, #0xc]
lsl r1, r1, #0x11
lsr r1, r1, #0x1a
bl FUN_0201BE3C
_02001710:
add sp, #0x18
pop {r4-r6, pc}
thumb_func_start FUN_02001714
FUN_02001714: ; 0x02001714
push {r4-r7, lr}
sub sp, #0x14
add r5, r0, #0x0
str r3, [sp, #0x0]
ldrh r0, [r5, #0x1a]
add r4, r1, #0x0
mov r1, #0x1
lsl r0, r0, #0x11
lsr r0, r0, #0x1a
lsl r0, r0, #0x18
lsr r0, r0, #0x18
add r6, r2, #0x0
bl FUN_02002E4C
ldrh r1, [r5, #0x1a]
lsl r1, r1, #0x19
lsr r1, r1, #0x1c
add r0, r1, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
mov r0, #0x0
str r0, [sp, #0x10]
ldr r0, [sp, #0x0]
cmp r0, #0x0
ble _020017A6
_02001748:
ldr r1, [r5, #0x0]
lsl r0, r4, #0x3
str r0, [sp, #0x8]
add r0, r1, r0
ldr r1, [r0, #0x4]
mov r0, #0x2
mvn r0, r0
cmp r1, r0
beq _02001760
ldrb r0, [r5, #0x15]
str r0, [sp, #0x4]
b _02001764
_02001760:
ldrb r0, [r5, #0x14]
str r0, [sp, #0x4]
_02001764:
ldrb r0, [r5, #0x17]
lsl r0, r0, #0x1c
lsr r3, r0, #0x1c
ldr r0, [sp, #0xc]
add r2, r0, #0x0
mul r2, r6
add r0, r3, r2
lsl r0, r0, #0x18
ldr r3, [r5, #0x8]
lsr r7, r0, #0x18
cmp r3, #0x0
beq _02001782
add r0, r5, #0x0
add r2, r7, #0x0
blx r3
_02001782:
ldr r2, [r5, #0x0]
ldr r1, [sp, #0x8]
add r0, r5, #0x0
ldr r1, [r2, r1]
ldr r2, [sp, #0x4]
add r3, r7, #0x0
bl FUN_0200165C
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, [sp, #0x10]
add r6, r6, #0x1
add r1, r0, #0x1
ldr r0, [sp, #0x0]
str r1, [sp, #0x10]
cmp r1, r0
blt _02001748
_020017A6:
add sp, #0x14
pop {r4-r7, pc}
.balign 4
thumb_func_start FUN_020017AC
FUN_020017AC: ; 0x020017AC
push {r3-r5, lr}
add r4, r0, #0x0
ldrh r0, [r4, #0x1a]
mov r1, #0x1
lsl r0, r0, #0x11
lsr r0, r0, #0x1a
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_02002E4C
ldrh r1, [r4, #0x1a]
ldrh r5, [r4, #0x2e]
lsl r2, r1, #0x19
lsr r2, r2, #0x1c
add r0, r2, r0
lsl r0, r0, #0x18
lsr r3, r0, #0x18
ldrb r0, [r4, #0x17]
mul r3, r5
ldrb r2, [r4, #0x16]
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
add r0, r0, r3
lsl r0, r0, #0x18
lsr r3, r0, #0x18
lsl r0, r1, #0x10
lsr r0, r0, #0x1f
cmp r0, #0x3
bhi _02001802
add r0, r0, r0
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_020017F2: ; jump table (using 16-bit offset)
.short _020017FA - _020017F2 - 2; case 0
.short _02001802 - _020017F2 - 2; case 1
.short _02001802 - _020017F2 - 2; case 2
.short _02001802 - _020017F2 - 2; case 3
_020017FA:
ldr r0, [r4, #0x28]
ldr r1, [r4, #0xc]
bl FUN_020136F8
_02001802:
pop {r3-r5, pc}
thumb_func_start FUN_02001804
FUN_02001804: ; 0x02001804
push {r3-r5, lr}
sub sp, #0x8
add r4, r0, #0x0
ldrh r0, [r4, #0x1a]
add r5, r1, #0x0
lsl r1, r0, #0x10
lsr r1, r1, #0x1f
cmp r1, #0x3
bhi _02001868
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #0x6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02001822: ; jump table (using 16-bit offset)
.short _0200182A - _02001822 - 2; case 0
.short _02001868 - _02001822 - 2; case 1
.short _02001868 - _02001822 - 2; case 2
.short _02001868 - _02001822 - 2; case 3
_0200182A:
lsl r0, r0, #0x11
lsr r0, r0, #0x1a
lsl r0, r0, #0x18
lsr r0, r0, #0x18
mov r1, #0x1
bl FUN_02002E4C
ldrh r1, [r4, #0x1a]
lsl r1, r1, #0x19
lsr r1, r1, #0x1c
add r0, r1, r0
lsl r0, r0, #0x18
lsr r3, r0, #0x18
mov r0, #0x8
str r0, [sp, #0x0]
mov r0, #0x10
str r0, [sp, #0x4]
ldrb r1, [r4, #0x18]
ldr r0, [r4, #0xc]
ldrb r2, [r4, #0x16]
ldrb r4, [r4, #0x17]
lsl r1, r1, #0x1c
mul r3, r5
lsl r4, r4, #0x1c
lsr r4, r4, #0x1c
add r3, r4, r3
lsl r3, r3, #0x10
lsr r1, r1, #0x1c
lsr r3, r3, #0x10
bl FUN_020196F4
_02001868:
add sp, #0x8
pop {r3-r5, pc}
thumb_func_start FUN_0200186C
FUN_0200186C: ; 0x0200186C
push {r4-r7}
ldrh r4, [r0, #0x2e]
ldrh r3, [r0, #0x2c]
cmp r1, #0x0
ldrh r2, [r0, #0x12]
bne _020018FE
cmp r2, #0x1
bne _02001880
mov r1, #0x0
b _02001898
_02001880:
lsr r7, r2, #0x1f
lsl r6, r2, #0x1f
sub r6, r6, r7
mov r5, #0x1f
ror r6, r5
lsr r1, r2, #0x1
add r5, r7, r6
add r1, r1, r5
sub r1, r2, r1
sub r1, r1, #0x1
lsl r1, r1, #0x10
lsr r1, r1, #0x10
_02001898:
cmp r3, #0x0
bne _020018CC
cmp r4, #0x0
beq _020018C6
ldr r2, [r0, #0x0]
lsl r1, r3, #0x3
mov r3, #0x2
add r1, r2, r1
mvn r3, r3
_020018AA:
sub r2, r4, #0x1
lsl r2, r2, #0x10
lsr r4, r2, #0x10
lsl r2, r4, #0x3
add r2, r1, r2
ldr r2, [r2, #0x4]
cmp r2, r3
beq _020018C2
strh r4, [r0, #0x2e]
mov r0, #0x1
pop {r4-r7}
bx lr
_020018C2:
cmp r4, #0x0
bne _020018AA
_020018C6:
mov r0, #0x0
pop {r4-r7}
bx lr
_020018CC:
cmp r4, r1
bls _020018F6
ldr r5, [r0, #0x0]
lsl r2, r3, #0x3
add r2, r5, r2
mov r5, #0x2
mvn r5, r5
_020018DA:
sub r4, r4, #0x1
lsl r4, r4, #0x10
lsr r4, r4, #0x10
lsl r6, r4, #0x3
add r6, r2, r6
ldr r6, [r6, #0x4]
cmp r6, r5
beq _020018F2
strh r4, [r0, #0x2e]
mov r0, #0x1
pop {r4-r7}
bx lr
_020018F2:
cmp r4, r1
bhi _020018DA
_020018F6:
strh r1, [r0, #0x2e]
sub r1, r3, #0x1
strh r1, [r0, #0x2c]
b _02001984
_020018FE:
cmp r2, #0x1
bne _02001906
mov r5, #0x0
b _0200191A
_02001906:
lsr r7, r2, #0x1f
lsl r6, r2, #0x1f
sub r6, r6, r7
mov r5, #0x1f
ror r6, r5
lsr r1, r2, #0x1
add r5, r7, r6
add r1, r1, r5
lsl r1, r1, #0x10
lsr r5, r1, #0x10
_0200191A:
ldrh r1, [r0, #0x10]
sub r1, r1, r2
cmp r3, r1
bne _02001954
sub r2, r2, #0x1
cmp r4, r2
bge _0200194E
ldr r5, [r0, #0x0]
lsl r1, r3, #0x3
add r1, r5, r1
mov r5, #0x2
mvn r5, r5
_02001932:
add r3, r4, #0x1
lsl r3, r3, #0x10
lsr r4, r3, #0x10
lsl r3, r4, #0x3
add r3, r1, r3
ldr r3, [r3, #0x4]
cmp r3, r5
beq _0200194A
strh r4, [r0, #0x2e]
mov r0, #0x1
pop {r4-r7}
bx lr
_0200194A:
cmp r4, r2
blt _02001932
_0200194E:
mov r0, #0x0
pop {r4-r7}
bx lr
_02001954:
cmp r4, r5
bhs _0200197E
ldr r2, [r0, #0x0]
lsl r1, r3, #0x3
mov r6, #0x2
add r1, r2, r1
mvn r6, r6
_02001962:
add r2, r4, #0x1
lsl r2, r2, #0x10
lsr r4, r2, #0x10
lsl r2, r4, #0x3
add r2, r1, r2
ldr r2, [r2, #0x4]
cmp r2, r6
beq _0200197A
strh r4, [r0, #0x2e]
mov r0, #0x1
pop {r4-r7}
bx lr
_0200197A:
cmp r4, r5
blo _02001962
_0200197E:
strh r5, [r0, #0x2e]
add r1, r3, #0x1
strh r1, [r0, #0x2c]
_02001984:
mov r0, #0x2
pop {r4-r7}
bx lr
.balign 4
thumb_func_start FUN_0200198C
FUN_0200198C: ; 0x0200198C
push {r3-r7, lr}
sub sp, #0x8
add r5, r0, #0x0
ldrh r0, [r5, #0x12]
add r4, r1, #0x0
add r7, r2, #0x0
cmp r4, r0
blt _020019B8
ldrb r1, [r5, #0x18]
ldr r0, [r5, #0xc]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
bl FUN_02019620
ldrh r1, [r5, #0x2c]
ldrh r3, [r5, #0x12]
add r0, r5, #0x0
mov r2, #0x0
bl FUN_02001714
add sp, #0x8
pop {r3-r7, pc}
_020019B8:
ldrh r0, [r5, #0x1a]
mov r1, #0x1
lsl r0, r0, #0x11
lsr r0, r0, #0x1a
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bl FUN_02002E4C
ldrh r1, [r5, #0x1a]
lsl r1, r1, #0x19
lsr r1, r1, #0x1c
add r0, r1, r0
lsl r0, r0, #0x18
lsr r6, r0, #0x18
cmp r7, #0x0
ldrb r0, [r5, #0x18]
bne _02001A46
lsl r0, r0, #0x1c
lsr r7, r0, #0x1c
add r2, r4, #0x0
lsl r3, r7, #0x4
mul r2, r6
orr r3, r7
lsl r2, r2, #0x18
lsl r3, r3, #0x18
ldr r0, [r5, #0xc]
mov r1, #0x1
lsr r2, r2, #0x18
lsr r3, r3, #0x18
bl FUN_0201A8C8
ldrh r1, [r5, #0x2c]
add r0, r5, #0x0
mov r2, #0x0
add r3, r4, #0x0
bl FUN_02001714
ldrb r0, [r5, #0x17]
lsl r0, r0, #0x1c
lsr r2, r0, #0x1c
ldrh r0, [r5, #0x12]
add r1, r0, #0x0
mul r1, r6
add r0, r2, r1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
ldr r0, [r5, #0xc]
bl FUN_0201AB0C
add r6, r0, #0x0
ldr r0, [r5, #0xc]
bl FUN_0201AB10
lsl r0, r0, #0x3
lsl r1, r6, #0x13
sub r0, r0, r4
lsr r1, r1, #0x10
lsl r0, r0, #0x10
str r1, [sp, #0x0]
lsr r0, r0, #0x10
str r0, [sp, #0x4]
ldrb r1, [r5, #0x18]
ldr r0, [r5, #0xc]
mov r2, #0x0
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
add r3, r4, #0x0
bl FUN_020196F4
add sp, #0x8
pop {r3-r7, pc}
_02001A46:
lsl r0, r0, #0x1c
lsr r3, r0, #0x1c
add r2, r4, #0x0
mul r2, r6
lsl r6, r3, #0x4
orr r3, r6
lsl r2, r2, #0x18
lsl r3, r3, #0x18
ldr r0, [r5, #0xc]
mov r1, #0x0
lsr r2, r2, #0x18
lsr r3, r3, #0x18
bl FUN_0201A8C8
ldrh r0, [r5, #0x12]
ldrh r1, [r5, #0x2c]
add r3, r4, #0x0
sub r2, r0, r4
add r1, r1, r2
lsl r1, r1, #0x10
lsl r2, r2, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
lsr r2, r2, #0x10
bl FUN_02001714
ldr r0, [r5, #0xc]
bl FUN_0201AB0C
lsl r0, r0, #0x13
lsr r0, r0, #0x10
str r0, [sp, #0x0]
ldrb r0, [r5, #0x17]
mov r2, #0x0
add r3, r2, #0x0
lsl r0, r0, #0x1c
lsr r0, r0, #0x1c
str r0, [sp, #0x4]
ldrb r1, [r5, #0x18]
ldr r0, [r5, #0xc]
lsl r1, r1, #0x1c
lsr r1, r1, #0x1c
bl FUN_020196F4
add sp, #0x8
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_02001AA4
FUN_02001AA4: ; 0x02001AA4
push {r3-r7, lr}
sub sp, #0x10
str r1, [sp, #0x0]
str r2, [sp, #0x4]
add r4, r0, #0x0
str r3, [sp, #0x8]
ldrh r0, [r4, #0x2e]
mov r6, #0x0
add r5, r6, #0x0
str r0, [sp, #0xc]
ldr r0, [sp, #0x4]
add r7, r6, #0x0
cmp r0, #0x0
bls _02001AF6
_02001AC0:
ldr r1, [sp, #0x8]
add r0, r4, #0x0
bl FUN_0200186C
orr r5, r0
cmp r0, #0x2
bne _02001AEA
add r0, r6, #0x1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldrh r1, [r4, #0x2c]
ldrh r0, [r4, #0x2e]
ldr r2, [r4, #0x0]
add r0, r1, r0
lsl r0, r0, #0x3
add r0, r2, r0
ldr r1, [r0, #0x4]
mov r0, #0x2
mvn r0, r0
cmp r1, r0
beq _02001AC0
_02001AEA:
add r0, r7, #0x1
lsl r0, r0, #0x18
lsr r7, r0, #0x18
ldr r0, [sp, #0x4]
cmp r7, r0
blo _02001AC0
_02001AF6:
ldr r0, [sp, #0x0]
cmp r0, #0x0
beq _02001B5E
cmp r5, #0x3
bhi _02001B14
add r0, r5, r5
add r0, pc
ldrh r0, [r0, #0x6]
lsl r0, r0, #0x10
asr r0, r0, #0x10
add pc, r0
_02001B0C: ; jump table (using 16-bit offset)
.short _02001B14 - _02001B0C - 2; case 0
.short _02001B1A - _02001B0C - 2; case 1
.short _02001B38 - _02001B0C - 2; case 2
.short _02001B38 - _02001B0C - 2; case 3
_02001B14:
add sp, #0x10
mov r0, #0x1
pop {r3-r7, pc}
_02001B1A:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
bl FUN_02001804
add r0, r4, #0x0
bl FUN_020017AC
add r0, r4, #0x0
mov r1, #0x0
bl FUN_02001B64
ldr r0, [r4, #0xc]
bl FUN_020191D0
b _02001B5E
_02001B38:
ldr r1, [sp, #0xc]
add r0, r4, #0x0
bl FUN_02001804
ldr r2, [sp, #0x8]
add r0, r4, #0x0
add r1, r6, #0x0
bl FUN_0200198C
add r0, r4, #0x0
bl FUN_020017AC
add r0, r4, #0x0
mov r1, #0x0
bl FUN_02001B64
ldr r0, [r4, #0xc]
bl FUN_020191D0
_02001B5E:
mov r0, #0x0
add sp, #0x10
pop {r3-r7, pc}
thumb_func_start FUN_02001B64
FUN_02001B64: ; 0x02001B64
push {r3-r5, lr}
ldr r3, [r0, #0x4]
add r2, r1, #0x0
cmp r3, #0x0
beq _02001B7E
ldrh r5, [r0, #0x2c]
ldrh r4, [r0, #0x2e]
ldr r1, [r0, #0x0]
add r4, r5, r4
lsl r4, r4, #0x3
add r1, r1, r4
ldr r1, [r1, #0x4]
blx r3
_02001B7E:
pop {r3-r5, pc}
thumb_func_start FUN_02001B80
FUN_02001B80: ; 0x02001B80
ldr r3, _02001B88 ; =FUN_020191D0
ldr r0, [r0, #0xc]
bx r3
nop
_02001B88: .word FUN_020191D0
thumb_func_start FUN_02001B8C
FUN_02001B8C: ; 0x02001B8C
push {r3-r7, lr}
sub sp, #0x8
add r5, r0, #0x0
str r3, [sp, #0x0]
add r0, sp, #0x10
ldrb r0, [r0, #0x10]
add r6, r1, #0x0
mov r1, #0x20
add r7, r2, #0x0
str r0, [sp, #0x4]
bl FUN_02016998
add r4, r0, #0x0
add r3, r5, #0x0
ldmia r3!, {r0-r1}
add r2, r4, #0x0
stmia r2!, {r0-r1}
ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
ldr r0, [sp, #0x4]
bl FUN_02013690
str r0, [r4, #0xc]
ldr r0, [sp, #0x24]
str r0, [r4, #0x10]
ldr r0, [sp, #0x0]
strb r0, [r4, #0x15]
add r0, r4, #0x0
bl FUN_02001FB4
strb r0, [r4, #0x16]
add r0, sp, #0x10
ldrb r0, [r0, #0x10]
mov r1, #0x0
strb r0, [r4, #0x1c]
strb r6, [r4, #0x17]
strb r7, [r4, #0x18]
ldrb r0, [r5, #0x8]
bl FUN_02002E4C
add r6, r0, #0x0
ldrb r0, [r5, #0x8]
mov r1, #0x2
bl FUN_02002E4C
add r0, r6, r0
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x8]
mov r1, #0x1
bl FUN_02002E4C
add r6, r0, #0x0
ldrb r0, [r5, #0x8]
mov r1, #0x3
bl FUN_02002E4C
add r0, r6, r0
strb r0, [r4, #0x1a]
add r0, r4, #0x0
bl FUN_02001FF4
add r0, r4, #0x0
bl FUN_02002080
add r0, r4, #0x0
add sp, #0x8
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_02001C14
FUN_02001C14: ; 0x02001C14
push {r4, lr}
sub sp, #0x8
add r4, sp, #0x0
ldrb r4, [r4, #0x10]
str r4, [sp, #0x0]
ldr r4, [sp, #0x14]
str r4, [sp, #0x4]
bl FUN_02001B8C
add r4, r0, #0x0
ldr r0, [r4, #0x4]
bl FUN_020191D0
add r0, r4, #0x0
add sp, #0x8
pop {r4, pc}
thumb_func_start FUN_02001C34
FUN_02001C34: ; 0x02001C34
push {r4-r6, lr}
sub sp, #0x8
add r5, r0, #0x0
ldrb r0, [r5, #0x8]
add r6, r1, #0x0
add r4, r2, #0x0
mov r1, #0x0
bl FUN_02002E4C
add r1, r0, #0x0
str r4, [sp, #0x0]
mov r0, #0x2
str r0, [sp, #0x4]
add r0, r5, #0x0
mov r2, #0x0
add r3, r6, #0x0
bl FUN_02001C14
add sp, #0x8
pop {r4-r6, pc}
thumb_func_start FUN_02001C5C
FUN_02001C5C: ; 0x02001C5C
push {r4, lr}
add r4, r0, #0x0
cmp r1, #0x0
beq _02001C68
ldrb r0, [r4, #0x15]
strb r0, [r1, #0x0]
_02001C68:
ldr r0, [r4, #0xc]
bl FUN_020136C0
ldrb r0, [r4, #0x1c]
add r1, r4, #0x0
bl FUN_02016A8C
pop {r4, pc}
thumb_func_start FUN_02001C78
FUN_02001C78: ; 0x02001C78
push {r3-r5, lr}
add r4, r0, #0x0
mov r1, #0x0
ldr r2, _02001D24 ; =0x021C48B8
strb r1, [r4, #0x1b]
ldr r2, [r2, #0x48]
mov r5, #0x1
add r3, r2, #0x0
tst r3, r5
beq _02001C9E
ldr r0, _02001D28 ; =0x000005DC
bl FUN_020054C8
ldrb r0, [r4, #0x15]
ldr r1, [r4, #0x0]
lsl r0, r0, #0x3
add r0, r1, r0
ldr r0, [r0, #0x4]
pop {r3-r5, pc}
_02001C9E:
ldr r3, [r4, #0x10]
tst r3, r2
beq _02001CAE
ldr r0, _02001D28 ; =0x000005DC
bl FUN_020054C8
sub r0, r5, #0x3
pop {r3-r5, pc}
_02001CAE:
mov r3, #0x40
tst r3, r2
beq _02001CC8
ldr r2, _02001D28 ; =0x000005DC
bl FUN_02001E64
cmp r0, #0x1
bne _02001CC2
add r0, r5, #0x0
strb r0, [r4, #0x1b]
_02001CC2:
mov r0, #0x0
mvn r0, r0
pop {r3-r5, pc}
_02001CC8:
mov r1, #0x80
tst r1, r2
beq _02001CE4
ldr r2, _02001D28 ; =0x000005DC
add r1, r5, #0x0
bl FUN_02001E64
cmp r0, #0x1
bne _02001CDE
mov r0, #0x2
strb r0, [r4, #0x1b]
_02001CDE:
mov r0, #0x0
mvn r0, r0
pop {r3-r5, pc}
_02001CE4:
mov r1, #0x20
tst r1, r2
beq _02001D00
ldr r2, _02001D28 ; =0x000005DC
mov r1, #0x2
bl FUN_02001E64
cmp r0, #0x1
bne _02001CFA
mov r0, #0x3
strb r0, [r4, #0x1b]
_02001CFA:
mov r0, #0x0
mvn r0, r0
pop {r3-r5, pc}
_02001D00:
mov r1, #0x10
tst r2, r1
beq _02001D1C
ldr r2, _02001D28 ; =0x000005DC
mov r1, #0x3
bl FUN_02001E64
cmp r0, #0x1
bne _02001D16
mov r0, #0x4
strb r0, [r4, #0x1b]
_02001D16:
mov r0, #0x0
mvn r0, r0
pop {r3-r5, pc}
_02001D1C:
sub r1, #0x11
add r0, r1, #0x0
pop {r3-r5, pc}
nop
_02001D24: .word 0x021C48B8
_02001D28: .word 0x000005DC
thumb_func_start FUN_02001D2C
FUN_02001D2C: ; 0x02001D2C
push {r4-r6, lr}
add r2, r1, #0x0
add r4, r0, #0x0
mov r1, #0x0
ldr r3, _02001DD4 ; =0x021C48B8
strb r1, [r4, #0x1b]
ldr r5, [r3, #0x48]
mov r3, #0x1
add r6, r5, #0x0
tst r6, r3
beq _02001D54
ldr r0, _02001DD8 ; =0x000005DC
bl FUN_020054C8
ldrb r0, [r4, #0x15]
ldr r1, [r4, #0x0]
lsl r0, r0, #0x3
add r0, r1, r0
ldr r0, [r0, #0x4]
pop {r4-r6, pc}
_02001D54:
ldr r6, [r4, #0x10]
tst r6, r5
beq _02001D66
ldr r0, _02001DD8 ; =0x000005DC
bl FUN_020054C8
mov r0, #0x1
mvn r0, r0
pop {r4-r6, pc}
_02001D66:
mov r6, #0x40
tst r6, r5
beq _02001D7E
bl FUN_02001E64
cmp r0, #0x1
bne _02001D78
mov r0, #0x1
strb r0, [r4, #0x1b]
_02001D78:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_02001D7E:
mov r1, #0x80
tst r1, r5
beq _02001D98
add r1, r3, #0x0
bl FUN_02001E64
cmp r0, #0x1
bne _02001D92
mov r0, #0x2
strb r0, [r4, #0x1b]
_02001D92:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_02001D98:
mov r1, #0x20
tst r1, r5
beq _02001DB2
mov r1, #0x2
bl FUN_02001E64
cmp r0, #0x1
bne _02001DAC
mov r0, #0x3
strb r0, [r4, #0x1b]
_02001DAC:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_02001DB2:
mov r1, #0x10
add r3, r5, #0x0
tst r3, r1
beq _02001DCE
mov r1, #0x3
bl FUN_02001E64
cmp r0, #0x1
bne _02001DC8
mov r0, #0x4
strb r0, [r4, #0x1b]
_02001DC8:
mov r0, #0x0
mvn r0, r0
pop {r4-r6, pc}
_02001DCE:
sub r1, #0x11
add r0, r1, #0x0
pop {r4-r6, pc}
.balign 4
_02001DD4: .word 0x021C48B8
_02001DD8: .word 0x000005DC
thumb_func_start FUN_02001DDC
FUN_02001DDC: ; 0x02001DDC
push {r4, lr}
add r4, r0, #0x0
cmp r1, #0x5
bhi _02001E52
add r1, r1, r1
add r1, pc
ldrh r1, [r1, #0x6]
lsl r1, r1, #0x10
asr r1, r1, #0x10
add pc, r1
_02001DF0: ; jump table (using 16-bit offset)
.short _02001DFC - _02001DF0 - 2; case 0
.short _02001E0E - _02001DF0 - 2; case 1
.short _02001E1A - _02001DF0 - 2; case 2
.short _02001E28 - _02001DF0 - 2; case 3
.short _02001E36 - _02001DF0 - 2; case 4
.short _02001E44 - _02001DF0 - 2; case 5
_02001DFC:
ldr r0, _02001E58 ; =0x000005DC
bl FUN_020054C8
ldrb r0, [r4, #0x15]
ldr r1, [r4, #0x0]
lsl r0, r0, #0x3
add r0, r1, r0
ldr r0, [r0, #0x4]
pop {r4, pc}
_02001E0E:
ldr r0, _02001E58 ; =0x000005DC
bl FUN_020054C8
mov r0, #0x1
mvn r0, r0
pop {r4, pc}
_02001E1A:
ldr r2, _02001E58 ; =0x000005DC
mov r1, #0x0
bl FUN_02001E64
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
_02001E28:
ldr r2, _02001E58 ; =0x000005DC
mov r1, #0x1
bl FUN_02001E64
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
_02001E36:
ldr r2, _02001E58 ; =0x000005DC
mov r1, #0x2
bl FUN_02001E64
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
_02001E44:
ldr r2, _02001E58 ; =0x000005DC
mov r1, #0x3
bl FUN_02001E64
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
_02001E52:
mov r0, #0x0
mvn r0, r0
pop {r4, pc}
.balign 4
_02001E58: .word 0x000005DC
thumb_func_start FUN_02001E5C
FUN_02001E5C: ; 0x02001E5C
ldrb r0, [r0, #0x15]
bx lr
thumb_func_start FUN_02001E60
FUN_02001E60: ; 0x02001E60
ldrb r0, [r0, #0x1b]
bx lr
thumb_func_start FUN_02001E64
FUN_02001E64: ; 0x02001E64
push {r4-r7, lr}
sub sp, #0xc
add r5, r0, #0x0
add r6, r2, #0x0
ldrb r4, [r5, #0x15]
bl FUN_02001EBC
cmp r0, #0x0
bne _02001E7C
add sp, #0xc
mov r0, #0x0
pop {r4-r7, pc}
_02001E7C:
ldrb r0, [r5, #0x8]
mov r1, #0x6
bl FUN_02002E4C
add r1, sp, #0x8
add r7, r0, #0x0
add r0, r5, #0x0
add r1, #0x1
add r2, sp, #0x8
add r3, r4, #0x0
bl FUN_020020B0
mov r0, #0x8
str r0, [sp, #0x0]
ldrb r0, [r5, #0x1a]
add r3, sp, #0x8
add r1, r7, #0x0
str r0, [sp, #0x4]
ldrb r2, [r3, #0x1]
ldrb r3, [r3, #0x0]
ldr r0, [r5, #0x4]
bl FUN_020196F4
add r0, r5, #0x0
bl FUN_02002080
add r0, r6, #0x0
bl FUN_020054C8
mov r0, #0x1
add sp, #0xc
pop {r4-r7, pc}
thumb_func_start FUN_02001EBC
FUN_02001EBC: ; 0x02001EBC
push {r4-r6, lr}
add r5, r0, #0x0
cmp r1, #0x0
bne _02001EFA
ldrb r6, [r5, #0xa]
cmp r6, #0x1
bhi _02001ECE
mov r0, #0x0
pop {r4-r6, pc}
_02001ECE:
ldrb r4, [r5, #0x15]
add r1, r6, #0x0
add r0, r4, #0x0
blx _s32_div_f
cmp r1, #0x0
bne _02001EF2
ldrb r0, [r5, #0xb]
lsl r0, r0, #0x18
lsr r0, r0, #0x1e
bne _02001EE8
mov r0, #0x0
pop {r4-r6, pc}
_02001EE8:
sub r0, r6, #0x1
add r0, r4, r0
lsl r0, r0, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001EF2:
sub r0, r4, #0x1
lsl r0, r0, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001EFA:
cmp r1, #0x1
bne _02001F32
ldrb r1, [r5, #0xa]
cmp r1, #0x1
bhi _02001F08
mov r0, #0x0
pop {r4-r6, pc}
_02001F08:
ldrb r6, [r5, #0x15]
sub r4, r1, #0x1
add r0, r6, #0x0
blx _s32_div_f
cmp r4, r1
bne _02001F2A
ldrb r0, [r5, #0xb]
lsl r0, r0, #0x18
lsr r0, r0, #0x1e
bne _02001F22
mov r0, #0x0
pop {r4-r6, pc}
_02001F22:
sub r0, r6, r4
lsl r0, r0, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001F2A:
add r0, r6, #0x1
lsl r0, r0, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001F32:
cmp r1, #0x2
bne _02001F68
ldrb r3, [r5, #0x9]
cmp r3, #0x1
bhi _02001F40
mov r0, #0x0
pop {r4-r6, pc}
_02001F40:
ldrb r2, [r5, #0xa]
ldrb r1, [r5, #0x15]
cmp r1, r2
bhs _02001F60
ldrb r0, [r5, #0xb]
lsl r0, r0, #0x18
lsr r0, r0, #0x1e
bne _02001F54
mov r0, #0x0
pop {r4-r6, pc}
_02001F54:
sub r0, r3, #0x1
mul r0, r2
add r0, r1, r0
lsl r0, r0, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001F60:
sub r0, r1, r2
lsl r0, r0, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001F68:
ldrb r2, [r5, #0x9]
cmp r2, #0x1
bhi _02001F72
mov r0, #0x0
pop {r4-r6, pc}
_02001F72:
ldrb r1, [r5, #0xa]
ldrb r0, [r5, #0x15]
sub r2, r2, #0x1
mul r2, r1
cmp r0, r2
blt _02001F94
ldrb r2, [r5, #0xb]
lsl r2, r2, #0x18
lsr r2, r2, #0x1e
bne _02001F8A
mov r0, #0x0
pop {r4-r6, pc}
_02001F8A:
blx _s32_div_f
lsl r0, r1, #0x18
asr r2, r0, #0x18
b _02001F9A
_02001F94:
add r0, r0, r1
lsl r0, r0, #0x18
asr r2, r0, #0x18
_02001F9A:
ldr r1, [r5, #0x0]
lsl r0, r2, #0x3
add r0, r1, r0
ldr r1, [r0, #0x4]
mov r0, #0x2
mvn r0, r0
cmp r1, r0
bne _02001FAE
mov r0, #0x0
pop {r4-r6, pc}
_02001FAE:
strb r2, [r5, #0x15]
mov r0, #0x1
pop {r4-r6, pc}
thumb_func_start FUN_02001FB4
FUN_02001FB4: ; 0x02001FB4
push {r3-r7, lr}
add r5, r0, #0x0
ldrb r1, [r5, #0x9]
ldrb r0, [r5, #0xa]
mov r6, #0x0
add r4, r6, #0x0
mul r0, r1
cmp r0, #0x0
ble _02001FF0
add r7, r6, #0x0
_02001FC8:
ldr r2, [r5, #0x0]
lsl r1, r4, #0x3
ldr r1, [r2, r1]
ldrb r0, [r5, #0x8]
add r2, r7, #0x0
bl FUN_02002E14
lsl r0, r0, #0x18
lsr r0, r0, #0x18
cmp r6, r0
bhs _02001FE0
add r6, r0, #0x0
_02001FE0:
add r0, r4, #0x1
lsl r0, r0, #0x18
lsr r4, r0, #0x18
ldrb r1, [r5, #0x9]
ldrb r0, [r5, #0xa]
mul r0, r1
cmp r4, r0
blt _02001FC8
_02001FF0:
add r0, r6, #0x0
pop {r3-r7, pc}
thumb_func_start FUN_02001FF4
FUN_02001FF4: ; 0x02001FF4
push {r3-r7, lr}
sub sp, #0x10
add r5, r0, #0x0
ldrb r0, [r5, #0x8]
mov r1, #0x6
bl FUN_02002E4C
add r1, r0, #0x0
ldr r0, [r5, #0x4]
bl FUN_02019620
ldrb r0, [r5, #0x19]
ldrb r1, [r5, #0x16]
ldrb r7, [r5, #0x17]
lsl r0, r0, #0x1
add r0, r1, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0xc]
ldrb r0, [r5, #0x9]
mov r6, #0x0
cmp r0, #0x0
bls _0200207C
_02002022:
ldrb r2, [r5, #0xa]
mov r4, #0x0
cmp r2, #0x0
bls _02002068
_0200202A:
ldrb r3, [r5, #0xb]
mul r2, r6
ldrb r0, [r5, #0x1a]
lsl r3, r3, #0x1c
lsr r3, r3, #0x1c
add r0, r0, r3
ldrb r1, [r5, #0x18]
mul r0, r4
add r2, r4, r2
add r0, r1, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
mov r0, #0xff
str r0, [sp, #0x4]
mov r0, #0x0
str r0, [sp, #0x8]
ldr r3, [r5, #0x0]
lsl r2, r2, #0x3
ldr r2, [r3, r2]
ldrb r1, [r5, #0x8]
ldr r0, [r5, #0x4]
add r3, r7, #0x0
bl FUN_0201BD84
add r0, r4, #0x1
lsl r0, r0, #0x18
ldrb r2, [r5, #0xa]
lsr r4, r0, #0x18
cmp r4, r2
blo _0200202A
_02002068:
ldr r0, [sp, #0xc]
add r0, r7, r0
lsl r0, r0, #0x18
lsr r7, r0, #0x18
add r0, r6, #0x1
lsl r0, r0, #0x18
lsr r6, r0, #0x18
ldrb r0, [r5, #0x9]
cmp r6, r0
blo _02002022
_0200207C:
add sp, #0x10
pop {r3-r7, pc}
thumb_func_start FUN_02002080
FUN_02002080: ; 0x02002080
push {r3-r4, lr}
sub sp, #0x4
add r4, r0, #0x0
ldrb r1, [r4, #0xb]
lsl r1, r1, #0x1a
lsr r1, r1, #0x1e
cmp r1, #0x1
beq _020020AA
ldrb r3, [r4, #0x15]
add r1, sp, #0x0
add r1, #0x1
add r2, sp, #0x0
bl FUN_020020B0
add r3, sp, #0x0
ldrb r2, [r3, #0x1]
ldrb r3, [r3, #0x0]
ldr r0, [r4, #0xc]
ldr r1, [r4, #0x4]
bl FUN_020136F8
_020020AA:
add sp, #0x4
pop {r3-r4, pc}
.balign 4
thumb_func_start FUN_020020B0
FUN_020020B0: ; 0x020020B0
push {r3-r7, lr}
add r5, r0, #0x0
add r4, r1, #0x0
add r7, r3, #0x0
ldrb r1, [r5, #0xa]
add r0, r7, #0x0
add r6, r2, #0x0
blx _s32_div_f
ldrb r2, [r5, #0x19]
ldrb r1, [r5, #0x16]
lsl r2, r2, #0x1
add r1, r1, r2
mul r1, r0
strb r1, [r4, #0x0]
ldrb r1, [r5, #0xa]
add r0, r7, #0x0
blx _s32_div_f
ldrb r2, [r5, #0xb]
ldrb r3, [r5, #0x1a]
ldrb r0, [r5, #0x18]
lsl r2, r2, #0x1c
lsr r2, r2, #0x1c
add r2, r3, r2
mul r2, r1
add r0, r0, r2
strb r0, [r6, #0x0]
pop {r3-r7, pc}
.balign 4
thumb_func_start FUN_020020EC
FUN_020020EC: ; 0x020020EC
push {r3-r7, lr}
sub sp, #0x20
ldr r5, [sp, #0x3c]
str r2, [sp, #0xc]
add r7, r0, #0x0
str r1, [sp, #0x8]
str r3, [sp, #0x10]
ldr r2, _02002194 ; =0x00000141
mov r0, #0x1
mov r1, #0x1a
add r3, r5, #0x0
bl FUN_0200A86C
add r4, r0, #0x0
mov r0, #0x2
add r1, r5, #0x0
bl FUN_02012838
add r1, r4, #0x0
mov r2, #0x29
mov r3, #0x0
add r6, r0, #0x0
bl FUN_02012880
mov r3, #0x2a
add r2, r3, #0x0
add r0, r6, #0x0
add r1, r4, #0x0
sub r3, #0x2c
bl FUN_02012880
add r0, r4, #0x0
bl FUN_0200A8B8
add r0, r5, #0x0
mov r1, #0x1
str r6, [sp, #0x14]
bl FUN_02018FF4
add r1, r0, #0x0
str r1, [sp, #0x18]
mov r0, #0x0
add r3, sp, #0x14
strb r0, [r3, #0x8]
mov r0, #0x1
strb r0, [r3, #0x9]
mov r0, #0x2
strb r0, [r3, #0xa]
ldrb r0, [r3, #0xb]
mov r2, #0xf
bic r0, r2
strb r0, [r3, #0xb]
ldrb r4, [r3, #0xb]
mov r0, #0x30
bic r4, r0
strb r4, [r3, #0xb]
ldrb r0, [r3, #0xb]
bic r0, r2
strb r0, [r3, #0xb]
ldr r2, [sp, #0x8]
add r0, r7, #0x0
bl FUN_02019150
ldr r0, [sp, #0x18]
ldr r2, [sp, #0xc]
ldr r3, [sp, #0x10]
mov r1, #0x1
bl FUN_0200CCA4
lsl r0, r5, #0x18
lsr r0, r0, #0x18
str r0, [sp, #0x0]
mov r0, #0x2
str r0, [sp, #0x4]
add r3, sp, #0x28
ldrb r3, [r3, #0x10]
add r0, sp, #0x14
mov r1, #0x8
mov r2, #0x0
bl FUN_02001C14
add sp, #0x20
pop {r3-r7, pc}
nop
_02002194: .word 0x00000141
thumb_func_start FUN_02002198
FUN_02002198: ; 0x02002198
push {r4, lr}
sub sp, #0x8
mov r4, #0x0
str r4, [sp, #0x0]
ldr r4, [sp, #0x10]
str r4, [sp, #0x4]
bl FUN_020020EC
add sp, #0x8
pop {r4, pc}
thumb_func_start FUN_020021AC
FUN_020021AC: ; 0x020021AC
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r1, #0x0
bl FUN_02001C78
add r6, r0, #0x0
mov r0, #0x0
mvn r0, r0
cmp r6, r0
beq _020021C8
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020021EC
_020021C8:
add r0, r6, #0x0
pop {r4-r6, pc}
thumb_func_start FUN_020021CC
FUN_020021CC: ; 0x020021CC
push {r4-r6, lr}
add r5, r0, #0x0
add r4, r2, #0x0
bl FUN_02001DDC
add r6, r0, #0x0
mov r0, #0x0
mvn r0, r0
cmp r6, r0
beq _020021E8
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020021EC
_020021E8:
add r0, r6, #0x0
pop {r4-r6, pc}
thumb_func_start FUN_020021EC
FUN_020021EC: ; 0x020021EC
push {r3-r5, lr}
add r5, r0, #0x0
ldr r0, [r5, #0x4]
add r4, r1, #0x0
mov r1, #0x0
bl FUN_0200CCF8
ldr r0, [r5, #0x4]
bl FUN_02019178
ldr r1, [r5, #0x4]
add r0, r4, #0x0
bl FUN_02016A8C
ldr r0, [r5, #0x0]
bl FUN_02012870
add r0, r5, #0x0
mov r1, #0x0
bl FUN_02001C5C
pop {r3-r5, pc}
thumb_func_start FUN_02002218
FUN_02002218: ; 0x02002218
push {r4, lr}
sub sp, #0x18
mov r4, #0x8
lsl r1, r1, #0x10
str r4, [sp, #0x0]
mov r3, #0x10
str r3, [sp, #0x4]
lsr r1, r1, #0x10
str r1, [sp, #0x8]
lsl r1, r2, #0x10
lsr r1, r1, #0x10
str r1, [sp, #0xc]
str r4, [sp, #0x10]
ldr r1, _02002244 ; =0x020ECAC8
mov r2, #0x0
str r3, [sp, #0x14]
add r3, r2, #0x0
bl FUN_02019658
add sp, #0x18
pop {r4, pc}
nop
_02002244: .word 0x020ECAC8