mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-22 01:54:50 -05:00
9072 lines
135 KiB
ArmAsm
9072 lines
135 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start memcpy
|
|
memcpy:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r5, 0
|
|
adds r3, r1, 0
|
|
cmp r2, 0xF
|
|
bls _080B2700
|
|
adds r0, r3, 0
|
|
orrs r0, r5
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B2700
|
|
adds r1, r5, 0
|
|
_080B26DA:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x10
|
|
cmp r2, 0xF
|
|
bhi _080B26DA
|
|
cmp r2, 0x3
|
|
bls _080B26FE
|
|
_080B26F4:
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x4
|
|
cmp r2, 0x3
|
|
bhi _080B26F4
|
|
_080B26FE:
|
|
adds r4, r1, 0
|
|
_080B2700:
|
|
subs r2, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080B271A
|
|
adds r1, r0, 0
|
|
_080B270C:
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, r1
|
|
bne _080B270C
|
|
_080B271A:
|
|
adds r0, r5, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end memcpy
|
|
|
|
thumb_func_start memset
|
|
memset:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r3, r5, 0
|
|
cmp r2, 0x3
|
|
bls _080B2766
|
|
movs r0, 0x3
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _080B2766
|
|
adds r1, r5, 0
|
|
movs r0, 0xFF
|
|
ands r4, r0
|
|
lsls r3, r4, 8
|
|
orrs r3, r4
|
|
lsls r0, r3, 16
|
|
orrs r3, r0
|
|
cmp r2, 0xF
|
|
bls _080B275A
|
|
_080B2746:
|
|
stm r1!, {r3}
|
|
stm r1!, {r3}
|
|
stm r1!, {r3}
|
|
stm r1!, {r3}
|
|
subs r2, 0x10
|
|
cmp r2, 0xF
|
|
bhi _080B2746
|
|
b _080B275A
|
|
_080B2756:
|
|
stm r1!, {r3}
|
|
subs r2, 0x4
|
|
_080B275A:
|
|
cmp r2, 0x3
|
|
bhi _080B2756
|
|
adds r3, r1, 0
|
|
b _080B2766
|
|
_080B2762:
|
|
strb r4, [r3]
|
|
adds r3, 0x1
|
|
_080B2766:
|
|
adds r0, r2, 0
|
|
subs r2, 0x1
|
|
cmp r0, 0
|
|
bne _080B2762
|
|
adds r0, r5, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end memset
|
|
|
|
thumb_func_start _sprintf_r
|
|
_sprintf_r:
|
|
push {r2,r3}
|
|
push {r4,r5,lr}
|
|
sub sp, 0x58
|
|
ldr r4, [sp, 0x64]
|
|
mov r3, sp
|
|
movs r5, 0
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
strh r2, [r3, 0xC]
|
|
str r1, [sp]
|
|
str r1, [sp, 0x10]
|
|
ldr r1, _080B27AC
|
|
str r1, [sp, 0x8]
|
|
str r1, [sp, 0x14]
|
|
str r0, [sp, 0x54]
|
|
add r2, sp, 0x68
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl vfprintf
|
|
ldr r1, [sp]
|
|
strb r5, [r1]
|
|
add sp, 0x58
|
|
pop {r4,r5}
|
|
pop {r3}
|
|
add sp, 0x8
|
|
bx r3
|
|
.align 2, 0
|
|
_080B27AC: .4byte 0x7fffffff
|
|
thumb_func_end _sprintf_r
|
|
|
|
thumb_func_start sprintf
|
|
sprintf:
|
|
push {r1-r3}
|
|
push {r4,lr}
|
|
sub sp, 0x58
|
|
ldr r1, [sp, 0x60]
|
|
mov r3, sp
|
|
movs r4, 0
|
|
movs r2, 0x82
|
|
lsls r2, 2
|
|
strh r2, [r3, 0xC]
|
|
str r0, [sp]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _080B27E8
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp, 0x14]
|
|
ldr r0, _080B27EC
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x54]
|
|
add r2, sp, 0x64
|
|
mov r0, sp
|
|
bl vfprintf
|
|
ldr r1, [sp]
|
|
strb r4, [r1]
|
|
add sp, 0x58
|
|
pop {r4}
|
|
pop {r3}
|
|
add sp, 0xC
|
|
bx r3
|
|
.align 2, 0
|
|
_080B27E8: .4byte 0x7fffffff
|
|
_080B27EC: .4byte gUnknown_203B7A8
|
|
thumb_func_end sprintf
|
|
|
|
thumb_func_start strcat
|
|
strcat:
|
|
push {r4-r6,lr}
|
|
adds r2, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
movs r0, 0x3
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _080B2826
|
|
ldr r1, [r4]
|
|
ldr r5, _080B280C
|
|
adds r0, r1, r5
|
|
bics r0, r1
|
|
ldr r3, _080B2810
|
|
b _080B281C
|
|
.align 2, 0
|
|
_080B280C: .4byte 0xfefefeff
|
|
_080B2810: .4byte 0x80808080
|
|
_080B2814:
|
|
adds r2, 0x4
|
|
ldr r1, [r2]
|
|
adds r0, r1, r5
|
|
bics r0, r1
|
|
_080B281C:
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080B2814
|
|
b _080B2826
|
|
_080B2824:
|
|
adds r2, 0x1
|
|
_080B2826:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _080B2824
|
|
adds r0, r2, 0
|
|
adds r1, r6, 0
|
|
bl strcpy
|
|
adds r0, r4, 0
|
|
pop {r4-r6,pc}
|
|
thumb_func_end strcat
|
|
|
|
thumb_func_start strcmp
|
|
strcmp:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
orrs r0, r3
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B287E
|
|
ldr r1, [r2]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bne _080B287E
|
|
ldr r5, _080B2864
|
|
ldr r4, _080B2868
|
|
_080B2854:
|
|
ldr r1, [r2]
|
|
adds r0, r1, r5
|
|
bics r0, r1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B286C
|
|
movs r0, 0
|
|
b _080B2890
|
|
.align 2, 0
|
|
_080B2864: .4byte 0xfefefeff
|
|
_080B2868: .4byte 0x80808080
|
|
_080B286C:
|
|
adds r2, 0x4
|
|
adds r3, 0x4
|
|
ldr r1, [r2]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
beq _080B2854
|
|
b _080B287E
|
|
_080B287A:
|
|
adds r2, 0x1
|
|
adds r3, 0x1
|
|
_080B287E:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080B288A
|
|
ldrb r1, [r3]
|
|
cmp r0, r1
|
|
beq _080B287A
|
|
_080B288A:
|
|
ldrb r2, [r2]
|
|
ldrb r3, [r3]
|
|
subs r0, r2, r3
|
|
_080B2890:
|
|
pop {r4,r5,pc}
|
|
thumb_func_end strcmp
|
|
|
|
thumb_func_start strcpy
|
|
strcpy:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r3, r6, 0
|
|
adds r2, r1, 0
|
|
adds r0, r2, 0
|
|
orrs r0, r6
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B28CC
|
|
ldr r1, [r2]
|
|
ldr r5, _080B28B4
|
|
adds r0, r1, r5
|
|
bics r0, r1
|
|
ldr r4, _080B28B8
|
|
b _080B28C6
|
|
.align 2, 0
|
|
_080B28B4: .4byte 0xfefefeff
|
|
_080B28B8: .4byte 0x80808080
|
|
_080B28BC:
|
|
ldm r2!, {r0}
|
|
stm r3!, {r0}
|
|
ldr r1, [r2]
|
|
adds r0, r1, r5
|
|
bics r0, r1
|
|
_080B28C6:
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B28BC
|
|
_080B28CC:
|
|
ldrb r0, [r2]
|
|
strb r0, [r3]
|
|
lsls r0, 24
|
|
adds r2, 0x1
|
|
adds r3, 0x1
|
|
cmp r0, 0
|
|
bne _080B28CC
|
|
adds r0, r6, 0
|
|
pop {r4-r6,pc}
|
|
thumb_func_end strcpy
|
|
|
|
thumb_func_start strlen
|
|
strlen:
|
|
push {r4,r5,lr}
|
|
adds r1, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B2918
|
|
adds r2, r1, 0
|
|
ldr r1, [r2]
|
|
ldr r4, _080B28FC
|
|
adds r0, r1, r4
|
|
bics r0, r1
|
|
ldr r3, _080B2900
|
|
b _080B290C
|
|
.align 2, 0
|
|
_080B28FC: .4byte 0xfefefeff
|
|
_080B2900: .4byte 0x80808080
|
|
_080B2904:
|
|
adds r2, 0x4
|
|
ldr r1, [r2]
|
|
adds r0, r1, r4
|
|
bics r0, r1
|
|
_080B290C:
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080B2904
|
|
adds r1, r2, 0
|
|
b _080B2918
|
|
_080B2916:
|
|
adds r1, 0x1
|
|
_080B2918:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080B2916
|
|
subs r0, r1, r5
|
|
pop {r4,r5,pc}
|
|
thumb_func_end strlen
|
|
|
|
thumb_func_start strncpy
|
|
strncpy:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
adds r4, r7, 0
|
|
adds r3, r1, 0
|
|
adds r0, r3, 0
|
|
orrs r0, r7
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B2966
|
|
cmp r2, 0x3
|
|
bls _080B2966
|
|
ldr r1, [r3]
|
|
ldr r6, _080B2948
|
|
adds r0, r1, r6
|
|
bics r0, r1
|
|
ldr r5, _080B294C
|
|
b _080B2960
|
|
.align 2, 0
|
|
_080B2948: .4byte 0xfefefeff
|
|
_080B294C: .4byte 0x80808080
|
|
_080B2950:
|
|
subs r2, 0x4
|
|
ldm r3!, {r0}
|
|
stm r4!, {r0}
|
|
cmp r2, 0x3
|
|
bls _080B2966
|
|
ldr r1, [r3]
|
|
adds r0, r1, r6
|
|
bics r0, r1
|
|
_080B2960:
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080B2950
|
|
_080B2966:
|
|
cmp r2, 0
|
|
beq _080B297A
|
|
subs r2, 0x1
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
lsls r0, 24
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
cmp r0, 0
|
|
bne _080B2966
|
|
_080B297A:
|
|
adds r0, r2, 0
|
|
subs r2, 0x1
|
|
cmp r0, 0
|
|
beq _080B2990
|
|
movs r1, 0
|
|
_080B2984:
|
|
strb r1, [r4]
|
|
adds r4, 0x1
|
|
adds r0, r2, 0
|
|
subs r2, 0x1
|
|
cmp r0, 0
|
|
bne _080B2984
|
|
_080B2990:
|
|
adds r0, r7, 0
|
|
pop {r4-r7,pc}
|
|
thumb_func_end strncpy
|
|
|
|
thumb_func_start __sprint
|
|
__sprint:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
ldr r1, [r4, 0x8]
|
|
cmp r1, 0
|
|
beq _080B29AC
|
|
adds r1, r4, 0
|
|
bl sub_80B4EA4
|
|
movs r1, 0
|
|
str r1, [r4, 0x8]
|
|
str r1, [r4, 0x4]
|
|
b _080B29B0
|
|
_080B29AC:
|
|
str r1, [r4, 0x4]
|
|
movs r0, 0
|
|
_080B29B0:
|
|
pop {r4,pc}
|
|
thumb_func_end __sprint
|
|
|
|
thumb_func_start __sbprintf
|
|
__sbprintf:
|
|
push {r4,r5,lr}
|
|
ldr r4, _080B2A24
|
|
add sp, r4
|
|
adds r5, r0, 0
|
|
ldr r0, [r5, 0x54]
|
|
str r0, [sp, 0x54]
|
|
mov r3, sp
|
|
movs r0, 0x3
|
|
negs r0, r0
|
|
ldrh r4, [r5, 0xC]
|
|
ands r0, r4
|
|
movs r4, 0
|
|
strh r0, [r3, 0xC]
|
|
ldrh r0, [r5, 0xE]
|
|
strh r0, [r3, 0xE]
|
|
ldr r0, [r5, 0x1C]
|
|
str r0, [sp, 0x1C]
|
|
ldr r0, [r5, 0x24]
|
|
str r0, [sp, 0x24]
|
|
add r0, sp, 0x58
|
|
str r0, [sp]
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp, 0x14]
|
|
str r4, [sp, 0x18]
|
|
mov r0, sp
|
|
bl vfprintf
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
blt _080B2A04
|
|
mov r0, sp
|
|
bl sub_80B4A34
|
|
cmp r0, 0
|
|
beq _080B2A04
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
_080B2A04:
|
|
mov r1, sp
|
|
movs r0, 0x40
|
|
ldrh r1, [r1, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2A18
|
|
movs r0, 0x40
|
|
ldrh r1, [r5, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r5, 0xC]
|
|
_080B2A18:
|
|
adds r0, r4, 0
|
|
movs r3, 0x8B
|
|
lsls r3, 3
|
|
add sp, r3
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B2A24: .4byte 0xfffffba8
|
|
thumb_func_end __sbprintf
|
|
|
|
thumb_func_start vfprintf
|
|
vfprintf:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
ldr r0, [r4, 0x54]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl _vfprintf_r
|
|
pop {r4,r5,pc}
|
|
thumb_func_end vfprintf
|
|
|
|
thumb_func_start _vfprintf_r
|
|
_vfprintf_r:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _080B2AA4
|
|
add sp, r4
|
|
str r0, [sp, 0x1DC]
|
|
str r1, [sp, 0x1E0]
|
|
adds r4, r2, 0
|
|
mov r10, r3
|
|
bl sub_80B516C
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x1F8]
|
|
movs r1, 0
|
|
add r0, sp, 0x1D0
|
|
str r1, [r0]
|
|
ldr r1, [sp, 0x1E0]
|
|
ldr r0, [r1, 0x54]
|
|
cmp r0, 0
|
|
bne _080B2A6E
|
|
ldr r0, _080B2AA8
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x54]
|
|
_080B2A6E:
|
|
ldr r2, [sp, 0x1E0]
|
|
ldr r1, [r2, 0x54]
|
|
ldr r0, [r1, 0x38]
|
|
cmp r0, 0
|
|
bne _080B2A7E
|
|
adds r0, r1, 0
|
|
bl sub_80B4BC4
|
|
_080B2A7E:
|
|
movs r0, 0x8
|
|
ldr r1, [sp, 0x1E0]
|
|
ldrh r1, [r1, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2A92
|
|
ldr r2, [sp, 0x1E0]
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, 0
|
|
bne _080B2AAC
|
|
_080B2A92:
|
|
ldr r0, [sp, 0x1E0]
|
|
bl sub_80B3B34
|
|
cmp r0, 0
|
|
beq _080B2AAC
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl _080B398C
|
|
.align 2, 0
|
|
_080B2AA4: .4byte 0xfffffde0
|
|
_080B2AA8: .4byte gUnknown_203B7A8
|
|
_080B2AAC:
|
|
movs r0, 0x1A
|
|
ldr r1, [sp, 0x1E0]
|
|
ldrh r1, [r1, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0xA
|
|
bne _080B2AD0
|
|
ldr r2, [sp, 0x1E0]
|
|
movs r1, 0xE
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
blt _080B2AD0
|
|
adds r0, r2, 0
|
|
adds r1, r4, 0
|
|
mov r2, r10
|
|
bl __sbprintf
|
|
bl _080B398C
|
|
_080B2AD0:
|
|
str r4, [sp, 0x1E4]
|
|
add r1, sp, 0x1C
|
|
add r5, sp, 0x28
|
|
str r5, [sp, 0x1C]
|
|
movs r0, 0
|
|
str r0, [r1, 0x8]
|
|
str r0, [r1, 0x4]
|
|
movs r2, 0
|
|
str r2, [sp, 0x1F0]
|
|
mov r9, r1
|
|
movs r4, 0xE6
|
|
lsls r4, 1
|
|
add r4, sp
|
|
str r4, [sp, 0x214]
|
|
movs r0, 0xE8
|
|
lsls r0, 1
|
|
add r0, sp
|
|
str r0, [sp, 0x218]
|
|
_080B2AF4:
|
|
ldr r1, [sp, 0x1E4]
|
|
mov r8, r1
|
|
_080B2AF8:
|
|
ldr r0, _080B2BA4
|
|
ldr r0, [r0]
|
|
ldr r1, _080B2BA8
|
|
ldr r3, [r1]
|
|
ldr r2, [sp, 0x218]
|
|
str r2, [sp]
|
|
ldr r1, [sp, 0x214]
|
|
ldr r2, [sp, 0x1E4]
|
|
bl sub_80B5774
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080B2B26
|
|
ldr r0, [sp, 0x1E4]
|
|
adds r0, r4
|
|
str r0, [sp, 0x1E4]
|
|
add r0, sp, 0x1CC
|
|
ldr r0, [r0]
|
|
cmp r0, 0x25
|
|
bne _080B2AF8
|
|
ldr r1, [sp, 0x1E4]
|
|
subs r1, 0x1
|
|
str r1, [sp, 0x1E4]
|
|
_080B2B26:
|
|
ldr r2, [sp, 0x1E4]
|
|
mov r0, r8
|
|
subs r6, r2, r0
|
|
cmp r6, 0
|
|
beq _080B2B5E
|
|
str r0, [r5]
|
|
str r6, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r6
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B2B58
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B2B56
|
|
bl _080B3978
|
|
_080B2B56:
|
|
add r5, sp, 0x28
|
|
_080B2B58:
|
|
ldr r2, [sp, 0x1F0]
|
|
adds r2, r6
|
|
str r2, [sp, 0x1F0]
|
|
_080B2B5E:
|
|
cmp r4, 0
|
|
bgt _080B2B66
|
|
bl _080B3960
|
|
_080B2B66:
|
|
ldr r4, [sp, 0x1E4]
|
|
adds r4, 0x1
|
|
str r4, [sp, 0x1E4]
|
|
movs r0, 0
|
|
str r0, [sp, 0x1EC]
|
|
movs r1, 0
|
|
str r1, [sp, 0x208]
|
|
movs r2, 0
|
|
str r2, [sp, 0x1F4]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
ldr r0, _080B2BAC
|
|
add r0, sp
|
|
strb r2, [r0]
|
|
_080B2B82:
|
|
ldr r0, [sp, 0x1E4]
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x1E8]
|
|
ldr r1, [sp, 0x1E4]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x1E4]
|
|
_080B2B8E:
|
|
ldr r0, [sp, 0x1E8]
|
|
subs r0, 0x20
|
|
cmp r0, 0x58
|
|
bls _080B2B98
|
|
b _080B324A
|
|
_080B2B98:
|
|
lsls r0, 2
|
|
ldr r1, _080B2BB0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B2BA4: .4byte gUnknown_203B7A8
|
|
_080B2BA8: .4byte gUnknown_203B7AC
|
|
_080B2BAC: .4byte 0x000001c9
|
|
_080B2BB0: .4byte _080B2BB4
|
|
.align 2, 0
|
|
_080B2BB4:
|
|
.4byte _080B2D18
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B2D30
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B2D34
|
|
.4byte _080B2D4E
|
|
.4byte _080B324A
|
|
.4byte _080B2D4A
|
|
.4byte _080B2D5C
|
|
.4byte _080B324A
|
|
.4byte _080B2DBC
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B2DC0
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B2E2A
|
|
.4byte _080B2E7C
|
|
.4byte _080B324A
|
|
.4byte _080B2E7C
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B2DE4
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B3032
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B30CA
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B3106
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B2E18
|
|
.4byte _080B2E32
|
|
.4byte _080B2E7C
|
|
.4byte _080B2E7C
|
|
.4byte _080B2E7C
|
|
.4byte _080B2DE8
|
|
.4byte _080B2E32
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B2DEC
|
|
.4byte _080B324A
|
|
.4byte _080B2FEC
|
|
.4byte _080B303A
|
|
.4byte _080B3068
|
|
.4byte _080B2E0E
|
|
.4byte _080B324A
|
|
.4byte _080B3088
|
|
.4byte _080B324A
|
|
.4byte _080B30D2
|
|
.4byte _080B324A
|
|
.4byte _080B324A
|
|
.4byte _080B3110
|
|
_080B2D18:
|
|
ldr r1, _080B2D2C
|
|
add r1, sp
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080B2D24
|
|
b _080B2B82
|
|
_080B2D24:
|
|
movs r0, 0x20
|
|
strb r0, [r1]
|
|
b _080B2B82
|
|
.align 2, 0
|
|
_080B2D2C: .4byte 0x000001c9
|
|
_080B2D30:
|
|
movs r0, 0x1
|
|
b _080B2DFC
|
|
_080B2D34:
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x1F4]
|
|
cmp r0, 0
|
|
blt _080B2D46
|
|
b _080B2B82
|
|
_080B2D46:
|
|
negs r0, r0
|
|
str r0, [sp, 0x1F4]
|
|
_080B2D4A:
|
|
movs r0, 0x4
|
|
b _080B2E10
|
|
_080B2D4E:
|
|
ldr r1, _080B2D58
|
|
add r1, sp
|
|
movs r0, 0x2B
|
|
strb r0, [r1]
|
|
b _080B2B82
|
|
.align 2, 0
|
|
_080B2D58: .4byte 0x000001c9
|
|
_080B2D5C:
|
|
ldr r2, [sp, 0x1E4]
|
|
ldrb r2, [r2]
|
|
str r2, [sp, 0x1E8]
|
|
ldr r4, [sp, 0x1E4]
|
|
adds r4, 0x1
|
|
str r4, [sp, 0x1E4]
|
|
cmp r2, 0x2A
|
|
bne _080B2D86
|
|
movs r0, 0x4
|
|
add r10, r0
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r4, [r0]
|
|
adds r6, r4, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
blt _080B2D82
|
|
b _080B2B82
|
|
_080B2D82:
|
|
adds r6, r0, 0
|
|
b _080B2B82
|
|
_080B2D86:
|
|
movs r4, 0
|
|
ldr r0, [sp, 0x1E8]
|
|
b _080B2DA6
|
|
_080B2D8C:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 1
|
|
subs r0, 0x30
|
|
ldr r1, [sp, 0x1E8]
|
|
adds r4, r0, r1
|
|
ldr r2, [sp, 0x1E4]
|
|
ldrb r2, [r2]
|
|
str r2, [sp, 0x1E8]
|
|
ldr r0, [sp, 0x1E4]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x1E4]
|
|
adds r0, r2, 0
|
|
_080B2DA6:
|
|
subs r0, 0x30
|
|
cmp r0, 0x9
|
|
bls _080B2D8C
|
|
adds r6, r4, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
blt _080B2DB8
|
|
b _080B2B8E
|
|
_080B2DB8:
|
|
adds r6, r0, 0
|
|
b _080B2B8E
|
|
_080B2DBC:
|
|
movs r0, 0x80
|
|
b _080B2E10
|
|
_080B2DC0:
|
|
movs r4, 0
|
|
_080B2DC2:
|
|
lsls r0, r4, 2
|
|
adds r0, r4
|
|
lsls r0, 1
|
|
subs r0, 0x30
|
|
ldr r2, [sp, 0x1E8]
|
|
adds r4, r0, r2
|
|
ldr r0, [sp, 0x1E4]
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x1E8]
|
|
ldr r1, [sp, 0x1E4]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x1E4]
|
|
subs r0, 0x30
|
|
cmp r0, 0x9
|
|
bls _080B2DC2
|
|
str r4, [sp, 0x1F4]
|
|
b _080B2B8E
|
|
_080B2DE4:
|
|
movs r0, 0x8
|
|
b _080B2DFC
|
|
_080B2DE8:
|
|
movs r0, 0x40
|
|
b _080B2E06
|
|
_080B2DEC:
|
|
ldr r0, [sp, 0x1E4]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6C
|
|
bne _080B2E04
|
|
ldr r1, [sp, 0x1E4]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x1E4]
|
|
movs r0, 0x20
|
|
_080B2DFC:
|
|
ldr r2, [sp, 0x1EC]
|
|
orrs r2, r0
|
|
str r2, [sp, 0x1EC]
|
|
b _080B2B82
|
|
_080B2E04:
|
|
movs r0, 0x10
|
|
_080B2E06:
|
|
ldr r4, [sp, 0x1EC]
|
|
orrs r4, r0
|
|
str r4, [sp, 0x1EC]
|
|
b _080B2B82
|
|
_080B2E0E:
|
|
movs r0, 0x20
|
|
_080B2E10:
|
|
ldr r1, [sp, 0x1EC]
|
|
orrs r1, r0
|
|
str r1, [sp, 0x1EC]
|
|
b _080B2B82
|
|
_080B2E18:
|
|
add r2, sp, 0x68
|
|
mov r8, r2
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
strb r0, [r2]
|
|
b _080B3258
|
|
_080B2E2A:
|
|
movs r0, 0x10
|
|
ldr r1, [sp, 0x1EC]
|
|
orrs r1, r0
|
|
str r1, [sp, 0x1EC]
|
|
_080B2E32:
|
|
movs r0, 0x10
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B2E42
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
b _080B2E5E
|
|
_080B2E42:
|
|
movs r0, 0x40
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2E5A
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
movs r1, 0
|
|
ldrsh r4, [r0, r1]
|
|
b _080B2E64
|
|
_080B2E5A:
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
_080B2E5E:
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r4, [r0]
|
|
_080B2E64:
|
|
cmp r4, 0
|
|
bge _080B2E72
|
|
negs r4, r4
|
|
ldr r1, _080B2E78
|
|
add r1, sp
|
|
movs r0, 0x2D
|
|
strb r0, [r1]
|
|
_080B2E72:
|
|
movs r2, 0x1
|
|
b _080B315E
|
|
.align 2, 0
|
|
_080B2E78: .4byte 0x000001c9
|
|
_080B2E7C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
bne _080B2E88
|
|
movs r6, 0x6
|
|
b _080B2E98
|
|
_080B2E88:
|
|
ldr r4, [sp, 0x1E8]
|
|
cmp r4, 0x67
|
|
beq _080B2E92
|
|
cmp r4, 0x47
|
|
bne _080B2E98
|
|
_080B2E92:
|
|
cmp r6, 0
|
|
bne _080B2E98
|
|
movs r6, 0x1
|
|
_080B2E98:
|
|
movs r0, 0x8
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
movs r2, 0x8
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x8
|
|
ldr r1, [r0]
|
|
ldr r2, [r0, 0x4]
|
|
str r1, [sp, 0x1FC]
|
|
str r2, [sp, 0x200]
|
|
ldr r0, [sp, 0x1FC]
|
|
ldr r1, [sp, 0x200]
|
|
bl sub_80B6180
|
|
cmp r0, 0
|
|
beq _080B2EEC
|
|
ldr r3, _080B2EE0
|
|
ldr r2, _080B2EDC
|
|
ldr r0, [sp, 0x1FC]
|
|
ldr r1, [sp, 0x200]
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B2ED2
|
|
ldr r1, _080B2EE4
|
|
add r1, sp
|
|
movs r0, 0x2D
|
|
strb r0, [r1]
|
|
_080B2ED2:
|
|
ldr r2, _080B2EE8
|
|
mov r8, r2
|
|
movs r3, 0x3
|
|
b _080B3262
|
|
.align 2, 0
|
|
_080B2EDC: .4byte 0x00000000
|
|
_080B2EE0: .4byte 0x00000000
|
|
_080B2EE4: .4byte 0x000001c9
|
|
_080B2EE8: .4byte gUnknown_826FE04
|
|
_080B2EEC:
|
|
ldr r0, [sp, 0x1FC]
|
|
ldr r1, [sp, 0x200]
|
|
bl sub_80B61A4
|
|
cmp r0, 0
|
|
beq _080B2F04
|
|
ldr r4, _080B2F00
|
|
mov r8, r4
|
|
movs r3, 0x3
|
|
b _080B3262
|
|
.align 2, 0
|
|
_080B2F00: .4byte gUnknown_826FE08
|
|
_080B2F04:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ldr r1, [sp, 0x1EC]
|
|
orrs r1, r0
|
|
str r1, [sp, 0x1EC]
|
|
str r1, [sp]
|
|
add r0, sp, 0x1C8
|
|
str r0, [sp, 0x4]
|
|
add r0, sp, 0x1D4
|
|
str r0, [sp, 0x8]
|
|
ldr r2, [sp, 0x1E8]
|
|
str r2, [sp, 0xC]
|
|
add r0, sp, 0x1D8
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [sp, 0x1DC]
|
|
ldr r1, [sp, 0x1FC]
|
|
ldr r2, [sp, 0x200]
|
|
adds r3, r6, 0
|
|
bl sub_80B399C
|
|
mov r8, r0
|
|
ldr r4, [sp, 0x1E8]
|
|
cmp r4, 0x67
|
|
beq _080B2F38
|
|
cmp r4, 0x47
|
|
bne _080B2F5A
|
|
_080B2F38:
|
|
add r0, sp, 0x1D4
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
ble _080B2F48
|
|
cmp r1, r6
|
|
ble _080B2F56
|
|
_080B2F48:
|
|
movs r0, 0x45
|
|
ldr r1, [sp, 0x1E8]
|
|
cmp r1, 0x67
|
|
bne _080B2F52
|
|
movs r0, 0x65
|
|
_080B2F52:
|
|
str r0, [sp, 0x1E8]
|
|
b _080B2F5A
|
|
_080B2F56:
|
|
movs r2, 0x67
|
|
str r2, [sp, 0x1E8]
|
|
_080B2F5A:
|
|
ldr r4, [sp, 0x1E8]
|
|
cmp r4, 0x65
|
|
bgt _080B2F80
|
|
add r0, sp, 0x1D4
|
|
ldr r1, [r0]
|
|
subs r1, 0x1
|
|
str r1, [r0]
|
|
add r0, sp, 0x14
|
|
ldr r2, [sp, 0x1E8]
|
|
bl sub_80B3A90
|
|
str r0, [sp, 0x204]
|
|
add r0, sp, 0x1D8
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x204]
|
|
adds r3, r1, r0
|
|
cmp r0, 0x1
|
|
bgt _080B2FC0
|
|
b _080B2FB6
|
|
_080B2F80:
|
|
ldr r4, [sp, 0x1E8]
|
|
cmp r4, 0x66
|
|
bne _080B2FA8
|
|
add r0, sp, 0x1D4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
ble _080B2FA4
|
|
adds r3, r0, 0
|
|
cmp r6, 0
|
|
bne _080B2F9E
|
|
movs r0, 0x1
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B2FD0
|
|
_080B2F9E:
|
|
adds r0, r3, 0x1
|
|
adds r3, r0, r6
|
|
b _080B2FD0
|
|
_080B2FA4:
|
|
adds r3, r6, 0x2
|
|
b _080B2FD0
|
|
_080B2FA8:
|
|
add r0, sp, 0x1D4
|
|
ldr r1, [r0]
|
|
add r0, sp, 0x1D8
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
blt _080B2FC4
|
|
adds r3, r1, 0
|
|
_080B2FB6:
|
|
movs r0, 0x1
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B2FD0
|
|
_080B2FC0:
|
|
adds r3, 0x1
|
|
b _080B2FD0
|
|
_080B2FC4:
|
|
cmp r1, 0
|
|
bgt _080B2FCE
|
|
adds r0, 0x2
|
|
subs r3, r0, r1
|
|
b _080B2FD0
|
|
_080B2FCE:
|
|
adds r3, r0, 0x1
|
|
_080B2FD0:
|
|
add r0, sp, 0x1C8
|
|
ldrb r0, [r0]
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
cmp r0, 0
|
|
bne _080B2FDE
|
|
b _080B3266
|
|
_080B2FDE:
|
|
ldr r1, _080B2FE8
|
|
add r1, sp
|
|
movs r0, 0x2D
|
|
strb r0, [r1]
|
|
b _080B3266
|
|
.align 2, 0
|
|
_080B2FE8: .4byte 0x000001c9
|
|
_080B2FEC:
|
|
movs r0, 0x10
|
|
ldr r4, [sp, 0x1EC]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B3006
|
|
movs r0, 0x4
|
|
add r10, r0
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
ldr r1, [sp, 0x1F0]
|
|
str r1, [r0]
|
|
b _080B2AF4
|
|
_080B3006:
|
|
movs r0, 0x40
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080B3022
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
add r1, sp, 0x1F0
|
|
ldrh r1, [r1]
|
|
strh r1, [r0]
|
|
b _080B2AF4
|
|
_080B3022:
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
ldr r4, [sp, 0x1F0]
|
|
str r4, [r0]
|
|
b _080B2AF4
|
|
_080B3032:
|
|
movs r0, 0x10
|
|
ldr r1, [sp, 0x1EC]
|
|
orrs r1, r0
|
|
str r1, [sp, 0x1EC]
|
|
_080B303A:
|
|
movs r0, 0x10
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080B305A
|
|
movs r0, 0x40
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B305A
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldrh r4, [r0]
|
|
b _080B3064
|
|
_080B305A:
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r4, [r0]
|
|
_080B3064:
|
|
movs r2, 0
|
|
b _080B3156
|
|
_080B3068:
|
|
movs r0, 0x4
|
|
add r10, r0
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r4, [r0]
|
|
movs r2, 0x2
|
|
ldr r1, _080B3084
|
|
str r1, [sp, 0x210]
|
|
ldr r0, [sp, 0x1EC]
|
|
orrs r0, r2
|
|
str r0, [sp, 0x1EC]
|
|
movs r1, 0x78
|
|
str r1, [sp, 0x1E8]
|
|
b _080B3156
|
|
.align 2, 0
|
|
_080B3084: .4byte gUnknown_826FE0C
|
|
_080B3088:
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bne _080B309C
|
|
ldr r4, _080B30BC
|
|
mov r8, r4
|
|
_080B309C:
|
|
cmp r6, 0
|
|
blt _080B30C0
|
|
mov r0, r8
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
bl sub_80B57A0
|
|
cmp r0, 0
|
|
beq _080B30B8
|
|
mov r1, r8
|
|
subs r3, r0, r1
|
|
cmp r3, r6
|
|
bgt _080B30B8
|
|
b _080B325A
|
|
_080B30B8:
|
|
adds r3, r6, 0
|
|
b _080B325A
|
|
.align 2, 0
|
|
_080B30BC: .4byte gUnknown_826FE20
|
|
_080B30C0:
|
|
mov r0, r8
|
|
bl strlen
|
|
adds r3, r0, 0
|
|
b _080B325A
|
|
_080B30CA:
|
|
movs r0, 0x10
|
|
ldr r2, [sp, 0x1EC]
|
|
orrs r2, r0
|
|
str r2, [sp, 0x1EC]
|
|
_080B30D2:
|
|
movs r0, 0x10
|
|
ldr r4, [sp, 0x1EC]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B30E2
|
|
movs r0, 0x4
|
|
add r10, r0
|
|
b _080B30FC
|
|
_080B30E2:
|
|
movs r0, 0x40
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B30F8
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldrh r4, [r0]
|
|
b _080B3102
|
|
_080B30F8:
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
_080B30FC:
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r4, [r0]
|
|
_080B3102:
|
|
movs r2, 0x1
|
|
b _080B3156
|
|
_080B3106:
|
|
ldr r0, _080B310C
|
|
str r0, [sp, 0x210]
|
|
b _080B3114
|
|
.align 2, 0
|
|
_080B310C: .4byte gUnknown_826FE28
|
|
_080B3110:
|
|
ldr r1, _080B3134
|
|
str r1, [sp, 0x210]
|
|
_080B3114:
|
|
movs r0, 0x10
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080B3138
|
|
movs r0, 0x40
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3138
|
|
movs r2, 0x4
|
|
add r10, r2
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldrh r4, [r0]
|
|
b _080B3142
|
|
.align 2, 0
|
|
_080B3134: .4byte gUnknown_826FE0C
|
|
_080B3138:
|
|
movs r4, 0x4
|
|
add r10, r4
|
|
mov r0, r10
|
|
subs r0, 0x4
|
|
ldr r4, [r0]
|
|
_080B3142:
|
|
movs r2, 0x2
|
|
movs r0, 0x1
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3156
|
|
cmp r4, 0
|
|
beq _080B3156
|
|
orrs r1, r2
|
|
str r1, [sp, 0x1EC]
|
|
_080B3156:
|
|
ldr r1, _080B31A0
|
|
add r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_080B315E:
|
|
str r6, [sp, 0x208]
|
|
cmp r6, 0
|
|
blt _080B316E
|
|
movs r0, 0x81
|
|
negs r0, r0
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r1, r0
|
|
str r1, [sp, 0x1EC]
|
|
_080B316E:
|
|
movs r0, 0xE2
|
|
lsls r0, 1
|
|
add r0, sp
|
|
mov r8, r0
|
|
cmp r4, 0
|
|
bne _080B3184
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
ldr r1, [sp, 0x208]
|
|
cmp r1, 0
|
|
beq _080B323C
|
|
_080B3184:
|
|
cmp r2, 0x1
|
|
beq _080B31E2
|
|
cmp r2, 0x1
|
|
bcc _080B31A8
|
|
cmp r2, 0x2
|
|
beq _080B321C
|
|
ldr r2, _080B31A4
|
|
mov r8, r2
|
|
mov r0, r8
|
|
bl strlen
|
|
adds r3, r0, 0
|
|
b _080B3262
|
|
.align 2, 0
|
|
_080B31A0: .4byte 0x000001c9
|
|
_080B31A4: .4byte gUnknown_826FE3C
|
|
_080B31A8:
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
movs r2, 0x7
|
|
_080B31AE:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r8, r0
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x30
|
|
mov r0, r8
|
|
strb r1, [r0]
|
|
lsrs r4, 3
|
|
cmp r4, 0
|
|
bne _080B31AE
|
|
movs r0, 0x1
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B323C
|
|
cmp r1, 0x30
|
|
beq _080B323C
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
add r8, r4
|
|
movs r0, 0x30
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
b _080B323C
|
|
_080B31E2:
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
cmp r4, 0x9
|
|
bls _080B320C
|
|
_080B31EA:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r8, r2
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __umodsi3
|
|
adds r0, 0x30
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl sub_80B688C
|
|
adds r4, r0, 0
|
|
cmp r4, 0x9
|
|
bhi _080B31EA
|
|
_080B320C:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r8, r2
|
|
adds r0, r4, 0
|
|
adds r0, 0x30
|
|
mov r4, r8
|
|
strb r0, [r4]
|
|
b _080B323C
|
|
_080B321C:
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
movs r1, 0xF
|
|
_080B3222:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r8, r0
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
ldr r2, [sp, 0x210]
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
lsrs r4, 4
|
|
cmp r4, 0
|
|
bne _080B3222
|
|
_080B323C:
|
|
add r4, sp, 0x14
|
|
mov r1, r8
|
|
subs r0, r4, r1
|
|
movs r2, 0xD8
|
|
lsls r2, 1
|
|
adds r3, r0, r2
|
|
b _080B3266
|
|
_080B324A:
|
|
ldr r4, [sp, 0x1E8]
|
|
cmp r4, 0
|
|
bne _080B3252
|
|
b _080B3960
|
|
_080B3252:
|
|
add r0, sp, 0x68
|
|
mov r8, r0
|
|
strb r4, [r0]
|
|
_080B3258:
|
|
movs r3, 0x1
|
|
_080B325A:
|
|
ldr r1, _080B3284
|
|
add r1, sp
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_080B3262:
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
_080B3266:
|
|
str r3, [sp, 0x20C]
|
|
ldr r2, [sp, 0x208]
|
|
cmp r3, r2
|
|
bge _080B3270
|
|
str r2, [sp, 0x20C]
|
|
_080B3270:
|
|
ldr r0, _080B3284
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080B3288
|
|
ldr r4, [sp, 0x20C]
|
|
adds r4, 0x1
|
|
str r4, [sp, 0x20C]
|
|
b _080B3298
|
|
.align 2, 0
|
|
_080B3284: .4byte 0x000001c9
|
|
_080B3288:
|
|
movs r0, 0x2
|
|
ldr r1, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3298
|
|
ldr r2, [sp, 0x20C]
|
|
adds r2, 0x2
|
|
str r2, [sp, 0x20C]
|
|
_080B3298:
|
|
movs r0, 0x84
|
|
ldr r4, [sp, 0x1EC]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _080B3318
|
|
ldr r0, [sp, 0x1F4]
|
|
ldr r1, [sp, 0x20C]
|
|
subs r4, r0, r1
|
|
cmp r4, 0
|
|
ble _080B3318
|
|
ldr r1, _080B3344
|
|
cmp r4, 0x10
|
|
ble _080B32EC
|
|
mov r6, r9
|
|
_080B32B4:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, r7, 0
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B32E2
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B32DE
|
|
b _080B3978
|
|
_080B32DE:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B3344
|
|
_080B32E2:
|
|
subs r4, 0x10
|
|
adds r7, r5, 0
|
|
adds r7, 0x8
|
|
cmp r4, 0x10
|
|
bgt _080B32B4
|
|
_080B32EC:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
str r0, [r2, 0x8]
|
|
adds r5, r7, 0
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3318
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B3316
|
|
b _080B3978
|
|
_080B3316:
|
|
add r5, sp, 0x28
|
|
_080B3318:
|
|
ldr r1, _080B3348
|
|
add r1, sp
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080B334C
|
|
str r1, [r5]
|
|
movs r0, 0x1
|
|
str r0, [r5, 0x4]
|
|
mov r4, r9
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B338C
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
b _080B337C
|
|
.align 2, 0
|
|
_080B3344: .4byte gUnknown_826FDE4
|
|
_080B3348: .4byte 0x000001c9
|
|
_080B334C:
|
|
movs r2, 0x2
|
|
ldr r0, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080B338C
|
|
add r1, sp, 0x1C4
|
|
movs r0, 0x30
|
|
strb r0, [r1]
|
|
add r0, sp, 0x1E8
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, 0x1]
|
|
str r1, [r5]
|
|
str r2, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, 0x2
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B338C
|
|
ldr r0, [sp, 0x1E0]
|
|
_080B337C:
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B338A
|
|
b _080B3978
|
|
_080B338A:
|
|
add r5, sp, 0x28
|
|
_080B338C:
|
|
movs r0, 0x84
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0x80
|
|
bne _080B3408
|
|
ldr r0, [sp, 0x1F4]
|
|
ldr r1, [sp, 0x20C]
|
|
subs r4, r0, r1
|
|
cmp r4, 0
|
|
ble _080B3408
|
|
ldr r1, _080B34A4
|
|
cmp r4, 0x10
|
|
ble _080B33DC
|
|
mov r6, r9
|
|
_080B33A8:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B33D6
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B33D2
|
|
b _080B3978
|
|
_080B33D2:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B34A4
|
|
_080B33D6:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B33A8
|
|
_080B33DC:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
str r0, [r2, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3408
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B3406
|
|
b _080B3978
|
|
_080B3406:
|
|
add r5, sp, 0x28
|
|
_080B3408:
|
|
ldr r0, [sp, 0x208]
|
|
subs r4, r0, r3
|
|
cmp r4, 0
|
|
ble _080B3476
|
|
ldr r1, _080B34A4
|
|
cmp r4, 0x10
|
|
ble _080B344C
|
|
mov r6, r9
|
|
_080B3418:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3446
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B3442
|
|
b _080B3978
|
|
_080B3442:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B34A4
|
|
_080B3446:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B3418
|
|
_080B344C:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r4
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3476
|
|
ldr r0, [sp, 0x1E0]
|
|
str r3, [sp, 0x21C]
|
|
bl __sprint
|
|
ldr r3, [sp, 0x21C]
|
|
cmp r0, 0
|
|
beq _080B3474
|
|
b _080B3978
|
|
_080B3474:
|
|
add r5, sp, 0x28
|
|
_080B3476:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ldr r2, [sp, 0x1EC]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080B34A8
|
|
mov r4, r8
|
|
str r4, [r5]
|
|
str r3, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r3
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
bgt _080B349E
|
|
b _080B38BE
|
|
_080B349E:
|
|
ldr r0, [sp, 0x1E0]
|
|
b _080B38B4
|
|
.align 2, 0
|
|
_080B34A4: .4byte gUnknown_826FDF4
|
|
_080B34A8:
|
|
ldr r2, [sp, 0x1E8]
|
|
cmp r2, 0x65
|
|
bgt _080B34B0
|
|
b _080B3794
|
|
_080B34B0:
|
|
ldr r3, _080B357C
|
|
ldr r2, _080B3578
|
|
ldr r0, [sp, 0x1FC]
|
|
ldr r1, [sp, 0x200]
|
|
bl __eqdf2
|
|
cmp r0, 0
|
|
bne _080B3588
|
|
ldr r0, _080B3580
|
|
str r0, [r5]
|
|
movs r6, 0x1
|
|
str r6, [r5, 0x4]
|
|
mov r4, r9
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B34EC
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B34EA
|
|
b _080B3978
|
|
_080B34EA:
|
|
add r5, sp, 0x28
|
|
_080B34EC:
|
|
add r0, sp, 0x1D4
|
|
ldr r1, [r0]
|
|
add r4, sp, 0x1D8
|
|
ldr r0, [r4]
|
|
cmp r1, r0
|
|
blt _080B3502
|
|
ldr r0, [sp, 0x1EC]
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _080B3502
|
|
b _080B38BE
|
|
_080B3502:
|
|
ldr r0, [sp, 0x1F8]
|
|
str r0, [r5]
|
|
str r6, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B352A
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3528
|
|
b _080B3978
|
|
_080B3528:
|
|
add r5, sp, 0x28
|
|
_080B352A:
|
|
ldr r0, [r4]
|
|
subs r4, r0, 0x1
|
|
cmp r4, 0
|
|
bgt _080B3534
|
|
b _080B38BE
|
|
_080B3534:
|
|
ldr r1, _080B3584
|
|
cmp r4, 0x10
|
|
ble _080B356C
|
|
mov r6, r9
|
|
_080B353C:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3566
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3562
|
|
b _080B3978
|
|
_080B3562:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B3584
|
|
_080B3566:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B353C
|
|
_080B356C:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
b _080B38A2
|
|
.align 2, 0
|
|
_080B3578: .4byte 0x00000000
|
|
_080B357C: .4byte 0x00000000
|
|
_080B3580: .4byte gUnknown_826FE58
|
|
_080B3584: .4byte gUnknown_826FDF4
|
|
_080B3588:
|
|
add r6, sp, 0x1D4
|
|
ldr r2, [r6]
|
|
cmp r2, 0
|
|
bgt _080B3670
|
|
ldr r0, _080B3668
|
|
str r0, [r5]
|
|
movs r4, 0x1
|
|
str r4, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B35BA
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B35B8
|
|
b _080B3978
|
|
_080B35B8:
|
|
add r5, sp, 0x28
|
|
_080B35BA:
|
|
ldr r2, [sp, 0x1F8]
|
|
str r2, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r4, r9
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B35E4
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B35E2
|
|
b _080B3978
|
|
_080B35E2:
|
|
add r5, sp, 0x28
|
|
_080B35E4:
|
|
ldr r0, [r6]
|
|
negs r4, r0
|
|
cmp r4, 0
|
|
ble _080B364A
|
|
ldr r1, _080B366C
|
|
cmp r4, 0x10
|
|
ble _080B3624
|
|
mov r6, r9
|
|
_080B35F4:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B361E
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B361A
|
|
b _080B3978
|
|
_080B361A:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B366C
|
|
_080B361E:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B35F4
|
|
_080B3624:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r4
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B364A
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3648
|
|
b _080B3978
|
|
_080B3648:
|
|
add r5, sp, 0x28
|
|
_080B364A:
|
|
mov r2, r8
|
|
str r2, [r5]
|
|
add r0, sp, 0x1D8
|
|
ldr r1, [r0]
|
|
str r1, [r5, 0x4]
|
|
mov r4, r9
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, r1
|
|
str r0, [r4, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x4]
|
|
b _080B38AC
|
|
.align 2, 0
|
|
_080B3668: .4byte gUnknown_826FE58
|
|
_080B366C: .4byte gUnknown_826FDF4
|
|
_080B3670:
|
|
add r4, sp, 0x1D8
|
|
ldr r1, [r4]
|
|
cmp r2, r1
|
|
blt _080B372C
|
|
mov r0, r8
|
|
str r0, [r5]
|
|
str r1, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r1
|
|
str r0, [r2, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B36A2
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B36A0
|
|
b _080B3978
|
|
_080B36A0:
|
|
add r5, sp, 0x28
|
|
_080B36A2:
|
|
ldr r1, [r6]
|
|
ldr r0, [r4]
|
|
subs r4, r1, r0
|
|
cmp r4, 0
|
|
ble _080B370A
|
|
ldr r1, _080B3724
|
|
cmp r4, 0x10
|
|
ble _080B36E4
|
|
mov r6, r9
|
|
_080B36B4:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B36DE
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B36DA
|
|
b _080B3978
|
|
_080B36DA:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B3724
|
|
_080B36DE:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B36B4
|
|
_080B36E4:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r4
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B370A
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3708
|
|
b _080B3978
|
|
_080B3708:
|
|
add r5, sp, 0x28
|
|
_080B370A:
|
|
movs r1, 0x1
|
|
ldr r0, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B3716
|
|
b _080B38BE
|
|
_080B3716:
|
|
ldr r0, _080B3728
|
|
str r0, [r5]
|
|
str r1, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
b _080B38A2
|
|
.align 2, 0
|
|
_080B3724: .4byte gUnknown_826FDF4
|
|
_080B3728: .4byte gUnknown_826FE5C
|
|
_080B372C:
|
|
mov r0, r8
|
|
str r0, [r5]
|
|
str r2, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r2
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3754
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3752
|
|
b _080B3978
|
|
_080B3752:
|
|
add r5, sp, 0x28
|
|
_080B3754:
|
|
ldr r0, [r6]
|
|
add r8, r0
|
|
ldr r0, _080B3790
|
|
str r0, [r5]
|
|
movs r0, 0x1
|
|
str r0, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3784
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3782
|
|
b _080B3978
|
|
_080B3782:
|
|
add r5, sp, 0x28
|
|
_080B3784:
|
|
mov r0, r8
|
|
str r0, [r5]
|
|
ldr r1, [r4]
|
|
ldr r0, [r6]
|
|
subs r1, r0
|
|
b _080B389A
|
|
.align 2, 0
|
|
_080B3790: .4byte gUnknown_826FE5C
|
|
_080B3794:
|
|
add r4, sp, 0x1D8
|
|
ldr r0, [r4]
|
|
cmp r0, 0x1
|
|
bgt _080B37A6
|
|
movs r1, 0x1
|
|
ldr r0, [sp, 0x1EC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B386C
|
|
_080B37A6:
|
|
add r1, sp, 0x1C4
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
movs r0, 0x2E
|
|
strb r0, [r1, 0x1]
|
|
str r1, [r5]
|
|
movs r0, 0x2
|
|
str r0, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, 0x2
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B37DE
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B37DC
|
|
b _080B3978
|
|
_080B37DC:
|
|
add r5, sp, 0x28
|
|
_080B37DE:
|
|
ldr r3, _080B3808
|
|
ldr r2, _080B3804
|
|
ldr r0, [sp, 0x1FC]
|
|
ldr r1, [sp, 0x200]
|
|
bl __nedf2
|
|
cmp r0, 0
|
|
beq _080B380C
|
|
mov r2, r8
|
|
str r2, [r5]
|
|
ldr r1, [r4]
|
|
subs r0, r1, 0x1
|
|
str r0, [r5, 0x4]
|
|
mov r4, r9
|
|
ldr r0, [r4, 0x8]
|
|
subs r0, 0x1
|
|
adds r0, r1
|
|
b _080B3878
|
|
.align 2, 0
|
|
_080B3804: .4byte 0x00000000
|
|
_080B3808: .4byte 0x00000000
|
|
_080B380C:
|
|
ldr r0, [r4]
|
|
subs r4, r0, 0x1
|
|
cmp r4, 0
|
|
ble _080B3894
|
|
ldr r1, _080B3868
|
|
cmp r4, 0x10
|
|
ble _080B384C
|
|
mov r6, r9
|
|
_080B381C:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3846
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
beq _080B3842
|
|
b _080B3978
|
|
_080B3842:
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B3868
|
|
_080B3846:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B381C
|
|
_080B384C:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r4
|
|
str r0, [r1, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3894
|
|
ldr r0, [sp, 0x1E0]
|
|
b _080B388A
|
|
.align 2, 0
|
|
_080B3868: .4byte gUnknown_826FDF4
|
|
_080B386C:
|
|
mov r2, r8
|
|
str r2, [r5]
|
|
str r1, [r5, 0x4]
|
|
mov r4, r9
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, 0x1
|
|
_080B3878:
|
|
str r0, [r4, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r4, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3894
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
_080B388A:
|
|
bl __sprint
|
|
cmp r0, 0
|
|
bne _080B3978
|
|
add r5, sp, 0x28
|
|
_080B3894:
|
|
add r0, sp, 0x14
|
|
str r0, [r5]
|
|
ldr r1, [sp, 0x204]
|
|
_080B389A:
|
|
str r1, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r1
|
|
_080B38A2:
|
|
str r0, [r2, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4]
|
|
_080B38AC:
|
|
cmp r0, 0x7
|
|
ble _080B38BE
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
_080B38B4:
|
|
bl __sprint
|
|
cmp r0, 0
|
|
bne _080B3978
|
|
add r5, sp, 0x28
|
|
_080B38BE:
|
|
movs r0, 0x4
|
|
ldr r4, [sp, 0x1EC]
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _080B392A
|
|
ldr r0, [sp, 0x1F4]
|
|
ldr r1, [sp, 0x20C]
|
|
subs r4, r0, r1
|
|
cmp r4, 0
|
|
ble _080B392A
|
|
ldr r1, _080B395C
|
|
cmp r4, 0x10
|
|
ble _080B3908
|
|
mov r6, r9
|
|
_080B38DA:
|
|
str r1, [r5]
|
|
movs r0, 0x10
|
|
str r0, [r5, 0x4]
|
|
ldr r0, [r6, 0x8]
|
|
adds r0, 0x10
|
|
str r0, [r6, 0x8]
|
|
adds r5, 0x8
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r6, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B3902
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
bne _080B3978
|
|
add r5, sp, 0x28
|
|
ldr r1, _080B395C
|
|
_080B3902:
|
|
subs r4, 0x10
|
|
cmp r4, 0x10
|
|
bgt _080B38DA
|
|
_080B3908:
|
|
str r1, [r5]
|
|
str r4, [r5, 0x4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
adds r0, r4
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0x7
|
|
ble _080B392A
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
bne _080B3978
|
|
_080B392A:
|
|
ldr r0, [sp, 0x20C]
|
|
ldr r4, [sp, 0x1F4]
|
|
cmp r0, r4
|
|
bge _080B3934
|
|
adds r0, r4, 0
|
|
_080B3934:
|
|
ldr r1, [sp, 0x1F0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x1F0]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x8]
|
|
cmp r0, 0
|
|
beq _080B394E
|
|
ldr r0, [sp, 0x1E0]
|
|
mov r1, r9
|
|
bl __sprint
|
|
cmp r0, 0
|
|
bne _080B3978
|
|
_080B394E:
|
|
movs r0, 0
|
|
mov r4, r9
|
|
str r0, [r4, 0x4]
|
|
add r5, sp, 0x28
|
|
bl _080B2AF4
|
|
.align 2, 0
|
|
_080B395C: .4byte gUnknown_826FDE4
|
|
_080B3960:
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _080B3972
|
|
ldr r0, [sp, 0x1E0]
|
|
bl __sprint
|
|
cmp r0, 0
|
|
bne _080B3978
|
|
_080B3972:
|
|
movs r0, 0
|
|
mov r1, r9
|
|
str r0, [r1, 0x4]
|
|
_080B3978:
|
|
movs r0, 0x40
|
|
ldr r2, [sp, 0x1E0]
|
|
ldrh r2, [r2, 0xC]
|
|
ands r0, r2
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, 0
|
|
bne _080B398A
|
|
ldr r1, [sp, 0x1F0]
|
|
_080B398A:
|
|
adds r0, r1, 0
|
|
_080B398C:
|
|
movs r3, 0x88
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end _vfprintf_r
|
|
|
|
thumb_func_start sub_80B399C
|
|
sub_80B399C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
str r0, [sp, 0x18]
|
|
adds r5, r2, 0
|
|
adds r4, r1, 0
|
|
mov r8, r3
|
|
ldr r6, [sp, 0x3C]
|
|
ldr r0, [sp, 0x44]
|
|
mov r10, r0
|
|
ldr r1, [sp, 0x48]
|
|
mov r9, r1
|
|
cmp r1, 0x66
|
|
bne _080B39C2
|
|
movs r7, 0x3
|
|
b _080B39D2
|
|
_080B39C2:
|
|
mov r0, r9
|
|
cmp r0, 0x65
|
|
beq _080B39CC
|
|
cmp r0, 0x45
|
|
bne _080B39D0
|
|
_080B39CC:
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_080B39D0:
|
|
movs r7, 0x2
|
|
_080B39D2:
|
|
lsls r0, r4, 31
|
|
lsrs r0, 31
|
|
cmp r0, 0
|
|
beq _080B39E8
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __negdf2
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
movs r0, 0x2D
|
|
_080B39E8:
|
|
ldr r1, [sp, 0x40]
|
|
strb r0, [r1]
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
mov r1, r10
|
|
str r1, [sp, 0x4]
|
|
add r0, sp, 0x10
|
|
str r0, [sp, 0x8]
|
|
add r0, sp, 0x14
|
|
str r0, [sp, 0xC]
|
|
ldr r0, [sp, 0x18]
|
|
adds r2, r5, 0
|
|
adds r1, r4, 0
|
|
adds r3, r7, 0
|
|
bl _dtoa_r
|
|
adds r7, r0, 0
|
|
mov r1, r9
|
|
cmp r1, 0x67
|
|
beq _080B3A14
|
|
cmp r1, 0x47
|
|
bne _080B3A1C
|
|
_080B3A14:
|
|
movs r0, 0x1
|
|
ands r6, r0
|
|
cmp r6, 0
|
|
beq _080B3A70
|
|
_080B3A1C:
|
|
mov r0, r8
|
|
adds r6, r7, r0
|
|
mov r1, r9
|
|
cmp r1, 0x66
|
|
bne _080B3A4C
|
|
ldrb r0, [r7]
|
|
cmp r0, 0x30
|
|
bne _080B3A46
|
|
ldr r3, _080B3A8C
|
|
ldr r2, _080B3A88
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __nedf2
|
|
cmp r0, 0
|
|
beq _080B3A46
|
|
mov r1, r8
|
|
negs r0, r1
|
|
adds r0, 0x1
|
|
mov r1, r10
|
|
str r0, [r1]
|
|
_080B3A46:
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r6, r0
|
|
_080B3A4C:
|
|
ldr r3, _080B3A8C
|
|
ldr r2, _080B3A88
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __eqdf2
|
|
cmp r0, 0
|
|
bne _080B3A5E
|
|
str r6, [sp, 0x14]
|
|
_080B3A5E:
|
|
ldr r0, [sp, 0x14]
|
|
cmp r0, r6
|
|
bcs _080B3A70
|
|
movs r1, 0x30
|
|
_080B3A66:
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x14]
|
|
cmp r0, r6
|
|
bcc _080B3A66
|
|
_080B3A70:
|
|
ldr r0, [sp, 0x14]
|
|
subs r0, r7
|
|
ldr r1, [sp, 0x4C]
|
|
str r0, [r1]
|
|
adds r0, r7, 0
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B3A88: .4byte 0x00000000
|
|
_080B3A8C: .4byte 0x00000000
|
|
thumb_func_end sub_80B399C
|
|
|
|
thumb_func_start sub_80B3A90
|
|
sub_80B3A90:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x134
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
strb r2, [r7]
|
|
adds r5, r7, 0x1
|
|
cmp r6, 0
|
|
bge _080B3AA6
|
|
negs r6, r6
|
|
movs r0, 0x2D
|
|
b _080B3AA8
|
|
_080B3AA6:
|
|
movs r0, 0x2B
|
|
_080B3AA8:
|
|
strb r0, [r7, 0x1]
|
|
adds r5, 0x1
|
|
add r4, sp, 0x134
|
|
cmp r6, 0x9
|
|
ble _080B3AEA
|
|
_080B3AB2:
|
|
subs r4, 0x1
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
adds r0, 0x30
|
|
strb r0, [r4]
|
|
adds r0, r6, 0
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
adds r6, r0, 0
|
|
cmp r6, 0x9
|
|
bgt _080B3AB2
|
|
subs r4, 0x1
|
|
adds r0, 0x30
|
|
strb r0, [r4]
|
|
add r0, sp, 0x134
|
|
cmp r4, r0
|
|
bcs _080B3AF8
|
|
adds r1, r0, 0
|
|
_080B3ADC:
|
|
ldrb r0, [r4]
|
|
strb r0, [r5]
|
|
adds r4, 0x1
|
|
adds r5, 0x1
|
|
cmp r4, r1
|
|
bcc _080B3ADC
|
|
b _080B3AF8
|
|
_080B3AEA:
|
|
movs r0, 0x30
|
|
strb r0, [r5]
|
|
adds r5, 0x1
|
|
adds r0, r6, 0
|
|
adds r0, 0x30
|
|
strb r0, [r5]
|
|
adds r5, 0x1
|
|
_080B3AF8:
|
|
subs r0, r5, r7
|
|
add sp, 0x134
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B3A90
|
|
|
|
thumb_func_start vsprintf
|
|
vsprintf:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x58
|
|
mov r4, sp
|
|
movs r5, 0
|
|
movs r3, 0x82
|
|
lsls r3, 2
|
|
strh r3, [r4, 0xC]
|
|
str r0, [sp]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, _080B3B2C
|
|
str r0, [sp, 0x8]
|
|
str r0, [sp, 0x14]
|
|
ldr r0, _080B3B30
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x54]
|
|
mov r0, sp
|
|
bl vfprintf
|
|
ldr r1, [sp]
|
|
strb r5, [r1]
|
|
add sp, 0x58
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B3B2C: .4byte 0x7fffffff
|
|
_080B3B30: .4byte gUnknown_203B7A8
|
|
thumb_func_end vsprintf
|
|
|
|
thumb_func_start sub_80B3B34
|
|
sub_80B3B34:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x54]
|
|
cmp r0, 0
|
|
bne _080B3B44
|
|
ldr r0, _080B3B70
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0x54]
|
|
_080B3B44:
|
|
ldr r1, [r4, 0x54]
|
|
ldr r0, [r1, 0x38]
|
|
cmp r0, 0
|
|
bne _080B3B52
|
|
adds r0, r1, 0
|
|
bl sub_80B4BC4
|
|
_080B3B52:
|
|
ldrh r1, [r4, 0xC]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
bne _080B3BAC
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B3B74
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080B3BDE
|
|
.align 2, 0
|
|
_080B3B70: .4byte gUnknown_203B7A8
|
|
_080B3B74:
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3BA4
|
|
ldr r1, [r4, 0x30]
|
|
cmp r1, 0
|
|
beq _080B3B92
|
|
adds r0, r4, 0
|
|
adds r0, 0x40
|
|
cmp r1, r0
|
|
beq _080B3B90
|
|
ldr r0, [r4, 0x54]
|
|
bl _free_r
|
|
_080B3B90:
|
|
str r5, [r4, 0x30]
|
|
_080B3B92:
|
|
movs r0, 0x25
|
|
negs r0, r0
|
|
ldrh r1, [r4, 0xC]
|
|
ands r0, r1
|
|
movs r1, 0
|
|
strh r0, [r4, 0xC]
|
|
str r1, [r4, 0x4]
|
|
ldr r0, [r4, 0x10]
|
|
str r0, [r4]
|
|
_080B3BA4:
|
|
movs r0, 0x8
|
|
ldrh r1, [r4, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
_080B3BAC:
|
|
ldr r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
bne _080B3BB8
|
|
adds r0, r4, 0
|
|
bl sub_80B517C
|
|
_080B3BB8:
|
|
ldrh r1, [r4, 0xC]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3BCE
|
|
movs r0, 0
|
|
str r0, [r4, 0x8]
|
|
ldr r0, [r4, 0x14]
|
|
negs r0, r0
|
|
str r0, [r4, 0x18]
|
|
b _080B3BDC
|
|
_080B3BCE:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
bne _080B3BDA
|
|
ldr r1, [r4, 0x14]
|
|
_080B3BDA:
|
|
str r1, [r4, 0x8]
|
|
_080B3BDC:
|
|
movs r0, 0
|
|
_080B3BDE:
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B3B34
|
|
|
|
thumb_func_start sub_80B3BE0
|
|
sub_80B3BE0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r7, [r1, 0x10]
|
|
ldr r0, [r0, 0x10]
|
|
cmp r0, r7
|
|
bge _080B3BFC
|
|
movs r0, 0
|
|
b _080B3D30
|
|
_080B3BFC:
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, 0x14
|
|
mov r8, r0
|
|
subs r7, 0x1
|
|
lsls r0, r7, 2
|
|
mov r1, r8
|
|
adds r1, r0
|
|
str r1, [sp, 0xC]
|
|
ldr r4, [sp]
|
|
adds r4, 0x14
|
|
adds r5, r4, r0
|
|
ldr r1, [r1]
|
|
adds r1, 0x1
|
|
ldr r2, [r5]
|
|
mov r10, r2
|
|
mov r0, r10
|
|
bl sub_80B688C
|
|
str r0, [sp, 0x8]
|
|
mov r3, r8
|
|
str r3, [sp, 0x14]
|
|
str r4, [sp, 0x10]
|
|
cmp r0, 0
|
|
beq _080B3CA6
|
|
movs r6, 0
|
|
mov r9, r6
|
|
ldr r0, _080B3C90
|
|
mov r12, r0
|
|
_080B3C34:
|
|
mov r2, r8
|
|
adds r2, 0x4
|
|
mov r8, r2
|
|
subs r2, 0x4
|
|
ldm r2!, {r1}
|
|
adds r0, r1, 0
|
|
mov r3, r12
|
|
ands r0, r3
|
|
ldr r2, [sp, 0x8]
|
|
muls r0, r2
|
|
mov r3, r9
|
|
adds r2, r0, r3
|
|
lsrs r0, r1, 16
|
|
ldr r3, [sp, 0x8]
|
|
adds r1, r0, 0
|
|
muls r1, r3
|
|
lsrs r0, r2, 16
|
|
adds r3, r1, r0
|
|
lsrs r0, r3, 16
|
|
mov r9, r0
|
|
ldr r0, [r4]
|
|
mov r1, r12
|
|
ands r0, r1
|
|
ands r2, r1
|
|
subs r0, r2
|
|
adds r2, r0, r6
|
|
asrs r6, r2, 16
|
|
ldr r0, [r4]
|
|
lsrs r1, r0, 16
|
|
mov r0, r12
|
|
ands r3, r0
|
|
subs r1, r3
|
|
adds r0, r1, r6
|
|
asrs r6, r0, 16
|
|
strh r0, [r4]
|
|
strh r2, [r4, 0x2]
|
|
adds r4, 0x4
|
|
ldr r1, [sp, 0xC]
|
|
cmp r8, r1
|
|
bls _080B3C34
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
bne _080B3CA6
|
|
ldr r4, [sp, 0x10]
|
|
b _080B3C96
|
|
.align 2, 0
|
|
_080B3C90: .4byte 0x0000ffff
|
|
_080B3C94:
|
|
subs r7, 0x1
|
|
_080B3C96:
|
|
subs r5, 0x4
|
|
cmp r5, r4
|
|
bls _080B3CA2
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _080B3C94
|
|
_080B3CA2:
|
|
ldr r3, [sp]
|
|
str r7, [r3, 0x10]
|
|
_080B3CA6:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_80B5DD0
|
|
cmp r0, 0
|
|
blt _080B3D2E
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r6, 0
|
|
mov r9, r6
|
|
ldr r4, [sp, 0x10]
|
|
ldr r1, [sp, 0x14]
|
|
mov r8, r1
|
|
lsls r2, r7, 2
|
|
mov r10, r2
|
|
ldr r5, _080B3D18
|
|
_080B3CC8:
|
|
mov r3, r8
|
|
adds r3, 0x4
|
|
mov r8, r3
|
|
subs r3, 0x4
|
|
ldm r3!, {r1}
|
|
adds r0, r1, 0
|
|
ands r0, r5
|
|
mov r3, r9
|
|
adds r2, r0, r3
|
|
lsrs r1, 16
|
|
lsrs r0, r2, 16
|
|
adds r3, r1, r0
|
|
lsrs r0, r3, 16
|
|
mov r9, r0
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
ands r0, r5
|
|
ands r2, r5
|
|
subs r0, r2
|
|
adds r2, r0, r6
|
|
asrs r6, r2, 16
|
|
lsrs r1, 16
|
|
ands r3, r5
|
|
subs r1, r3
|
|
adds r0, r1, r6
|
|
asrs r6, r0, 16
|
|
strh r0, [r4]
|
|
strh r2, [r4, 0x2]
|
|
adds r4, 0x4
|
|
ldr r1, [sp, 0xC]
|
|
cmp r8, r1
|
|
bls _080B3CC8
|
|
ldr r4, [sp, 0x10]
|
|
mov r2, r10
|
|
adds r5, r4, r2
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
bne _080B3D2E
|
|
b _080B3D1E
|
|
.align 2, 0
|
|
_080B3D18: .4byte 0x0000ffff
|
|
_080B3D1C:
|
|
subs r7, 0x1
|
|
_080B3D1E:
|
|
subs r5, 0x4
|
|
cmp r5, r4
|
|
bls _080B3D2A
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _080B3D1C
|
|
_080B3D2A:
|
|
ldr r3, [sp]
|
|
str r7, [r3, 0x10]
|
|
_080B3D2E:
|
|
ldr r0, [sp, 0x8]
|
|
_080B3D30:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B3BE0
|
|
|
|
thumb_func_start _dtoa_r
|
|
_dtoa_r:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x84
|
|
mov r10, r0
|
|
str r3, [sp, 0xC]
|
|
ldr r4, [sp, 0xAC]
|
|
str r1, [sp, 0x40]
|
|
str r2, [sp, 0x44]
|
|
ldr r2, [r0, 0x40]
|
|
cmp r2, 0
|
|
beq _080B3D74
|
|
ldr r0, [r0, 0x44]
|
|
str r0, [r2, 0x4]
|
|
mov r0, r10
|
|
ldr r1, [r0, 0x44]
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
str r0, [r2, 0x8]
|
|
mov r0, r10
|
|
adds r1, r2, 0
|
|
bl sub_80B5908
|
|
movs r0, 0
|
|
mov r1, r10
|
|
str r0, [r1, 0x40]
|
|
_080B3D74:
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
ldr r1, [sp, 0x40]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B3D90
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
ldr r0, _080B3D8C
|
|
ands r1, r0
|
|
str r1, [sp, 0x40]
|
|
b _080B3D92
|
|
.align 2, 0
|
|
_080B3D8C: .4byte 0x7fffffff
|
|
_080B3D90:
|
|
str r0, [r4]
|
|
_080B3D92:
|
|
ldr r1, _080B3DD4
|
|
ldr r2, [sp, 0x40]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, r1
|
|
bne _080B3DE8
|
|
ldr r0, _080B3DD8
|
|
ldr r3, [sp, 0xA8]
|
|
str r0, [r3]
|
|
ldr r0, _080B3DDC
|
|
mov r9, r0
|
|
ldr r1, [sp, 0x44]
|
|
cmp r1, 0
|
|
bne _080B3DBA
|
|
ldr r0, _080B3DE0
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _080B3DBA
|
|
ldr r2, _080B3DE4
|
|
mov r9, r2
|
|
_080B3DBA:
|
|
ldr r3, [sp, 0xB0]
|
|
cmp r3, 0
|
|
beq _080B3E0C
|
|
mov r1, r9
|
|
ldrb r0, [r1, 0x3]
|
|
adds r1, 0x3
|
|
cmp r0, 0
|
|
beq _080B3DCC
|
|
adds r1, 0x5
|
|
_080B3DCC:
|
|
ldr r2, [sp, 0xB0]
|
|
str r1, [r2]
|
|
b _080B3E0C
|
|
.align 2, 0
|
|
_080B3DD4: .4byte 0x7ff00000
|
|
_080B3DD8: .4byte 0x0000270f
|
|
_080B3DDC: .4byte gUnknown_826FE6C
|
|
_080B3DE0: .4byte 0x000fffff
|
|
_080B3DE4: .4byte gUnknown_826FE60
|
|
_080B3DE8:
|
|
ldr r3, _080B3E18
|
|
ldr r2, _080B3E14
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __eqdf2
|
|
cmp r0, 0
|
|
bne _080B3E20
|
|
movs r0, 0x1
|
|
ldr r3, [sp, 0xA8]
|
|
str r0, [r3]
|
|
ldr r0, _080B3E1C
|
|
mov r9, r0
|
|
ldr r1, [sp, 0xB0]
|
|
cmp r1, 0
|
|
beq _080B3E0C
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
_080B3E0C:
|
|
mov r0, r9
|
|
bl _080B4A26
|
|
.align 2, 0
|
|
_080B3E14: .4byte 0x00000000
|
|
_080B3E18: .4byte 0x00000000
|
|
_080B3E1C: .4byte gUnknown_826FE70
|
|
_080B3E20:
|
|
add r0, sp, 0x8
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x40]
|
|
ldr r2, [sp, 0x44]
|
|
add r3, sp, 0x4
|
|
bl sub_80B6008
|
|
str r0, [sp, 0x5C]
|
|
ldr r2, [sp, 0x40]
|
|
lsls r0, r2, 1
|
|
lsrs r0, 21
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
beq _080B3E70
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
str r0, [sp, 0x48]
|
|
str r1, [sp, 0x4C]
|
|
ldr r0, _080B3E64
|
|
ldr r1, [sp, 0x48]
|
|
ands r1, r0
|
|
str r1, [sp, 0x48]
|
|
ldr r0, _080B3E68
|
|
adds r2, r1, 0
|
|
orrs r2, r0
|
|
str r2, [sp, 0x48]
|
|
ldr r3, _080B3E6C
|
|
add r8, r3
|
|
movs r0, 0
|
|
str r0, [sp, 0x58]
|
|
ldr r6, [sp, 0x8]
|
|
b _080B3ED0
|
|
.align 2, 0
|
|
_080B3E64: .4byte 0x000fffff
|
|
_080B3E68: .4byte 0x3ff00000
|
|
_080B3E6C: .4byte 0xfffffc01
|
|
_080B3E70:
|
|
ldr r1, [sp, 0x8]
|
|
ldr r0, [sp, 0x4]
|
|
adds r2, r1, r0
|
|
ldr r3, _080B3E98
|
|
adds r3, r2
|
|
mov r8, r3
|
|
adds r6, r1, 0
|
|
cmp r3, 0x20
|
|
ble _080B3EA0
|
|
movs r0, 0x40
|
|
subs r0, r3
|
|
ldr r4, [sp, 0x40]
|
|
lsls r4, r0
|
|
ldr r1, _080B3E9C
|
|
adds r0, r2, r1
|
|
ldr r2, [sp, 0x44]
|
|
lsrs r2, r0
|
|
adds r0, r2, 0
|
|
orrs r4, r0
|
|
b _080B3EAA
|
|
.align 2, 0
|
|
_080B3E98: .4byte 0x00000432
|
|
_080B3E9C: .4byte 0x00000412
|
|
_080B3EA0:
|
|
movs r0, 0x20
|
|
mov r3, r8
|
|
subs r0, r3
|
|
ldr r4, [sp, 0x44]
|
|
lsls r4, r0
|
|
_080B3EAA:
|
|
adds r0, r4, 0
|
|
bl __floatsidf
|
|
cmp r4, 0
|
|
bge _080B3EBC
|
|
ldr r3, _080B3F80
|
|
ldr r2, _080B3F7C
|
|
bl __adddf3
|
|
_080B3EBC:
|
|
str r0, [sp, 0x48]
|
|
str r1, [sp, 0x4C]
|
|
ldr r1, _080B3F84
|
|
ldr r0, [sp, 0x48]
|
|
adds r1, r0, r1
|
|
str r1, [sp, 0x48]
|
|
ldr r2, _080B3F88
|
|
add r8, r2
|
|
movs r3, 0x1
|
|
str r3, [sp, 0x58]
|
|
_080B3ED0:
|
|
ldr r2, _080B3F8C
|
|
ldr r3, _080B3F90
|
|
ldr r0, [sp, 0x48]
|
|
ldr r1, [sp, 0x4C]
|
|
bl __subdf3
|
|
ldr r2, _080B3F94
|
|
ldr r3, _080B3F98
|
|
bl __muldf3
|
|
ldr r2, _080B3F9C
|
|
ldr r3, _080B3FA0
|
|
bl __adddf3
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
bl __floatsidf
|
|
ldr r2, _080B3FA4
|
|
ldr r3, _080B3FA8
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __adddf3
|
|
str r0, [sp, 0x6C]
|
|
str r1, [sp, 0x70]
|
|
bl __fixdfsi
|
|
str r0, [sp, 0x24]
|
|
ldr r2, _080B3FAC
|
|
ldr r3, _080B3FB0
|
|
ldr r0, [sp, 0x6C]
|
|
ldr r1, [sp, 0x70]
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B3F40
|
|
ldr r0, [sp, 0x24]
|
|
bl __floatsidf
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x6C]
|
|
ldr r1, [sp, 0x70]
|
|
bl __nedf2
|
|
cmp r0, 0
|
|
beq _080B3F40
|
|
ldr r0, [sp, 0x24]
|
|
subs r0, 0x1
|
|
str r0, [sp, 0x24]
|
|
_080B3F40:
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x2C]
|
|
ldr r2, [sp, 0x24]
|
|
cmp r2, 0x16
|
|
bhi _080B3F6A
|
|
ldr r1, _080B3FB4
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldr r3, [r0, 0x4]
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B3F66
|
|
ldr r3, [sp, 0x24]
|
|
subs r3, 0x1
|
|
str r3, [sp, 0x24]
|
|
_080B3F66:
|
|
movs r0, 0
|
|
str r0, [sp, 0x2C]
|
|
_080B3F6A:
|
|
mov r1, r8
|
|
subs r0, r6, r1
|
|
subs r4, r0, 0x1
|
|
cmp r4, 0
|
|
blt _080B3FB8
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
str r4, [sp, 0x34]
|
|
b _080B3FC0
|
|
.align 2, 0
|
|
_080B3F7C: .4byte 0x41f00000
|
|
_080B3F80: .4byte 0x00000000
|
|
_080B3F84: .4byte 0xfe100000
|
|
_080B3F88: .4byte 0xfffffbcd
|
|
_080B3F8C: .4byte 0x3ff80000
|
|
_080B3F90: .4byte 0x00000000
|
|
_080B3F94: .4byte 0x3fd287a7
|
|
_080B3F98: .4byte 0x636f4361
|
|
_080B3F9C: .4byte 0x3fc68a28
|
|
_080B3FA0: .4byte 0x8b60c8b3
|
|
_080B3FA4: .4byte 0x3fd34413
|
|
_080B3FA8: .4byte 0x509f79fb
|
|
_080B3FAC: .4byte 0x00000000
|
|
_080B3FB0: .4byte 0x00000000
|
|
_080B3FB4: .4byte gUnknown_826FEC0
|
|
_080B3FB8:
|
|
negs r4, r4
|
|
str r4, [sp, 0x10]
|
|
movs r3, 0
|
|
str r3, [sp, 0x34]
|
|
_080B3FC0:
|
|
ldr r0, [sp, 0x24]
|
|
cmp r0, 0
|
|
blt _080B3FD4
|
|
movs r1, 0
|
|
str r1, [sp, 0x14]
|
|
str r0, [sp, 0x38]
|
|
ldr r2, [sp, 0x34]
|
|
adds r2, r0
|
|
str r2, [sp, 0x34]
|
|
b _080B3FE4
|
|
_080B3FD4:
|
|
ldr r3, [sp, 0x10]
|
|
ldr r0, [sp, 0x24]
|
|
subs r3, r0
|
|
str r3, [sp, 0x10]
|
|
negs r1, r0
|
|
str r1, [sp, 0x14]
|
|
movs r2, 0
|
|
str r2, [sp, 0x38]
|
|
_080B3FE4:
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0x9
|
|
bls _080B3FEE
|
|
movs r0, 0
|
|
str r0, [sp, 0xC]
|
|
_080B3FEE:
|
|
movs r5, 0x1
|
|
ldr r1, [sp, 0xC]
|
|
cmp r1, 0x5
|
|
ble _080B3FFC
|
|
subs r1, 0x4
|
|
str r1, [sp, 0xC]
|
|
movs r5, 0
|
|
_080B3FFC:
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x30]
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0x5
|
|
bhi _080B4076
|
|
lsls r0, r3, 2
|
|
ldr r1, _080B4010
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080B4010: .4byte _080B4014
|
|
.align 2, 0
|
|
_080B4014:
|
|
.4byte _080B402C
|
|
.4byte _080B402C
|
|
.4byte _080B403E
|
|
.4byte _080B405A
|
|
.4byte _080B4042
|
|
.4byte _080B405E
|
|
_080B402C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x18]
|
|
str r0, [sp, 0x20]
|
|
movs r1, 0x12
|
|
mov r8, r1
|
|
movs r2, 0
|
|
str r2, [sp, 0xA4]
|
|
b _080B4076
|
|
_080B403E:
|
|
movs r3, 0
|
|
str r3, [sp, 0x30]
|
|
_080B4042:
|
|
ldr r0, [sp, 0xA4]
|
|
cmp r0, 0
|
|
bgt _080B404C
|
|
movs r1, 0x1
|
|
str r1, [sp, 0xA4]
|
|
_080B404C:
|
|
ldr r2, [sp, 0xA4]
|
|
mov r8, r2
|
|
mov r3, r8
|
|
str r3, [sp, 0x20]
|
|
mov r0, r8
|
|
str r0, [sp, 0x18]
|
|
b _080B4076
|
|
_080B405A:
|
|
movs r1, 0
|
|
str r1, [sp, 0x30]
|
|
_080B405E:
|
|
ldr r2, [sp, 0xA4]
|
|
ldr r3, [sp, 0x24]
|
|
adds r0, r2, r3
|
|
adds r1, r0, 0x1
|
|
mov r8, r1
|
|
mov r2, r8
|
|
str r2, [sp, 0x18]
|
|
str r0, [sp, 0x20]
|
|
cmp r1, 0
|
|
bgt _080B4076
|
|
movs r3, 0x1
|
|
mov r8, r3
|
|
_080B4076:
|
|
movs r4, 0x4
|
|
movs r0, 0
|
|
mov r1, r10
|
|
str r0, [r1, 0x44]
|
|
mov r2, r8
|
|
cmp r2, 0x17
|
|
bls _080B4096
|
|
movs r1, 0
|
|
_080B4086:
|
|
adds r1, 0x1
|
|
lsls r4, 1
|
|
adds r0, r4, 0
|
|
adds r0, 0x14
|
|
cmp r0, r8
|
|
bls _080B4086
|
|
mov r3, r10
|
|
str r1, [r3, 0x44]
|
|
_080B4096:
|
|
mov r0, r10
|
|
ldr r1, [r0, 0x44]
|
|
bl sub_80B58B0
|
|
mov r1, r10
|
|
str r0, [r1, 0x40]
|
|
str r0, [sp, 0x74]
|
|
mov r9, r0
|
|
ldr r2, [sp, 0x18]
|
|
cmp r2, 0xE
|
|
bls _080B40AE
|
|
b _080B4420
|
|
_080B40AE:
|
|
cmp r5, 0
|
|
bne _080B40B4
|
|
b _080B4420
|
|
_080B40B4:
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
str r0, [sp, 0x78]
|
|
str r1, [sp, 0x7C]
|
|
str r0, [sp, 0x48]
|
|
str r1, [sp, 0x4C]
|
|
ldr r1, [sp, 0x24]
|
|
str r1, [sp, 0x28]
|
|
str r2, [sp, 0x1C]
|
|
movs r7, 0x2
|
|
cmp r1, 0
|
|
ble _080B4144
|
|
ldr r0, _080B413C
|
|
movs r2, 0xF
|
|
ands r1, r2
|
|
lsls r1, 3
|
|
adds r3, r1, r0
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [sp, 0x6C]
|
|
str r1, [sp, 0x70]
|
|
ldr r1, [sp, 0x24]
|
|
asrs r4, r1, 4
|
|
movs r0, 0x10
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B4100
|
|
ands r4, r2
|
|
ldr r0, _080B4140
|
|
ldr r2, [r0, 0x20]
|
|
ldr r3, [r0, 0x24]
|
|
ldr r0, [sp, 0x78]
|
|
ldr r1, [sp, 0x7C]
|
|
bl __divdf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
movs r7, 0x3
|
|
_080B4100:
|
|
cmp r4, 0
|
|
beq _080B4128
|
|
ldr r5, _080B4140
|
|
_080B4106:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B4120
|
|
adds r7, 0x1
|
|
ldr r2, [r5]
|
|
ldr r3, [r5, 0x4]
|
|
ldr r0, [sp, 0x6C]
|
|
ldr r1, [sp, 0x70]
|
|
bl __muldf3
|
|
str r0, [sp, 0x6C]
|
|
str r1, [sp, 0x70]
|
|
_080B4120:
|
|
asrs r4, 1
|
|
adds r5, 0x8
|
|
cmp r4, 0
|
|
bne _080B4106
|
|
_080B4128:
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
ldr r2, [sp, 0x6C]
|
|
ldr r3, [sp, 0x70]
|
|
bl __divdf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
b _080B4190
|
|
.align 2, 0
|
|
_080B413C: .4byte gUnknown_826FEC0
|
|
_080B4140: .4byte gUnknown_826FF88
|
|
_080B4144:
|
|
ldr r2, [sp, 0x24]
|
|
negs r6, r2
|
|
cmp r6, 0
|
|
beq _080B4190
|
|
ldr r1, _080B4238
|
|
movs r0, 0xF
|
|
ands r0, r6
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
ldr r2, [sp, 0x78]
|
|
ldr r3, [sp, 0x7C]
|
|
bl __muldf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
asrs r4, r6, 4
|
|
cmp r4, 0
|
|
beq _080B4190
|
|
ldr r5, _080B423C
|
|
_080B416E:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B4188
|
|
adds r7, 0x1
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r2, [sp, 0x40]
|
|
ldr r3, [sp, 0x44]
|
|
bl __muldf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
_080B4188:
|
|
asrs r4, 1
|
|
adds r5, 0x8
|
|
cmp r4, 0
|
|
bne _080B416E
|
|
_080B4190:
|
|
ldr r3, [sp, 0x2C]
|
|
cmp r3, 0
|
|
beq _080B41CE
|
|
ldr r2, _080B4240
|
|
ldr r3, _080B4244
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B41CE
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0
|
|
ble _080B41CE
|
|
ldr r1, [sp, 0x20]
|
|
cmp r1, 0
|
|
bgt _080B41B4
|
|
b _080B440C
|
|
_080B41B4:
|
|
str r1, [sp, 0x18]
|
|
ldr r2, [sp, 0x24]
|
|
subs r2, 0x1
|
|
str r2, [sp, 0x24]
|
|
ldr r0, _080B4248
|
|
ldr r1, _080B424C
|
|
ldr r2, [sp, 0x40]
|
|
ldr r3, [sp, 0x44]
|
|
bl __muldf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
adds r7, 0x1
|
|
_080B41CE:
|
|
adds r0, r7, 0
|
|
bl __floatsidf
|
|
ldr r2, [sp, 0x40]
|
|
ldr r3, [sp, 0x44]
|
|
bl __muldf3
|
|
ldr r2, _080B4250
|
|
ldr r3, _080B4254
|
|
bl __adddf3
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
ldr r0, _080B4258
|
|
ldr r3, [sp, 0x50]
|
|
adds r0, r3, r0
|
|
str r0, [sp, 0x50]
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
bne _080B4264
|
|
movs r2, 0
|
|
str r2, [sp, 0x64]
|
|
movs r3, 0
|
|
str r3, [sp, 0x68]
|
|
ldr r2, _080B425C
|
|
ldr r3, _080B4260
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __subdf3
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __gtdf2
|
|
cmp r0, 0
|
|
ble _080B421C
|
|
b _080B4796
|
|
_080B421C:
|
|
ldr r0, [sp, 0x50]
|
|
ldr r1, [sp, 0x54]
|
|
bl __negdf2
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B4236
|
|
b _080B478E
|
|
_080B4236:
|
|
b _080B440C
|
|
.align 2, 0
|
|
_080B4238: .4byte gUnknown_826FEC0
|
|
_080B423C: .4byte gUnknown_826FF88
|
|
_080B4240: .4byte 0x3ff00000
|
|
_080B4244: .4byte 0x00000000
|
|
_080B4248: .4byte 0x40240000
|
|
_080B424C: .4byte 0x00000000
|
|
_080B4250: .4byte 0x401c0000
|
|
_080B4254: .4byte 0x00000000
|
|
_080B4258: .4byte 0xfcc00000
|
|
_080B425C: .4byte 0x40140000
|
|
_080B4260: .4byte 0x00000000
|
|
_080B4264:
|
|
ldr r0, [sp, 0x30]
|
|
cmp r0, 0
|
|
beq _080B4334
|
|
ldr r1, _080B4294
|
|
ldr r0, [sp, 0x18]
|
|
subs r0, 0x1
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldr r3, [r0, 0x4]
|
|
ldr r0, _080B4298
|
|
ldr r1, _080B429C
|
|
bl __divdf3
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __subdf3
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
movs r1, 0
|
|
mov r8, r1
|
|
b _080B42C0
|
|
.align 2, 0
|
|
_080B4294: .4byte gUnknown_826FEC0
|
|
_080B4298: .4byte 0x3fe00000
|
|
_080B429C: .4byte 0x00000000
|
|
_080B42A0:
|
|
ldr r1, _080B4328
|
|
ldr r0, _080B4324
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __muldf3
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
ldr r1, _080B4328
|
|
ldr r0, _080B4324
|
|
adds r3, r5, 0
|
|
adds r2, r4, 0
|
|
bl __muldf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
_080B42C0:
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __fixdfsi
|
|
adds r6, r0, 0
|
|
bl __floatsidf
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __subdf3
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
adds r0, 0x30
|
|
mov r2, r9
|
|
strb r0, [r2]
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B42FC
|
|
b _080B4A06
|
|
_080B42FC:
|
|
ldr r0, _080B432C
|
|
ldr r1, _080B4330
|
|
adds r3, r5, 0
|
|
adds r2, r4, 0
|
|
bl __subdf3
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B4316
|
|
b _080B4520
|
|
_080B4316:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
ldr r1, [sp, 0x18]
|
|
cmp r8, r1
|
|
blt _080B42A0
|
|
b _080B440C
|
|
.align 2, 0
|
|
_080B4324: .4byte 0x40240000
|
|
_080B4328: .4byte 0x00000000
|
|
_080B432C: .4byte 0x3ff00000
|
|
_080B4330: .4byte 0x00000000
|
|
_080B4334:
|
|
ldr r1, _080B4354
|
|
ldr r0, [sp, 0x18]
|
|
subs r0, 0x1
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __muldf3
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
b _080B436C
|
|
.align 2, 0
|
|
_080B4354: .4byte gUnknown_826FEC0
|
|
_080B4358:
|
|
movs r3, 0x1
|
|
add r8, r3
|
|
ldr r1, _080B4400
|
|
ldr r0, _080B43FC
|
|
adds r3, r5, 0
|
|
adds r2, r4, 0
|
|
bl __muldf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
_080B436C:
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __fixdfsi
|
|
adds r6, r0, 0
|
|
bl __floatsidf
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __subdf3
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
adds r0, 0x30
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
ldr r3, [sp, 0x18]
|
|
cmp r8, r3
|
|
bne _080B4358
|
|
ldr r6, _080B4404
|
|
ldr r7, _080B4408
|
|
adds r1, r7, 0
|
|
adds r0, r6, 0
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __adddf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __gtdf2
|
|
cmp r0, 0
|
|
ble _080B43BE
|
|
b _080B4520
|
|
_080B43BE:
|
|
adds r1, r7, 0
|
|
adds r0, r6, 0
|
|
ldr r2, [sp, 0x50]
|
|
ldr r3, [sp, 0x54]
|
|
bl __subdf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
bl __ltdf2
|
|
cmp r0, 0
|
|
bge _080B440C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r1, r9
|
|
ldrb r1, [r1]
|
|
cmp r1, 0x30
|
|
beq _080B43EA
|
|
b _080B4546
|
|
_080B43EA:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r9, r2
|
|
mov r3, r9
|
|
ldrb r3, [r3]
|
|
cmp r3, 0x30
|
|
beq _080B43EA
|
|
b _080B4546
|
|
.align 2, 0
|
|
_080B43FC: .4byte 0x40240000
|
|
_080B4400: .4byte 0x00000000
|
|
_080B4404: .4byte 0x3fe00000
|
|
_080B4408: .4byte 0x00000000
|
|
_080B440C:
|
|
ldr r1, [sp, 0x74]
|
|
mov r9, r1
|
|
ldr r2, [sp, 0x48]
|
|
ldr r3, [sp, 0x4C]
|
|
str r2, [sp, 0x40]
|
|
str r3, [sp, 0x44]
|
|
ldr r3, [sp, 0x28]
|
|
str r3, [sp, 0x24]
|
|
ldr r0, [sp, 0x1C]
|
|
str r0, [sp, 0x18]
|
|
_080B4420:
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
bge _080B4428
|
|
b _080B455C
|
|
_080B4428:
|
|
ldr r1, [sp, 0x24]
|
|
cmp r1, 0xE
|
|
ble _080B4430
|
|
b _080B455C
|
|
_080B4430:
|
|
ldr r1, _080B447C
|
|
ldr r2, [sp, 0x24]
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
ldr r2, [r0, 0x4]
|
|
str r1, [sp, 0x6C]
|
|
str r2, [sp, 0x70]
|
|
ldr r2, [sp, 0xA4]
|
|
cmp r2, 0
|
|
bge _080B4488
|
|
ldr r3, [sp, 0x18]
|
|
cmp r3, 0
|
|
bgt _080B4488
|
|
movs r0, 0
|
|
str r0, [sp, 0x64]
|
|
movs r1, 0
|
|
str r1, [sp, 0x68]
|
|
cmp r3, 0
|
|
bge _080B445A
|
|
b _080B478E
|
|
_080B445A:
|
|
ldr r2, _080B4480
|
|
ldr r3, _080B4484
|
|
ldr r0, [sp, 0x6C]
|
|
ldr r1, [sp, 0x70]
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __ledf2
|
|
cmp r0, 0
|
|
bgt _080B4478
|
|
b _080B478E
|
|
_080B4478:
|
|
b _080B4796
|
|
.align 2, 0
|
|
_080B447C: .4byte gUnknown_826FEC0
|
|
_080B4480: .4byte 0x40140000
|
|
_080B4484: .4byte 0x00000000
|
|
_080B4488:
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
b _080B44AC
|
|
_080B448E:
|
|
ldr r1, _080B4550
|
|
ldr r0, _080B454C
|
|
bl __muldf3
|
|
str r0, [sp, 0x40]
|
|
str r1, [sp, 0x44]
|
|
ldr r2, _080B4554
|
|
ldr r3, _080B4558
|
|
bl __eqdf2
|
|
cmp r0, 0
|
|
bne _080B44A8
|
|
b _080B4A06
|
|
_080B44A8:
|
|
movs r3, 0x1
|
|
add r8, r3
|
|
_080B44AC:
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
ldr r2, [sp, 0x6C]
|
|
ldr r3, [sp, 0x70]
|
|
bl __divdf3
|
|
bl __fixdfsi
|
|
adds r6, r0, 0
|
|
bl __floatsidf
|
|
ldr r2, [sp, 0x6C]
|
|
ldr r3, [sp, 0x70]
|
|
bl __muldf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x40]
|
|
ldr r1, [sp, 0x44]
|
|
bl __subdf3
|
|
adds r3, r1, 0
|
|
adds r2, r0, 0
|
|
adds r0, r6, 0
|
|
adds r0, 0x30
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
ldr r1, [sp, 0x18]
|
|
cmp r8, r1
|
|
bne _080B448E
|
|
adds r1, r3, 0
|
|
adds r0, r2, 0
|
|
bl __adddf3
|
|
adds r5, r1, 0
|
|
adds r4, r0, 0
|
|
ldr r2, [sp, 0x6C]
|
|
ldr r3, [sp, 0x70]
|
|
bl __gtdf2
|
|
cmp r0, 0
|
|
bgt _080B4520
|
|
adds r1, r5, 0
|
|
adds r0, r4, 0
|
|
ldr r2, [sp, 0x6C]
|
|
ldr r3, [sp, 0x70]
|
|
bl __eqdf2
|
|
cmp r0, 0
|
|
beq _080B4516
|
|
b _080B4A06
|
|
_080B4516:
|
|
movs r0, 0x1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _080B4520
|
|
b _080B4A06
|
|
_080B4520:
|
|
movs r0, 0x30
|
|
_080B4522:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r9, r2
|
|
mov r3, r9
|
|
ldrb r3, [r3]
|
|
cmp r3, 0x39
|
|
bne _080B453E
|
|
ldr r1, [sp, 0x74]
|
|
cmp r9, r1
|
|
bne _080B4522
|
|
ldr r2, [sp, 0x24]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x24]
|
|
strb r0, [r1]
|
|
_080B453E:
|
|
mov r3, r9
|
|
ldrb r0, [r3]
|
|
adds r0, 0x1
|
|
strb r0, [r3]
|
|
_080B4546:
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
b _080B4A06
|
|
.align 2, 0
|
|
_080B454C: .4byte 0x40240000
|
|
_080B4550: .4byte 0x00000000
|
|
_080B4554: .4byte 0x00000000
|
|
_080B4558: .4byte 0x00000000
|
|
_080B455C:
|
|
ldr r5, [sp, 0x10]
|
|
ldr r6, [sp, 0x14]
|
|
movs r1, 0
|
|
str r1, [sp, 0x60]
|
|
movs r2, 0
|
|
str r2, [sp, 0x64]
|
|
ldr r3, [sp, 0x30]
|
|
cmp r3, 0
|
|
beq _080B45D2
|
|
ldr r1, [sp, 0xC]
|
|
cmp r1, 0x1
|
|
bgt _080B4590
|
|
ldr r2, [sp, 0x58]
|
|
cmp r2, 0
|
|
beq _080B4588
|
|
ldr r3, _080B4584
|
|
adds r3, r0
|
|
mov r8, r3
|
|
b _080B45BC
|
|
.align 2, 0
|
|
_080B4584: .4byte 0x00000433
|
|
_080B4588:
|
|
ldr r1, [sp, 0x8]
|
|
movs r0, 0x36
|
|
subs r0, r1
|
|
b _080B45BA
|
|
_080B4590:
|
|
ldr r4, [sp, 0x18]
|
|
subs r4, 0x1
|
|
ldr r0, [sp, 0x14]
|
|
cmp r0, r4
|
|
blt _080B459E
|
|
subs r6, r0, r4
|
|
b _080B45AE
|
|
_080B459E:
|
|
ldr r1, [sp, 0x14]
|
|
subs r4, r1
|
|
ldr r2, [sp, 0x38]
|
|
adds r2, r4
|
|
str r2, [sp, 0x38]
|
|
adds r1, r4
|
|
str r1, [sp, 0x14]
|
|
movs r6, 0
|
|
_080B45AE:
|
|
ldr r3, [sp, 0x18]
|
|
mov r8, r3
|
|
cmp r3, 0
|
|
bge _080B45BC
|
|
subs r5, r3
|
|
movs r0, 0
|
|
_080B45BA:
|
|
mov r8, r0
|
|
_080B45BC:
|
|
ldr r1, [sp, 0x10]
|
|
add r1, r8
|
|
str r1, [sp, 0x10]
|
|
ldr r2, [sp, 0x34]
|
|
add r2, r8
|
|
str r2, [sp, 0x34]
|
|
mov r0, r10
|
|
movs r1, 0x1
|
|
bl sub_80B5B18
|
|
str r0, [sp, 0x64]
|
|
_080B45D2:
|
|
cmp r5, 0
|
|
ble _080B45F4
|
|
ldr r3, [sp, 0x34]
|
|
cmp r3, 0
|
|
ble _080B45F4
|
|
mov r8, r3
|
|
cmp r8, r5
|
|
ble _080B45E4
|
|
mov r8, r5
|
|
_080B45E4:
|
|
ldr r0, [sp, 0x10]
|
|
mov r1, r8
|
|
subs r0, r1
|
|
str r0, [sp, 0x10]
|
|
subs r5, r1
|
|
ldr r2, [sp, 0x34]
|
|
subs r2, r1
|
|
str r2, [sp, 0x34]
|
|
_080B45F4:
|
|
ldr r3, [sp, 0x14]
|
|
cmp r3, 0
|
|
ble _080B4642
|
|
ldr r0, [sp, 0x30]
|
|
cmp r0, 0
|
|
beq _080B4636
|
|
cmp r6, 0
|
|
ble _080B4626
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
adds r2, r6, 0
|
|
bl sub_80B5C98
|
|
str r0, [sp, 0x64]
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
ldr r2, [sp, 0x5C]
|
|
bl sub_80B5B2C
|
|
adds r4, r0, 0
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
bl sub_80B5908
|
|
str r4, [sp, 0x5C]
|
|
_080B4626:
|
|
ldr r1, [sp, 0x14]
|
|
subs r4, r1, r6
|
|
cmp r4, 0
|
|
beq _080B4642
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
adds r2, r4, 0
|
|
b _080B463C
|
|
_080B4636:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
ldr r2, [sp, 0x14]
|
|
_080B463C:
|
|
bl sub_80B5C98
|
|
str r0, [sp, 0x5C]
|
|
_080B4642:
|
|
mov r0, r10
|
|
movs r1, 0x1
|
|
bl sub_80B5B18
|
|
str r0, [sp, 0x68]
|
|
ldr r2, [sp, 0x38]
|
|
cmp r2, 0
|
|
ble _080B465C
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B5C98
|
|
str r0, [sp, 0x68]
|
|
_080B465C:
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0x1
|
|
bgt _080B4698
|
|
ldr r0, [sp, 0x44]
|
|
cmp r0, 0
|
|
bne _080B4694
|
|
ldr r0, _080B468C
|
|
ldr r1, [sp, 0x40]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B4694
|
|
ldr r0, _080B4690
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B4694
|
|
ldr r1, [sp, 0x10]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x10]
|
|
ldr r2, [sp, 0x34]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x34]
|
|
movs r3, 0x1
|
|
str r3, [sp, 0x3C]
|
|
b _080B4698
|
|
.align 2, 0
|
|
_080B468C: .4byte 0x000fffff
|
|
_080B4690: .4byte 0x7ff00000
|
|
_080B4694:
|
|
movs r0, 0
|
|
str r0, [sp, 0x3C]
|
|
_080B4698:
|
|
ldr r1, [sp, 0x38]
|
|
cmp r1, 0
|
|
beq _080B46C4
|
|
ldr r2, [sp, 0x68]
|
|
ldr r1, [r2, 0x10]
|
|
subs r1, 0x1
|
|
lsls r1, 2
|
|
adds r0, r2, 0
|
|
adds r0, 0x14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl sub_80B5A3C
|
|
ldr r1, [sp, 0x34]
|
|
adds r1, 0x20
|
|
subs r1, r0
|
|
mov r8, r1
|
|
movs r0, 0x1F
|
|
mov r3, r8
|
|
ands r3, r0
|
|
mov r8, r3
|
|
b _080B46D2
|
|
_080B46C4:
|
|
ldr r0, [sp, 0x34]
|
|
adds r0, 0x1
|
|
mov r8, r0
|
|
movs r0, 0x1F
|
|
mov r1, r8
|
|
ands r1, r0
|
|
mov r8, r1
|
|
_080B46D2:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _080B46DE
|
|
movs r0, 0x20
|
|
subs r2, r0, r2
|
|
mov r8, r2
|
|
_080B46DE:
|
|
mov r3, r8
|
|
cmp r3, 0x4
|
|
ble _080B46EA
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
b _080B46F2
|
|
_080B46EA:
|
|
mov r3, r8
|
|
cmp r3, 0x3
|
|
bgt _080B4702
|
|
movs r0, 0x1C
|
|
_080B46F2:
|
|
add r8, r0
|
|
ldr r1, [sp, 0x10]
|
|
add r1, r8
|
|
str r1, [sp, 0x10]
|
|
add r5, r8
|
|
ldr r2, [sp, 0x34]
|
|
add r2, r8
|
|
str r2, [sp, 0x34]
|
|
_080B4702:
|
|
ldr r3, [sp, 0x10]
|
|
cmp r3, 0
|
|
ble _080B4714
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
adds r2, r3, 0
|
|
bl sub_80B5D30
|
|
str r0, [sp, 0x5C]
|
|
_080B4714:
|
|
ldr r0, [sp, 0x34]
|
|
cmp r0, 0
|
|
ble _080B4726
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x68]
|
|
ldr r2, [sp, 0x34]
|
|
bl sub_80B5D30
|
|
str r0, [sp, 0x68]
|
|
_080B4726:
|
|
ldr r1, [sp, 0x2C]
|
|
cmp r1, 0
|
|
beq _080B4764
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B5DD0
|
|
cmp r0, 0
|
|
bge _080B4764
|
|
ldr r2, [sp, 0x24]
|
|
subs r2, 0x1
|
|
str r2, [sp, 0x24]
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x5C]
|
|
ldr r3, [sp, 0x30]
|
|
cmp r3, 0
|
|
beq _080B4760
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x64]
|
|
_080B4760:
|
|
ldr r0, [sp, 0x20]
|
|
str r0, [sp, 0x18]
|
|
_080B4764:
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
bgt _080B47A8
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0x2
|
|
ble _080B47A8
|
|
cmp r1, 0
|
|
blt _080B478E
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x68]
|
|
movs r2, 0x5
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x68]
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B5DD0
|
|
cmp r0, 0
|
|
bgt _080B4796
|
|
_080B478E:
|
|
ldr r3, [sp, 0xA4]
|
|
mvns r3, r3
|
|
str r3, [sp, 0x24]
|
|
b _080B49DE
|
|
_080B4796:
|
|
movs r0, 0x31
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
ldr r3, [sp, 0x24]
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x24]
|
|
b _080B49DE
|
|
_080B47A8:
|
|
ldr r0, [sp, 0x30]
|
|
cmp r0, 0
|
|
bne _080B47B0
|
|
b _080B4926
|
|
_080B47B0:
|
|
cmp r5, 0
|
|
ble _080B47C0
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
adds r2, r5, 0
|
|
bl sub_80B5D30
|
|
str r0, [sp, 0x64]
|
|
_080B47C0:
|
|
ldr r1, [sp, 0x64]
|
|
str r1, [sp, 0x60]
|
|
ldr r2, [sp, 0x3C]
|
|
cmp r2, 0
|
|
beq _080B47F2
|
|
ldr r1, [r1, 0x4]
|
|
mov r0, r10
|
|
bl sub_80B58B0
|
|
str r0, [sp, 0x64]
|
|
adds r0, 0xC
|
|
ldr r1, [sp, 0x60]
|
|
adds r1, 0xC
|
|
ldr r3, [sp, 0x60]
|
|
ldr r2, [r3, 0x10]
|
|
lsls r2, 2
|
|
adds r2, 0x8
|
|
bl memcpy
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
movs r2, 0x1
|
|
bl sub_80B5D30
|
|
str r0, [sp, 0x64]
|
|
_080B47F2:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
mov r1, r8
|
|
ldr r2, [sp, 0x44]
|
|
ands r2, r1
|
|
str r2, [sp, 0x80]
|
|
b _080B4848
|
|
_080B4800:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x5C]
|
|
ldr r3, [sp, 0x60]
|
|
ldr r0, [sp, 0x64]
|
|
cmp r3, r0
|
|
bne _080B4828
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x64]
|
|
str r0, [sp, 0x60]
|
|
b _080B4844
|
|
_080B4828:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x60]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x60]
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x64]
|
|
_080B4844:
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_080B4848:
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B3BE0
|
|
adds r7, r0, 0
|
|
adds r7, 0x30
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x60]
|
|
bl sub_80B5DD0
|
|
adds r4, r0, 0
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x68]
|
|
ldr r2, [sp, 0x64]
|
|
bl sub_80B5E10
|
|
adds r5, r0, 0
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, 0
|
|
bne _080B487C
|
|
ldr r0, [sp, 0x5C]
|
|
adds r1, r5, 0
|
|
bl sub_80B5DD0
|
|
adds r6, r0, 0
|
|
b _080B487E
|
|
_080B487C:
|
|
movs r6, 0x1
|
|
_080B487E:
|
|
mov r0, r10
|
|
adds r1, r5, 0
|
|
bl sub_80B5908
|
|
cmp r6, 0
|
|
bne _080B48AA
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0
|
|
bne _080B48AA
|
|
ldr r3, [sp, 0x80]
|
|
cmp r3, 0
|
|
bne _080B48AA
|
|
cmp r7, 0x39
|
|
beq _080B48FC
|
|
cmp r4, 0
|
|
ble _080B48A0
|
|
adds r7, 0x1
|
|
_080B48A0:
|
|
mov r0, r9
|
|
strb r7, [r0]
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
b _080B49DE
|
|
_080B48AA:
|
|
cmp r4, 0
|
|
blt _080B48BE
|
|
cmp r4, 0
|
|
bne _080B48F4
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0
|
|
bne _080B48F4
|
|
ldr r3, [sp, 0x80]
|
|
cmp r3, 0
|
|
bne _080B48F4
|
|
_080B48BE:
|
|
cmp r6, 0
|
|
ble _080B48EE
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
movs r2, 0x1
|
|
bl sub_80B5D30
|
|
str r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B5DD0
|
|
adds r6, r0, 0
|
|
cmp r6, 0
|
|
bgt _080B48E8
|
|
cmp r6, 0
|
|
bne _080B48EE
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B48EE
|
|
_080B48E8:
|
|
adds r7, 0x1
|
|
cmp r7, 0x3A
|
|
beq _080B48FC
|
|
_080B48EE:
|
|
mov r2, r9
|
|
strb r7, [r2]
|
|
b _080B49A6
|
|
_080B48F4:
|
|
cmp r6, 0
|
|
ble _080B4914
|
|
cmp r7, 0x39
|
|
bne _080B4908
|
|
_080B48FC:
|
|
movs r0, 0x39
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
b _080B497C
|
|
_080B4908:
|
|
adds r0, r7, 0x1
|
|
mov r3, r9
|
|
strb r0, [r3]
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
b _080B49DE
|
|
_080B4914:
|
|
mov r1, r9
|
|
strb r7, [r1]
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
ldr r3, [sp, 0x18]
|
|
cmp r8, r3
|
|
beq _080B4924
|
|
b _080B4800
|
|
_080B4924:
|
|
b _080B4958
|
|
_080B4926:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
b _080B493E
|
|
_080B492C:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
movs r2, 0xA
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
str r0, [sp, 0x5C]
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_080B493E:
|
|
ldr r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B3BE0
|
|
adds r7, r0, 0
|
|
adds r7, 0x30
|
|
mov r2, r9
|
|
strb r7, [r2]
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
ldr r0, [sp, 0x18]
|
|
cmp r8, r0
|
|
blt _080B492C
|
|
_080B4958:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
movs r2, 0x1
|
|
bl sub_80B5D30
|
|
str r0, [sp, 0x5C]
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B5DD0
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bgt _080B497C
|
|
cmp r4, 0
|
|
bne _080B49BE
|
|
movs r0, 0x1
|
|
ands r7, r0
|
|
cmp r7, 0
|
|
beq _080B49BE
|
|
_080B497C:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
add r9, r1
|
|
mov r2, r9
|
|
ldrb r2, [r2]
|
|
cmp r2, 0x39
|
|
bne _080B499E
|
|
_080B498A:
|
|
ldr r3, [sp, 0x74]
|
|
cmp r9, r3
|
|
beq _080B49AC
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r1, r9
|
|
ldrb r1, [r1]
|
|
cmp r1, 0x39
|
|
beq _080B498A
|
|
_080B499E:
|
|
mov r2, r9
|
|
ldrb r0, [r2]
|
|
adds r0, 0x1
|
|
strb r0, [r2]
|
|
_080B49A6:
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
b _080B49DE
|
|
_080B49AC:
|
|
ldr r0, [sp, 0x24]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x24]
|
|
movs r0, 0x31
|
|
ldr r1, [sp, 0x74]
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
mov r9, r1
|
|
b _080B49DE
|
|
_080B49BE:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r9, r2
|
|
mov r3, r9
|
|
ldrb r3, [r3]
|
|
cmp r3, 0x30
|
|
bne _080B49DA
|
|
_080B49CC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r1, r9
|
|
ldrb r1, [r1]
|
|
cmp r1, 0x30
|
|
beq _080B49CC
|
|
_080B49DA:
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
_080B49DE:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x68]
|
|
bl sub_80B5908
|
|
ldr r3, [sp, 0x64]
|
|
cmp r3, 0
|
|
beq _080B4A06
|
|
ldr r0, [sp, 0x60]
|
|
cmp r0, 0
|
|
beq _080B49FE
|
|
cmp r0, r3
|
|
beq _080B49FE
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x60]
|
|
bl sub_80B5908
|
|
_080B49FE:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x64]
|
|
bl sub_80B5908
|
|
_080B4A06:
|
|
mov r0, r10
|
|
ldr r1, [sp, 0x5C]
|
|
bl sub_80B5908
|
|
movs r0, 0
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
ldr r0, [sp, 0x24]
|
|
adds r0, 0x1
|
|
ldr r2, [sp, 0xA8]
|
|
str r0, [r2]
|
|
ldr r3, [sp, 0xB0]
|
|
cmp r3, 0
|
|
beq _080B4A24
|
|
str r1, [r3]
|
|
_080B4A24:
|
|
ldr r0, [sp, 0x74]
|
|
_080B4A26:
|
|
add sp, 0x84
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end _dtoa_r
|
|
|
|
thumb_func_start sub_80B4A34
|
|
sub_80B4A34:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080B4A50
|
|
ldr r0, _080B4A48
|
|
ldr r0, [r0]
|
|
ldr r1, _080B4A4C
|
|
bl sub_80B50D0
|
|
b _080B4AC6
|
|
.align 2, 0
|
|
_080B4A48: .4byte gUnknown_203B7A8
|
|
_080B4A4C: .4byte sub_80B4A34
|
|
_080B4A50:
|
|
ldr r0, [r4, 0x54]
|
|
cmp r0, 0
|
|
bne _080B4A5C
|
|
ldr r0, _080B4A90
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0x54]
|
|
_080B4A5C:
|
|
ldr r1, [r4, 0x54]
|
|
ldr r0, [r1, 0x38]
|
|
cmp r0, 0
|
|
bne _080B4A6A
|
|
adds r0, r1, 0
|
|
bl sub_80B4BC4
|
|
_080B4A6A:
|
|
movs r0, 0xC
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B4AC4
|
|
ldr r6, [r4, 0x10]
|
|
cmp r6, 0
|
|
beq _080B4AC4
|
|
ldr r0, [r4]
|
|
subs r5, r0, r6
|
|
str r6, [r4]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B4AA2
|
|
ldr r0, [r4, 0x14]
|
|
b _080B4AA4
|
|
.align 2, 0
|
|
_080B4A90: .4byte gUnknown_203B7A8
|
|
_080B4A94:
|
|
movs r0, 0x40
|
|
ldrh r1, [r4, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080B4AC6
|
|
_080B4AA2:
|
|
movs r0, 0
|
|
_080B4AA4:
|
|
str r0, [r4, 0x8]
|
|
cmp r5, 0
|
|
ble _080B4AC4
|
|
_080B4AAA:
|
|
ldr r0, [r4, 0x1C]
|
|
ldr r3, [r4, 0x24]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl _call_via_r3
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
ble _080B4A94
|
|
adds r6, r1
|
|
subs r5, r1
|
|
cmp r5, 0
|
|
bgt _080B4AAA
|
|
_080B4AC4:
|
|
movs r0, 0
|
|
_080B4AC6:
|
|
pop {r4-r6,pc}
|
|
thumb_func_end sub_80B4A34
|
|
|
|
thumb_func_start sub_80B4AC8
|
|
sub_80B4AC8:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
str r4, [r0]
|
|
str r4, [r0, 0x4]
|
|
str r4, [r0, 0x8]
|
|
strh r1, [r0, 0xC]
|
|
strh r2, [r0, 0xE]
|
|
str r4, [r0, 0x10]
|
|
str r4, [r0, 0x18]
|
|
str r0, [r0, 0x1C]
|
|
ldr r1, _080B4AF0
|
|
str r1, [r0, 0x20]
|
|
ldr r1, _080B4AF4
|
|
str r1, [r0, 0x24]
|
|
ldr r1, _080B4AF8
|
|
str r1, [r0, 0x28]
|
|
ldr r1, _080B4AFC
|
|
str r1, [r0, 0x2C]
|
|
str r3, [r0, 0x54]
|
|
pop {r4,pc}
|
|
.align 2, 0
|
|
_080B4AF0: .4byte sub_80B61F0
|
|
_080B4AF4: .4byte sub_80B6224
|
|
_080B4AF8: .4byte sub_80B6264
|
|
_080B4AFC: .4byte sub_80B62A4
|
|
thumb_func_end sub_80B4AC8
|
|
|
|
thumb_func_start sub_80B4B00
|
|
sub_80B4B00:
|
|
push {r4-r6,lr}
|
|
adds r5, r1, 0
|
|
movs r1, 0x58
|
|
adds r6, r5, 0
|
|
muls r6, r1
|
|
adds r1, r6, 0
|
|
adds r1, 0xC
|
|
bl sub_80B53B4
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _080B4B2C
|
|
adds r0, 0xC
|
|
movs r1, 0
|
|
str r1, [r4]
|
|
str r5, [r4, 0x4]
|
|
str r0, [r4, 0x8]
|
|
adds r2, r6, 0
|
|
bl memset
|
|
adds r0, r4, 0
|
|
b _080B4B2E
|
|
_080B4B2C:
|
|
movs r0, 0
|
|
_080B4B2E:
|
|
pop {r4-r6,pc}
|
|
thumb_func_end sub_80B4B00
|
|
|
|
thumb_func_start sub_80B4B30
|
|
sub_80B4B30:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, [r5, 0x38]
|
|
cmp r0, 0
|
|
bne _080B4B40
|
|
adds r0, r5, 0
|
|
bl sub_80B4BC4
|
|
_080B4B40:
|
|
movs r0, 0xEC
|
|
lsls r0, 1
|
|
adds r4, r5, r0
|
|
b _080B4B4A
|
|
_080B4B48:
|
|
ldr r4, [r4]
|
|
_080B4B4A:
|
|
ldr r2, [r4, 0x8]
|
|
ldr r0, [r4, 0x4]
|
|
b _080B4B5A
|
|
_080B4B50:
|
|
movs r3, 0xC
|
|
ldrsh r1, [r2, r3]
|
|
cmp r1, 0
|
|
beq _080B4B7C
|
|
adds r2, 0x58
|
|
_080B4B5A:
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _080B4B50
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _080B4B48
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
bl sub_80B4B00
|
|
str r0, [r4]
|
|
cmp r0, 0
|
|
bne _080B4B48
|
|
movs r0, 0xC
|
|
str r0, [r5]
|
|
movs r0, 0
|
|
b _080B4B9C
|
|
_080B4B7C:
|
|
movs r0, 0x1
|
|
strh r0, [r2, 0xC]
|
|
str r1, [r2]
|
|
str r1, [r2, 0x8]
|
|
str r1, [r2, 0x4]
|
|
str r1, [r2, 0x10]
|
|
str r1, [r2, 0x14]
|
|
str r1, [r2, 0x18]
|
|
ldr r0, _080B4BA0
|
|
strh r0, [r2, 0xE]
|
|
str r1, [r2, 0x30]
|
|
str r1, [r2, 0x34]
|
|
str r1, [r2, 0x44]
|
|
str r1, [r2, 0x48]
|
|
str r5, [r2, 0x54]
|
|
adds r0, r2, 0
|
|
_080B4B9C:
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B4BA0: .4byte 0x0000ffff
|
|
thumb_func_end sub_80B4B30
|
|
|
|
thumb_func_start sub_80B4BA4
|
|
sub_80B4BA4:
|
|
push {lr}
|
|
ldr r1, _080B4BB0
|
|
bl sub_80B50D0
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080B4BB0: .4byte sub_80B4A34
|
|
thumb_func_end sub_80B4BA4
|
|
|
|
thumb_func_start sub_80B4BB4
|
|
sub_80B4BB4:
|
|
push {lr}
|
|
ldr r0, _080B4BC0
|
|
ldr r0, [r0]
|
|
bl sub_80B4BA4
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080B4BC0: .4byte gUnknown_203B7A8
|
|
thumb_func_end sub_80B4BB4
|
|
|
|
thumb_func_start sub_80B4BC4
|
|
sub_80B4BC4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r0, _080B4C20
|
|
str r0, [r5, 0x3C]
|
|
movs r0, 0x1
|
|
str r0, [r5, 0x38]
|
|
movs r0, 0xF2
|
|
lsls r0, 1
|
|
adds r4, r5, r0
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_80B4AC8
|
|
movs r1, 0x8F
|
|
lsls r1, 2
|
|
adds r0, r5, r1
|
|
movs r1, 0x9
|
|
movs r2, 0x1
|
|
adds r3, r5, 0
|
|
bl sub_80B4AC8
|
|
movs r1, 0xA5
|
|
lsls r1, 2
|
|
adds r0, r5, r1
|
|
movs r1, 0xA
|
|
movs r2, 0x2
|
|
adds r3, r5, 0
|
|
bl sub_80B4AC8
|
|
movs r0, 0xEC
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r0, 0xEE
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x3
|
|
str r0, [r1]
|
|
movs r1, 0xF0
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
str r4, [r0]
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B4C20: .4byte sub_80B4BA4
|
|
thumb_func_end sub_80B4BC4
|
|
|
|
thumb_func_start _free_r
|
|
_free_r:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
bne _080B4C36
|
|
b _080B4DDA
|
|
_080B4C36:
|
|
bl __malloc_lock
|
|
adds r5, r4, 0
|
|
subs r5, 0x8
|
|
ldr r1, [r5, 0x4]
|
|
movs r6, 0x2
|
|
negs r6, r6
|
|
ands r6, r1
|
|
adds r7, r5, r6
|
|
ldr r4, [r7, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r4, r0
|
|
ldr r0, _080B4C98
|
|
mov r12, r0
|
|
ldr r0, [r0, 0x8]
|
|
cmp r7, r0
|
|
bne _080B4CA4
|
|
adds r6, r4
|
|
movs r4, 0x1
|
|
ands r1, r4
|
|
cmp r1, 0
|
|
bne _080B4C72
|
|
ldr r0, [r5]
|
|
subs r5, r0
|
|
adds r6, r0
|
|
ldr r3, [r5, 0xC]
|
|
ldr r2, [r5, 0x8]
|
|
str r3, [r2, 0xC]
|
|
str r2, [r3, 0x8]
|
|
_080B4C72:
|
|
adds r0, r6, 0
|
|
orrs r0, r4
|
|
str r0, [r5, 0x4]
|
|
mov r2, r12
|
|
str r5, [r2, 0x8]
|
|
ldr r0, _080B4C9C
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
bcc _080B4C8E
|
|
ldr r0, _080B4CA0
|
|
ldr r1, [r0]
|
|
mov r0, r9
|
|
bl _malloc_trim_r
|
|
_080B4C8E:
|
|
mov r0, r9
|
|
bl nullsub_127
|
|
b _080B4DDA
|
|
.align 2, 0
|
|
_080B4C98: .4byte gUnknown_203B7C0
|
|
_080B4C9C: .4byte gUnknown_203BBC8
|
|
_080B4CA0: .4byte gUnknown_203BBCC
|
|
_080B4CA4:
|
|
str r4, [r7, 0x4]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _080B4CD0
|
|
ldr r0, [r5]
|
|
subs r5, r0
|
|
adds r6, r0
|
|
ldr r1, [r5, 0x8]
|
|
mov r0, r12
|
|
adds r0, 0x8
|
|
cmp r1, r0
|
|
bne _080B4CC8
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
b _080B4CD0
|
|
_080B4CC8:
|
|
ldr r3, [r5, 0xC]
|
|
adds r2, r1, 0
|
|
str r3, [r2, 0xC]
|
|
str r2, [r3, 0x8]
|
|
_080B4CD0:
|
|
adds r0, r7, r4
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B4D08
|
|
adds r6, r4
|
|
ldr r1, [r7, 0x8]
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080B4D00
|
|
ldr r0, _080B4CFC
|
|
cmp r1, r0
|
|
bne _080B4D00
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
str r5, [r1, 0xC]
|
|
str r5, [r1, 0x8]
|
|
str r1, [r5, 0xC]
|
|
str r1, [r5, 0x8]
|
|
b _080B4D08
|
|
.align 2, 0
|
|
_080B4CFC: .4byte gUnknown_203B7C8
|
|
_080B4D00:
|
|
ldr r3, [r7, 0xC]
|
|
adds r2, r1, 0
|
|
str r3, [r2, 0xC]
|
|
str r2, [r3, 0x8]
|
|
_080B4D08:
|
|
movs r1, 0x1
|
|
adds r0, r6, 0
|
|
orrs r0, r1
|
|
str r0, [r5, 0x4]
|
|
adds r0, r5, r6
|
|
str r6, [r0]
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080B4DD4
|
|
ldr r0, _080B4D38
|
|
cmp r6, r0
|
|
bhi _080B4D40
|
|
lsrs r4, r6, 3
|
|
ldr r2, _080B4D3C
|
|
adds r0, r4, 0
|
|
asrs r0, 2
|
|
lsls r1, r0
|
|
ldr r0, [r2, 0x4]
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
lsls r0, r4, 3
|
|
adds r3, r0, r2
|
|
ldr r2, [r3, 0x8]
|
|
b _080B4DCC
|
|
.align 2, 0
|
|
_080B4D38: .4byte 0x000001ff
|
|
_080B4D3C: .4byte gUnknown_203B7C0
|
|
_080B4D40:
|
|
lsrs r1, r6, 9
|
|
cmp r1, 0
|
|
bne _080B4D4A
|
|
lsrs r4, r6, 3
|
|
b _080B4D92
|
|
_080B4D4A:
|
|
cmp r1, 0x4
|
|
bhi _080B4D56
|
|
lsrs r0, r6, 6
|
|
adds r4, r0, 0
|
|
adds r4, 0x38
|
|
b _080B4D92
|
|
_080B4D56:
|
|
cmp r1, 0x14
|
|
bhi _080B4D60
|
|
adds r4, r1, 0
|
|
adds r4, 0x5B
|
|
b _080B4D92
|
|
_080B4D60:
|
|
cmp r1, 0x54
|
|
bhi _080B4D6C
|
|
lsrs r0, r6, 12
|
|
adds r4, r0, 0
|
|
adds r4, 0x6E
|
|
b _080B4D92
|
|
_080B4D6C:
|
|
movs r0, 0xAA
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bhi _080B4D7C
|
|
lsrs r0, r6, 15
|
|
adds r4, r0, 0
|
|
adds r4, 0x77
|
|
b _080B4D92
|
|
_080B4D7C:
|
|
ldr r0, _080B4D8C
|
|
cmp r1, r0
|
|
bhi _080B4D90
|
|
lsrs r0, r6, 18
|
|
adds r4, r0, 0
|
|
adds r4, 0x7C
|
|
b _080B4D92
|
|
.align 2, 0
|
|
_080B4D8C: .4byte 0x00000554
|
|
_080B4D90:
|
|
movs r4, 0x7E
|
|
_080B4D92:
|
|
lsls r0, r4, 3
|
|
ldr r7, _080B4DB0
|
|
adds r3, r0, r7
|
|
ldr r2, [r3, 0x8]
|
|
cmp r2, r3
|
|
bne _080B4DB4
|
|
adds r0, r4, 0
|
|
asrs r0, 2
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r7, 0x4]
|
|
orrs r0, r1
|
|
str r0, [r7, 0x4]
|
|
b _080B4DCC
|
|
.align 2, 0
|
|
_080B4DB0: .4byte gUnknown_203B7C0
|
|
_080B4DB4:
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
b _080B4DC4
|
|
_080B4DBC:
|
|
ldr r2, [r2, 0x8]
|
|
cmp r2, r3
|
|
beq _080B4DCA
|
|
ldr r0, [r2, 0x4]
|
|
_080B4DC4:
|
|
ands r0, r1
|
|
cmp r6, r0
|
|
bcc _080B4DBC
|
|
_080B4DCA:
|
|
ldr r3, [r2, 0xC]
|
|
_080B4DCC:
|
|
str r3, [r5, 0xC]
|
|
str r2, [r5, 0x8]
|
|
str r5, [r3, 0x8]
|
|
str r5, [r2, 0xC]
|
|
_080B4DD4:
|
|
mov r0, r9
|
|
bl nullsub_127
|
|
_080B4DDA:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7,pc}
|
|
thumb_func_end _free_r
|
|
|
|
thumb_func_start _malloc_trim_r
|
|
_malloc_trim_r:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
bl __malloc_lock
|
|
ldr r0, _080B4E6C
|
|
mov r8, r0
|
|
ldr r0, [r0, 0x8]
|
|
ldr r6, [r0, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r6, r0
|
|
subs r4, r6, r4
|
|
movs r5, 0x80
|
|
lsls r5, 5
|
|
ldr r1, _080B4E70
|
|
adds r4, r1
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80B688C
|
|
subs r0, 0x1
|
|
lsls r4, r0, 12
|
|
cmp r4, r5
|
|
blt _080B4E62
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl _sbrk_r
|
|
adds r2, r0, 0
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, r6
|
|
cmp r2, r0
|
|
bne _080B4E62
|
|
negs r1, r4
|
|
adds r0, r7, 0
|
|
bl _sbrk_r
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080B4E7C
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl _sbrk_r
|
|
adds r2, r0, 0
|
|
mov r0, r8
|
|
ldr r3, [r0, 0x8]
|
|
subs r6, r2, r3
|
|
cmp r6, 0xF
|
|
ble _080B4E62
|
|
ldr r1, _080B4E74
|
|
ldr r0, _080B4E78
|
|
ldr r0, [r0]
|
|
subs r0, r2, r0
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
orrs r6, r0
|
|
str r6, [r3, 0x4]
|
|
_080B4E62:
|
|
adds r0, r7, 0
|
|
bl nullsub_127
|
|
movs r0, 0
|
|
b _080B4E98
|
|
.align 2, 0
|
|
_080B4E6C: .4byte gUnknown_203B7C0
|
|
_080B4E70: .4byte 0x00000fef
|
|
_080B4E74: .4byte gUnknown_203BBDC
|
|
_080B4E78: .4byte gUnknown_203BBD0
|
|
_080B4E7C:
|
|
mov r1, r8
|
|
ldr r2, [r1, 0x8]
|
|
subs r0, r6, r4
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r1, _080B4EA0
|
|
ldr r0, [r1]
|
|
subs r0, r4
|
|
str r0, [r1]
|
|
adds r0, r7, 0
|
|
bl nullsub_127
|
|
movs r0, 0x1
|
|
_080B4E98:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B4EA0: .4byte gUnknown_203BBDC
|
|
thumb_func_end _malloc_trim_r
|
|
|
|
thumb_func_start sub_80B4EA4
|
|
sub_80B4EA4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
mov r10, r1
|
|
ldr r6, [r1, 0x8]
|
|
cmp r6, 0
|
|
bne _080B4EBC
|
|
b _080B50B2
|
|
_080B4EBC:
|
|
movs r0, 0x8
|
|
ldrh r1, [r5, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B4ECC
|
|
ldr r0, [r5, 0x10]
|
|
cmp r0, 0
|
|
bne _080B4ED8
|
|
_080B4ECC:
|
|
adds r0, r5, 0
|
|
bl sub_80B3B34
|
|
cmp r0, 0
|
|
beq _080B4ED8
|
|
b _080B50BE
|
|
_080B4ED8:
|
|
mov r2, r10
|
|
ldr r2, [r2]
|
|
mov r8, r2
|
|
movs r6, 0
|
|
ldrh r1, [r5, 0xC]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B4F2C
|
|
_080B4EEA:
|
|
ldr r0, [r5, 0x1C]
|
|
ldr r3, [r5, 0x24]
|
|
cmp r6, 0
|
|
bne _080B4F00
|
|
_080B4EF2:
|
|
mov r1, r8
|
|
ldr r7, [r1]
|
|
ldr r6, [r1, 0x4]
|
|
movs r2, 0x8
|
|
add r8, r2
|
|
cmp r6, 0
|
|
beq _080B4EF2
|
|
_080B4F00:
|
|
adds r2, r6, 0
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
cmp r6, r1
|
|
bls _080B4F0C
|
|
adds r2, r1, 0
|
|
_080B4F0C:
|
|
adds r1, r7, 0
|
|
bl _call_via_r3
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bgt _080B4F1A
|
|
b _080B50B6
|
|
_080B4F1A:
|
|
adds r7, r4
|
|
subs r6, r4
|
|
mov r1, r10
|
|
ldr r0, [r1, 0x8]
|
|
subs r0, r4
|
|
str r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
bne _080B4EEA
|
|
b _080B50B2
|
|
_080B4F2C:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B4FE6
|
|
_080B4F34:
|
|
ldrh r1, [r5, 0xC]
|
|
ldr r0, [r5, 0x8]
|
|
ldr r3, [r5]
|
|
cmp r6, 0
|
|
bne _080B4F4C
|
|
_080B4F3E:
|
|
mov r2, r8
|
|
ldr r7, [r2]
|
|
ldr r6, [r2, 0x4]
|
|
movs r2, 0x8
|
|
add r8, r2
|
|
cmp r6, 0
|
|
beq _080B4F3E
|
|
_080B4F4C:
|
|
adds r4, r0, 0
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B4F7A
|
|
cmp r6, r4
|
|
bcs _080B4F60
|
|
adds r4, r6, 0
|
|
_080B4F60:
|
|
adds r0, r3, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_80B5820
|
|
ldr r0, [r5, 0x8]
|
|
subs r0, r4
|
|
str r0, [r5, 0x8]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
str r0, [r5]
|
|
adds r4, r6, 0
|
|
b _080B4FD4
|
|
_080B4F7A:
|
|
ldr r0, [r5, 0x10]
|
|
cmp r3, r0
|
|
bls _080B4FA2
|
|
cmp r6, r4
|
|
bls _080B4FA2
|
|
adds r0, r3, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_80B5820
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
str r0, [r5]
|
|
adds r0, r5, 0
|
|
bl sub_80B4A34
|
|
cmp r0, 0
|
|
beq _080B4FA0
|
|
b _080B50B6
|
|
_080B4FA0:
|
|
b _080B4FD4
|
|
_080B4FA2:
|
|
ldr r4, [r5, 0x14]
|
|
cmp r6, r4
|
|
bcc _080B4FBC
|
|
ldr r0, [r5, 0x1C]
|
|
ldr r3, [r5, 0x24]
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl _call_via_r3
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080B50B6
|
|
b _080B4FD4
|
|
_080B4FBC:
|
|
adds r4, r6, 0
|
|
adds r0, r3, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_80B5820
|
|
ldr r0, [r5, 0x8]
|
|
subs r0, r4
|
|
str r0, [r5, 0x8]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
str r0, [r5]
|
|
_080B4FD4:
|
|
adds r7, r4
|
|
subs r6, r4
|
|
mov r1, r10
|
|
ldr r0, [r1, 0x8]
|
|
subs r0, r4
|
|
str r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
bne _080B4F34
|
|
b _080B50B2
|
|
_080B4FE6:
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
_080B4FEA:
|
|
cmp r6, 0
|
|
bne _080B5000
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
_080B4FF2:
|
|
mov r1, r8
|
|
ldr r7, [r1]
|
|
ldr r6, [r1, 0x4]
|
|
movs r2, 0x8
|
|
add r8, r2
|
|
cmp r6, 0
|
|
beq _080B4FF2
|
|
_080B5000:
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bne _080B5024
|
|
adds r0, r7, 0
|
|
movs r1, 0xA
|
|
adds r2, r6, 0
|
|
bl sub_80B57A0
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _080B501C
|
|
subs r0, r7, 0x1
|
|
subs r1, r0
|
|
b _080B501E
|
|
_080B501C:
|
|
adds r1, r6, 0x1
|
|
_080B501E:
|
|
mov r9, r1
|
|
movs r2, 0x1
|
|
str r2, [sp]
|
|
_080B5024:
|
|
mov r2, r9
|
|
cmp r9, r6
|
|
bls _080B502C
|
|
adds r2, r6, 0
|
|
_080B502C:
|
|
ldr r0, [r5, 0x8]
|
|
ldr r1, [r5, 0x14]
|
|
adds r4, r0, r1
|
|
ldr r0, [r5, 0x10]
|
|
ldr r3, [r5]
|
|
cmp r3, r0
|
|
bls _080B505A
|
|
cmp r2, r4
|
|
ble _080B505A
|
|
adds r0, r3, 0
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl sub_80B5820
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
str r0, [r5]
|
|
adds r0, r5, 0
|
|
bl sub_80B4A34
|
|
cmp r0, 0
|
|
bne _080B50B6
|
|
b _080B508A
|
|
_080B505A:
|
|
adds r4, r1, 0
|
|
cmp r2, r4
|
|
blt _080B5074
|
|
ldr r0, [r5, 0x1C]
|
|
ldr r3, [r5, 0x24]
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
bl _call_via_r3
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
ble _080B50B6
|
|
b _080B508A
|
|
_080B5074:
|
|
adds r4, r2, 0
|
|
adds r0, r3, 0
|
|
adds r1, r7, 0
|
|
bl sub_80B5820
|
|
ldr r0, [r5, 0x8]
|
|
subs r0, r4
|
|
str r0, [r5, 0x8]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
str r0, [r5]
|
|
_080B508A:
|
|
mov r0, r9
|
|
subs r0, r4
|
|
mov r9, r0
|
|
cmp r0, 0
|
|
bne _080B50A2
|
|
adds r0, r5, 0
|
|
bl sub_80B4A34
|
|
cmp r0, 0
|
|
bne _080B50B6
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
_080B50A2:
|
|
adds r7, r4
|
|
subs r6, r4
|
|
mov r2, r10
|
|
ldr r0, [r2, 0x8]
|
|
subs r0, r4
|
|
str r0, [r2, 0x8]
|
|
cmp r0, 0
|
|
bne _080B4FEA
|
|
_080B50B2:
|
|
movs r0, 0
|
|
b _080B50C2
|
|
_080B50B6:
|
|
movs r0, 0x40
|
|
ldrh r1, [r5, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r5, 0xC]
|
|
_080B50BE:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080B50C2:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B4EA4
|
|
|
|
thumb_func_start sub_80B50D0
|
|
sub_80B50D0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r1
|
|
movs r7, 0
|
|
movs r1, 0xEC
|
|
lsls r1, 1
|
|
adds r6, r0, r1
|
|
cmp r6, 0
|
|
beq _080B5108
|
|
_080B50E4:
|
|
ldr r5, [r6, 0x8]
|
|
ldr r4, [r6, 0x4]
|
|
b _080B50FC
|
|
_080B50EA:
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080B50FA
|
|
adds r0, r5, 0
|
|
bl _call_via_r8
|
|
orrs r7, r0
|
|
_080B50FA:
|
|
adds r5, 0x58
|
|
_080B50FC:
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080B50EA
|
|
ldr r6, [r6]
|
|
cmp r6, 0
|
|
bne _080B50E4
|
|
_080B5108:
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B50D0
|
|
|
|
thumb_func_start sub_80B5110
|
|
sub_80B5110:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
cmp r4, 0
|
|
beq _080B5144
|
|
ldr r1, _080B5138
|
|
adds r0, r4, 0
|
|
bl strcmp
|
|
cmp r0, 0
|
|
beq _080B5140
|
|
ldr r1, _080B513C
|
|
adds r0, r4, 0
|
|
bl strcmp
|
|
cmp r0, 0
|
|
beq _080B5140
|
|
movs r0, 0
|
|
b _080B5146
|
|
.align 2, 0
|
|
_080B5138: .4byte gUnknown_826FEB0
|
|
_080B513C: .4byte gUnknown_826FEA8
|
|
_080B5140:
|
|
str r6, [r5, 0x30]
|
|
str r4, [r5, 0x34]
|
|
_080B5144:
|
|
ldr r0, _080B5148
|
|
_080B5146:
|
|
pop {r4-r6,pc}
|
|
.align 2, 0
|
|
_080B5148: .4byte gUnknown_826FEB0
|
|
thumb_func_end sub_80B5110
|
|
|
|
thumb_func_start sub_80B514C
|
|
sub_80B514C:
|
|
ldr r0, _080B5150
|
|
bx lr
|
|
.align 2, 0
|
|
_080B5150: .4byte gUnknown_826FE78
|
|
thumb_func_end sub_80B514C
|
|
|
|
thumb_func_start sub_80B5154
|
|
sub_80B5154:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080B5168
|
|
ldr r0, [r0]
|
|
adds r1, r3, 0
|
|
bl sub_80B5110
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080B5168: .4byte gUnknown_203B7A8
|
|
thumb_func_end sub_80B5154
|
|
|
|
thumb_func_start sub_80B516C
|
|
sub_80B516C:
|
|
push {lr}
|
|
ldr r0, _080B5178
|
|
ldr r0, [r0]
|
|
bl sub_80B514C
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080B5178: .4byte gUnknown_203B7A8
|
|
thumb_func_end sub_80B516C
|
|
|
|
thumb_func_start sub_80B517C
|
|
sub_80B517C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x3C
|
|
adds r4, r0, 0
|
|
movs r0, 0x2
|
|
ldrh r1, [r4, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5212
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
blt _080B51A4
|
|
ldr r0, [r4, 0x54]
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
mov r2, sp
|
|
bl sub_80B67D8
|
|
cmp r0, 0
|
|
bge _080B51B6
|
|
_080B51A4:
|
|
movs r7, 0
|
|
movs r6, 0x80
|
|
lsls r6, 3
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
adds r0, r1, 0
|
|
ldrh r2, [r4, 0xC]
|
|
orrs r0, r2
|
|
b _080B51FA
|
|
_080B51B6:
|
|
movs r7, 0
|
|
ldr r1, [sp, 0x4]
|
|
movs r0, 0xF0
|
|
lsls r0, 8
|
|
ands r1, r0
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
cmp r1, r0
|
|
bne _080B51CA
|
|
movs r7, 0x1
|
|
_080B51CA:
|
|
movs r6, 0x80
|
|
lsls r6, 3
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
cmp r1, r0
|
|
bne _080B51F0
|
|
ldr r1, [r4, 0x28]
|
|
ldr r0, _080B51EC
|
|
cmp r1, r0
|
|
bne _080B51F0
|
|
adds r0, r6, 0
|
|
ldrh r1, [r4, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
str r6, [r4, 0x4C]
|
|
b _080B51FC
|
|
.align 2, 0
|
|
_080B51EC: .4byte sub_80B6264
|
|
_080B51F0:
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r0, r2, 0
|
|
ldrh r1, [r4, 0xC]
|
|
orrs r0, r1
|
|
_080B51FA:
|
|
strh r0, [r4, 0xC]
|
|
_080B51FC:
|
|
ldr r0, [r4, 0x54]
|
|
adds r1, r6, 0
|
|
bl sub_80B53B4
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
bne _080B5220
|
|
movs r0, 0x2
|
|
ldrh r2, [r4, 0xC]
|
|
orrs r0, r2
|
|
strh r0, [r4, 0xC]
|
|
_080B5212:
|
|
adds r0, r4, 0
|
|
adds r0, 0x43
|
|
str r0, [r4]
|
|
str r0, [r4, 0x10]
|
|
movs r0, 0x1
|
|
str r0, [r4, 0x14]
|
|
b _080B524E
|
|
_080B5220:
|
|
ldr r1, [r4, 0x54]
|
|
ldr r0, _080B5254
|
|
str r0, [r1, 0x3C]
|
|
movs r0, 0x80
|
|
movs r5, 0
|
|
ldrh r1, [r4, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
str r2, [r4]
|
|
str r2, [r4, 0x10]
|
|
str r6, [r4, 0x14]
|
|
cmp r7, 0
|
|
beq _080B524E
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
bl isatty
|
|
cmp r0, 0
|
|
beq _080B524E
|
|
movs r0, 0x1
|
|
ldrh r1, [r4, 0xC]
|
|
orrs r0, r1
|
|
strh r0, [r4, 0xC]
|
|
_080B524E:
|
|
add sp, 0x3C
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B5254: .4byte sub_80B4BA4
|
|
thumb_func_end sub_80B517C
|
|
|
|
thumb_func_start sub_80B5258
|
|
sub_80B5258:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
str r0, [sp]
|
|
ldr r0, _080B52CC
|
|
ldr r0, [r0, 0x8]
|
|
mov r8, r0
|
|
ldr r7, [r0, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r7, r0
|
|
mov r2, r8
|
|
adds r4, r2, r7
|
|
ldr r0, _080B52D0
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
adds r6, r1, 0
|
|
adds r6, 0x10
|
|
ldr r3, _080B52D4
|
|
mov r10, r3
|
|
ldr r0, [r3]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
mov r9, r2
|
|
cmp r0, r9
|
|
beq _080B529A
|
|
ldr r3, _080B52D8
|
|
adds r6, r1, r3
|
|
ldr r0, _080B52DC
|
|
ands r6, r0
|
|
_080B529A:
|
|
ldr r0, [sp]
|
|
adds r1, r6, 0
|
|
bl _sbrk_r
|
|
adds r5, r0, 0
|
|
cmp r5, r9
|
|
beq _080B539C
|
|
cmp r5, r4
|
|
bcs _080B52B2
|
|
ldr r0, _080B52CC
|
|
cmp r8, r0
|
|
bne _080B539C
|
|
_080B52B2:
|
|
ldr r1, _080B52E0
|
|
ldr r0, [r1]
|
|
adds r2, r0, r6
|
|
str r2, [r1]
|
|
cmp r5, r4
|
|
bne _080B52E4
|
|
adds r2, r6, r7
|
|
ldr r3, _080B52CC
|
|
ldr r1, [r3, 0x8]
|
|
movs r0, 0x1
|
|
orrs r2, r0
|
|
str r2, [r1, 0x4]
|
|
b _080B5384
|
|
.align 2, 0
|
|
_080B52CC: .4byte gUnknown_203B7C0
|
|
_080B52D0: .4byte gUnknown_203BBCC
|
|
_080B52D4: .4byte gUnknown_203BBD0
|
|
_080B52D8: .4byte 0x0000100f
|
|
_080B52DC: .4byte 0xfffff000
|
|
_080B52E0: .4byte gUnknown_203BBDC
|
|
_080B52E4:
|
|
mov r3, r10
|
|
ldr r0, [r3]
|
|
cmp r0, r9
|
|
bne _080B52F0
|
|
str r5, [r3]
|
|
b _080B52F6
|
|
_080B52F0:
|
|
subs r0, r5, r4
|
|
adds r0, r2, r0
|
|
str r0, [r1]
|
|
_080B52F6:
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
movs r0, 0x7
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080B530A
|
|
movs r0, 0x8
|
|
subs r4, r0, r1
|
|
adds r5, r4
|
|
b _080B530C
|
|
_080B530A:
|
|
movs r4, 0
|
|
_080B530C:
|
|
adds r0, r5, r6
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
subs r1, 0x1
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
subs r0, r1, r0
|
|
adds r4, r0
|
|
ldr r0, [sp]
|
|
adds r1, r4, 0
|
|
bl _sbrk_r
|
|
adds r2, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080B539C
|
|
ldr r1, _080B5354
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
str r0, [r1]
|
|
ldr r1, _080B5358
|
|
str r5, [r1, 0x8]
|
|
subs r0, r2, r5
|
|
adds r2, r0, r4
|
|
movs r3, 0x1
|
|
orrs r2, r3
|
|
str r2, [r5, 0x4]
|
|
cmp r8, r1
|
|
beq _080B5384
|
|
cmp r7, 0xF
|
|
bhi _080B535C
|
|
str r3, [r5, 0x4]
|
|
b _080B539C
|
|
.align 2, 0
|
|
_080B5354: .4byte gUnknown_203BBDC
|
|
_080B5358: .4byte gUnknown_203B7C0
|
|
_080B535C:
|
|
subs r7, 0xC
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
ands r7, r0
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
ands r0, r3
|
|
orrs r0, r7
|
|
str r0, [r2, 0x4]
|
|
adds r1, r2, r7
|
|
movs r0, 0x5
|
|
str r0, [r1, 0x4]
|
|
str r0, [r1, 0x8]
|
|
cmp r7, 0xF
|
|
bls _080B5384
|
|
mov r1, r8
|
|
adds r1, 0x8
|
|
ldr r0, [sp]
|
|
bl _free_r
|
|
_080B5384:
|
|
ldr r0, _080B53A8
|
|
ldr r2, _080B53AC
|
|
ldr r1, [r0]
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bls _080B5392
|
|
str r1, [r2]
|
|
_080B5392:
|
|
ldr r2, _080B53B0
|
|
ldr r0, [r2]
|
|
cmp r1, r0
|
|
bls _080B539C
|
|
str r1, [r2]
|
|
_080B539C:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B53A8: .4byte gUnknown_203BBDC
|
|
_080B53AC: .4byte gUnknown_203BBD4
|
|
_080B53B0: .4byte gUnknown_203BBD8
|
|
thumb_func_end sub_80B5258
|
|
|
|
thumb_func_start sub_80B53B4
|
|
sub_80B53B4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
str r0, [sp]
|
|
adds r1, 0xB
|
|
cmp r1, 0x16
|
|
ble _080B53D6
|
|
movs r0, 0x8
|
|
negs r0, r0
|
|
mov r8, r0
|
|
mov r2, r8
|
|
ands r2, r1
|
|
mov r8, r2
|
|
b _080B53DA
|
|
_080B53D6:
|
|
movs r3, 0x10
|
|
mov r8, r3
|
|
_080B53DA:
|
|
ldr r0, [sp]
|
|
bl __malloc_lock
|
|
ldr r0, _080B5420
|
|
cmp r8, r0
|
|
bhi _080B542E
|
|
mov r4, r8
|
|
lsrs r4, 3
|
|
mov r12, r4
|
|
ldr r0, _080B5424
|
|
mov r7, r8
|
|
adds r2, r7, r0
|
|
ldr r5, [r2, 0xC]
|
|
cmp r5, r2
|
|
bne _080B5402
|
|
adds r2, r5, 0
|
|
adds r2, 0x8
|
|
ldr r5, [r2, 0xC]
|
|
cmp r5, r2
|
|
beq _080B5428
|
|
_080B5402:
|
|
ldr r2, [r5, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r2, r0
|
|
ldr r6, [r5, 0xC]
|
|
ldr r4, [r5, 0x8]
|
|
str r6, [r4, 0xC]
|
|
str r4, [r6, 0x8]
|
|
adds r2, r5, r2
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
b _080B575A
|
|
.align 2, 0
|
|
_080B5420: .4byte 0x000001f7
|
|
_080B5424: .4byte gUnknown_203B7C0
|
|
_080B5428:
|
|
movs r0, 0x2
|
|
add r12, r0
|
|
b _080B54DA
|
|
_080B542E:
|
|
mov r2, r8
|
|
lsrs r1, r2, 9
|
|
cmp r1, 0
|
|
bne _080B543A
|
|
lsrs r2, 3
|
|
b _080B548A
|
|
_080B543A:
|
|
cmp r1, 0x4
|
|
bhi _080B5448
|
|
mov r3, r8
|
|
lsrs r0, r3, 6
|
|
adds r0, 0x38
|
|
mov r12, r0
|
|
b _080B548C
|
|
_080B5448:
|
|
cmp r1, 0x14
|
|
bhi _080B5452
|
|
adds r1, 0x5B
|
|
mov r12, r1
|
|
b _080B548C
|
|
_080B5452:
|
|
cmp r1, 0x54
|
|
bhi _080B5460
|
|
mov r4, r8
|
|
lsrs r0, r4, 12
|
|
adds r0, 0x6E
|
|
mov r12, r0
|
|
b _080B548C
|
|
_080B5460:
|
|
movs r0, 0xAA
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bhi _080B5472
|
|
mov r7, r8
|
|
lsrs r0, r7, 15
|
|
adds r0, 0x77
|
|
mov r12, r0
|
|
b _080B548C
|
|
_080B5472:
|
|
ldr r0, _080B5484
|
|
cmp r1, r0
|
|
bhi _080B5488
|
|
mov r1, r8
|
|
lsrs r0, r1, 18
|
|
adds r0, 0x7C
|
|
mov r12, r0
|
|
b _080B548C
|
|
.align 2, 0
|
|
_080B5484: .4byte 0x00000554
|
|
_080B5488:
|
|
movs r2, 0x7E
|
|
_080B548A:
|
|
mov r12, r2
|
|
_080B548C:
|
|
mov r3, r12
|
|
lsls r0, r3, 3
|
|
ldr r1, _080B54B0
|
|
adds r4, r0, r1
|
|
ldr r5, [r4, 0xC]
|
|
cmp r5, r4
|
|
beq _080B54D6
|
|
ldr r1, [r5, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r1, r0
|
|
mov r7, r8
|
|
subs r3, r1, r7
|
|
cmp r3, 0xF
|
|
ble _080B54B4
|
|
adds r0, 0x3
|
|
add r12, r0
|
|
b _080B54D6
|
|
.align 2, 0
|
|
_080B54B0: .4byte gUnknown_203B7C0
|
|
_080B54B4:
|
|
cmp r3, 0
|
|
blt _080B54BA
|
|
b _080B56F4
|
|
_080B54BA:
|
|
ldr r5, [r5, 0xC]
|
|
cmp r5, r4
|
|
beq _080B54D6
|
|
ldr r1, [r5, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r1, r0
|
|
mov r2, r8
|
|
subs r3, r1, r2
|
|
cmp r3, 0xF
|
|
ble _080B54B4
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r12, r3
|
|
_080B54D6:
|
|
movs r4, 0x1
|
|
add r12, r4
|
|
_080B54DA:
|
|
ldr r0, _080B5518
|
|
ldr r5, [r0, 0x8]
|
|
mov r10, r0
|
|
cmp r5, r10
|
|
bne _080B54E6
|
|
b _080B55E8
|
|
_080B54E6:
|
|
ldr r1, [r5, 0x4]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ands r1, r0
|
|
mov r7, r8
|
|
subs r3, r1, r7
|
|
cmp r3, 0xF
|
|
ble _080B551C
|
|
adds r2, r5, r7
|
|
movs r1, 0x1
|
|
adds r0, r7, 0
|
|
orrs r0, r1
|
|
str r0, [r5, 0x4]
|
|
mov r4, r10
|
|
str r2, [r4, 0xC]
|
|
str r2, [r4, 0x8]
|
|
str r4, [r2, 0xC]
|
|
str r4, [r2, 0x8]
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
adds r0, r2, r3
|
|
str r3, [r0]
|
|
b _080B575A
|
|
.align 2, 0
|
|
_080B5518: .4byte gUnknown_203B7C8
|
|
_080B551C:
|
|
mov r7, r10
|
|
str r7, [r7, 0xC]
|
|
str r7, [r7, 0x8]
|
|
cmp r3, 0
|
|
blt _080B5532
|
|
adds r2, r5, r1
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
b _080B575A
|
|
_080B5532:
|
|
ldr r0, _080B5554
|
|
cmp r1, r0
|
|
bhi _080B5558
|
|
lsrs r2, r1, 3
|
|
mov r3, r10
|
|
subs r3, 0x8
|
|
adds r0, r2, 0
|
|
asrs r0, 2
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r3, 0x4]
|
|
orrs r0, r1
|
|
str r0, [r3, 0x4]
|
|
lsls r0, r2, 3
|
|
adds r6, r0, r3
|
|
ldr r4, [r6, 0x8]
|
|
b _080B55E0
|
|
.align 2, 0
|
|
_080B5554: .4byte 0x000001ff
|
|
_080B5558:
|
|
lsrs r2, r1, 9
|
|
cmp r2, 0
|
|
bne _080B5562
|
|
lsrs r2, r1, 3
|
|
b _080B55A6
|
|
_080B5562:
|
|
cmp r2, 0x4
|
|
bhi _080B556E
|
|
lsrs r0, r1, 6
|
|
adds r2, r0, 0
|
|
adds r2, 0x38
|
|
b _080B55A6
|
|
_080B556E:
|
|
cmp r2, 0x14
|
|
bhi _080B5576
|
|
adds r2, 0x5B
|
|
b _080B55A6
|
|
_080B5576:
|
|
cmp r2, 0x54
|
|
bhi _080B5582
|
|
lsrs r0, r1, 12
|
|
adds r2, r0, 0
|
|
adds r2, 0x6E
|
|
b _080B55A6
|
|
_080B5582:
|
|
movs r0, 0xAA
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bhi _080B5592
|
|
lsrs r0, r1, 15
|
|
adds r2, r0, 0
|
|
adds r2, 0x77
|
|
b _080B55A6
|
|
_080B5592:
|
|
ldr r0, _080B55A0
|
|
cmp r2, r0
|
|
bhi _080B55A4
|
|
lsrs r0, r1, 18
|
|
adds r2, r0, 0
|
|
adds r2, 0x7C
|
|
b _080B55A6
|
|
.align 2, 0
|
|
_080B55A0: .4byte 0x00000554
|
|
_080B55A4:
|
|
movs r2, 0x7E
|
|
_080B55A6:
|
|
lsls r0, r2, 3
|
|
ldr r3, _080B55C4
|
|
adds r6, r0, r3
|
|
ldr r4, [r6, 0x8]
|
|
cmp r4, r6
|
|
bne _080B55C8
|
|
adds r0, r2, 0
|
|
asrs r0, 2
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r7, _080B55C4
|
|
ldr r0, [r7, 0x4]
|
|
orrs r0, r1
|
|
str r0, [r7, 0x4]
|
|
b _080B55E0
|
|
.align 2, 0
|
|
_080B55C4: .4byte gUnknown_203B7C0
|
|
_080B55C8:
|
|
ldr r0, [r4, 0x4]
|
|
movs r2, 0x4
|
|
negs r2, r2
|
|
b _080B55D8
|
|
_080B55D0:
|
|
ldr r4, [r4, 0x8]
|
|
cmp r4, r6
|
|
beq _080B55DE
|
|
ldr r0, [r4, 0x4]
|
|
_080B55D8:
|
|
ands r0, r2
|
|
cmp r1, r0
|
|
bcc _080B55D0
|
|
_080B55DE:
|
|
ldr r6, [r4, 0xC]
|
|
_080B55E0:
|
|
str r6, [r5, 0xC]
|
|
str r4, [r5, 0x8]
|
|
str r5, [r6, 0x8]
|
|
str r5, [r4, 0xC]
|
|
_080B55E8:
|
|
mov r0, r12
|
|
cmp r0, 0
|
|
bge _080B55F0
|
|
adds r0, 0x3
|
|
_080B55F0:
|
|
asrs r0, 2
|
|
movs r6, 0x1
|
|
lsls r6, r0
|
|
ldr r0, _080B5614
|
|
ldr r1, [r0, 0x4]
|
|
cmp r6, r1
|
|
bhi _080B56B2
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5626
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
mov r2, r12
|
|
ands r0, r2
|
|
adds r0, 0x4
|
|
mov r12, r0
|
|
b _080B561C
|
|
.align 2, 0
|
|
_080B5614: .4byte gUnknown_203B7C0
|
|
_080B5618:
|
|
movs r3, 0x4
|
|
add r12, r3
|
|
_080B561C:
|
|
lsls r6, 1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B5618
|
|
_080B5626:
|
|
ldr r4, _080B56A4
|
|
mov r9, r4
|
|
_080B562A:
|
|
mov r7, r12
|
|
str r7, [sp, 0x4]
|
|
mov r1, r12
|
|
lsls r0, r1, 3
|
|
mov r3, r9
|
|
adds r2, r0, r3
|
|
adds r4, r2, 0
|
|
_080B5638:
|
|
ldr r5, [r4, 0xC]
|
|
cmp r5, r4
|
|
beq _080B5658
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
_080B5642:
|
|
ldr r1, [r5, 0x4]
|
|
ands r1, r0
|
|
mov r7, r8
|
|
subs r3, r1, r7
|
|
cmp r3, 0xF
|
|
bgt _080B5708
|
|
cmp r3, 0
|
|
bge _080B5730
|
|
ldr r5, [r5, 0xC]
|
|
cmp r5, r4
|
|
bne _080B5642
|
|
_080B5658:
|
|
adds r4, 0x8
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
mov r0, r12
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5638
|
|
_080B5668:
|
|
ldr r0, [sp, 0x4]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B56A8
|
|
ldr r3, [sp, 0x4]
|
|
subs r3, 0x1
|
|
str r3, [sp, 0x4]
|
|
subs r2, 0x8
|
|
ldr r0, [r2, 0x8]
|
|
cmp r0, r2
|
|
beq _080B5668
|
|
_080B567E:
|
|
lsls r6, 1
|
|
mov r4, r9
|
|
ldr r1, [r4, 0x4]
|
|
cmp r6, r1
|
|
bhi _080B56B2
|
|
cmp r6, 0
|
|
beq _080B56B2
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B562A
|
|
_080B5694:
|
|
movs r7, 0x4
|
|
add r12, r7
|
|
lsls r6, 1
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B5694
|
|
b _080B562A
|
|
.align 2, 0
|
|
_080B56A4: .4byte gUnknown_203B7C0
|
|
_080B56A8:
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
bics r0, r6
|
|
str r0, [r1, 0x4]
|
|
b _080B567E
|
|
_080B56B2:
|
|
ldr r2, _080B56F0
|
|
ldr r0, [r2, 0x8]
|
|
ldr r0, [r0, 0x4]
|
|
movs r4, 0x4
|
|
negs r4, r4
|
|
ands r0, r4
|
|
mov r7, r8
|
|
subs r3, r0, r7
|
|
cmp r0, r8
|
|
bcc _080B56CA
|
|
cmp r3, 0xF
|
|
bgt _080B5744
|
|
_080B56CA:
|
|
ldr r0, [sp]
|
|
mov r1, r8
|
|
bl sub_80B5258
|
|
ldr r1, _080B56F0
|
|
ldr r0, [r1, 0x8]
|
|
ldr r0, [r0, 0x4]
|
|
ands r0, r4
|
|
mov r2, r8
|
|
subs r3, r0, r2
|
|
cmp r0, r8
|
|
bcc _080B56E6
|
|
cmp r3, 0xF
|
|
bgt _080B5744
|
|
_080B56E6:
|
|
ldr r0, [sp]
|
|
bl nullsub_127
|
|
movs r0, 0
|
|
b _080B5764
|
|
.align 2, 0
|
|
_080B56F0: .4byte gUnknown_203B7C0
|
|
_080B56F4:
|
|
ldr r6, [r5, 0xC]
|
|
ldr r4, [r5, 0x8]
|
|
str r6, [r4, 0xC]
|
|
str r4, [r6, 0x8]
|
|
adds r2, r5, r1
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
b _080B575A
|
|
_080B5708:
|
|
mov r4, r8
|
|
adds r2, r5, r4
|
|
movs r1, 0x1
|
|
orrs r4, r1
|
|
str r4, [r5, 0x4]
|
|
ldr r6, [r5, 0xC]
|
|
ldr r4, [r5, 0x8]
|
|
str r6, [r4, 0xC]
|
|
str r4, [r6, 0x8]
|
|
mov r7, r10
|
|
str r2, [r7, 0xC]
|
|
str r2, [r7, 0x8]
|
|
str r7, [r2, 0xC]
|
|
str r7, [r2, 0x8]
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
adds r0, r2, r3
|
|
str r3, [r0]
|
|
b _080B575A
|
|
_080B5730:
|
|
adds r2, r5, r1
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r6, [r5, 0xC]
|
|
ldr r4, [r5, 0x8]
|
|
str r6, [r4, 0xC]
|
|
str r4, [r6, 0x8]
|
|
b _080B575A
|
|
_080B5744:
|
|
ldr r2, _080B5770
|
|
ldr r5, [r2, 0x8]
|
|
movs r1, 0x1
|
|
mov r0, r8
|
|
orrs r0, r1
|
|
str r0, [r5, 0x4]
|
|
mov r4, r8
|
|
adds r0, r5, r4
|
|
str r0, [r2, 0x8]
|
|
orrs r3, r1
|
|
str r3, [r0, 0x4]
|
|
_080B575A:
|
|
ldr r0, [sp]
|
|
bl nullsub_127
|
|
adds r0, r5, 0
|
|
adds r0, 0x8
|
|
_080B5764:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B5770: .4byte gUnknown_203B7C0
|
|
thumb_func_end sub_80B53B4
|
|
|
|
thumb_func_start sub_80B5774
|
|
sub_80B5774:
|
|
sub sp, 0x4
|
|
cmp r1, 0
|
|
bne _080B577C
|
|
mov r1, sp
|
|
_080B577C:
|
|
cmp r2, 0
|
|
beq _080B5798
|
|
cmp r3, 0
|
|
bne _080B578A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080B579A
|
|
_080B578A:
|
|
ldrb r0, [r2]
|
|
str r0, [r1]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080B5798
|
|
movs r0, 0x1
|
|
b _080B579A
|
|
_080B5798:
|
|
movs r0, 0
|
|
_080B579A:
|
|
add sp, 0x4
|
|
bx lr
|
|
thumb_func_end sub_80B5774
|
|
|
|
thumb_func_start sub_80B57A0
|
|
sub_80B57A0:
|
|
push {r4-r7,lr}
|
|
adds r5, r1, 0
|
|
adds r1, r0, 0
|
|
movs r0, 0xFF
|
|
ands r5, r0
|
|
cmp r2, 0x3
|
|
bls _080B5814
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5814
|
|
adds r4, r1, 0
|
|
movs r6, 0
|
|
movs r1, 0
|
|
_080B57BC:
|
|
lsls r0, r6, 8
|
|
adds r6, r0, r5
|
|
adds r1, 0x1
|
|
cmp r1, 0x3
|
|
bls _080B57BC
|
|
cmp r2, 0x3
|
|
bls _080B57FA
|
|
ldr r0, _080B5800
|
|
mov r12, r0
|
|
ldr r7, _080B5804
|
|
_080B57D0:
|
|
ldr r1, [r4]
|
|
eors r1, r6
|
|
mov r3, r12
|
|
adds r0, r1, r3
|
|
bics r0, r1
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _080B57F2
|
|
adds r1, r4, 0
|
|
movs r3, 0
|
|
_080B57E4:
|
|
ldrb r0, [r1]
|
|
cmp r0, r5
|
|
beq _080B580E
|
|
adds r1, 0x1
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bls _080B57E4
|
|
_080B57F2:
|
|
subs r2, 0x4
|
|
adds r4, 0x4
|
|
cmp r2, 0x3
|
|
bhi _080B57D0
|
|
_080B57FA:
|
|
adds r1, r4, 0
|
|
b _080B5814
|
|
.align 2, 0
|
|
_080B5800: .4byte 0xfefefeff
|
|
_080B5804: .4byte 0x80808080
|
|
_080B5808:
|
|
ldrb r0, [r1]
|
|
cmp r0, r5
|
|
bne _080B5812
|
|
_080B580E:
|
|
adds r0, r1, 0
|
|
b _080B581E
|
|
_080B5812:
|
|
adds r1, 0x1
|
|
_080B5814:
|
|
adds r0, r2, 0
|
|
subs r2, 0x1
|
|
cmp r0, 0
|
|
bne _080B5808
|
|
movs r0, 0
|
|
_080B581E:
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B57A0
|
|
|
|
thumb_func_start sub_80B5820
|
|
sub_80B5820:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r5, 0
|
|
adds r3, r1, 0
|
|
cmp r3, r5
|
|
bcs _080B5852
|
|
adds r0, r3, r2
|
|
cmp r5, r0
|
|
bcs _080B5852
|
|
adds r3, r0, 0
|
|
adds r4, r5, r2
|
|
subs r2, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080B58A4
|
|
adds r1, r0, 0
|
|
_080B5842:
|
|
subs r4, 0x1
|
|
subs r3, 0x1
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
subs r2, 0x1
|
|
cmp r2, r1
|
|
bne _080B5842
|
|
b _080B58A4
|
|
_080B5852:
|
|
cmp r2, 0xF
|
|
bls _080B588A
|
|
adds r0, r3, 0
|
|
orrs r0, r4
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B588A
|
|
adds r1, r3, 0
|
|
_080B5864:
|
|
ldm r1!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r1!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r1!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r1!, {r0}
|
|
stm r4!, {r0}
|
|
subs r2, 0x10
|
|
cmp r2, 0xF
|
|
bhi _080B5864
|
|
cmp r2, 0x3
|
|
bls _080B5888
|
|
_080B587E:
|
|
ldm r1!, {r0}
|
|
stm r4!, {r0}
|
|
subs r2, 0x4
|
|
cmp r2, 0x3
|
|
bhi _080B587E
|
|
_080B5888:
|
|
adds r3, r1, 0
|
|
_080B588A:
|
|
subs r2, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080B58A4
|
|
adds r1, r0, 0
|
|
_080B5896:
|
|
ldrb r0, [r3]
|
|
strb r0, [r4]
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, r1
|
|
bne _080B5896
|
|
_080B58A4:
|
|
adds r0, r5, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B5820
|
|
|
|
thumb_func_start __malloc_lock
|
|
__malloc_lock:
|
|
bx lr
|
|
thumb_func_end __malloc_lock
|
|
|
|
thumb_func_start nullsub_127
|
|
nullsub_127:
|
|
bx lr
|
|
thumb_func_end nullsub_127
|
|
|
|
thumb_func_start sub_80B58B0
|
|
sub_80B58B0:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
ldr r0, [r4, 0x4C]
|
|
cmp r0, 0
|
|
bne _080B58CC
|
|
adds r0, r4, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x10
|
|
bl sub_80B6748
|
|
str r0, [r4, 0x4C]
|
|
cmp r0, 0
|
|
beq _080B58F4
|
|
_080B58CC:
|
|
ldr r1, [r4, 0x4C]
|
|
lsls r0, r6, 2
|
|
adds r2, r0, r1
|
|
ldr r1, [r2]
|
|
cmp r1, 0
|
|
beq _080B58DE
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
b _080B58FC
|
|
_080B58DE:
|
|
movs r5, 0x1
|
|
lsls r5, r6
|
|
lsls r2, r5, 2
|
|
adds r2, 0x14
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80B6748
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _080B58F8
|
|
_080B58F4:
|
|
movs r0, 0
|
|
b _080B5904
|
|
_080B58F8:
|
|
str r6, [r1, 0x4]
|
|
str r5, [r1, 0x8]
|
|
_080B58FC:
|
|
movs r0, 0
|
|
str r0, [r1, 0x10]
|
|
str r0, [r1, 0xC]
|
|
adds r0, r1, 0
|
|
_080B5904:
|
|
pop {r4-r6,pc}
|
|
thumb_func_end sub_80B58B0
|
|
|
|
thumb_func_start sub_80B5908
|
|
sub_80B5908:
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
cmp r2, 0
|
|
beq _080B591E
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r3, 0x4C]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
str r1, [r2]
|
|
str r2, [r0]
|
|
_080B591E:
|
|
bx lr
|
|
thumb_func_end sub_80B5908
|
|
|
|
thumb_func_start sub_80B5920
|
|
sub_80B5920:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r6, [r5, 0x10]
|
|
adds r3, r5, 0
|
|
adds r3, 0x14
|
|
movs r7, 0
|
|
ldr r0, _080B59B4
|
|
mov r12, r0
|
|
_080B593C:
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
mov r2, r12
|
|
ands r0, r2
|
|
adds r2, r0, 0
|
|
muls r2, r4
|
|
add r2, r8
|
|
lsrs r1, 16
|
|
adds r0, r1, 0
|
|
muls r0, r4
|
|
lsrs r1, r2, 16
|
|
adds r0, r1
|
|
lsrs r1, r0, 16
|
|
mov r8, r1
|
|
lsls r0, 16
|
|
mov r1, r12
|
|
ands r2, r1
|
|
adds r0, r2
|
|
stm r3!, {r0}
|
|
adds r7, 0x1
|
|
cmp r7, r6
|
|
blt _080B593C
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _080B59AA
|
|
ldr r0, [r5, 0x8]
|
|
cmp r6, r0
|
|
blt _080B599A
|
|
ldr r1, [r5, 0x4]
|
|
adds r1, 0x1
|
|
mov r0, r9
|
|
bl sub_80B58B0
|
|
adds r4, r0, 0
|
|
adds r0, 0xC
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
ldr r2, [r5, 0x10]
|
|
lsls r2, 2
|
|
adds r2, 0x8
|
|
bl memcpy
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80B5908
|
|
adds r5, r4, 0
|
|
_080B599A:
|
|
lsls r1, r6, 2
|
|
adds r0, r5, 0
|
|
adds r0, 0x14
|
|
adds r0, r1
|
|
mov r1, r8
|
|
str r1, [r0]
|
|
adds r6, 0x1
|
|
str r6, [r5, 0x10]
|
|
_080B59AA:
|
|
adds r0, r5, 0
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B59B4: .4byte 0x0000ffff
|
|
thumb_func_end sub_80B5920
|
|
|
|
thumb_func_start sub_80B59B8
|
|
sub_80B59B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
mov r0, r8
|
|
adds r0, 0x8
|
|
movs r1, 0x9
|
|
bl __divsi3
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
cmp r0, 0x1
|
|
ble _080B59E0
|
|
_080B59D8:
|
|
lsls r2, 1
|
|
adds r1, 0x1
|
|
cmp r0, r2
|
|
bgt _080B59D8
|
|
_080B59E0:
|
|
adds r0, r7, 0
|
|
bl sub_80B58B0
|
|
adds r1, r0, 0
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [r1, 0x14]
|
|
movs r0, 0x1
|
|
str r0, [r1, 0x10]
|
|
movs r5, 0x9
|
|
cmp r6, 0x9
|
|
ble _080B5A12
|
|
adds r4, 0x9
|
|
_080B59F8:
|
|
ldrb r3, [r4]
|
|
subs r3, 0x30
|
|
adds r4, 0x1
|
|
adds r0, r7, 0
|
|
movs r2, 0xA
|
|
bl sub_80B5920
|
|
adds r1, r0, 0
|
|
adds r5, 0x1
|
|
cmp r5, r6
|
|
blt _080B59F8
|
|
adds r4, 0x1
|
|
b _080B5A14
|
|
_080B5A12:
|
|
adds r4, 0xA
|
|
_080B5A14:
|
|
cmp r5, r8
|
|
bge _080B5A32
|
|
mov r0, r8
|
|
subs r5, r0, r5
|
|
_080B5A1C:
|
|
ldrb r3, [r4]
|
|
subs r3, 0x30
|
|
adds r4, 0x1
|
|
adds r0, r7, 0
|
|
movs r2, 0xA
|
|
bl sub_80B5920
|
|
adds r1, r0, 0
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _080B5A1C
|
|
_080B5A32:
|
|
adds r0, r1, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B59B8
|
|
|
|
thumb_func_start sub_80B5A3C
|
|
sub_80B5A3C:
|
|
adds r1, r0, 0
|
|
movs r2, 0
|
|
ldr r0, _080B5A8C
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5A4C
|
|
movs r2, 0x10
|
|
lsls r1, 16
|
|
_080B5A4C:
|
|
movs r0, 0xFF
|
|
lsls r0, 24
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5A5A
|
|
adds r2, 0x8
|
|
lsls r1, 8
|
|
_080B5A5A:
|
|
movs r0, 0xF0
|
|
lsls r0, 24
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5A68
|
|
adds r2, 0x4
|
|
lsls r1, 4
|
|
_080B5A68:
|
|
movs r0, 0xC0
|
|
lsls r0, 24
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5A76
|
|
adds r2, 0x2
|
|
lsls r1, 2
|
|
_080B5A76:
|
|
cmp r1, 0
|
|
blt _080B5A90
|
|
adds r2, 0x1
|
|
movs r0, 0x80
|
|
lsls r0, 23
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5A90
|
|
movs r0, 0x20
|
|
b _080B5A92
|
|
.align 2, 0
|
|
_080B5A8C: .4byte 0xffff0000
|
|
_080B5A90:
|
|
adds r0, r2, 0
|
|
_080B5A92:
|
|
bx lr
|
|
thumb_func_end sub_80B5A3C
|
|
|
|
thumb_func_start sub_80B5A94
|
|
sub_80B5A94:
|
|
adds r3, r0, 0
|
|
ldr r1, [r3]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B5AC4
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B5AAC
|
|
movs r0, 0
|
|
b _080B5B14
|
|
_080B5AAC:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B5ABC
|
|
lsrs r0, r1, 1
|
|
str r0, [r3]
|
|
movs r0, 0x1
|
|
b _080B5B14
|
|
_080B5ABC:
|
|
lsrs r0, r1, 2
|
|
str r0, [r3]
|
|
movs r0, 0x2
|
|
b _080B5B14
|
|
_080B5AC4:
|
|
movs r2, 0
|
|
ldr r0, _080B5B0C
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5AD2
|
|
movs r2, 0x10
|
|
lsrs r1, 16
|
|
_080B5AD2:
|
|
movs r0, 0xFF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5ADE
|
|
adds r2, 0x8
|
|
lsrs r1, 8
|
|
_080B5ADE:
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5AEA
|
|
adds r2, 0x4
|
|
lsrs r1, 4
|
|
_080B5AEA:
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5AF6
|
|
adds r2, 0x2
|
|
lsrs r1, 2
|
|
_080B5AF6:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080B5B10
|
|
adds r2, 0x1
|
|
lsrs r1, 1
|
|
cmp r1, 0
|
|
bne _080B5B10
|
|
movs r0, 0x20
|
|
b _080B5B14
|
|
.align 2, 0
|
|
_080B5B0C: .4byte 0x0000ffff
|
|
_080B5B10:
|
|
str r1, [r3]
|
|
adds r0, r2, 0
|
|
_080B5B14:
|
|
bx lr
|
|
thumb_func_end sub_80B5A94
|
|
|
|
thumb_func_start sub_80B5B18
|
|
sub_80B5B18:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
movs r1, 0x1
|
|
bl sub_80B58B0
|
|
str r4, [r0, 0x14]
|
|
movs r1, 0x1
|
|
str r1, [r0, 0x10]
|
|
pop {r4,pc}
|
|
thumb_func_end sub_80B5B18
|
|
|
|
thumb_func_start sub_80B5B2C
|
|
sub_80B5B2C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
ldr r1, [r4, 0x10]
|
|
ldr r0, [r5, 0x10]
|
|
cmp r1, r0
|
|
bge _080B5B4C
|
|
str r4, [sp]
|
|
adds r4, r5, 0
|
|
ldr r5, [sp]
|
|
_080B5B4C:
|
|
ldr r1, [r4, 0x4]
|
|
ldr r6, [r4, 0x10]
|
|
ldr r0, [r5, 0x10]
|
|
mov r8, r0
|
|
mov r2, r8
|
|
adds r2, r6, r2
|
|
str r2, [sp, 0x4]
|
|
ldr r0, [r4, 0x8]
|
|
cmp r2, r0
|
|
ble _080B5B62
|
|
adds r1, 0x1
|
|
_080B5B62:
|
|
adds r0, r3, 0
|
|
bl sub_80B58B0
|
|
str r0, [sp]
|
|
adds r7, r0, 0
|
|
adds r7, 0x14
|
|
ldr r1, [sp, 0x4]
|
|
lsls r0, r1, 2
|
|
adds r2, r7, r0
|
|
str r2, [sp, 0x8]
|
|
str r0, [sp, 0x18]
|
|
adds r1, r4, 0
|
|
adds r1, 0x14
|
|
lsls r3, r6, 2
|
|
adds r2, r5, 0
|
|
adds r2, 0x14
|
|
mov r5, r8
|
|
lsls r4, r5, 2
|
|
ldr r0, [sp, 0x8]
|
|
cmp r7, r0
|
|
bcs _080B5B96
|
|
movs r0, 0
|
|
_080B5B8E:
|
|
stm r7!, {r0}
|
|
ldr r5, [sp, 0x8]
|
|
cmp r7, r5
|
|
bcc _080B5B8E
|
|
_080B5B96:
|
|
str r1, [sp, 0x8]
|
|
adds r3, r1, r3
|
|
str r3, [sp, 0xC]
|
|
mov r8, r2
|
|
add r4, r8
|
|
str r4, [sp, 0x10]
|
|
ldr r0, [sp]
|
|
adds r0, 0x14
|
|
mov r9, r0
|
|
mov r1, r9
|
|
str r1, [sp, 0x20]
|
|
cmp r8, r4
|
|
bcs _080B5C5E
|
|
_080B5BB0:
|
|
mov r2, r8
|
|
ldm r2!, {r6}
|
|
str r2, [sp, 0x14]
|
|
ldr r0, _080B5C6C
|
|
ands r6, r0
|
|
mov r4, r9
|
|
adds r4, 0x4
|
|
str r4, [sp, 0x1C]
|
|
cmp r6, 0
|
|
beq _080B5C08
|
|
ldr r7, [sp, 0x8]
|
|
mov r5, r9
|
|
movs r1, 0
|
|
mov r12, r1
|
|
mov r10, r0
|
|
_080B5BCE:
|
|
ldm r7!, {r3}
|
|
adds r0, r3, 0
|
|
mov r2, r10
|
|
ands r0, r2
|
|
adds r1, r0, 0
|
|
muls r1, r6
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
mov r4, r10
|
|
ands r0, r4
|
|
adds r1, r0
|
|
mov r0, r12
|
|
adds r4, r1, r0
|
|
lsrs r1, r4, 16
|
|
lsrs r3, 16
|
|
adds r0, r3, 0
|
|
muls r0, r6
|
|
lsrs r2, 16
|
|
adds r0, r2
|
|
adds r2, r0, r1
|
|
lsrs r0, r2, 16
|
|
mov r12, r0
|
|
strh r2, [r5]
|
|
strh r4, [r5, 0x2]
|
|
adds r5, 0x4
|
|
ldr r1, [sp, 0xC]
|
|
cmp r7, r1
|
|
bcc _080B5BCE
|
|
str r0, [r5]
|
|
_080B5C08:
|
|
mov r2, r8
|
|
ldrh r6, [r2, 0x2]
|
|
cmp r6, 0
|
|
beq _080B5C50
|
|
ldr r7, [sp, 0x8]
|
|
mov r5, r9
|
|
movs r4, 0
|
|
mov r12, r4
|
|
ldr r2, [r5]
|
|
ldr r3, _080B5C6C
|
|
_080B5C1C:
|
|
ldm r7!, {r1}
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
muls r0, r6
|
|
ldrh r4, [r5, 0x2]
|
|
adds r4, r0
|
|
mov r8, r4
|
|
add r4, r12
|
|
lsrs r0, r4, 16
|
|
mov r12, r0
|
|
strh r4, [r5]
|
|
strh r2, [r5, 0x2]
|
|
adds r5, 0x4
|
|
lsrs r1, 16
|
|
muls r1, r6
|
|
ldr r0, [r5]
|
|
ands r0, r3
|
|
adds r1, r0
|
|
mov r4, r12
|
|
adds r2, r1, r4
|
|
lsrs r0, r2, 16
|
|
mov r12, r0
|
|
ldr r1, [sp, 0xC]
|
|
cmp r7, r1
|
|
bcc _080B5C1C
|
|
str r2, [r5]
|
|
_080B5C50:
|
|
ldr r2, [sp, 0x14]
|
|
mov r8, r2
|
|
ldr r4, [sp, 0x1C]
|
|
mov r9, r4
|
|
ldr r5, [sp, 0x10]
|
|
cmp r8, r5
|
|
bcc _080B5BB0
|
|
_080B5C5E:
|
|
ldr r0, [sp, 0x20]
|
|
ldr r1, [sp, 0x18]
|
|
adds r5, r0, r1
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
ble _080B5C82
|
|
b _080B5C7A
|
|
.align 2, 0
|
|
_080B5C6C: .4byte 0x0000ffff
|
|
_080B5C70:
|
|
ldr r4, [sp, 0x4]
|
|
subs r4, 0x1
|
|
str r4, [sp, 0x4]
|
|
cmp r4, 0
|
|
ble _080B5C82
|
|
_080B5C7A:
|
|
subs r5, 0x4
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _080B5C70
|
|
_080B5C82:
|
|
ldr r5, [sp, 0x4]
|
|
ldr r0, [sp]
|
|
str r5, [r0, 0x10]
|
|
ldr r0, [sp]
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B5B2C
|
|
|
|
thumb_func_start sub_80B5C98
|
|
sub_80B5C98:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
movs r1, 0x3
|
|
ands r1, r6
|
|
cmp r1, 0
|
|
beq _080B5CC2
|
|
ldr r0, _080B5CE4
|
|
subs r1, 0x1
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r2, [r1]
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
movs r3, 0
|
|
bl sub_80B5920
|
|
adds r7, r0, 0
|
|
_080B5CC2:
|
|
asrs r6, 2
|
|
cmp r6, 0
|
|
beq _080B5D28
|
|
mov r0, r8
|
|
ldr r5, [r0, 0x48]
|
|
adds r4, r5, 0
|
|
cmp r5, 0
|
|
bne _080B5D04
|
|
ldr r1, _080B5CE8
|
|
bl sub_80B5B18
|
|
mov r1, r8
|
|
str r0, [r1, 0x48]
|
|
adds r5, r0, 0
|
|
str r4, [r5]
|
|
b _080B5D04
|
|
.align 2, 0
|
|
_080B5CE4: .4byte gUnknown_826FEB4
|
|
_080B5CE8: .4byte 0x00000271
|
|
_080B5CEC:
|
|
ldr r0, [r5]
|
|
adds r4, r0, 0
|
|
cmp r0, 0
|
|
bne _080B5D02
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
adds r2, r5, 0
|
|
bl sub_80B5B2C
|
|
str r0, [r5]
|
|
str r4, [r0]
|
|
_080B5D02:
|
|
adds r5, r0, 0
|
|
_080B5D04:
|
|
movs r0, 0x1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080B5D22
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
bl sub_80B5B2C
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
adds r1, r7, 0
|
|
bl sub_80B5908
|
|
adds r7, r4, 0
|
|
_080B5D22:
|
|
asrs r6, 1
|
|
cmp r6, 0
|
|
bne _080B5CEC
|
|
_080B5D28:
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B5C98
|
|
|
|
thumb_func_start sub_80B5D30
|
|
sub_80B5D30:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r10, r0
|
|
mov r8, r1
|
|
adds r5, r2, 0
|
|
asrs r6, r5, 5
|
|
ldr r1, [r1, 0x4]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r6, r0
|
|
adds r7, r0, 0x1
|
|
ldr r2, [r2, 0x8]
|
|
cmp r7, r2
|
|
ble _080B5D5A
|
|
_080B5D52:
|
|
adds r1, 0x1
|
|
lsls r2, 1
|
|
cmp r7, r2
|
|
bgt _080B5D52
|
|
_080B5D5A:
|
|
mov r0, r10
|
|
bl sub_80B58B0
|
|
mov r9, r0
|
|
mov r4, r9
|
|
adds r4, 0x14
|
|
mov r0, r8
|
|
adds r0, 0x14
|
|
cmp r6, 0
|
|
ble _080B5D7A
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
_080B5D72:
|
|
stm r4!, {r1}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080B5D72
|
|
_080B5D7A:
|
|
adds r3, r0, 0
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x10]
|
|
lsls r0, 2
|
|
adds r6, r3, r0
|
|
movs r0, 0x1F
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _080B5DAC
|
|
movs r0, 0x20
|
|
subs r1, r0, r5
|
|
movs r2, 0
|
|
_080B5D92:
|
|
ldr r0, [r3]
|
|
lsls r0, r5
|
|
orrs r0, r2
|
|
stm r4!, {r0}
|
|
ldm r3!, {r2}
|
|
lsrs r2, r1
|
|
cmp r3, r6
|
|
bcc _080B5D92
|
|
str r2, [r4]
|
|
cmp r2, 0
|
|
beq _080B5DB4
|
|
adds r7, 0x1
|
|
b _080B5DB4
|
|
_080B5DAC:
|
|
ldm r3!, {r0}
|
|
stm r4!, {r0}
|
|
cmp r3, r6
|
|
bcc _080B5DAC
|
|
_080B5DB4:
|
|
subs r0, r7, 0x1
|
|
mov r2, r9
|
|
str r0, [r2, 0x10]
|
|
mov r0, r10
|
|
mov r1, r8
|
|
bl sub_80B5908
|
|
mov r0, r9
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B5D30
|
|
|
|
thumb_func_start sub_80B5DD0
|
|
sub_80B5DD0:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, [r2, 0x10]
|
|
ldr r1, [r5, 0x10]
|
|
subs r0, r1
|
|
cmp r0, 0
|
|
bne _080B5E0C
|
|
adds r4, r2, 0
|
|
adds r4, 0x14
|
|
lsls r1, 2
|
|
adds r3, r4, r1
|
|
adds r0, r5, 0
|
|
adds r0, 0x14
|
|
adds r1, r0, r1
|
|
_080B5DEE:
|
|
subs r3, 0x4
|
|
subs r1, 0x4
|
|
ldr r0, [r3]
|
|
ldr r2, [r1]
|
|
cmp r0, r2
|
|
beq _080B5E06
|
|
movs r1, 0x1
|
|
cmp r0, r2
|
|
bcs _080B5E02
|
|
subs r1, 0x2
|
|
_080B5E02:
|
|
adds r0, r1, 0
|
|
b _080B5E0C
|
|
_080B5E06:
|
|
cmp r3, r4
|
|
bhi _080B5DEE
|
|
movs r0, 0
|
|
_080B5E0C:
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B5DD0
|
|
|
|
thumb_func_start sub_80B5E10
|
|
sub_80B5E10:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_80B5DD0
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080B5E42
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_80B58B0
|
|
adds r7, r0, 0
|
|
movs r0, 0x1
|
|
str r0, [r7, 0x10]
|
|
str r4, [r7, 0x14]
|
|
b _080B5EF2
|
|
_080B5E42:
|
|
cmp r4, 0
|
|
bge _080B5E50
|
|
adds r7, r5, 0
|
|
mov r5, r8
|
|
mov r8, r7
|
|
movs r4, 0x1
|
|
b _080B5E52
|
|
_080B5E50:
|
|
movs r4, 0
|
|
_080B5E52:
|
|
ldr r1, [r5, 0x4]
|
|
adds r0, r6, 0
|
|
bl sub_80B58B0
|
|
adds r7, r0, 0
|
|
str r4, [r7, 0xC]
|
|
ldr r0, [r5, 0x10]
|
|
mov r9, r0
|
|
adds r6, r5, 0
|
|
adds r6, 0x14
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
mov r10, r0
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x10]
|
|
movs r3, 0x14
|
|
add r3, r8
|
|
mov r12, r3
|
|
lsls r0, 2
|
|
add r0, r12
|
|
str r0, [sp]
|
|
adds r4, r7, 0
|
|
adds r4, 0x14
|
|
movs r5, 0
|
|
ldr r0, _080B5EDC
|
|
mov r8, r0
|
|
_080B5E86:
|
|
ldm r6!, {r1}
|
|
str r1, [sp, 0x4]
|
|
mov r3, r8
|
|
ands r1, r3
|
|
mov r0, r12
|
|
adds r0, 0x4
|
|
mov r12, r0
|
|
subs r0, 0x4
|
|
ldm r0!, {r2}
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
subs r1, r0
|
|
adds r0, r1, r5
|
|
asrs r5, r0, 16
|
|
ldr r1, [sp, 0x4]
|
|
lsrs r3, r1, 16
|
|
lsrs r2, 16
|
|
subs r3, r2
|
|
adds r1, r3, r5
|
|
asrs r5, r1, 16
|
|
strh r1, [r4]
|
|
strh r0, [r4, 0x2]
|
|
adds r4, 0x4
|
|
ldr r3, [sp]
|
|
cmp r12, r3
|
|
bcc _080B5E86
|
|
cmp r6, r10
|
|
bcs _080B5EE6
|
|
ldr r2, _080B5EDC
|
|
_080B5EC0:
|
|
ldm r6!, {r1}
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
adds r0, r5
|
|
asrs r5, r0, 16
|
|
lsrs r1, 16
|
|
adds r1, r5
|
|
asrs r5, r1, 16
|
|
strh r1, [r4]
|
|
strh r0, [r4, 0x2]
|
|
adds r4, 0x4
|
|
cmp r6, r10
|
|
bcc _080B5EC0
|
|
b _080B5EE6
|
|
.align 2, 0
|
|
_080B5EDC: .4byte 0x0000ffff
|
|
_080B5EE0:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
_080B5EE6:
|
|
subs r4, 0x4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B5EE0
|
|
mov r1, r9
|
|
str r1, [r7, 0x10]
|
|
_080B5EF2:
|
|
adds r0, r7, 0
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B5E10
|
|
|
|
thumb_func_start sub_80B5F00
|
|
sub_80B5F00:
|
|
push {r4,lr}
|
|
ldr r2, _080B5F14
|
|
ands r2, r0
|
|
ldr r0, _080B5F18
|
|
adds r2, r0
|
|
cmp r2, 0
|
|
ble _080B5F1C
|
|
adds r3, r2, 0
|
|
movs r4, 0
|
|
b _080B5F46
|
|
.align 2, 0
|
|
_080B5F14: .4byte 0x7ff00000
|
|
_080B5F18: .4byte 0xfcc00000
|
|
_080B5F1C:
|
|
negs r0, r2
|
|
asrs r2, r0, 20
|
|
cmp r2, 0x13
|
|
bgt _080B5F30
|
|
movs r0, 0x80
|
|
lsls r0, 12
|
|
adds r3, r0, 0
|
|
asrs r3, r2
|
|
movs r4, 0
|
|
b _080B5F46
|
|
_080B5F30:
|
|
movs r3, 0
|
|
subs r2, 0x14
|
|
cmp r2, 0x1E
|
|
bgt _080B5F42
|
|
movs r0, 0x1F
|
|
subs r0, r2
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
b _080B5F44
|
|
_080B5F42:
|
|
movs r1, 0x1
|
|
_080B5F44:
|
|
adds r4, r1, 0
|
|
_080B5F46:
|
|
adds r1, r4, 0
|
|
adds r0, r3, 0
|
|
pop {r4,pc}
|
|
thumb_func_end sub_80B5F00
|
|
|
|
thumb_func_start sub_80B5F4C
|
|
sub_80B5F4C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r4, r1, 0
|
|
movs r1, 0x14
|
|
adds r1, r0
|
|
mov r8, r1
|
|
ldr r0, [r0, 0x10]
|
|
lsls r0, 2
|
|
adds r5, r1, r0
|
|
subs r5, 0x4
|
|
ldr r2, [r5]
|
|
adds r0, r2, 0
|
|
str r2, [sp]
|
|
bl sub_80B5A3C
|
|
adds r3, r0, 0
|
|
movs r0, 0x20
|
|
subs r0, r3
|
|
str r0, [r4]
|
|
ldr r2, [sp]
|
|
cmp r3, 0xA
|
|
bgt _080B5FAC
|
|
movs r0, 0xB
|
|
subs r0, r3
|
|
adds r1, r2, 0
|
|
lsrs r1, r0
|
|
ldr r0, _080B5F94
|
|
adds r6, r1, 0
|
|
orrs r6, r0
|
|
cmp r5, r8
|
|
bls _080B5F98
|
|
subs r5, 0x4
|
|
ldr r1, [r5]
|
|
b _080B5F9A
|
|
.align 2, 0
|
|
_080B5F94: .4byte 0x3ff00000
|
|
_080B5F98:
|
|
movs r1, 0
|
|
_080B5F9A:
|
|
adds r0, r3, 0
|
|
adds r0, 0x15
|
|
lsls r2, r0
|
|
movs r0, 0xB
|
|
subs r0, r3
|
|
lsrs r1, r0
|
|
adds r7, r2, 0
|
|
orrs r7, r1
|
|
b _080B5FF8
|
|
_080B5FAC:
|
|
cmp r5, r8
|
|
bls _080B5FB6
|
|
subs r5, 0x4
|
|
ldr r4, [r5]
|
|
b _080B5FB8
|
|
_080B5FB6:
|
|
movs r4, 0
|
|
_080B5FB8:
|
|
subs r3, 0xB
|
|
cmp r3, 0
|
|
beq _080B5FF0
|
|
lsls r2, r3
|
|
movs r0, 0x20
|
|
subs r0, r3
|
|
adds r1, r4, 0
|
|
lsrs r1, r0
|
|
ldr r0, _080B5FDC
|
|
orrs r1, r0
|
|
adds r6, r2, 0
|
|
orrs r6, r1
|
|
cmp r5, r8
|
|
bls _080B5FE0
|
|
subs r5, 0x4
|
|
ldr r2, [r5]
|
|
b _080B5FE2
|
|
.align 2, 0
|
|
_080B5FDC: .4byte 0x3ff00000
|
|
_080B5FE0:
|
|
movs r2, 0
|
|
_080B5FE2:
|
|
lsls r4, r3
|
|
movs r0, 0x20
|
|
subs r0, r3
|
|
lsrs r2, r0
|
|
adds r7, r4, 0
|
|
orrs r7, r2
|
|
b _080B5FF8
|
|
_080B5FF0:
|
|
ldr r0, _080B6004
|
|
adds r6, r2, 0
|
|
orrs r6, r0
|
|
adds r7, r4, 0
|
|
_080B5FF8:
|
|
adds r1, r7, 0
|
|
adds r0, r6, 0
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B6004: .4byte 0x3ff00000
|
|
thumb_func_end sub_80B5F4C
|
|
|
|
thumb_func_start sub_80B6008
|
|
sub_80B6008:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
mov r9, r3
|
|
ldr r3, [sp, 0x28]
|
|
mov r10, r3
|
|
adds r5, r2, 0
|
|
adds r4, r1, 0
|
|
movs r1, 0x1
|
|
bl sub_80B58B0
|
|
adds r6, r0, 0
|
|
movs r0, 0x14
|
|
adds r0, r6
|
|
mov r8, r0
|
|
ldr r2, _080B6070
|
|
adds r1, r4, 0
|
|
ands r2, r1
|
|
str r2, [sp, 0x4]
|
|
ldr r0, _080B6074
|
|
ands r4, r0
|
|
lsrs r7, r4, 20
|
|
cmp r7, 0
|
|
beq _080B6046
|
|
movs r0, 0x80
|
|
lsls r0, 13
|
|
orrs r0, r2
|
|
str r0, [sp, 0x4]
|
|
_080B6046:
|
|
str r5, [sp]
|
|
cmp r5, 0
|
|
beq _080B6090
|
|
mov r0, sp
|
|
bl sub_80B5A94
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _080B6078
|
|
movs r0, 0x20
|
|
subs r0, r2
|
|
ldr r1, [sp, 0x4]
|
|
lsls r1, r0
|
|
ldr r0, [sp]
|
|
orrs r0, r1
|
|
str r0, [r6, 0x14]
|
|
ldr r0, [sp, 0x4]
|
|
lsrs r0, r2
|
|
str r0, [sp, 0x4]
|
|
b _080B607C
|
|
.align 2, 0
|
|
_080B6070: .4byte 0x000fffff
|
|
_080B6074: .4byte 0x7fffffff
|
|
_080B6078:
|
|
ldr r0, [sp]
|
|
str r0, [r6, 0x14]
|
|
_080B607C:
|
|
ldr r0, [sp, 0x4]
|
|
mov r1, r8
|
|
str r0, [r1, 0x4]
|
|
movs r1, 0x1
|
|
cmp r0, 0
|
|
beq _080B608A
|
|
movs r1, 0x2
|
|
_080B608A:
|
|
str r1, [r6, 0x10]
|
|
adds r4, r1, 0
|
|
b _080B60A4
|
|
_080B6090:
|
|
add r0, sp, 0x4
|
|
bl sub_80B5A94
|
|
adds r2, r0, 0
|
|
ldr r0, [sp, 0x4]
|
|
str r0, [r6, 0x14]
|
|
movs r0, 0x1
|
|
str r0, [r6, 0x10]
|
|
movs r4, 0x1
|
|
adds r2, 0x20
|
|
_080B60A4:
|
|
cmp r7, 0
|
|
beq _080B60C0
|
|
ldr r3, _080B60BC
|
|
adds r0, r2, r3
|
|
adds r0, r7, r0
|
|
mov r1, r9
|
|
str r0, [r1]
|
|
movs r0, 0x35
|
|
subs r0, r2
|
|
mov r3, r10
|
|
str r0, [r3]
|
|
b _080B60DC
|
|
.align 2, 0
|
|
_080B60BC: .4byte 0xfffffbcd
|
|
_080B60C0:
|
|
ldr r1, _080B60EC
|
|
adds r0, r2, r1
|
|
mov r3, r9
|
|
str r0, [r3]
|
|
lsls r0, r4, 2
|
|
add r0, r8
|
|
subs r0, 0x4
|
|
ldr r0, [r0]
|
|
bl sub_80B5A3C
|
|
lsls r1, r4, 5
|
|
subs r1, r0
|
|
mov r0, r10
|
|
str r1, [r0]
|
|
_080B60DC:
|
|
adds r0, r6, 0
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B60EC: .4byte 0xfffffbce
|
|
thumb_func_end sub_80B6008
|
|
|
|
thumb_func_start sub_80B60F0
|
|
sub_80B60F0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
mov r1, sp
|
|
bl sub_80B5F4C
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
add r1, sp, 0x4
|
|
adds r0, r5, 0
|
|
bl sub_80B5F4C
|
|
adds r7, r1, 0
|
|
adds r6, r0, 0
|
|
ldr r2, [sp]
|
|
ldr r0, [sp, 0x4]
|
|
subs r2, r0
|
|
ldr r0, [r4, 0x10]
|
|
ldr r1, [r5, 0x10]
|
|
subs r0, r1
|
|
lsls r0, 5
|
|
adds r0, r2, r0
|
|
cmp r0, 0
|
|
ble _080B612C
|
|
lsls r0, 20
|
|
ldr r1, [sp, 0x8]
|
|
adds r0, r1, r0
|
|
str r0, [sp, 0x8]
|
|
b _080B6130
|
|
_080B612C:
|
|
lsls r0, 20
|
|
subs r6, r0
|
|
_080B6130:
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0xC]
|
|
adds r3, r7, 0
|
|
adds r2, r6, 0
|
|
bl __divdf3
|
|
add sp, 0x10
|
|
pop {r4-r7,pc}
|
|
thumb_func_end sub_80B60F0
|
|
|
|
thumb_func_start sub_80B6140
|
|
sub_80B6140:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _080B615C
|
|
ldr r0, _080B6158
|
|
cmp r4, 0x17
|
|
bgt _080B6164
|
|
ldr r0, _080B6160
|
|
lsls r1, r4, 3
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
b _080B6176
|
|
.align 2, 0
|
|
_080B6158: .4byte 0x3ff00000
|
|
_080B615C: .4byte 0x00000000
|
|
_080B6160: .4byte gUnknown_826FEC0
|
|
_080B6164:
|
|
cmp r4, 0
|
|
ble _080B6176
|
|
_080B6168:
|
|
ldr r3, _080B617C
|
|
ldr r2, _080B6178
|
|
bl __muldf3
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bgt _080B6168
|
|
_080B6176:
|
|
pop {r4,pc}
|
|
.align 2, 0
|
|
_080B6178: .4byte 0x40240000
|
|
_080B617C: .4byte 0x00000000
|
|
thumb_func_end sub_80B6140
|
|
|
|
thumb_func_start sub_80B6180
|
|
sub_80B6180:
|
|
ldr r3, _080B619C
|
|
ands r3, r0
|
|
negs r2, r1
|
|
orrs r2, r1
|
|
lsrs r2, 31
|
|
orrs r3, r2
|
|
ldr r0, _080B61A0
|
|
subs r3, r0, r3
|
|
negs r0, r3
|
|
orrs r3, r0
|
|
lsrs r3, 31
|
|
movs r0, 0x1
|
|
subs r0, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_080B619C: .4byte 0x7fffffff
|
|
_080B61A0: .4byte 0x7ff00000
|
|
thumb_func_end sub_80B6180
|
|
|
|
thumb_func_start sub_80B61A4
|
|
sub_80B61A4:
|
|
ldr r3, _080B61BC
|
|
ands r3, r0
|
|
negs r2, r1
|
|
orrs r2, r1
|
|
lsrs r2, 31
|
|
orrs r3, r2
|
|
ldr r0, _080B61C0
|
|
subs r3, r0, r3
|
|
lsrs r3, 31
|
|
adds r0, r3, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_080B61BC: .4byte 0x7fffffff
|
|
_080B61C0: .4byte 0x7ff00000
|
|
thumb_func_end sub_80B61A4
|
|
|
|
thumb_func_start _sbrk_r
|
|
_sbrk_r:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
ldr r4, _080B61EC
|
|
movs r1, 0
|
|
str r1, [r4]
|
|
bl _sbrk
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B61E6
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B61E6
|
|
str r0, [r5]
|
|
_080B61E6:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B61EC: .4byte gUnknown_203B034
|
|
thumb_func_end _sbrk_r
|
|
|
|
thumb_func_start sub_80B61F0
|
|
sub_80B61F0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r3, r2, 0
|
|
ldr r0, [r5, 0x54]
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
adds r2, r4, 0
|
|
bl sub_80B685C
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
blt _080B6212
|
|
ldr r0, [r5, 0x50]
|
|
adds r0, r1
|
|
str r0, [r5, 0x50]
|
|
b _080B621A
|
|
_080B6212:
|
|
ldr r0, _080B6220
|
|
ldrh r2, [r5, 0xC]
|
|
ands r0, r2
|
|
strh r0, [r5, 0xC]
|
|
_080B621A:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B6220: .4byte 0xffffefff
|
|
thumb_func_end sub_80B61F0
|
|
|
|
thumb_func_start sub_80B6224
|
|
sub_80B6224:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ldrh r1, [r4, 0xC]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080B6246
|
|
ldr r0, [r4, 0x54]
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
bl sub_80B682C
|
|
_080B6246:
|
|
ldr r0, _080B6260
|
|
ldrh r1, [r4, 0xC]
|
|
ands r0, r1
|
|
strh r0, [r4, 0xC]
|
|
ldr r0, [r4, 0x54]
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_80B6718
|
|
pop {r4-r6,pc}
|
|
.align 2, 0
|
|
_080B6260: .4byte 0xffffefff
|
|
thumb_func_end sub_80B6224
|
|
|
|
thumb_func_start sub_80B6264
|
|
sub_80B6264:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r3, r2, 0
|
|
ldr r0, [r5, 0x54]
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
adds r2, r4, 0
|
|
bl sub_80B682C
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B6290
|
|
ldr r0, _080B628C
|
|
ldrh r2, [r5, 0xC]
|
|
ands r0, r2
|
|
strh r0, [r5, 0xC]
|
|
b _080B629E
|
|
.align 2, 0
|
|
_080B628C: .4byte 0xffffefff
|
|
_080B6290:
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
ldrh r2, [r5, 0xC]
|
|
orrs r0, r2
|
|
strh r0, [r5, 0xC]
|
|
str r1, [r5, 0x50]
|
|
_080B629E:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B6264
|
|
|
|
thumb_func_start sub_80B62A4
|
|
sub_80B62A4:
|
|
push {lr}
|
|
ldr r2, [r0, 0x54]
|
|
movs r3, 0xE
|
|
ldrsh r1, [r0, r3]
|
|
adds r0, r2, 0
|
|
bl sub_80B67A0
|
|
pop {pc}
|
|
thumb_func_end sub_80B62A4
|
|
|
|
thumb_func_start findslot
|
|
findslot:
|
|
adds r3, r0, 0
|
|
movs r1, 0
|
|
ldr r2, _080B62BC
|
|
b _080B62C8
|
|
.align 2, 0
|
|
_080B62BC: .4byte gUnknown_2039E28
|
|
_080B62C0:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x13
|
|
bgt _080B62CE
|
|
_080B62C8:
|
|
ldr r0, [r2]
|
|
cmp r0, r3
|
|
bne _080B62C0
|
|
_080B62CE:
|
|
adds r0, r1, 0
|
|
bx lr
|
|
thumb_func_end findslot
|
|
|
|
thumb_func_start sub_80B62D4
|
|
sub_80B62D4:
|
|
adds r2, r0, 0
|
|
ldr r0, _080B62E8
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x4]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r0, r3]
|
|
cmp r2, r0
|
|
bne _080B62F0
|
|
ldr r0, _080B62EC
|
|
b _080B6316
|
|
.align 2, 0
|
|
_080B62E8: .4byte gUnknown_203B7A8
|
|
_080B62EC: .4byte gUnknown_2039E1C
|
|
_080B62F0:
|
|
ldr r0, [r1, 0x8]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r0, r3]
|
|
cmp r2, r0
|
|
bne _080B6304
|
|
ldr r0, _080B6300
|
|
b _080B6316
|
|
.align 2, 0
|
|
_080B6300: .4byte gUnknown_2039E20
|
|
_080B6304:
|
|
ldr r0, [r1, 0xC]
|
|
movs r1, 0xE
|
|
ldrsh r0, [r0, r1]
|
|
cmp r2, r0
|
|
beq _080B6314
|
|
adds r0, r2, 0
|
|
subs r0, 0x20
|
|
b _080B6318
|
|
_080B6314:
|
|
ldr r0, _080B631C
|
|
_080B6316:
|
|
ldr r0, [r0]
|
|
_080B6318:
|
|
bx lr
|
|
.align 2, 0
|
|
_080B631C: .4byte gUnknown_2039E24
|
|
thumb_func_end sub_80B62D4
|
|
|
|
thumb_func_start sub_80B6320
|
|
sub_80B6320:
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
ldr r4, _080B637C
|
|
str r4, [sp]
|
|
movs r3, 0x3
|
|
str r3, [sp, 0x8]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
movs r5, 0x1
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
ldr r5, _080B6380
|
|
str r2, [r5]
|
|
str r4, [sp]
|
|
str r3, [sp, 0x8]
|
|
movs r0, 0x4
|
|
str r0, [sp, 0x4]
|
|
ldr r3, _080B6384
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
ldr r0, _080B6388
|
|
str r2, [r0]
|
|
str r2, [r3]
|
|
ldr r2, _080B638C
|
|
adds r1, r2, 0
|
|
subs r4, 0x2
|
|
adds r0, r2, 0
|
|
adds r0, 0x98
|
|
_080B6362:
|
|
str r4, [r0]
|
|
subs r0, 0x8
|
|
cmp r0, r1
|
|
bge _080B6362
|
|
movs r0, 0
|
|
ldr r1, [r5]
|
|
str r1, [r2]
|
|
str r0, [r2, 0x4]
|
|
ldr r1, [r3]
|
|
str r1, [r2, 0x8]
|
|
str r0, [r2, 0xC]
|
|
add sp, 0xC
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B637C: .4byte gUnknown_826FFD8
|
|
_080B6380: .4byte gUnknown_2039E1C
|
|
_080B6384: .4byte gUnknown_2039E20
|
|
_080B6388: .4byte gUnknown_2039E24
|
|
_080B638C: .4byte gUnknown_2039E28
|
|
thumb_func_end sub_80B6320
|
|
|
|
thumb_func_start sub_80B6390
|
|
sub_80B6390:
|
|
push {r4,lr}
|
|
movs r3, 0x13
|
|
movs r4, 0
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
adds r0, r2, 0
|
|
pop {r4,pc}
|
|
thumb_func_end sub_80B6390
|
|
|
|
thumb_func_start sub_80B63A4
|
|
sub_80B63A4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
bl sub_80B67CC
|
|
adds r4, r0, 0
|
|
bl sub_80B6390
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B63A4
|
|
|
|
thumb_func_start sub_80B63B8
|
|
sub_80B63B8:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080B63C8
|
|
adds r0, r1, 0
|
|
b _080B63CE
|
|
_080B63C8:
|
|
adds r0, r1, 0
|
|
bl sub_80B63A4
|
|
_080B63CE:
|
|
pop {pc}
|
|
thumb_func_end sub_80B63B8
|
|
|
|
thumb_func_start sub_80B63D0
|
|
sub_80B63D0:
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
bl sub_80B62D4
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r3, 0x6
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
adds r0, r2, 0
|
|
add sp, 0xC
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B63D0
|
|
|
|
thumb_func_start sub_80B63F4
|
|
sub_80B63F4:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r7, r2, 0
|
|
bl sub_80B62D4
|
|
bl findslot
|
|
adds r6, r0, 0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
bl sub_80B63D0
|
|
cmp r0, 0
|
|
bge _080B641E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl sub_80B63A4
|
|
b _080B6434
|
|
_080B641E:
|
|
subs r2, r7, r0
|
|
cmp r6, 0x14
|
|
beq _080B6432
|
|
ldr r0, _080B6438
|
|
lsls r1, r6, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
_080B6432:
|
|
adds r0, r2, 0
|
|
_080B6434:
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B6438: .4byte gUnknown_2039E28
|
|
thumb_func_end sub_80B63F4
|
|
|
|
thumb_func_start sub_80B643C
|
|
sub_80B643C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
bl sub_80B62D4
|
|
adds r7, r0, 0
|
|
bl findslot
|
|
adds r6, r0, 0
|
|
cmp r4, 0x1
|
|
bne _080B6472
|
|
cmp r6, 0x14
|
|
bne _080B6464
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080B64B4
|
|
_080B6464:
|
|
ldr r0, _080B64BC
|
|
lsls r1, r6, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r5, r0
|
|
movs r4, 0
|
|
_080B6472:
|
|
cmp r4, 0x2
|
|
bne _080B6484
|
|
str r7, [sp]
|
|
movs r3, 0xC
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
adds r5, r2
|
|
_080B6484:
|
|
mov r0, r8
|
|
bl sub_80B62D4
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
movs r3, 0xA
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
cmp r6, 0x14
|
|
beq _080B64AA
|
|
cmp r2, 0
|
|
bne _080B64AA
|
|
ldr r0, _080B64BC
|
|
lsls r1, r6, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
str r5, [r1]
|
|
_080B64AA:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, 0
|
|
bne _080B64B4
|
|
adds r0, r5, 0
|
|
_080B64B4:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B64BC: .4byte gUnknown_2039E28
|
|
thumb_func_end sub_80B643C
|
|
|
|
thumb_func_start sub_80B64C0
|
|
sub_80B64C0:
|
|
push {lr}
|
|
bl sub_80B643C
|
|
bl sub_80B63B8
|
|
pop {pc}
|
|
thumb_func_end sub_80B64C0
|
|
|
|
thumb_func_start sub_80B64CC
|
|
sub_80B64CC:
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
bl sub_80B62D4
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
str r5, [sp, 0x8]
|
|
movs r3, 0x5
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
adds r0, r2, 0
|
|
add sp, 0xC
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B64CC
|
|
|
|
thumb_func_start _write
|
|
_write:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
bl sub_80B62D4
|
|
bl findslot
|
|
adds r7, r0, 0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_80B64CC
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _080B6518
|
|
cmp r0, r6
|
|
bne _080B6520
|
|
_080B6518:
|
|
adds r0, r1, 0
|
|
bl sub_80B63A4
|
|
b _080B6536
|
|
_080B6520:
|
|
subs r2, r6, r0
|
|
cmp r7, 0x14
|
|
beq _080B6534
|
|
ldr r0, _080B6538
|
|
lsls r1, r7, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
_080B6534:
|
|
adds r0, r2, 0
|
|
_080B6536:
|
|
pop {r4-r7,pc}
|
|
.align 2, 0
|
|
_080B6538: .4byte gUnknown_2039E28
|
|
thumb_func_end _write
|
|
|
|
thumb_func_start _swiopen
|
|
_swiopen:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xC
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
adds r0, r6, 0
|
|
bl findslot
|
|
mov r8, r0
|
|
cmp r0, 0x14
|
|
bne _080B655E
|
|
adds r0, r6, 0
|
|
b _080B65D2
|
|
_080B655E:
|
|
movs r0, 0x2
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B6568
|
|
movs r5, 0x2
|
|
_080B6568:
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B6576
|
|
movs r0, 0x4
|
|
orrs r5, r0
|
|
_080B6576:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080B6584
|
|
movs r0, 0x4
|
|
orrs r5, r0
|
|
_080B6584:
|
|
movs r1, 0x8
|
|
ands r4, r1
|
|
cmp r4, 0
|
|
beq _080B6594
|
|
movs r0, 0x5
|
|
negs r0, r0
|
|
ands r5, r0
|
|
orrs r5, r1
|
|
_080B6594:
|
|
str r7, [sp]
|
|
adds r0, r7, 0
|
|
bl strlen
|
|
str r0, [sp, 0x8]
|
|
str r5, [sp, 0x4]
|
|
movs r2, 0x1
|
|
adds r0, r2, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
blt _080B65CC
|
|
ldr r0, _080B65C8
|
|
mov r1, r8
|
|
lsls r2, r1, 3
|
|
adds r1, r2, r0
|
|
str r3, [r1]
|
|
adds r0, 0x4
|
|
adds r2, r0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
adds r0, r3, 0
|
|
adds r0, 0x20
|
|
b _080B65D2
|
|
.align 2, 0
|
|
_080B65C8: .4byte gUnknown_2039E28
|
|
_080B65CC:
|
|
adds r0, r3, 0
|
|
bl sub_80B63A4
|
|
_080B65D2:
|
|
add sp, 0xC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7,pc}
|
|
thumb_func_end _swiopen
|
|
|
|
thumb_func_start sub_80B65DC
|
|
sub_80B65DC:
|
|
push {r1-r3}
|
|
push {lr}
|
|
ldr r1, [sp, 0x4]
|
|
bl _swiopen
|
|
bl sub_80B63B8
|
|
pop {r3}
|
|
add sp, 0xC
|
|
bx r3
|
|
thumb_func_end sub_80B65DC
|
|
|
|
thumb_func_start sub_80B65F0
|
|
sub_80B65F0:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
bl sub_80B62D4
|
|
str r0, [sp]
|
|
bl findslot
|
|
adds r1, r0, 0
|
|
cmp r1, 0x14
|
|
beq _080B6610
|
|
ldr r0, _080B6620
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
_080B6610:
|
|
movs r3, 0x2
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
swi 0xAB
|
|
adds r2, r0, 0
|
|
adds r0, r2, 0
|
|
add sp, 0x4
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080B6620: .4byte gUnknown_2039E28
|
|
thumb_func_end sub_80B65F0
|
|
|
|
thumb_func_start sub_80B6624
|
|
sub_80B6624:
|
|
push {lr}
|
|
bl sub_80B65F0
|
|
bl sub_80B63B8
|
|
pop {pc}
|
|
thumb_func_end sub_80B6624
|
|
|
|
thumb_func_start sub_80B6630
|
|
sub_80B6630:
|
|
mov r12, r3
|
|
mov r3, r8
|
|
push {r3}
|
|
mov r3, r12
|
|
movs r2, 0x18
|
|
ldr r3, _080B664C
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
swi 0xAB
|
|
mov r8, r0
|
|
pop {r3}
|
|
mov r8, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_080B664C: .4byte 0x00020026
|
|
thumb_func_end sub_80B6630
|
|
|
|
thumb_func_start sub_80B6650
|
|
sub_80B6650:
|
|
mov r12, r3
|
|
mov r3, r8
|
|
push {r3}
|
|
mov r3, r12
|
|
movs r2, 0x18
|
|
ldr r3, _080B666C
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
swi 0xAB
|
|
mov r8, r0
|
|
pop {r3}
|
|
mov r8, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_080B666C: .4byte 0x00020026
|
|
thumb_func_end sub_80B6650
|
|
|
|
thumb_func_start sub_80B6670
|
|
sub_80B6670:
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_80B6670
|
|
|
|
thumb_func_start _sbrk
|
|
_sbrk:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r4, _080B66A4
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _080B6684
|
|
ldr r0, _080B66A8
|
|
str r0, [r4]
|
|
_080B6684:
|
|
ldr r5, [r4]
|
|
adds r0, r5, r6
|
|
cmp r0, sp
|
|
bls _080B669A
|
|
ldr r1, _080B66AC
|
|
movs r0, 0x1
|
|
movs r2, 0x20
|
|
bl _write
|
|
bl abort
|
|
_080B669A:
|
|
ldr r0, [r4]
|
|
adds r0, r6
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
pop {r4-r6,pc}
|
|
.align 2, 0
|
|
_080B66A4: .4byte gUnknown_2039E18
|
|
_080B66A8: .4byte end
|
|
_080B66AC: .4byte gUnknown_826FFDC
|
|
thumb_func_end _sbrk
|
|
|
|
thumb_func_start sub_80B66B0
|
|
sub_80B66B0:
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80B66B0
|
|
|
|
thumb_func_start sub_80B66BC
|
|
sub_80B66BC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bx lr
|
|
thumb_func_end sub_80B66BC
|
|
|
|
thumb_func_start nullsub_213
|
|
nullsub_213:
|
|
bx lr
|
|
thumb_func_end nullsub_213
|
|
|
|
thumb_func_start sub_80B66C8
|
|
sub_80B66C8:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
cmp r2, 0
|
|
beq _080B66E6
|
|
movs r4, 0x11
|
|
movs r5, 0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
swi 0xAB
|
|
adds r5, r0, 0
|
|
adds r4, r5, 0
|
|
str r4, [r2]
|
|
movs r0, 0
|
|
str r0, [r2, 0x4]
|
|
_080B66E6:
|
|
cmp r3, 0
|
|
beq _080B66F0
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
str r0, [r3, 0x4]
|
|
_080B66F0:
|
|
movs r0, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B66C8
|
|
|
|
thumb_func_start sub_80B66F4
|
|
sub_80B66F4:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
movs r4, 0x10
|
|
movs r5, 0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
swi 0xAB
|
|
adds r3, r0, 0
|
|
cmp r2, 0
|
|
beq _080B6712
|
|
str r3, [r2]
|
|
movs r0, 0
|
|
str r0, [r2, 0x4]
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0xC]
|
|
_080B6712:
|
|
adds r0, r3, 0
|
|
pop {r4,r5,pc}
|
|
thumb_func_end sub_80B66F4
|
|
|
|
thumb_func_start sub_80B6718
|
|
sub_80B6718:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
ldr r4, _080B6744
|
|
movs r3, 0
|
|
str r3, [r4]
|
|
bl _write
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B673E
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B673E
|
|
str r0, [r5]
|
|
_080B673E:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B6744: .4byte gUnknown_203B034
|
|
thumb_func_end sub_80B6718
|
|
|
|
thumb_func_start sub_80B6748
|
|
sub_80B6748:
|
|
push {r4,lr}
|
|
muls r1, r2
|
|
bl sub_80B53B4
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080B675A
|
|
movs r0, 0
|
|
b _080B679E
|
|
_080B675A:
|
|
adds r0, r4, 0
|
|
subs r0, 0x8
|
|
ldr r0, [r0, 0x4]
|
|
movs r1, 0x4
|
|
negs r1, r1
|
|
ands r0, r1
|
|
subs r2, r0, 0x4
|
|
cmp r2, 0x24
|
|
bhi _080B6794
|
|
adds r1, r4, 0
|
|
cmp r2, 0x13
|
|
bls _080B678A
|
|
movs r0, 0
|
|
stm r1!, {r0}
|
|
str r0, [r4, 0x4]
|
|
adds r1, 0x4
|
|
cmp r2, 0x1B
|
|
bls _080B678A
|
|
stm r1!, {r0}
|
|
stm r1!, {r0}
|
|
cmp r2, 0x23
|
|
bls _080B678A
|
|
stm r1!, {r0}
|
|
stm r1!, {r0}
|
|
_080B678A:
|
|
movs r0, 0
|
|
stm r1!, {r0}
|
|
stm r1!, {r0}
|
|
str r0, [r1]
|
|
b _080B679C
|
|
_080B6794:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl memset
|
|
_080B679C:
|
|
adds r0, r4, 0
|
|
_080B679E:
|
|
pop {r4,pc}
|
|
thumb_func_end sub_80B6748
|
|
|
|
thumb_func_start sub_80B67A0
|
|
sub_80B67A0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
ldr r4, _080B67C8
|
|
movs r1, 0
|
|
str r1, [r4]
|
|
bl sub_80B6624
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B67C2
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B67C2
|
|
str r0, [r5]
|
|
_080B67C2:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B67C8: .4byte gUnknown_203B034
|
|
thumb_func_end sub_80B67A0
|
|
|
|
thumb_func_start sub_80B67CC
|
|
sub_80B67CC:
|
|
ldr r0, _080B67D4
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080B67D4: .4byte gUnknown_203B7A8
|
|
thumb_func_end sub_80B67CC
|
|
|
|
thumb_func_start sub_80B67D8
|
|
sub_80B67D8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
ldr r4, _080B6800
|
|
movs r2, 0
|
|
str r2, [r4]
|
|
bl sub_80B66B0
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B67FC
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B67FC
|
|
str r0, [r5]
|
|
_080B67FC:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B6800: .4byte gUnknown_203B034
|
|
thumb_func_end sub_80B67D8
|
|
|
|
thumb_func_start abort
|
|
abort:
|
|
mov r12, r3
|
|
mov r3, r8
|
|
push {r3}
|
|
mov r3, r12
|
|
movs r2, 0x18
|
|
ldr r3, _080B6820
|
|
adds r0, r2, 0
|
|
adds r1, r3, 0
|
|
swi 0xAB
|
|
mov r8, r0
|
|
pop {r3}
|
|
mov r8, r3
|
|
bx lr
|
|
.align 2, 0
|
|
_080B6820: .4byte 0x00020022
|
|
thumb_func_end abort
|
|
|
|
thumb_func_start isatty
|
|
isatty:
|
|
movs r0, 0x1
|
|
bx lr
|
|
thumb_func_end isatty
|
|
|
|
thumb_func_start alarm
|
|
alarm:
|
|
bx lr
|
|
thumb_func_end alarm
|
|
|
|
thumb_func_start sub_80B682C
|
|
sub_80B682C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
ldr r4, _080B6858
|
|
movs r3, 0
|
|
str r3, [r4]
|
|
bl sub_80B64C0
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B6852
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B6852
|
|
str r0, [r5]
|
|
_080B6852:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B6858: .4byte gUnknown_203B034
|
|
thumb_func_end sub_80B682C
|
|
|
|
thumb_func_start sub_80B685C
|
|
sub_80B685C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
ldr r4, _080B6888
|
|
movs r3, 0
|
|
str r3, [r4]
|
|
bl sub_80B63F4
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080B6882
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080B6882
|
|
str r0, [r5]
|
|
_080B6882:
|
|
adds r0, r1, 0
|
|
pop {r4,r5,pc}
|
|
.align 2, 0
|
|
_080B6888: .4byte gUnknown_203B034
|
|
thumb_func_end sub_80B685C
|
|
|
|
thumb_func_start sub_80B688C
|
|
sub_80B688C:
|
|
cmp r1, 0
|
|
beq _080B68FA
|
|
movs r3, 0x1
|
|
movs r2, 0
|
|
push {r4}
|
|
cmp r0, r1
|
|
bcc _080B68F4
|
|
movs r4, 0x1
|
|
lsls r4, 28
|
|
_080B689E:
|
|
cmp r1, r4
|
|
bcs _080B68AC
|
|
cmp r1, r0
|
|
bcs _080B68AC
|
|
lsls r1, 4
|
|
lsls r3, 4
|
|
b _080B689E
|
|
_080B68AC:
|
|
lsls r4, 3
|
|
_080B68AE:
|
|
cmp r1, r4
|
|
bcs _080B68BC
|
|
cmp r1, r0
|
|
bcs _080B68BC
|
|
lsls r1, 1
|
|
lsls r3, 1
|
|
b _080B68AE
|
|
_080B68BC:
|
|
cmp r0, r1
|
|
bcc _080B68C4
|
|
subs r0, r1
|
|
orrs r2, r3
|
|
_080B68C4:
|
|
lsrs r4, r1, 1
|
|
cmp r0, r4
|
|
bcc _080B68D0
|
|
subs r0, r4
|
|
lsrs r4, r3, 1
|
|
orrs r2, r4
|
|
_080B68D0:
|
|
lsrs r4, r1, 2
|
|
cmp r0, r4
|
|
bcc _080B68DC
|
|
subs r0, r4
|
|
lsrs r4, r3, 2
|
|
orrs r2, r4
|
|
_080B68DC:
|
|
lsrs r4, r1, 3
|
|
cmp r0, r4
|
|
bcc _080B68E8
|
|
subs r0, r4
|
|
lsrs r4, r3, 3
|
|
orrs r2, r4
|
|
_080B68E8:
|
|
cmp r0, 0
|
|
beq _080B68F4
|
|
lsrs r3, 4
|
|
beq _080B68F4
|
|
lsrs r1, 4
|
|
b _080B68BC
|
|
_080B68F4:
|
|
adds r0, r2, 0
|
|
pop {r4}
|
|
mov pc, lr
|
|
_080B68FA:
|
|
push {lr}
|
|
bl __div0
|
|
movs r0, 0
|
|
pop {pc}
|
|
thumb_func_end sub_80B688C
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|