mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-08 03:34:24 -05:00
2759 lines
48 KiB
ArmAsm
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
|