pokeemerald-jp/asm/libs.s.bak
2019-09-27 01:42:21 -04:00

8851 lines
137 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.text
.syntax unified
thumb_func_start memcpy
memcpy: @ 0x08297D0C
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r3, r1, #0
cmp r2, #0xf
bls _08297D4C
adds r0, r3, #0
orrs r0, r5
movs r1, #3
ands r0, r1
cmp r0, #0
bne _08297D4C
adds r1, r5, #0
_08297D26:
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 _08297D26
cmp r2, #3
bls _08297D4A
_08297D40:
ldm r3!, {r0}
stm r1!, {r0}
subs r2, #4
cmp r2, #3
bhi _08297D40
_08297D4A:
adds r4, r1, #0
_08297D4C:
subs r2, #1
movs r0, #1
rsbs r0, r0, #0
cmp r2, r0
beq _08297D66
adds r1, r0, #0
_08297D58:
ldrb r0, [r3]
strb r0, [r4]
adds r3, #1
adds r4, #1
subs r2, #1
cmp r2, r1
bne _08297D58
_08297D66:
adds r0, r5, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_end memcpy
thumb_func_start memset
memset: @ 0x08297D6C
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r3, r5, #0
cmp r2, #3
bls _08297DB2
movs r0, #3
ands r0, r5
cmp r0, #0
bne _08297DB2
adds r1, r5, #0
movs r0, #0xff
ands r4, r0
lsls r3, r4, #8
orrs r3, r4
lsls r0, r3, #0x10
orrs r3, r0
cmp r2, #0xf
bls _08297DA6
_08297D92:
stm r1!, {r3}
stm r1!, {r3}
stm r1!, {r3}
stm r1!, {r3}
subs r2, #0x10
cmp r2, #0xf
bhi _08297D92
b _08297DA6
_08297DA2:
stm r1!, {r3}
subs r2, #4
_08297DA6:
cmp r2, #3
bhi _08297DA2
adds r3, r1, #0
b _08297DB2
_08297DAE:
strb r4, [r3]
adds r3, #1
_08297DB2:
adds r0, r2, #0
subs r2, #1
cmp r0, #0
bne _08297DAE
adds r0, r5, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_end memset
thumb_func_start strcmp
strcmp: @ 0x08297DC0
push {r4, r5, lr}
adds r2, r0, #0
adds r3, r1, #0
orrs r0, r3
movs r1, #3
ands r0, r1
cmp r0, #0
bne _08297E06
ldr r1, [r2]
ldr r0, [r3]
cmp r1, r0
bne _08297E06
ldr r5, _08297DEC
ldr r4, _08297DF0
_08297DDC:
ldr r1, [r2]
adds r0, r1, r5
bics r0, r1
ands r0, r4
cmp r0, #0
beq _08297DF4
movs r0, #0
b _08297E18
.align 2, 0
_08297DEC: .4byte 0xFEFEFEFF
_08297DF0: .4byte 0x80808080
_08297DF4:
adds r2, #4
adds r3, #4
ldr r1, [r2]
ldr r0, [r3]
cmp r1, r0
beq _08297DDC
b _08297E06
_08297E02:
adds r2, #1
adds r3, #1
_08297E06:
ldrb r0, [r2]
cmp r0, #0
beq _08297E12
ldrb r1, [r3]
cmp r0, r1
beq _08297E02
_08297E12:
ldrb r2, [r2]
ldrb r3, [r3]
subs r0, r2, r3
_08297E18:
pop {r4, r5, pc}
.align 2, 0
thumb_func_end strcmp
thumb_func_start strcpy
strcpy: @ 0x08297E1C
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r3, r6, #0
adds r2, r1, #0
adds r0, r2, #0
orrs r0, r6
movs r1, #3
ands r0, r1
cmp r0, #0
bne _08297E54
ldr r1, [r2]
ldr r5, _08297E3C
adds r0, r1, r5
bics r0, r1
ldr r4, _08297E40
b _08297E4E
.align 2, 0
_08297E3C: .4byte 0xFEFEFEFF
_08297E40: .4byte 0x80808080
_08297E44:
ldm r2!, {r0}
stm r3!, {r0}
ldr r1, [r2]
adds r0, r1, r5
bics r0, r1
_08297E4E:
ands r0, r4
cmp r0, #0
beq _08297E44
_08297E54:
ldrb r0, [r2]
strb r0, [r3]
lsls r0, r0, #0x18
adds r2, #1
adds r3, #1
cmp r0, #0
bne _08297E54
adds r0, r6, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end strcpy
thumb_func_start vsprintf
vsprintf: @ 0x08297E68
push {r4, r5, lr}
sub sp, #0x58
mov r4, sp
movs r5, #0
movs r3, #0x82
lsls r3, r3, #2
strh r3, [r4, #0xc]
str r0, [sp]
str r0, [sp, #0x10]
ldr r0, _08297E94
str r0, [sp, #8]
str r0, [sp, #0x14]
ldr r0, _08297E98
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
_08297E94: .4byte 0x7FFFFFFF
_08297E98: .4byte gUnknown_203CF1C
thumb_func_end vsprintf
thumb_func_start sub_08297E9C
sub_08297E9C: @ 0x08297E9C
push {r4, lr}
adds r4, r1, #0
ldr r1, [r4, #8]
cmp r1, #0
beq _08297EB4
adds r1, r4, #0
bl __sfvwrite
movs r1, #0
str r1, [r4, #8]
str r1, [r4, #4]
b _08297EB8
_08297EB4:
str r1, [r4, #4]
movs r0, #0
_08297EB8:
pop {r4, pc}
.align 2, 0
thumb_func_end sub_08297E9C
thumb_func_start sub_08297EBC
sub_08297EBC: @ 0x08297EBC
push {r4, r5, lr}
ldr r4, _08297F2C
add sp, r4
adds r5, r0, #0
ldr r0, [r5, #0x54]
str r0, [sp, #0x54]
mov r3, sp
movs r0, #3
rsbs r0, r0, #0
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, r0, #3
str r0, [sp, #8]
str r0, [sp, #0x14]
str r4, [sp, #0x18]
mov r0, sp
bl vfprintf
adds r4, r0, #0
cmp r4, #0
blt _08297F0C
mov r0, sp
bl fflush
cmp r0, #0
beq _08297F0C
movs r4, #1
rsbs r4, r4, #0
_08297F0C:
mov r1, sp
movs r0, #0x40
ldrh r1, [r1, #0xc]
ands r0, r1
cmp r0, #0
beq _08297F20
movs r0, #0x40
ldrh r1, [r5, #0xc]
orrs r0, r1
strh r0, [r5, #0xc]
_08297F20:
adds r0, r4, #0
movs r3, #0x8b
lsls r3, r3, #3
add sp, r3
pop {r4, r5, pc}
.align 2, 0
_08297F2C: .4byte 0xFFFFFBA8
thumb_func_end sub_08297EBC
thumb_func_start vfprintf
vfprintf: @ 0x08297F30
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: @ 0x08297F44
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r4, _08297FAC
add sp, r4
str r0, [sp, #0x1dc]
str r1, [sp, #0x1e0]
adds r4, r2, #0
mov sl, r3
bl localeconv
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 _08297F76
ldr r0, _08297FB0
ldr r0, [r0]
str r0, [r1, #0x54]
_08297F76:
ldr r2, [sp, #0x1e0]
ldr r1, [r2, #0x54]
ldr r0, [r1, #0x38]
cmp r0, #0
bne _08297F86
adds r0, r1, #0
bl __sinit
_08297F86:
movs r0, #8
ldr r1, [sp, #0x1e0]
ldrh r1, [r1, #0xc]
ands r0, r1
cmp r0, #0
beq _08297F9A
ldr r2, [sp, #0x1e0]
ldr r0, [r2, #0x10]
cmp r0, #0
bne _08297FB4
_08297F9A:
ldr r0, [sp, #0x1e0]
bl __swsetup
cmp r0, #0
beq _08297FB4
movs r0, #1
rsbs r0, r0, #0
bl _08298E94
.align 2, 0
_08297FAC: .4byte 0xFFFFFDE0
_08297FB0: .4byte gUnknown_203CF1C
_08297FB4:
movs r0, #0x1a
ldr r1, [sp, #0x1e0]
ldrh r1, [r1, #0xc]
ands r0, r1
cmp r0, #0xa
bne _08297FD8
ldr r2, [sp, #0x1e0]
movs r1, #0xe
ldrsh r0, [r2, r1]
cmp r0, #0
blt _08297FD8
adds r0, r2, #0
adds r1, r4, #0
mov r2, sl
bl sub_08297EBC
bl _08298E94
_08297FD8:
str r4, [sp, #0x1e4]
add r1, sp, #0x1c
add r5, sp, #0x28
str r5, [sp, #0x1c]
movs r0, #0
str r0, [r1, #8]
str r0, [r1, #4]
movs r2, #0
str r2, [sp, #0x1f0]
mov sb, r1
movs r4, #0xe6
lsls r4, r4, #1
add r4, sp
str r4, [sp, #0x214]
movs r0, #0xe8
lsls r0, r0, #1
add r0, sp
str r0, [sp, #0x218]
_08297FFC:
ldr r1, [sp, #0x1e4]
mov r8, r1
_08298000:
ldr r0, _082980AC
ldr r0, [r0]
ldr r1, _082980B0
ldr r3, [r1]
ldr r2, [sp, #0x218]
str r2, [sp]
ldr r1, [sp, #0x214]
ldr r2, [sp, #0x1e4]
bl _mbtowc_r
adds r4, r0, #0
cmp r4, #0
ble _0829802E
ldr r0, [sp, #0x1e4]
adds r0, r0, r4
str r0, [sp, #0x1e4]
add r0, sp, #0x1cc
ldr r0, [r0]
cmp r0, #0x25
bne _08298000
ldr r1, [sp, #0x1e4]
subs r1, #1
str r1, [sp, #0x1e4]
_0829802E:
ldr r2, [sp, #0x1e4]
mov r0, r8
subs r6, r2, r0
cmp r6, #0
beq _08298066
str r0, [r5]
str r6, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r6
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298060
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _0829805E
bl _08298E80
_0829805E:
add r5, sp, #0x28
_08298060:
ldr r2, [sp, #0x1f0]
adds r2, r2, r6
str r2, [sp, #0x1f0]
_08298066:
cmp r4, #0
bgt _0829806E
bl _08298E68
_0829806E:
ldr r4, [sp, #0x1e4]
adds r4, #1
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, #1
rsbs r6, r6, #0
ldr r0, _082980B4
add r0, sp
strb r2, [r0]
_0829808A:
ldr r0, [sp, #0x1e4]
ldrb r0, [r0]
str r0, [sp, #0x1e8]
ldr r1, [sp, #0x1e4]
adds r1, #1
str r1, [sp, #0x1e4]
_08298096:
ldr r0, [sp, #0x1e8]
subs r0, #0x20
cmp r0, #0x58
bls _082980A0
b _08298752
_082980A0:
lsls r0, r0, #2
ldr r1, _082980B8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_082980AC: .4byte gUnknown_203CF1C
_082980B0: .4byte gUnknown_203CF20
_082980B4: .4byte 0x000001C9
_082980B8: .4byte _082980BC
_082980BC: @ jump table
.4byte _08298220 @ case 0
.4byte _08298752 @ case 1
.4byte _08298752 @ case 2
.4byte _08298238 @ case 3
.4byte _08298752 @ case 4
.4byte _08298752 @ case 5
.4byte _08298752 @ case 6
.4byte _08298752 @ case 7
.4byte _08298752 @ case 8
.4byte _08298752 @ case 9
.4byte _0829823C @ case 10
.4byte _08298256 @ case 11
.4byte _08298752 @ case 12
.4byte _08298252 @ case 13
.4byte _08298264 @ case 14
.4byte _08298752 @ case 15
.4byte _082982C4 @ case 16
.4byte _082982C8 @ case 17
.4byte _082982C8 @ case 18
.4byte _082982C8 @ case 19
.4byte _082982C8 @ case 20
.4byte _082982C8 @ case 21
.4byte _082982C8 @ case 22
.4byte _082982C8 @ case 23
.4byte _082982C8 @ case 24
.4byte _082982C8 @ case 25
.4byte _08298752 @ case 26
.4byte _08298752 @ case 27
.4byte _08298752 @ case 28
.4byte _08298752 @ case 29
.4byte _08298752 @ case 30
.4byte _08298752 @ case 31
.4byte _08298752 @ case 32
.4byte _08298752 @ case 33
.4byte _08298752 @ case 34
.4byte _08298752 @ case 35
.4byte _08298332 @ case 36
.4byte _08298384 @ case 37
.4byte _08298752 @ case 38
.4byte _08298384 @ case 39
.4byte _08298752 @ case 40
.4byte _08298752 @ case 41
.4byte _08298752 @ case 42
.4byte _08298752 @ case 43
.4byte _082982EC @ case 44
.4byte _08298752 @ case 45
.4byte _08298752 @ case 46
.4byte _0829853A @ case 47
.4byte _08298752 @ case 48
.4byte _08298752 @ case 49
.4byte _08298752 @ case 50
.4byte _08298752 @ case 51
.4byte _08298752 @ case 52
.4byte _082985D2 @ case 53
.4byte _08298752 @ case 54
.4byte _08298752 @ case 55
.4byte _0829860E @ case 56
.4byte _08298752 @ case 57
.4byte _08298752 @ case 58
.4byte _08298752 @ case 59
.4byte _08298752 @ case 60
.4byte _08298752 @ case 61
.4byte _08298752 @ case 62
.4byte _08298752 @ case 63
.4byte _08298752 @ case 64
.4byte _08298752 @ case 65
.4byte _08298752 @ case 66
.4byte _08298320 @ case 67
.4byte _0829833A @ case 68
.4byte _08298384 @ case 69
.4byte _08298384 @ case 70
.4byte _08298384 @ case 71
.4byte _082982F0 @ case 72
.4byte _0829833A @ case 73
.4byte _08298752 @ case 74
.4byte _08298752 @ case 75
.4byte _082982F4 @ case 76
.4byte _08298752 @ case 77
.4byte _082984F4 @ case 78
.4byte _08298542 @ case 79
.4byte _08298570 @ case 80
.4byte _08298316 @ case 81
.4byte _08298752 @ case 82
.4byte _08298590 @ case 83
.4byte _08298752 @ case 84
.4byte _082985DA @ case 85
.4byte _08298752 @ case 86
.4byte _08298752 @ case 87
.4byte _08298618 @ case 88
_08298220:
ldr r1, _08298234
add r1, sp
ldrb r0, [r1]
cmp r0, #0
beq _0829822C
b _0829808A
_0829822C:
movs r0, #0x20
strb r0, [r1]
b _0829808A
.align 2, 0
_08298234: .4byte 0x000001C9
_08298238:
movs r0, #1
b _08298304
_0829823C:
movs r4, #4
add sl, r4
mov r0, sl
subs r0, #4
ldr r0, [r0]
str r0, [sp, #0x1f4]
cmp r0, #0
blt _0829824E
b _0829808A
_0829824E:
rsbs r0, r0, #0
str r0, [sp, #0x1f4]
_08298252:
movs r0, #4
b _08298318
_08298256:
ldr r1, _08298260
add r1, sp
movs r0, #0x2b
strb r0, [r1]
b _0829808A
.align 2, 0
_08298260: .4byte 0x000001C9
_08298264:
ldr r2, [sp, #0x1e4]
ldrb r2, [r2]
str r2, [sp, #0x1e8]
ldr r4, [sp, #0x1e4]
adds r4, #1
str r4, [sp, #0x1e4]
cmp r2, #0x2a
bne _0829828E
movs r0, #4
add sl, r0
mov r0, sl
subs r0, #4
ldr r4, [r0]
adds r6, r4, #0
movs r0, #1
rsbs r0, r0, #0
cmp r6, r0
blt _0829828A
b _0829808A
_0829828A:
adds r6, r0, #0
b _0829808A
_0829828E:
movs r4, #0
ldr r0, [sp, #0x1e8]
b _082982AE
_08298294:
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, 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, #1
str r0, [sp, #0x1e4]
adds r0, r2, #0
_082982AE:
subs r0, #0x30
cmp r0, #9
bls _08298294
adds r6, r4, #0
movs r0, #1
rsbs r0, r0, #0
cmp r6, r0
blt _082982C0
b _08298096
_082982C0:
adds r6, r0, #0
b _08298096
_082982C4:
movs r0, #0x80
b _08298318
_082982C8:
movs r4, #0
_082982CA:
lsls r0, r4, #2
adds r0, r0, r4
lsls r0, 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, #1
str r1, [sp, #0x1e4]
subs r0, #0x30
cmp r0, #9
bls _082982CA
str r4, [sp, #0x1f4]
b _08298096
_082982EC:
movs r0, #8
b _08298304
_082982F0:
movs r0, #0x40
b _0829830E
_082982F4:
ldr r0, [sp, #0x1e4]
ldrb r0, [r0]
cmp r0, #0x6c
bne _0829830C
ldr r1, [sp, #0x1e4]
adds r1, #1
str r1, [sp, #0x1e4]
movs r0, #0x20
_08298304:
ldr r2, [sp, #0x1ec]
orrs r2, r0
str r2, [sp, #0x1ec]
b _0829808A
_0829830C:
movs r0, #0x10
_0829830E:
ldr r4, [sp, #0x1ec]
orrs r4, r0
str r4, [sp, #0x1ec]
b _0829808A
_08298316:
movs r0, #0x20
_08298318:
ldr r1, [sp, #0x1ec]
orrs r1, r0
str r1, [sp, #0x1ec]
b _0829808A
_08298320:
add r2, sp, #0x68
mov r8, r2
movs r4, #4
add sl, r4
mov r0, sl
subs r0, #4
ldr r0, [r0]
strb r0, [r2]
b _08298760
_08298332:
movs r0, #0x10
ldr r1, [sp, #0x1ec]
orrs r1, r0
str r1, [sp, #0x1ec]
_0829833A:
movs r0, #0x10
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
beq _0829834A
movs r4, #4
add sl, r4
b _08298366
_0829834A:
movs r0, #0x40
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _08298362
movs r2, #4
add sl, r2
mov r0, sl
subs r0, #4
movs r1, #0
ldrsh r4, [r0, r1]
b _0829836C
_08298362:
movs r2, #4
add sl, r2
_08298366:
mov r0, sl
subs r0, #4
ldr r4, [r0]
_0829836C:
cmp r4, #0
bge _0829837A
rsbs r4, r4, #0
ldr r1, _08298380
add r1, sp
movs r0, #0x2d
strb r0, [r1]
_0829837A:
movs r2, #1
b _08298666
.align 2, 0
_08298380: .4byte 0x000001C9
_08298384:
movs r0, #1
rsbs r0, r0, #0
cmp r6, r0
bne _08298390
movs r6, #6
b _082983A0
_08298390:
ldr r4, [sp, #0x1e8]
cmp r4, #0x67
beq _0829839A
cmp r4, #0x47
bne _082983A0
_0829839A:
cmp r6, #0
bne _082983A0
movs r6, #1
_082983A0:
movs r0, #8
ldr r1, [sp, #0x1ec]
ands r0, r1
movs r2, #8
add sl, r2
mov r0, sl
subs r0, #8
ldr r1, [r0]
ldr r2, [r0, #4]
str r1, [sp, #0x1fc]
str r2, [sp, #0x200]
ldr r0, [sp, #0x1fc]
ldr r1, [sp, #0x200]
bl isinf
cmp r0, #0
beq _082983F4
ldr r3, _082983E8
ldr r2, _082983E4
ldr r0, [sp, #0x1fc]
ldr r1, [sp, #0x200]
bl __ltdf2
cmp r0, #0
bge _082983DA
ldr r1, _082983EC
add r1, sp
movs r0, #0x2d
strb r0, [r1]
_082983DA:
ldr r2, _082983F0
mov r8, r2
movs r3, #3
b _0829876A
.align 2, 0
_082983E4: .4byte 0x00000000
_082983E8: .4byte 0x00000000
_082983EC: .4byte 0x000001C9
_082983F0: .4byte gUnknown_890F17C
_082983F4:
ldr r0, [sp, #0x1fc]
ldr r1, [sp, #0x200]
bl isnan
cmp r0, #0
beq _0829840C
ldr r4, _08298408
mov r8, r4
movs r3, #3
b _0829876A
.align 2, 0
_08298408: .4byte gUnknown_890F180
_0829840C:
movs r0, #0x80
lsls r0, r0, #1
ldr r1, [sp, #0x1ec]
orrs r1, r0
str r1, [sp, #0x1ec]
str r1, [sp]
add r0, sp, #0x1c8
str r0, [sp, #4]
add r0, sp, #0x1d4
str r0, [sp, #8]
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_08298EA4
mov r8, r0
ldr r4, [sp, #0x1e8]
cmp r4, #0x67
beq _08298440
cmp r4, #0x47
bne _08298462
_08298440:
add r0, sp, #0x1d4
ldr r1, [r0]
movs r0, #4
rsbs r0, r0, #0
cmp r1, r0
ble _08298450
cmp r1, r6
ble _0829845E
_08298450:
movs r0, #0x45
ldr r1, [sp, #0x1e8]
cmp r1, #0x67
bne _0829845A
movs r0, #0x65
_0829845A:
str r0, [sp, #0x1e8]
b _08298462
_0829845E:
movs r2, #0x67
str r2, [sp, #0x1e8]
_08298462:
ldr r4, [sp, #0x1e8]
cmp r4, #0x65
bgt _08298488
add r0, sp, #0x1d4
ldr r1, [r0]
subs r1, #1
str r1, [r0]
add r0, sp, #0x14
ldr r2, [sp, #0x1e8]
bl sub_08298F98
str r0, [sp, #0x204]
add r0, sp, #0x1d8
ldr r0, [r0]
ldr r1, [sp, #0x204]
adds r3, r1, r0
cmp r0, #1
bgt _082984C8
b _082984BE
_08298488:
ldr r4, [sp, #0x1e8]
cmp r4, #0x66
bne _082984B0
add r0, sp, #0x1d4
ldr r0, [r0]
cmp r0, #0
ble _082984AC
adds r3, r0, #0
cmp r6, #0
bne _082984A6
movs r0, #1
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _082984D8
_082984A6:
adds r0, r3, #1
adds r3, r0, r6
b _082984D8
_082984AC:
adds r3, r6, #2
b _082984D8
_082984B0:
add r0, sp, #0x1d4
ldr r1, [r0]
add r0, sp, #0x1d8
ldr r0, [r0]
cmp r1, r0
blt _082984CC
adds r3, r1, #0
_082984BE:
movs r0, #1
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
beq _082984D8
_082984C8:
adds r3, #1
b _082984D8
_082984CC:
cmp r1, #0
bgt _082984D6
adds r0, #2
subs r3, r0, r1
b _082984D8
_082984D6:
adds r3, r0, #1
_082984D8:
add r0, sp, #0x1c8
ldrb r0, [r0]
adds r7, r5, #0
adds r7, #8
cmp r0, #0
bne _082984E6
b _0829876E
_082984E6:
ldr r1, _082984F0
add r1, sp
movs r0, #0x2d
strb r0, [r1]
b _0829876E
.align 2, 0
_082984F0: .4byte 0x000001C9
_082984F4:
movs r0, #0x10
ldr r4, [sp, #0x1ec]
ands r0, r4
cmp r0, #0
beq _0829850E
movs r0, #4
add sl, r0
mov r0, sl
subs r0, #4
ldr r0, [r0]
ldr r1, [sp, #0x1f0]
str r1, [r0]
b _08297FFC
_0829850E:
movs r0, #0x40
ldr r2, [sp, #0x1ec]
ands r2, r0
cmp r2, #0
beq _0829852A
movs r4, #4
add sl, r4
mov r0, sl
subs r0, #4
ldr r0, [r0]
add r1, sp, #0x1f0
ldrh r1, [r1]
strh r1, [r0]
b _08297FFC
_0829852A:
movs r2, #4
add sl, r2
mov r0, sl
subs r0, #4
ldr r0, [r0]
ldr r4, [sp, #0x1f0]
str r4, [r0]
b _08297FFC
_0829853A:
movs r0, #0x10
ldr r1, [sp, #0x1ec]
orrs r1, r0
str r1, [sp, #0x1ec]
_08298542:
movs r0, #0x10
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
bne _08298562
movs r0, #0x40
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _08298562
movs r2, #4
add sl, r2
mov r0, sl
subs r0, #4
ldrh r4, [r0]
b _0829856C
_08298562:
movs r4, #4
add sl, r4
mov r0, sl
subs r0, #4
ldr r4, [r0]
_0829856C:
movs r2, #0
b _0829865E
_08298570:
movs r0, #4
add sl, r0
mov r0, sl
subs r0, #4
ldr r4, [r0]
movs r2, #2
ldr r1, _0829858C
str r1, [sp, #0x210]
ldr r0, [sp, #0x1ec]
orrs r0, r2
str r0, [sp, #0x1ec]
movs r1, #0x78
str r1, [sp, #0x1e8]
b _0829865E
.align 2, 0
_0829858C: .4byte gUnknown_890F184
_08298590:
movs r2, #4
add sl, r2
mov r0, sl
subs r0, #4
ldr r0, [r0]
mov r8, r0
cmp r0, #0
bne _082985A4
ldr r4, _082985C4
mov r8, r4
_082985A4:
cmp r6, #0
blt _082985C8
mov r0, r8
movs r1, #0
adds r2, r6, #0
bl memchr
cmp r0, #0
beq _082985C0
mov r1, r8
subs r3, r0, r1
cmp r3, r6
bgt _082985C0
b _08298762
_082985C0:
adds r3, r6, #0
b _08298762
.align 2, 0
_082985C4: .4byte gUnknown_890F198
_082985C8:
mov r0, r8
bl strlen
adds r3, r0, #0
b _08298762
_082985D2:
movs r0, #0x10
ldr r2, [sp, #0x1ec]
orrs r2, r0
str r2, [sp, #0x1ec]
_082985DA:
movs r0, #0x10
ldr r4, [sp, #0x1ec]
ands r0, r4
cmp r0, #0
beq _082985EA
movs r0, #4
add sl, r0
b _08298604
_082985EA:
movs r0, #0x40
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _08298600
movs r2, #4
add sl, r2
mov r0, sl
subs r0, #4
ldrh r4, [r0]
b _0829860A
_08298600:
movs r4, #4
add sl, r4
_08298604:
mov r0, sl
subs r0, #4
ldr r4, [r0]
_0829860A:
movs r2, #1
b _0829865E
_0829860E:
ldr r0, _08298614
str r0, [sp, #0x210]
b _0829861C
.align 2, 0
_08298614: .4byte gUnknown_890F1A0
_08298618:
ldr r1, _0829863C
str r1, [sp, #0x210]
_0829861C:
movs r0, #0x10
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
bne _08298640
movs r0, #0x40
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _08298640
movs r2, #4
add sl, r2
mov r0, sl
subs r0, #4
ldrh r4, [r0]
b _0829864A
.align 2, 0
_0829863C: .4byte gUnknown_890F184
_08298640:
movs r4, #4
add sl, r4
mov r0, sl
subs r0, #4
ldr r4, [r0]
_0829864A:
movs r2, #2
movs r0, #1
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _0829865E
cmp r4, #0
beq _0829865E
orrs r1, r2
str r1, [sp, #0x1ec]
_0829865E:
ldr r1, _082986A8
add r1, sp
movs r0, #0
strb r0, [r1]
_08298666:
str r6, [sp, #0x208]
cmp r6, #0
blt _08298676
movs r0, #0x81
rsbs r0, r0, #0
ldr r1, [sp, #0x1ec]
ands r1, r0
str r1, [sp, #0x1ec]
_08298676:
movs r0, #0xe2
lsls r0, r0, #1
add r0, sp
mov r8, r0
cmp r4, #0
bne _0829868C
adds r7, r5, #0
adds r7, #8
ldr r1, [sp, #0x208]
cmp r1, #0
beq _08298744
_0829868C:
cmp r2, #1
beq _082986EA
cmp r2, #1
blo _082986B0
cmp r2, #2
beq _08298724
ldr r2, _082986AC
mov r8, r2
mov r0, r8
bl strlen
adds r3, r0, #0
b _0829876A
.align 2, 0
_082986A8: .4byte 0x000001C9
_082986AC: .4byte gUnknown_890F1B4
_082986B0:
adds r7, r5, #0
adds r7, #8
movs r2, #7
_082986B6:
movs r0, #1
rsbs r0, r0, #0
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, r4, #3
cmp r4, #0
bne _082986B6
movs r0, #1
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
beq _08298744
cmp r1, #0x30
beq _08298744
movs r4, #1
rsbs r4, r4, #0
add r8, r4
movs r0, #0x30
mov r1, r8
strb r0, [r1]
b _08298744
_082986EA:
adds r7, r5, #0
adds r7, #8
cmp r4, #9
bls _08298714
_082986F2:
movs r2, #1
rsbs r2, r2, #0
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 __udivsi3
adds r4, r0, #0
cmp r4, #9
bhi _082986F2
_08298714:
movs r2, #1
rsbs r2, r2, #0
add r8, r2
adds r0, r4, #0
adds r0, #0x30
mov r4, r8
strb r0, [r4]
b _08298744
_08298724:
adds r7, r5, #0
adds r7, #8
movs r1, #0xf
_0829872A:
movs r0, #1
rsbs r0, r0, #0
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, r4, #4
cmp r4, #0
bne _0829872A
_08298744:
add r4, sp, #0x14
mov r1, r8
subs r0, r4, r1
movs r2, #0xd8
lsls r2, r2, #1
adds r3, r0, r2
b _0829876E
_08298752:
ldr r4, [sp, #0x1e8]
cmp r4, #0
bne _0829875A
b _08298E68
_0829875A:
add r0, sp, #0x68
mov r8, r0
strb r4, [r0]
_08298760:
movs r3, #1
_08298762:
ldr r1, _0829878C
add r1, sp
movs r0, #0
strb r0, [r1]
_0829876A:
adds r7, r5, #0
adds r7, #8
_0829876E:
str r3, [sp, #0x20c]
ldr r2, [sp, #0x208]
cmp r3, r2
bge _08298778
str r2, [sp, #0x20c]
_08298778:
ldr r0, _0829878C
add r0, sp
ldrb r0, [r0]
cmp r0, #0
beq _08298790
ldr r4, [sp, #0x20c]
adds r4, #1
str r4, [sp, #0x20c]
b _082987A0
.align 2, 0
_0829878C: .4byte 0x000001C9
_08298790:
movs r0, #2
ldr r1, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _082987A0
ldr r2, [sp, #0x20c]
adds r2, #2
str r2, [sp, #0x20c]
_082987A0:
movs r0, #0x84
ldr r4, [sp, #0x1ec]
ands r0, r4
cmp r0, #0
bne _08298820
ldr r0, [sp, #0x1f4]
ldr r1, [sp, #0x20c]
subs r4, r0, r1
cmp r4, #0
ble _08298820
ldr r1, _0829884C
cmp r4, #0x10
ble _082987F4
mov r6, sb
_082987BC:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, r7, #0
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _082987EA
ldr r0, [sp, #0x1e0]
mov r1, sb
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _082987E6
b _08298E80
_082987E6:
add r5, sp, #0x28
ldr r1, _0829884C
_082987EA:
subs r4, #0x10
adds r7, r5, #0
adds r7, #8
cmp r4, #0x10
bgt _082987BC
_082987F4:
str r1, [r5]
str r4, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, r0, r4
str r0, [r2, #8]
adds r5, r7, #0
ldr r0, [r2, #4]
adds r0, #1
str r0, [r2, #4]
cmp r0, #7
ble _08298820
ldr r0, [sp, #0x1e0]
mov r1, sb
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _0829881E
b _08298E80
_0829881E:
add r5, sp, #0x28
_08298820:
ldr r1, _08298850
add r1, sp
ldrb r0, [r1]
cmp r0, #0
beq _08298854
str r1, [r5]
movs r0, #1
str r0, [r5, #4]
mov r4, sb
ldr r0, [r4, #8]
adds r0, #1
str r0, [r4, #8]
adds r5, #8
ldr r0, [r4, #4]
adds r0, #1
str r0, [r4, #4]
cmp r0, #7
ble _08298894
ldr r0, [sp, #0x1e0]
mov r1, sb
b _08298884
.align 2, 0
_0829884C: .4byte gUnknown_890F15C
_08298850: .4byte 0x000001C9
_08298854:
movs r2, #2
ldr r0, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
beq _08298894
add r1, sp, #0x1c4
movs r0, #0x30
strb r0, [r1]
add r0, sp, #0x1e8
ldrb r0, [r0]
strb r0, [r1, #1]
str r1, [r5]
str r2, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, #2
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298894
ldr r0, [sp, #0x1e0]
_08298884:
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _08298892
b _08298E80
_08298892:
add r5, sp, #0x28
_08298894:
movs r0, #0x84
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0x80
bne _08298910
ldr r0, [sp, #0x1f4]
ldr r1, [sp, #0x20c]
subs r4, r0, r1
cmp r4, #0
ble _08298910
ldr r1, _082989AC
cmp r4, #0x10
ble _082988E4
mov r6, sb
_082988B0:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _082988DE
ldr r0, [sp, #0x1e0]
mov r1, sb
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _082988DA
b _08298E80
_082988DA:
add r5, sp, #0x28
ldr r1, _082989AC
_082988DE:
subs r4, #0x10
cmp r4, #0x10
bgt _082988B0
_082988E4:
str r1, [r5]
str r4, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, r0, r4
str r0, [r2, #8]
adds r5, #8
ldr r0, [r2, #4]
adds r0, #1
str r0, [r2, #4]
cmp r0, #7
ble _08298910
ldr r0, [sp, #0x1e0]
mov r1, sb
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _0829890E
b _08298E80
_0829890E:
add r5, sp, #0x28
_08298910:
ldr r0, [sp, #0x208]
subs r4, r0, r3
cmp r4, #0
ble _0829897E
ldr r1, _082989AC
cmp r4, #0x10
ble _08298954
mov r6, sb
_08298920:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _0829894E
ldr r0, [sp, #0x1e0]
mov r1, sb
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _0829894A
b _08298E80
_0829894A:
add r5, sp, #0x28
ldr r1, _082989AC
_0829894E:
subs r4, #0x10
cmp r4, #0x10
bgt _08298920
_08298954:
str r1, [r5]
str r4, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r4
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _0829897E
ldr r0, [sp, #0x1e0]
str r3, [sp, #0x21c]
bl sub_08297E9C
ldr r3, [sp, #0x21c]
cmp r0, #0
beq _0829897C
b _08298E80
_0829897C:
add r5, sp, #0x28
_0829897E:
movs r0, #0x80
lsls r0, r0, #1
ldr r2, [sp, #0x1ec]
ands r0, r2
cmp r0, #0
bne _082989B0
mov r4, r8
str r4, [r5]
str r3, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r3
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
bgt _082989A6
b _08298DC6
_082989A6:
ldr r0, [sp, #0x1e0]
b _08298DBC
.align 2, 0
_082989AC: .4byte gUnknown_890F16C
_082989B0:
ldr r2, [sp, #0x1e8]
cmp r2, #0x65
bgt _082989B8
b _08298C9C
_082989B8:
ldr r3, _08298A84
ldr r2, _08298A80
ldr r0, [sp, #0x1fc]
ldr r1, [sp, #0x200]
bl __eqdf2
cmp r0, #0
bne _08298A90
ldr r0, _08298A88
str r0, [r5]
movs r6, #1
str r6, [r5, #4]
mov r4, sb
ldr r0, [r4, #8]
adds r0, #1
str r0, [r4, #8]
adds r5, #8
ldr r0, [r4, #4]
adds r0, #1
str r0, [r4, #4]
cmp r0, #7
ble _082989F4
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _082989F2
b _08298E80
_082989F2:
add r5, sp, #0x28
_082989F4:
add r0, sp, #0x1d4
ldr r1, [r0]
add r4, sp, #0x1d8
ldr r0, [r4]
cmp r1, r0
blt _08298A0A
ldr r0, [sp, #0x1ec]
ands r0, r6
cmp r0, #0
bne _08298A0A
b _08298DC6
_08298A0A:
ldr r0, [sp, #0x1f8]
str r0, [r5]
str r6, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, #1
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298A32
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _08298A30
b _08298E80
_08298A30:
add r5, sp, #0x28
_08298A32:
ldr r0, [r4]
subs r4, r0, #1
cmp r4, #0
bgt _08298A3C
b _08298DC6
_08298A3C:
ldr r1, _08298A8C
cmp r4, #0x10
ble _08298A74
mov r6, sb
_08298A44:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _08298A6E
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298A6A
b _08298E80
_08298A6A:
add r5, sp, #0x28
ldr r1, _08298A8C
_08298A6E:
subs r4, #0x10
cmp r4, #0x10
bgt _08298A44
_08298A74:
str r1, [r5]
str r4, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, r0, r4
b _08298DAA
.align 2, 0
_08298A80: .4byte 0x00000000
_08298A84: .4byte 0x00000000
_08298A88: .4byte gUnknown_890F1D0
_08298A8C: .4byte gUnknown_890F16C
_08298A90:
add r6, sp, #0x1d4
ldr r2, [r6]
cmp r2, #0
bgt _08298B78
ldr r0, _08298B70
str r0, [r5]
movs r4, #1
str r4, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, #1
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298AC2
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _08298AC0
b _08298E80
_08298AC0:
add r5, sp, #0x28
_08298AC2:
ldr r2, [sp, #0x1f8]
str r2, [r5]
str r4, [r5, #4]
mov r4, sb
ldr r0, [r4, #8]
adds r0, #1
str r0, [r4, #8]
adds r5, #8
ldr r0, [r4, #4]
adds r0, #1
str r0, [r4, #4]
cmp r0, #7
ble _08298AEC
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298AEA
b _08298E80
_08298AEA:
add r5, sp, #0x28
_08298AEC:
ldr r0, [r6]
rsbs r4, r0, #0
cmp r4, #0
ble _08298B52
ldr r1, _08298B74
cmp r4, #0x10
ble _08298B2C
mov r6, sb
_08298AFC:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _08298B26
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298B22
b _08298E80
_08298B22:
add r5, sp, #0x28
ldr r1, _08298B74
_08298B26:
subs r4, #0x10
cmp r4, #0x10
bgt _08298AFC
_08298B2C:
str r1, [r5]
str r4, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r4
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298B52
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _08298B50
b _08298E80
_08298B50:
add r5, sp, #0x28
_08298B52:
mov r2, r8
str r2, [r5]
add r0, sp, #0x1d8
ldr r1, [r0]
str r1, [r5, #4]
mov r4, sb
ldr r0, [r4, #8]
adds r0, r0, r1
str r0, [r4, #8]
adds r5, #8
ldr r0, [r4, #4]
adds r0, #1
str r0, [r4, #4]
b _08298DB4
.align 2, 0
_08298B70: .4byte gUnknown_890F1D0
_08298B74: .4byte gUnknown_890F16C
_08298B78:
add r4, sp, #0x1d8
ldr r1, [r4]
cmp r2, r1
blt _08298C34
mov r0, r8
str r0, [r5]
str r1, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, r0, r1
str r0, [r2, #8]
adds r5, #8
ldr r0, [r2, #4]
adds r0, #1
str r0, [r2, #4]
cmp r0, #7
ble _08298BAA
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298BA8
b _08298E80
_08298BA8:
add r5, sp, #0x28
_08298BAA:
ldr r1, [r6]
ldr r0, [r4]
subs r4, r1, r0
cmp r4, #0
ble _08298C12
ldr r1, _08298C2C
cmp r4, #0x10
ble _08298BEC
mov r6, sb
_08298BBC:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _08298BE6
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298BE2
b _08298E80
_08298BE2:
add r5, sp, #0x28
ldr r1, _08298C2C
_08298BE6:
subs r4, #0x10
cmp r4, #0x10
bgt _08298BBC
_08298BEC:
str r1, [r5]
str r4, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r4
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298C12
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _08298C10
b _08298E80
_08298C10:
add r5, sp, #0x28
_08298C12:
movs r1, #1
ldr r0, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
bne _08298C1E
b _08298DC6
_08298C1E:
ldr r0, _08298C30
str r0, [r5]
str r1, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, #1
b _08298DAA
.align 2, 0
_08298C2C: .4byte gUnknown_890F16C
_08298C30: .4byte gUnknown_890F1D4
_08298C34:
mov r0, r8
str r0, [r5]
str r2, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r2
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298C5C
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _08298C5A
b _08298E80
_08298C5A:
add r5, sp, #0x28
_08298C5C:
ldr r0, [r6]
add r8, r0
ldr r0, _08298C98
str r0, [r5]
movs r0, #1
str r0, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, #1
str r0, [r2, #8]
adds r5, #8
ldr r0, [r2, #4]
adds r0, #1
str r0, [r2, #4]
cmp r0, #7
ble _08298C8C
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298C8A
b _08298E80
_08298C8A:
add r5, sp, #0x28
_08298C8C:
mov r0, r8
str r0, [r5]
ldr r1, [r4]
ldr r0, [r6]
subs r1, r1, r0
b _08298DA2
.align 2, 0
_08298C98: .4byte gUnknown_890F1D4
_08298C9C:
add r4, sp, #0x1d8
ldr r0, [r4]
cmp r0, #1
bgt _08298CAE
movs r1, #1
ldr r0, [sp, #0x1ec]
ands r0, r1
cmp r0, #0
beq _08298D74
_08298CAE:
add r1, sp, #0x1c4
mov r2, r8
ldrb r0, [r2]
strb r0, [r1]
movs r0, #1
add r8, r0
movs r0, #0x2e
strb r0, [r1, #1]
str r1, [r5]
movs r0, #2
str r0, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, #2
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298CE6
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
beq _08298CE4
b _08298E80
_08298CE4:
add r5, sp, #0x28
_08298CE6:
ldr r3, _08298D10
ldr r2, _08298D0C
ldr r0, [sp, #0x1fc]
ldr r1, [sp, #0x200]
bl __nedf2
cmp r0, #0
beq _08298D14
mov r2, r8
str r2, [r5]
ldr r1, [r4]
subs r0, r1, #1
str r0, [r5, #4]
mov r4, sb
ldr r0, [r4, #8]
subs r0, #1
adds r0, r0, r1
b _08298D80
.align 2, 0
_08298D0C: .4byte 0x00000000
_08298D10: .4byte 0x00000000
_08298D14:
ldr r0, [r4]
subs r4, r0, #1
cmp r4, #0
ble _08298D9C
ldr r1, _08298D70
cmp r4, #0x10
ble _08298D54
mov r6, sb
_08298D24:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _08298D4E
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
beq _08298D4A
b _08298E80
_08298D4A:
add r5, sp, #0x28
ldr r1, _08298D70
_08298D4E:
subs r4, #0x10
cmp r4, #0x10
bgt _08298D24
_08298D54:
str r1, [r5]
str r4, [r5, #4]
mov r1, sb
ldr r0, [r1, #8]
adds r0, r0, r4
str r0, [r1, #8]
adds r5, #8
ldr r0, [r1, #4]
adds r0, #1
str r0, [r1, #4]
cmp r0, #7
ble _08298D9C
ldr r0, [sp, #0x1e0]
b _08298D92
.align 2, 0
_08298D70: .4byte gUnknown_890F16C
_08298D74:
mov r2, r8
str r2, [r5]
str r1, [r5, #4]
mov r4, sb
ldr r0, [r4, #8]
adds r0, #1
_08298D80:
str r0, [r4, #8]
adds r5, #8
ldr r0, [r4, #4]
adds r0, #1
str r0, [r4, #4]
cmp r0, #7
ble _08298D9C
ldr r0, [sp, #0x1e0]
mov r1, sb
_08298D92:
bl sub_08297E9C
cmp r0, #0
bne _08298E80
add r5, sp, #0x28
_08298D9C:
add r0, sp, #0x14
str r0, [r5]
ldr r1, [sp, #0x204]
_08298DA2:
str r1, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, r0, r1
_08298DAA:
str r0, [r2, #8]
adds r5, #8
ldr r0, [r2, #4]
adds r0, #1
str r0, [r2, #4]
_08298DB4:
cmp r0, #7
ble _08298DC6
ldr r0, [sp, #0x1e0]
mov r1, sb
_08298DBC:
bl sub_08297E9C
cmp r0, #0
bne _08298E80
add r5, sp, #0x28
_08298DC6:
movs r0, #4
ldr r4, [sp, #0x1ec]
ands r4, r0
cmp r4, #0
beq _08298E32
ldr r0, [sp, #0x1f4]
ldr r1, [sp, #0x20c]
subs r4, r0, r1
cmp r4, #0
ble _08298E32
ldr r1, _08298E64
cmp r4, #0x10
ble _08298E10
mov r6, sb
_08298DE2:
str r1, [r5]
movs r0, #0x10
str r0, [r5, #4]
ldr r0, [r6, #8]
adds r0, #0x10
str r0, [r6, #8]
adds r5, #8
ldr r0, [r6, #4]
adds r0, #1
str r0, [r6, #4]
cmp r0, #7
ble _08298E0A
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
bne _08298E80
add r5, sp, #0x28
ldr r1, _08298E64
_08298E0A:
subs r4, #0x10
cmp r4, #0x10
bgt _08298DE2
_08298E10:
str r1, [r5]
str r4, [r5, #4]
mov r2, sb
ldr r0, [r2, #8]
adds r0, r0, r4
str r0, [r2, #8]
ldr r0, [r2, #4]
adds r0, #1
str r0, [r2, #4]
cmp r0, #7
ble _08298E32
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
bne _08298E80
_08298E32:
ldr r0, [sp, #0x20c]
ldr r4, [sp, #0x1f4]
cmp r0, r4
bge _08298E3C
adds r0, r4, #0
_08298E3C:
ldr r1, [sp, #0x1f0]
adds r1, r1, r0
str r1, [sp, #0x1f0]
mov r2, sb
ldr r0, [r2, #8]
cmp r0, #0
beq _08298E56
ldr r0, [sp, #0x1e0]
mov r1, sb
bl sub_08297E9C
cmp r0, #0
bne _08298E80
_08298E56:
movs r0, #0
mov r4, sb
str r0, [r4, #4]
add r5, sp, #0x28
bl _08297FFC
.align 2, 0
_08298E64: .4byte gUnknown_890F15C
_08298E68:
mov r1, sb
ldr r0, [r1, #8]
cmp r0, #0
beq _08298E7A
ldr r0, [sp, #0x1e0]
bl sub_08297E9C
cmp r0, #0
bne _08298E80
_08298E7A:
movs r0, #0
mov r1, sb
str r0, [r1, #4]
_08298E80:
movs r0, #0x40
ldr r2, [sp, #0x1e0]
ldrh r2, [r2, #0xc]
ands r0, r2
movs r1, #1
rsbs r1, r1, #0
cmp r0, #0
bne _08298E92
ldr r1, [sp, #0x1f0]
_08298E92:
adds r0, r1, #0
_08298E94:
movs r3, #0x88
lsls r3, r3, #2
add sp, r3
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_end _vfprintf_r
thumb_func_start sub_08298EA4
sub_08298EA4: @ 0x08298EA4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, 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 sl, r0
ldr r1, [sp, #0x48]
mov sb, r1
cmp r1, #0x66
bne _08298ECA
movs r7, #3
b _08298EDA
_08298ECA:
mov r0, sb
cmp r0, #0x65
beq _08298ED4
cmp r0, #0x45
bne _08298ED8
_08298ED4:
movs r1, #1
add r8, r1
_08298ED8:
movs r7, #2
_08298EDA:
lsls r0, r4, #0x1f
lsrs r0, r0, #0x1f
cmp r0, #0
beq _08298EF0
adds r1, r5, #0
adds r0, r4, #0
bl __negdf2
adds r5, r1, #0
adds r4, r0, #0
movs r0, #0x2d
_08298EF0:
ldr r1, [sp, #0x40]
strb r0, [r1]
mov r0, r8
str r0, [sp]
mov r1, sl
str r1, [sp, #4]
add r0, sp, #0x10
str r0, [sp, #8]
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, sb
cmp r1, #0x67
beq _08298F1C
cmp r1, #0x47
bne _08298F24
_08298F1C:
movs r0, #1
ands r6, r0
cmp r6, #0
beq _08298F78
_08298F24:
mov r0, r8
adds r6, r7, r0
mov r1, sb
cmp r1, #0x66
bne _08298F54
ldrb r0, [r7]
cmp r0, #0x30
bne _08298F4E
ldr r3, _08298F94
ldr r2, _08298F90
adds r1, r5, #0
adds r0, r4, #0
bl __nedf2
cmp r0, #0
beq _08298F4E
mov r1, r8
rsbs r0, r1, #0
adds r0, #1
mov r1, sl
str r0, [r1]
_08298F4E:
mov r1, sl
ldr r0, [r1]
adds r6, r6, r0
_08298F54:
ldr r3, _08298F94
ldr r2, _08298F90
adds r1, r5, #0
adds r0, r4, #0
bl __eqdf2
cmp r0, #0
bne _08298F66
str r6, [sp, #0x14]
_08298F66:
ldr r0, [sp, #0x14]
cmp r0, r6
bhs _08298F78
movs r1, #0x30
_08298F6E:
strb r1, [r0]
adds r0, #1
str r0, [sp, #0x14]
cmp r0, r6
blo _08298F6E
_08298F78:
ldr r0, [sp, #0x14]
subs r0, r0, r7
ldr r1, [sp, #0x4c]
str r0, [r1]
adds r0, r7, #0
add sp, #0x1c
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08298F90: .4byte 0x00000000
_08298F94: .4byte 0x00000000
thumb_func_end sub_08298EA4
thumb_func_start sub_08298F98
sub_08298F98: @ 0x08298F98
push {r4, r5, r6, r7, lr}
sub sp, #0x134
adds r7, r0, #0
adds r6, r1, #0
strb r2, [r7]
adds r5, r7, #1
cmp r6, #0
bge _08298FAE
rsbs r6, r6, #0
movs r0, #0x2d
b _08298FB0
_08298FAE:
movs r0, #0x2b
_08298FB0:
strb r0, [r7, #1]
adds r5, #1
add r4, sp, #0x134
cmp r6, #9
ble _08298FF2
_08298FBA:
subs r4, #1
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, #9
bgt _08298FBA
subs r4, #1
adds r0, #0x30
strb r0, [r4]
add r0, sp, #0x134
cmp r4, r0
bhs _08299000
adds r1, r0, #0
_08298FE4:
ldrb r0, [r4]
strb r0, [r5]
adds r4, #1
adds r5, #1
cmp r4, r1
blo _08298FE4
b _08299000
_08298FF2:
movs r0, #0x30
strb r0, [r5]
adds r5, #1
adds r0, r6, #0
adds r0, #0x30
strb r0, [r5]
adds r5, #1
_08299000:
subs r0, r5, r7
add sp, #0x134
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end sub_08298F98
thumb_func_start __swsetup
__swsetup: @ 0x08299008
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, [r4, #0x54]
cmp r0, #0
bne _08299018
ldr r0, _08299044
ldr r0, [r0]
str r0, [r4, #0x54]
_08299018:
ldr r1, [r4, #0x54]
ldr r0, [r1, #0x38]
cmp r0, #0
bne _08299026
adds r0, r1, #0
bl __sinit
_08299026:
ldrh r1, [r4, #0xc]
movs r0, #8
ands r0, r1
lsls r0, r0, #0x10
asrs r5, r0, #0x10
cmp r5, #0
bne _08299080
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _08299048
movs r0, #1
rsbs r0, r0, #0
b _082990B2
.align 2, 0
_08299044: .4byte gUnknown_203CF1C
_08299048:
movs r0, #4
ands r0, r1
cmp r0, #0
beq _08299078
ldr r1, [r4, #0x30]
cmp r1, #0
beq _08299066
adds r0, r4, #0
adds r0, #0x40
cmp r1, r0
beq _08299064
ldr r0, [r4, #0x54]
bl _free_r
_08299064:
str r5, [r4, #0x30]
_08299066:
movs r0, #0x25
rsbs r0, r0, #0
ldrh r1, [r4, #0xc]
ands r0, r1
movs r1, #0
strh r0, [r4, #0xc]
str r1, [r4, #4]
ldr r0, [r4, #0x10]
str r0, [r4]
_08299078:
movs r0, #8
ldrh r1, [r4, #0xc]
orrs r0, r1
strh r0, [r4, #0xc]
_08299080:
ldr r0, [r4, #0x10]
cmp r0, #0
bne _0829908C
adds r0, r4, #0
bl __smakebuf
_0829908C:
ldrh r1, [r4, #0xc]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _082990A2
movs r0, #0
str r0, [r4, #8]
ldr r0, [r4, #0x14]
rsbs r0, r0, #0
str r0, [r4, #0x18]
b _082990B0
_082990A2:
movs r0, #2
ands r0, r1
movs r1, #0
cmp r0, #0
bne _082990AE
ldr r1, [r4, #0x14]
_082990AE:
str r1, [r4, #8]
_082990B0:
movs r0, #0
_082990B2:
pop {r4, r5, pc}
thumb_func_end __swsetup
thumb_func_start sub_082990B4
sub_082990B4: @ 0x082990B4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x18
str r0, [sp]
str r1, [sp, #4]
ldr r7, [r1, #0x10]
ldr r0, [r0, #0x10]
cmp r0, r7
bge _082990D0
movs r0, #0
b _08299204
_082990D0:
ldr r0, [sp, #4]
adds r0, #0x14
mov r8, r0
subs r7, #1
lsls r0, r7, #2
mov r1, r8
adds r1, r1, r0
str r1, [sp, #0xc]
ldr r4, [sp]
adds r4, #0x14
adds r5, r4, r0
ldr r1, [r1]
adds r1, #1
ldr r2, [r5]
mov sl, r2
mov r0, sl
bl __udivsi3
str r0, [sp, #8]
mov r3, r8
str r3, [sp, #0x14]
str r4, [sp, #0x10]
cmp r0, #0
beq _0829917A
movs r6, #0
mov sb, r6
ldr r0, _08299164
mov ip, r0
_08299108:
mov r2, r8
adds r2, #4
mov r8, r2
subs r2, #4
ldm r2!, {r1}
adds r0, r1, #0
mov r3, ip
ands r0, r3
ldr r2, [sp, #8]
muls r0, r2, r0
mov r3, sb
adds r2, r0, r3
lsrs r0, r1, #0x10
ldr r3, [sp, #8]
adds r1, r0, #0
muls r1, r3, r1
lsrs r0, r2, #0x10
adds r3, r1, r0
lsrs r0, r3, #0x10
mov sb, r0
ldr r0, [r4]
mov r1, ip
ands r0, r1
ands r2, r1
subs r0, r0, r2
adds r2, r0, r6
asrs r6, r2, #0x10
ldr r0, [r4]
lsrs r1, r0, #0x10
mov r0, ip
ands r3, r0
subs r1, r1, r3
adds r0, r1, r6
asrs r6, r0, #0x10
strh r0, [r4]
strh r2, [r4, #2]
adds r4, #4
ldr r1, [sp, #0xc]
cmp r8, r1
bls _08299108
mov r2, sl
cmp r2, #0
bne _0829917A
ldr r4, [sp, #0x10]
b _0829916A
.align 2, 0
_08299164: .4byte 0x0000FFFF
_08299168:
subs r7, #1
_0829916A:
subs r5, #4
cmp r5, r4
bls _08299176
ldr r0, [r5]
cmp r0, #0
beq _08299168
_08299176:
ldr r3, [sp]
str r7, [r3, #0x10]
_0829917A:
ldr r0, [sp]
ldr r1, [sp, #4]
bl __mcmp
cmp r0, #0
blt _08299202
ldr r0, [sp, #8]
adds r0, #1
str r0, [sp, #8]
movs r6, #0
mov sb, r6
ldr r4, [sp, #0x10]
ldr r1, [sp, #0x14]
mov r8, r1
lsls r2, r7, #2
mov sl, r2
ldr r5, _082991EC
_0829919C:
mov r3, r8
adds r3, #4
mov r8, r3
subs r3, #4
ldm r3!, {r1}
adds r0, r1, #0
ands r0, r5
mov r3, sb
adds r2, r0, r3
lsrs r1, r1, #0x10
lsrs r0, r2, #0x10
adds r3, r1, r0
lsrs r0, r3, #0x10
mov sb, r0
ldr r1, [r4]
adds r0, r1, #0
ands r0, r5
ands r2, r5
subs r0, r0, r2
adds r2, r0, r6
asrs r6, r2, #0x10
lsrs r1, r1, #0x10
ands r3, r5
subs r1, r1, r3
adds r0, r1, r6
asrs r6, r0, #0x10
strh r0, [r4]
strh r2, [r4, #2]
adds r4, #4
ldr r1, [sp, #0xc]
cmp r8, r1
bls _0829919C
ldr r4, [sp, #0x10]
mov r2, sl
adds r5, r4, r2
ldr r0, [r5]
cmp r0, #0
bne _08299202
b _082991F2
.align 2, 0
_082991EC: .4byte 0x0000FFFF
_082991F0:
subs r7, #1
_082991F2:
subs r5, #4
cmp r5, r4
bls _082991FE
ldr r0, [r5]
cmp r0, #0
beq _082991F0
_082991FE:
ldr r3, [sp]
str r7, [r3, #0x10]
_08299202:
ldr r0, [sp, #8]
_08299204:
add sp, #0x18
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_end sub_082990B4
thumb_func_start _dtoa_r
_dtoa_r: @ 0x08299210
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x84
mov sl, 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 _08299248
ldr r0, [r0, #0x44]
str r0, [r2, #4]
mov r0, sl
ldr r1, [r0, #0x44]
movs r0, #1
lsls r0, r1
str r0, [r2, #8]
mov r0, sl
adds r1, r2, #0
bl _Bfree
movs r0, #0
mov r1, sl
str r0, [r1, #0x40]
_08299248:
movs r0, #0x80
lsls r0, r0, #0x18
ldr r1, [sp, #0x40]
ands r0, r1
cmp r0, #0
beq _08299264
movs r0, #1
str r0, [r4]
ldr r0, _08299260
ands r1, r0
str r1, [sp, #0x40]
b _08299266
.align 2, 0
_08299260: .4byte 0x7FFFFFFF
_08299264:
str r0, [r4]
_08299266:
ldr r1, _082992A8
ldr r2, [sp, #0x40]
adds r0, r2, #0
ands r0, r1
cmp r0, r1
bne _082992BC
ldr r0, _082992AC
ldr r3, [sp, #0xa8]
str r0, [r3]
ldr r0, _082992B0
mov sb, r0
ldr r1, [sp, #0x44]
cmp r1, #0
bne _0829928E
ldr r0, _082992B4
ands r2, r0
cmp r2, #0
bne _0829928E
ldr r2, _082992B8
mov sb, r2
_0829928E:
ldr r3, [sp, #0xb0]
cmp r3, #0
beq _082992E0
mov r1, sb
ldrb r0, [r1, #3]
adds r1, #3
cmp r0, #0
beq _082992A0
adds r1, #5
_082992A0:
ldr r2, [sp, #0xb0]
str r1, [r2]
b _082992E0
.align 2, 0
_082992A8: .4byte 0x7FF00000
_082992AC: .4byte 0x0000270F
_082992B0: .4byte gUnknown_890F1E4
_082992B4: .4byte 0x000FFFFF
_082992B8: .4byte gUnknown_890F1D8
_082992BC:
ldr r3, _082992EC
ldr r2, _082992E8
ldr r0, [sp, #0x40]
ldr r1, [sp, #0x44]
bl __eqdf2
cmp r0, #0
bne _082992F4
movs r0, #1
ldr r3, [sp, #0xa8]
str r0, [r3]
ldr r0, _082992F0
mov sb, r0
ldr r1, [sp, #0xb0]
cmp r1, #0
beq _082992E0
adds r0, #1
str r0, [r1]
_082992E0:
mov r0, sb
bl _08299EFA
.align 2, 0
_082992E8: .4byte 0x00000000
_082992EC: .4byte 0x00000000
_082992F0: .4byte gUnknown_890F1E8
_082992F4:
add r0, sp, #8
str r0, [sp]
mov r0, sl
ldr r1, [sp, #0x40]
ldr r2, [sp, #0x44]
add r3, sp, #4
bl _d2b
str r0, [sp, #0x5c]
ldr r2, [sp, #0x40]
lsls r0, r2, #1
lsrs r0, r0, #0x15
mov r8, r0
cmp r0, #0
beq _08299344
ldr r0, [sp, #0x40]
ldr r1, [sp, #0x44]
str r0, [sp, #0x48]
str r1, [sp, #0x4c]
ldr r0, _08299338
ldr r1, [sp, #0x48]
ands r1, r0
str r1, [sp, #0x48]
ldr r0, _0829933C
adds r2, r1, #0
orrs r2, r0
str r2, [sp, #0x48]
ldr r3, _08299340
add r8, r3
movs r0, #0
str r0, [sp, #0x58]
ldr r6, [sp, #8]
b _082993A4
.align 2, 0
_08299338: .4byte 0x000FFFFF
_0829933C: .4byte 0x3FF00000
_08299340: .4byte 0xFFFFFC01
_08299344:
ldr r1, [sp, #8]
ldr r0, [sp, #4]
adds r2, r1, r0
ldr r3, _0829936C
adds r3, r3, r2
mov r8, r3
adds r6, r1, #0
cmp r3, #0x20
ble _08299374
movs r0, #0x40
subs r0, r0, r3
ldr r4, [sp, #0x40]
lsls r4, r0
ldr r1, _08299370
adds r0, r2, r1
ldr r2, [sp, #0x44]
lsrs r2, r0
adds r0, r2, #0
orrs r4, r0
b _0829937E
.align 2, 0
_0829936C: .4byte 0x00000432
_08299370: .4byte 0x00000412
_08299374:
movs r0, #0x20
mov r3, r8
subs r0, r0, r3
ldr r4, [sp, #0x44]
lsls r4, r0
_0829937E:
adds r0, r4, #0
bl __floatsidf
cmp r4, #0
bge _08299390
ldr r3, _08299454
ldr r2, _08299450
bl __adddf3
_08299390:
str r0, [sp, #0x48]
str r1, [sp, #0x4c]
ldr r1, _08299458
ldr r0, [sp, #0x48]
adds r1, r0, r1
str r1, [sp, #0x48]
ldr r2, _0829945C
add r8, r2
movs r3, #1
str r3, [sp, #0x58]
_082993A4:
ldr r2, _08299460
ldr r3, _08299464
ldr r0, [sp, #0x48]
ldr r1, [sp, #0x4c]
bl __subdf3
ldr r2, _08299468
ldr r3, _0829946C
bl __muldf3
ldr r2, _08299470
ldr r3, _08299474
bl __adddf3
adds r5, r1, #0
adds r4, r0, #0
mov r0, r8
bl __floatsidf
ldr r2, _08299478
ldr r3, _0829947C
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, _08299480
ldr r3, _08299484
ldr r0, [sp, #0x6c]
ldr r1, [sp, #0x70]
bl __ltdf2
cmp r0, #0
bge _08299414
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 _08299414
ldr r0, [sp, #0x24]
subs r0, #1
str r0, [sp, #0x24]
_08299414:
movs r1, #1
str r1, [sp, #0x2c]
ldr r2, [sp, #0x24]
cmp r2, #0x16
bhi _0829943E
ldr r1, _08299488
lsls r0, r2, #3
adds r0, r0, r1
ldr r2, [r0]
ldr r3, [r0, #4]
ldr r0, [sp, #0x40]
ldr r1, [sp, #0x44]
bl __ltdf2
cmp r0, #0
bge _0829943A
ldr r3, [sp, #0x24]
subs r3, #1
str r3, [sp, #0x24]
_0829943A:
movs r0, #0
str r0, [sp, #0x2c]
_0829943E:
mov r1, r8
subs r0, r6, r1
subs r4, r0, #1
cmp r4, #0
blt _0829948C
movs r2, #0
str r2, [sp, #0x10]
str r4, [sp, #0x34]
b _08299494
.align 2, 0
_08299450: .4byte 0x41F00000
_08299454: .4byte 0x00000000
_08299458: .4byte 0xFE100000
_0829945C: .4byte 0xFFFFFBCD
_08299460: .4byte 0x3FF80000
_08299464: .4byte 0x00000000
_08299468: .4byte 0x3FD287A7
_0829946C: .4byte 0x636F4361
_08299470: .4byte 0x3FC68A28
_08299474: .4byte 0x8B60C8B3
_08299478: .4byte 0x3FD34413
_0829947C: .4byte 0x509F79FB
_08299480: .4byte 0x00000000
_08299484: .4byte 0x00000000
_08299488: .4byte gUnknown_890F234
_0829948C:
rsbs r4, r4, #0
str r4, [sp, #0x10]
movs r3, #0
str r3, [sp, #0x34]
_08299494:
ldr r0, [sp, #0x24]
cmp r0, #0
blt _082994A8
movs r1, #0
str r1, [sp, #0x14]
str r0, [sp, #0x38]
ldr r2, [sp, #0x34]
adds r2, r2, r0
str r2, [sp, #0x34]
b _082994B8
_082994A8:
ldr r3, [sp, #0x10]
ldr r0, [sp, #0x24]
subs r3, r3, r0
str r3, [sp, #0x10]
rsbs r1, r0, #0
str r1, [sp, #0x14]
movs r2, #0
str r2, [sp, #0x38]
_082994B8:
ldr r3, [sp, #0xc]
cmp r3, #9
bls _082994C2
movs r0, #0
str r0, [sp, #0xc]
_082994C2:
movs r5, #1
ldr r1, [sp, #0xc]
cmp r1, #5
ble _082994D0
subs r1, #4
str r1, [sp, #0xc]
movs r5, #0
_082994D0:
movs r2, #1
str r2, [sp, #0x30]
ldr r3, [sp, #0xc]
cmp r3, #5
bhi _0829954A
lsls r0, r3, #2
ldr r1, _082994E4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_082994E4: .4byte _082994E8
_082994E8: @ jump table
.4byte _08299500 @ case 0
.4byte _08299500 @ case 1
.4byte _08299512 @ case 2
.4byte _0829952E @ case 3
.4byte _08299516 @ case 4
.4byte _08299532 @ case 5
_08299500:
movs r0, #1
rsbs r0, r0, #0
str r0, [sp, #0x18]
str r0, [sp, #0x20]
movs r1, #0x12
mov r8, r1
movs r2, #0
str r2, [sp, #0xa4]
b _0829954A
_08299512:
movs r3, #0
str r3, [sp, #0x30]
_08299516:
ldr r0, [sp, #0xa4]
cmp r0, #0
bgt _08299520
movs r1, #1
str r1, [sp, #0xa4]
_08299520:
ldr r2, [sp, #0xa4]
mov r8, r2
mov r3, r8
str r3, [sp, #0x20]
mov r0, r8
str r0, [sp, #0x18]
b _0829954A
_0829952E:
movs r1, #0
str r1, [sp, #0x30]
_08299532:
ldr r2, [sp, #0xa4]
ldr r3, [sp, #0x24]
adds r0, r2, r3
adds r1, r0, #1
mov r8, r1
mov r2, r8
str r2, [sp, #0x18]
str r0, [sp, #0x20]
cmp r1, #0
bgt _0829954A
movs r3, #1
mov r8, r3
_0829954A:
movs r4, #4
movs r0, #0
mov r1, sl
str r0, [r1, #0x44]
mov r2, r8
cmp r2, #0x17
bls _0829956A
movs r1, #0
_0829955A:
adds r1, #1
lsls r4, r4, #1
adds r0, r4, #0
adds r0, #0x14
cmp r0, r8
bls _0829955A
mov r3, sl
str r1, [r3, #0x44]
_0829956A:
mov r0, sl
ldr r1, [r0, #0x44]
bl _Balloc
mov r1, sl
str r0, [r1, #0x40]
str r0, [sp, #0x74]
mov sb, r0
ldr r2, [sp, #0x18]
cmp r2, #0xe
bls _08299582
b _082998F4
_08299582:
cmp r5, #0
bne _08299588
b _082998F4
_08299588:
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, #2
cmp r1, #0
ble _08299618
ldr r0, _08299610
movs r2, #0xf
ands r1, r2
lsls r1, r1, #3
adds r3, r1, r0
ldr r0, [r3]
ldr r1, [r3, #4]
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 _082995D4
ands r4, r2
ldr r0, _08299614
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, #3
_082995D4:
cmp r4, #0
beq _082995FC
ldr r5, _08299614
_082995DA:
movs r0, #1
ands r0, r4
cmp r0, #0
beq _082995F4
adds r7, #1
ldr r2, [r5]
ldr r3, [r5, #4]
ldr r0, [sp, #0x6c]
ldr r1, [sp, #0x70]
bl __muldf3
str r0, [sp, #0x6c]
str r1, [sp, #0x70]
_082995F4:
asrs r4, r4, #1
adds r5, #8
cmp r4, #0
bne _082995DA
_082995FC:
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 _08299664
.align 2, 0
_08299610: .4byte gUnknown_890F234
_08299614: .4byte gUnknown_890F2FC
_08299618:
ldr r2, [sp, #0x24]
rsbs r6, r2, #0
cmp r6, #0
beq _08299664
ldr r1, _0829970C
movs r0, #0xf
ands r0, r6
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, [r0, #4]
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 _08299664
ldr r5, _08299710
_08299642:
movs r0, #1
ands r0, r4
cmp r0, #0
beq _0829965C
adds r7, #1
ldr r0, [r5]
ldr r1, [r5, #4]
ldr r2, [sp, #0x40]
ldr r3, [sp, #0x44]
bl __muldf3
str r0, [sp, #0x40]
str r1, [sp, #0x44]
_0829965C:
asrs r4, r4, #1
adds r5, #8
cmp r4, #0
bne _08299642
_08299664:
ldr r3, [sp, #0x2c]
cmp r3, #0
beq _082996A2
ldr r2, _08299714
ldr r3, _08299718
ldr r0, [sp, #0x40]
ldr r1, [sp, #0x44]
bl __ltdf2
cmp r0, #0
bge _082996A2
ldr r0, [sp, #0x18]
cmp r0, #0
ble _082996A2
ldr r1, [sp, #0x20]
cmp r1, #0
bgt _08299688
b _082998E0
_08299688:
str r1, [sp, #0x18]
ldr r2, [sp, #0x24]
subs r2, #1
str r2, [sp, #0x24]
ldr r0, _0829971C
ldr r1, _08299720
ldr r2, [sp, #0x40]
ldr r3, [sp, #0x44]
bl __muldf3
str r0, [sp, #0x40]
str r1, [sp, #0x44]
adds r7, #1
_082996A2:
adds r0, r7, #0
bl __floatsidf
ldr r2, [sp, #0x40]
ldr r3, [sp, #0x44]
bl __muldf3
ldr r2, _08299724
ldr r3, _08299728
bl __adddf3
str r0, [sp, #0x50]
str r1, [sp, #0x54]
ldr r0, _0829972C
ldr r3, [sp, #0x50]
adds r0, r3, r0
str r0, [sp, #0x50]
ldr r1, [sp, #0x18]
cmp r1, #0
bne _08299738
movs r2, #0
str r2, [sp, #0x64]
movs r3, #0
str r3, [sp, #0x68]
ldr r2, _08299730
ldr r3, _08299734
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 _082996F0
b _08299C6A
_082996F0:
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 _0829970A
b _08299C62
_0829970A:
b _082998E0
.align 2, 0
_0829970C: .4byte gUnknown_890F234
_08299710: .4byte gUnknown_890F2FC
_08299714: .4byte 0x3FF00000
_08299718: .4byte 0x00000000
_0829971C: .4byte 0x40240000
_08299720: .4byte 0x00000000
_08299724: .4byte 0x401C0000
_08299728: .4byte 0x00000000
_0829972C: .4byte 0xFCC00000
_08299730: .4byte 0x40140000
_08299734: .4byte 0x00000000
_08299738:
ldr r0, [sp, #0x30]
cmp r0, #0
beq _08299808
ldr r1, _08299768
ldr r0, [sp, #0x18]
subs r0, #1
lsls r0, r0, #3
adds r0, r0, r1
ldr r2, [r0]
ldr r3, [r0, #4]
ldr r0, _0829976C
ldr r1, _08299770
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 _08299794
.align 2, 0
_08299768: .4byte gUnknown_890F234
_0829976C: .4byte 0x3FE00000
_08299770: .4byte 0x00000000
_08299774:
ldr r1, _082997FC
ldr r0, _082997F8
ldr r2, [sp, #0x50]
ldr r3, [sp, #0x54]
bl __muldf3
str r0, [sp, #0x50]
str r1, [sp, #0x54]
ldr r1, _082997FC
ldr r0, _082997F8
adds r3, r5, #0
adds r2, r4, #0
bl __muldf3
str r0, [sp, #0x40]
str r1, [sp, #0x44]
_08299794:
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, sb
strb r0, [r2]
movs r3, #1
add sb, r3
adds r1, r5, #0
adds r0, r4, #0
ldr r2, [sp, #0x50]
ldr r3, [sp, #0x54]
bl __ltdf2
cmp r0, #0
bge _082997D0
b _08299EDA
_082997D0:
ldr r0, _08299800
ldr r1, _08299804
adds r3, r5, #0
adds r2, r4, #0
bl __subdf3
ldr r2, [sp, #0x50]
ldr r3, [sp, #0x54]
bl __ltdf2
cmp r0, #0
bge _082997EA
b _082999F4
_082997EA:
movs r0, #1
add r8, r0
ldr r1, [sp, #0x18]
cmp r8, r1
blt _08299774
b _082998E0
.align 2, 0
_082997F8: .4byte 0x40240000
_082997FC: .4byte 0x00000000
_08299800: .4byte 0x3FF00000
_08299804: .4byte 0x00000000
_08299808:
ldr r1, _08299828
ldr r0, [sp, #0x18]
subs r0, #1
lsls r0, r0, #3
adds r0, r0, r1
ldr r1, [r0, #4]
ldr r0, [r0]
ldr r2, [sp, #0x50]
ldr r3, [sp, #0x54]
bl __muldf3
str r0, [sp, #0x50]
str r1, [sp, #0x54]
movs r2, #1
mov r8, r2
b _08299840
.align 2, 0
_08299828: .4byte gUnknown_890F234
_0829982C:
movs r3, #1
add r8, r3
ldr r1, _082998D4
ldr r0, _082998D0
adds r3, r5, #0
adds r2, r4, #0
bl __muldf3
str r0, [sp, #0x40]
str r1, [sp, #0x44]
_08299840:
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, sb
strb r0, [r1]
movs r2, #1
add sb, r2
ldr r3, [sp, #0x18]
cmp r8, r3
bne _0829982C
ldr r6, _082998D8
ldr r7, _082998DC
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 _08299892
b _082999F4
_08299892:
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 _082998E0
movs r0, #1
rsbs r0, r0, #0
add sb, r0
mov r1, sb
ldrb r1, [r1]
cmp r1, #0x30
beq _082998BE
b _08299A1A
_082998BE:
movs r2, #1
rsbs r2, r2, #0
add sb, r2
mov r3, sb
ldrb r3, [r3]
cmp r3, #0x30
beq _082998BE
b _08299A1A
.align 2, 0
_082998D0: .4byte 0x40240000
_082998D4: .4byte 0x00000000
_082998D8: .4byte 0x3FE00000
_082998DC: .4byte 0x00000000
_082998E0:
ldr r1, [sp, #0x74]
mov sb, 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]
_082998F4:
ldr r0, [sp, #4]
cmp r0, #0
bge _082998FC
b _08299A30
_082998FC:
ldr r1, [sp, #0x24]
cmp r1, #0xe
ble _08299904
b _08299A30
_08299904:
ldr r1, _08299950
ldr r2, [sp, #0x24]
lsls r0, r2, #3
adds r0, r0, r1
ldr r1, [r0]
ldr r2, [r0, #4]
str r1, [sp, #0x6c]
str r2, [sp, #0x70]
ldr r2, [sp, #0xa4]
cmp r2, #0
bge _0829995C
ldr r3, [sp, #0x18]
cmp r3, #0
bgt _0829995C
movs r0, #0
str r0, [sp, #0x64]
movs r1, #0
str r1, [sp, #0x68]
cmp r3, #0
bge _0829992E
b _08299C62
_0829992E:
ldr r2, _08299954
ldr r3, _08299958
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 _0829994C
b _08299C62
_0829994C:
b _08299C6A
.align 2, 0
_08299950: .4byte gUnknown_890F234
_08299954: .4byte 0x40140000
_08299958: .4byte 0x00000000
_0829995C:
movs r2, #1
mov r8, r2
b _08299980
_08299962:
ldr r1, _08299A24
ldr r0, _08299A20
bl __muldf3
str r0, [sp, #0x40]
str r1, [sp, #0x44]
ldr r2, _08299A28
ldr r3, _08299A2C
bl __eqdf2
cmp r0, #0
bne _0829997C
b _08299EDA
_0829997C:
movs r3, #1
add r8, r3
_08299980:
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, sb
strb r0, [r1]
movs r0, #1
add sb, r0
ldr r1, [sp, #0x18]
cmp r8, r1
bne _08299962
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 _082999F4
adds r1, r5, #0
adds r0, r4, #0
ldr r2, [sp, #0x6c]
ldr r3, [sp, #0x70]
bl __eqdf2
cmp r0, #0
beq _082999EA
b _08299EDA
_082999EA:
movs r0, #1
ands r0, r6
cmp r0, #0
bne _082999F4
b _08299EDA
_082999F4:
movs r0, #0x30
_082999F6:
movs r2, #1
rsbs r2, r2, #0
add sb, r2
mov r3, sb
ldrb r3, [r3]
cmp r3, #0x39
bne _08299A12
ldr r1, [sp, #0x74]
cmp sb, r1
bne _082999F6
ldr r2, [sp, #0x24]
adds r2, #1
str r2, [sp, #0x24]
strb r0, [r1]
_08299A12:
mov r3, sb
ldrb r0, [r3]
adds r0, #1
strb r0, [r3]
_08299A1A:
movs r0, #1
add sb, r0
b _08299EDA
.align 2, 0
_08299A20: .4byte 0x40240000
_08299A24: .4byte 0x00000000
_08299A28: .4byte 0x00000000
_08299A2C: .4byte 0x00000000
_08299A30:
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 _08299AA6
ldr r1, [sp, #0xc]
cmp r1, #1
bgt _08299A64
ldr r2, [sp, #0x58]
cmp r2, #0
beq _08299A5C
ldr r3, _08299A58
adds r3, r3, r0
mov r8, r3
b _08299A90
.align 2, 0
_08299A58: .4byte 0x00000433
_08299A5C:
ldr r1, [sp, #8]
movs r0, #0x36
subs r0, r0, r1
b _08299A8E
_08299A64:
ldr r4, [sp, #0x18]
subs r4, #1
ldr r0, [sp, #0x14]
cmp r0, r4
blt _08299A72
subs r6, r0, r4
b _08299A82
_08299A72:
ldr r1, [sp, #0x14]
subs r4, r4, r1
ldr r2, [sp, #0x38]
adds r2, r2, r4
str r2, [sp, #0x38]
adds r1, r1, r4
str r1, [sp, #0x14]
movs r6, #0
_08299A82:
ldr r3, [sp, #0x18]
mov r8, r3
cmp r3, #0
bge _08299A90
subs r5, r5, r3
movs r0, #0
_08299A8E:
mov r8, r0
_08299A90:
ldr r1, [sp, #0x10]
add r1, r8
str r1, [sp, #0x10]
ldr r2, [sp, #0x34]
add r2, r8
str r2, [sp, #0x34]
mov r0, sl
movs r1, #1
bl _i2b
str r0, [sp, #0x64]
_08299AA6:
cmp r5, #0
ble _08299AC8
ldr r3, [sp, #0x34]
cmp r3, #0
ble _08299AC8
mov r8, r3
cmp r8, r5
ble _08299AB8
mov r8, r5
_08299AB8:
ldr r0, [sp, #0x10]
mov r1, r8
subs r0, r0, r1
str r0, [sp, #0x10]
subs r5, r5, r1
ldr r2, [sp, #0x34]
subs r2, r2, r1
str r2, [sp, #0x34]
_08299AC8:
ldr r3, [sp, #0x14]
cmp r3, #0
ble _08299B16
ldr r0, [sp, #0x30]
cmp r0, #0
beq _08299B0A
cmp r6, #0
ble _08299AFA
mov r0, sl
ldr r1, [sp, #0x64]
adds r2, r6, #0
bl _pow5mult
str r0, [sp, #0x64]
mov r0, sl
ldr r1, [sp, #0x64]
ldr r2, [sp, #0x5c]
bl _multiply
adds r4, r0, #0
mov r0, sl
ldr r1, [sp, #0x5c]
bl _Bfree
str r4, [sp, #0x5c]
_08299AFA:
ldr r1, [sp, #0x14]
subs r4, r1, r6
cmp r4, #0
beq _08299B16
mov r0, sl
ldr r1, [sp, #0x5c]
adds r2, r4, #0
b _08299B10
_08299B0A:
mov r0, sl
ldr r1, [sp, #0x5c]
ldr r2, [sp, #0x14]
_08299B10:
bl _pow5mult
str r0, [sp, #0x5c]
_08299B16:
mov r0, sl
movs r1, #1
bl _i2b
str r0, [sp, #0x68]
ldr r2, [sp, #0x38]
cmp r2, #0
ble _08299B30
mov r0, sl
ldr r1, [sp, #0x68]
bl _pow5mult
str r0, [sp, #0x68]
_08299B30:
ldr r3, [sp, #0xc]
cmp r3, #1
bgt _08299B6C
ldr r0, [sp, #0x44]
cmp r0, #0
bne _08299B68
ldr r0, _08299B60
ldr r1, [sp, #0x40]
ands r0, r1
cmp r0, #0
bne _08299B68
ldr r0, _08299B64
ands r1, r0
cmp r1, #0
beq _08299B68
ldr r1, [sp, #0x10]
adds r1, #1
str r1, [sp, #0x10]
ldr r2, [sp, #0x34]
adds r2, #1
str r2, [sp, #0x34]
movs r3, #1
str r3, [sp, #0x3c]
b _08299B6C
.align 2, 0
_08299B60: .4byte 0x000FFFFF
_08299B64: .4byte 0x7FF00000
_08299B68:
movs r0, #0
str r0, [sp, #0x3c]
_08299B6C:
ldr r1, [sp, #0x38]
cmp r1, #0
beq _08299B98
ldr r2, [sp, #0x68]
ldr r1, [r2, #0x10]
subs r1, #1
lsls r1, r1, #2
adds r0, r2, #0
adds r0, #0x14
adds r0, r0, r1
ldr r0, [r0]
bl _hi0bits
ldr r1, [sp, #0x34]
adds r1, #0x20
subs r1, r1, r0
mov r8, r1
movs r0, #0x1f
mov r3, r8
ands r3, r0
mov r8, r3
b _08299BA6
_08299B98:
ldr r0, [sp, #0x34]
adds r0, #1
mov r8, r0
movs r0, #0x1f
mov r1, r8
ands r1, r0
mov r8, r1
_08299BA6:
mov r2, r8
cmp r2, #0
beq _08299BB2
movs r0, #0x20
subs r2, r0, r2
mov r8, r2
_08299BB2:
mov r3, r8
cmp r3, #4
ble _08299BBE
movs r0, #4
rsbs r0, r0, #0
b _08299BC6
_08299BBE:
mov r3, r8
cmp r3, #3
bgt _08299BD6
movs r0, #0x1c
_08299BC6:
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]
_08299BD6:
ldr r3, [sp, #0x10]
cmp r3, #0
ble _08299BE8
mov r0, sl
ldr r1, [sp, #0x5c]
adds r2, r3, #0
bl _lshift
str r0, [sp, #0x5c]
_08299BE8:
ldr r0, [sp, #0x34]
cmp r0, #0
ble _08299BFA
mov r0, sl
ldr r1, [sp, #0x68]
ldr r2, [sp, #0x34]
bl _lshift
str r0, [sp, #0x68]
_08299BFA:
ldr r1, [sp, #0x2c]
cmp r1, #0
beq _08299C38
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x68]
bl __mcmp
cmp r0, #0
bge _08299C38
ldr r2, [sp, #0x24]
subs r2, #1
str r2, [sp, #0x24]
mov r0, sl
ldr r1, [sp, #0x5c]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x5c]
ldr r3, [sp, #0x30]
cmp r3, #0
beq _08299C34
mov r0, sl
ldr r1, [sp, #0x64]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x64]
_08299C34:
ldr r0, [sp, #0x20]
str r0, [sp, #0x18]
_08299C38:
ldr r1, [sp, #0x18]
cmp r1, #0
bgt _08299C7C
ldr r2, [sp, #0xc]
cmp r2, #2
ble _08299C7C
cmp r1, #0
blt _08299C62
mov r0, sl
ldr r1, [sp, #0x68]
movs r2, #5
movs r3, #0
bl _multadd
str r0, [sp, #0x68]
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x68]
bl __mcmp
cmp r0, #0
bgt _08299C6A
_08299C62:
ldr r3, [sp, #0xa4]
mvns r3, r3
str r3, [sp, #0x24]
b _08299EB2
_08299C6A:
movs r0, #0x31
mov r1, sb
strb r0, [r1]
movs r2, #1
add sb, r2
ldr r3, [sp, #0x24]
adds r3, #1
str r3, [sp, #0x24]
b _08299EB2
_08299C7C:
ldr r0, [sp, #0x30]
cmp r0, #0
bne _08299C84
b _08299DFA
_08299C84:
cmp r5, #0
ble _08299C94
mov r0, sl
ldr r1, [sp, #0x64]
adds r2, r5, #0
bl _lshift
str r0, [sp, #0x64]
_08299C94:
ldr r1, [sp, #0x64]
str r1, [sp, #0x60]
ldr r2, [sp, #0x3c]
cmp r2, #0
beq _08299CC6
ldr r1, [r1, #4]
mov r0, sl
bl _Balloc
str r0, [sp, #0x64]
adds r0, #0xc
ldr r1, [sp, #0x60]
adds r1, #0xc
ldr r3, [sp, #0x60]
ldr r2, [r3, #0x10]
lsls r2, r2, #2
adds r2, #8
bl memcpy
mov r0, sl
ldr r1, [sp, #0x64]
movs r2, #1
bl _lshift
str r0, [sp, #0x64]
_08299CC6:
movs r0, #1
mov r8, r0
mov r1, r8
ldr r2, [sp, #0x44]
ands r2, r1
str r2, [sp, #0x80]
b _08299D1C
_08299CD4:
mov r0, sl
ldr r1, [sp, #0x5c]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x5c]
ldr r3, [sp, #0x60]
ldr r0, [sp, #0x64]
cmp r3, r0
bne _08299CFC
mov r0, sl
ldr r1, [sp, #0x64]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x64]
str r0, [sp, #0x60]
b _08299D18
_08299CFC:
mov r0, sl
ldr r1, [sp, #0x60]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x60]
mov r0, sl
ldr r1, [sp, #0x64]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x64]
_08299D18:
movs r1, #1
add r8, r1
_08299D1C:
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x68]
bl sub_082990B4
adds r7, r0, #0
adds r7, #0x30
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x60]
bl __mcmp
adds r4, r0, #0
mov r0, sl
ldr r1, [sp, #0x68]
ldr r2, [sp, #0x64]
bl __mdiff
adds r5, r0, #0
ldr r0, [r5, #0xc]
cmp r0, #0
bne _08299D50
ldr r0, [sp, #0x5c]
adds r1, r5, #0
bl __mcmp
adds r6, r0, #0
b _08299D52
_08299D50:
movs r6, #1
_08299D52:
mov r0, sl
adds r1, r5, #0
bl _Bfree
cmp r6, #0
bne _08299D7E
ldr r2, [sp, #0xc]
cmp r2, #0
bne _08299D7E
ldr r3, [sp, #0x80]
cmp r3, #0
bne _08299D7E
cmp r7, #0x39
beq _08299DD0
cmp r4, #0
ble _08299D74
adds r7, #1
_08299D74:
mov r0, sb
strb r7, [r0]
movs r1, #1
add sb, r1
b _08299EB2
_08299D7E:
cmp r4, #0
blt _08299D92
cmp r4, #0
bne _08299DC8
ldr r2, [sp, #0xc]
cmp r2, #0
bne _08299DC8
ldr r3, [sp, #0x80]
cmp r3, #0
bne _08299DC8
_08299D92:
cmp r6, #0
ble _08299DC2
mov r0, sl
ldr r1, [sp, #0x5c]
movs r2, #1
bl _lshift
str r0, [sp, #0x5c]
ldr r1, [sp, #0x68]
bl __mcmp
adds r6, r0, #0
cmp r6, #0
bgt _08299DBC
cmp r6, #0
bne _08299DC2
adds r0, r7, #0
movs r1, #1
ands r0, r1
cmp r0, #0
beq _08299DC2
_08299DBC:
adds r7, #1
cmp r7, #0x3a
beq _08299DD0
_08299DC2:
mov r2, sb
strb r7, [r2]
b _08299E7A
_08299DC8:
cmp r6, #0
ble _08299DE8
cmp r7, #0x39
bne _08299DDC
_08299DD0:
movs r0, #0x39
mov r1, sb
strb r0, [r1]
movs r2, #1
add sb, r2
b _08299E50
_08299DDC:
adds r0, r7, #1
mov r3, sb
strb r0, [r3]
movs r0, #1
add sb, r0
b _08299EB2
_08299DE8:
mov r1, sb
strb r7, [r1]
movs r2, #1
add sb, r2
ldr r3, [sp, #0x18]
cmp r8, r3
beq _08299DF8
b _08299CD4
_08299DF8:
b _08299E2C
_08299DFA:
movs r0, #1
mov r8, r0
b _08299E12
_08299E00:
mov r0, sl
ldr r1, [sp, #0x5c]
movs r2, #0xa
movs r3, #0
bl _multadd
str r0, [sp, #0x5c]
movs r1, #1
add r8, r1
_08299E12:
ldr r0, [sp, #0x5c]
ldr r1, [sp, #0x68]
bl sub_082990B4
adds r7, r0, #0
adds r7, #0x30
mov r2, sb
strb r7, [r2]
movs r3, #1
add sb, r3
ldr r0, [sp, #0x18]
cmp r8, r0
blt _08299E00
_08299E2C:
mov r0, sl
ldr r1, [sp, #0x5c]
movs r2, #1
bl _lshift
str r0, [sp, #0x5c]
ldr r1, [sp, #0x68]
bl __mcmp
adds r4, r0, #0
cmp r4, #0
bgt _08299E50
cmp r4, #0
bne _08299E92
movs r0, #1
ands r7, r0
cmp r7, #0
beq _08299E92
_08299E50:
movs r1, #1
rsbs r1, r1, #0
add sb, r1
mov r2, sb
ldrb r2, [r2]
cmp r2, #0x39
bne _08299E72
_08299E5E:
ldr r3, [sp, #0x74]
cmp sb, r3
beq _08299E80
movs r0, #1
rsbs r0, r0, #0
add sb, r0
mov r1, sb
ldrb r1, [r1]
cmp r1, #0x39
beq _08299E5E
_08299E72:
mov r2, sb
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
_08299E7A:
movs r3, #1
add sb, r3
b _08299EB2
_08299E80:
ldr r0, [sp, #0x24]
adds r0, #1
str r0, [sp, #0x24]
movs r0, #0x31
ldr r1, [sp, #0x74]
strb r0, [r1]
adds r1, #1
mov sb, r1
b _08299EB2
_08299E92:
movs r2, #1
rsbs r2, r2, #0
add sb, r2
mov r3, sb
ldrb r3, [r3]
cmp r3, #0x30
bne _08299EAE
_08299EA0:
movs r0, #1
rsbs r0, r0, #0
add sb, r0
mov r1, sb
ldrb r1, [r1]
cmp r1, #0x30
beq _08299EA0
_08299EAE:
movs r2, #1
add sb, r2
_08299EB2:
mov r0, sl
ldr r1, [sp, #0x68]
bl _Bfree
ldr r3, [sp, #0x64]
cmp r3, #0
beq _08299EDA
ldr r0, [sp, #0x60]
cmp r0, #0
beq _08299ED2
cmp r0, r3
beq _08299ED2
mov r0, sl
ldr r1, [sp, #0x60]
bl _Bfree
_08299ED2:
mov r0, sl
ldr r1, [sp, #0x64]
bl _Bfree
_08299EDA:
mov r0, sl
ldr r1, [sp, #0x5c]
bl _Bfree
movs r0, #0
mov r1, sb
strb r0, [r1]
ldr r0, [sp, #0x24]
adds r0, #1
ldr r2, [sp, #0xa8]
str r0, [r2]
ldr r3, [sp, #0xb0]
cmp r3, #0
beq _08299EF8
str r1, [r3]
_08299EF8:
ldr r0, [sp, #0x74]
_08299EFA:
add sp, #0x84
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end _dtoa_r
thumb_func_start fflush
fflush: @ 0x08299F08
push {r4, r5, r6, lr}
adds r4, r0, #0
cmp r4, #0
bne _08299F24
ldr r0, _08299F1C
ldr r0, [r0]
ldr r1, _08299F20
bl _fwalk
b _08299F9A
.align 2, 0
_08299F1C: .4byte gUnknown_203CF1C
_08299F20: .4byte fflush
_08299F24:
ldr r0, [r4, #0x54]
cmp r0, #0
bne _08299F30
ldr r0, _08299F64
ldr r0, [r0]
str r0, [r4, #0x54]
_08299F30:
ldr r1, [r4, #0x54]
ldr r0, [r1, #0x38]
cmp r0, #0
bne _08299F3E
adds r0, r1, #0
bl __sinit
_08299F3E:
movs r0, #0xc
ldrsh r1, [r4, r0]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _08299F98
ldr r6, [r4, #0x10]
cmp r6, #0
beq _08299F98
ldr r0, [r4]
subs r5, r0, r6
str r6, [r4]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _08299F76
ldr r0, [r4, #0x14]
b _08299F78
.align 2, 0
_08299F64: .4byte gUnknown_203CF1C
_08299F68:
movs r0, #0x40
ldrh r1, [r4, #0xc]
orrs r0, r1
strh r0, [r4, #0xc]
movs r0, #1
rsbs r0, r0, #0
b _08299F9A
_08299F76:
movs r0, #0
_08299F78:
str r0, [r4, #8]
cmp r5, #0
ble _08299F98
_08299F7E:
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 _08299F68
adds r6, r6, r1
subs r5, r5, r1
cmp r5, #0
bgt _08299F7E
_08299F98:
movs r0, #0
_08299F9A:
pop {r4, r5, r6, pc}
thumb_func_end fflush
thumb_func_start sub_08299F9C
sub_08299F9C: @ 0x08299F9C
push {r4, lr}
movs r4, #0
str r4, [r0]
str r4, [r0, #4]
str r4, [r0, #8]
strh r1, [r0, #0xc]
strh r2, [r0, #0xe]
str r4, [r0, #0x10]
str r4, [r0, #0x18]
str r0, [r0, #0x1c]
ldr r1, _08299FC4
str r1, [r0, #0x20]
ldr r1, _08299FC8
str r1, [r0, #0x24]
ldr r1, _08299FCC
str r1, [r0, #0x28]
ldr r1, _08299FD0
str r1, [r0, #0x2c]
str r3, [r0, #0x54]
pop {r4, pc}
.align 2, 0
_08299FC4: .4byte __sread
_08299FC8: .4byte __swrite
_08299FCC: .4byte __sseek
_08299FD0: .4byte __sclose
thumb_func_end sub_08299F9C
thumb_func_start __sfmoreglue
__sfmoreglue: @ 0x08299FD4
push {r4, r5, r6, lr}
adds r5, r1, #0
movs r1, #0x58
adds r6, r5, #0
muls r6, r1, r6
adds r1, r6, #0
adds r1, #0xc
bl _malloc_r
adds r4, r0, #0
cmp r4, #0
beq _0829A000
adds r0, #0xc
movs r1, #0
str r1, [r4]
str r5, [r4, #4]
str r0, [r4, #8]
adds r2, r6, #0
bl memset
adds r0, r4, #0
b _0829A002
_0829A000:
movs r0, #0
_0829A002:
pop {r4, r5, r6, pc}
thumb_func_end __sfmoreglue
thumb_func_start __sfp
__sfp: @ 0x0829A004
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #0x38]
cmp r0, #0
bne _0829A014
adds r0, r5, #0
bl __sinit
_0829A014:
movs r0, #0xec
lsls r0, r0, #1
adds r4, r5, r0
b _0829A01E
_0829A01C:
ldr r4, [r4]
_0829A01E:
ldr r2, [r4, #8]
ldr r0, [r4, #4]
b _0829A02E
_0829A024:
movs r3, #0xc
ldrsh r1, [r2, r3]
cmp r1, #0
beq _0829A050
adds r2, #0x58
_0829A02E:
subs r0, #1
cmp r0, #0
bge _0829A024
ldr r0, [r4]
cmp r0, #0
bne _0829A01C
adds r0, r5, #0
movs r1, #4
bl __sfmoreglue
str r0, [r4]
cmp r0, #0
bne _0829A01C
movs r0, #0xc
str r0, [r5]
movs r0, #0
b _0829A070
_0829A050:
movs r0, #1
strh r0, [r2, #0xc]
str r1, [r2]
str r1, [r2, #8]
str r1, [r2, #4]
str r1, [r2, #0x10]
str r1, [r2, #0x14]
str r1, [r2, #0x18]
ldr r0, _0829A074
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
_0829A070:
pop {r4, r5, pc}
.align 2, 0
_0829A074: .4byte 0x0000FFFF
thumb_func_end __sfp
thumb_func_start _cleanup_r
_cleanup_r: @ 0x0829A078
push {lr}
ldr r1, _0829A084
bl _fwalk
pop {pc}
.align 2, 0
_0829A084: .4byte fflush
thumb_func_end _cleanup_r
thumb_func_start _cleanup
_cleanup: @ 0x0829A088
push {lr}
ldr r0, _0829A094
ldr r0, [r0]
bl _cleanup_r
pop {pc}
.align 2, 0
_0829A094: .4byte gUnknown_203CF1C
thumb_func_end _cleanup
thumb_func_start __sinit
__sinit: @ 0x0829A098
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0829A0F4
str r0, [r5, #0x3c]
movs r0, #1
str r0, [r5, #0x38]
movs r0, #0xf2
lsls r0, r0, #1
adds r4, r5, r0
adds r0, r4, #0
movs r1, #4
movs r2, #0
adds r3, r5, #0
bl sub_08299F9C
movs r1, #0x8f
lsls r1, r1, #2
adds r0, r5, r1
movs r1, #9
movs r2, #1
adds r3, r5, #0
bl sub_08299F9C
movs r1, #0xa5
lsls r1, r1, #2
adds r0, r5, r1
movs r1, #0xa
movs r2, #2
adds r3, r5, #0
bl sub_08299F9C
movs r0, #0xec
lsls r0, r0, #1
adds r1, r5, r0
movs r0, #0
str r0, [r1]
movs r0, #0xee
lsls r0, r0, #1
adds r1, r5, r0
movs r0, #3
str r0, [r1]
movs r1, #0xf0
lsls r1, r1, #1
adds r0, r5, r1
str r4, [r0]
pop {r4, r5, pc}
.align 2, 0
_0829A0F4: .4byte _cleanup_r
thumb_func_end __sinit
thumb_func_start _free_r
_free_r: @ 0x0829A0F8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r0
adds r4, r1, #0
cmp r4, #0
bne _0829A10A
b _0829A2AE
_0829A10A:
bl __malloc_lock
adds r5, r4, #0
subs r5, #8
ldr r1, [r5, #4]
movs r6, #2
rsbs r6, r6, #0
ands r6, r1
adds r7, r5, r6
ldr r4, [r7, #4]
movs r0, #4
rsbs r0, r0, #0
ands r4, r0
ldr r0, _0829A16C
mov ip, r0
ldr r0, [r0, #8]
cmp r7, r0
bne _0829A178
adds r6, r6, r4
movs r4, #1
ands r1, r4
cmp r1, #0
bne _0829A146
ldr r0, [r5]
subs r5, r5, r0
adds r6, r6, r0
ldr r3, [r5, #0xc]
ldr r2, [r5, #8]
str r3, [r2, #0xc]
str r2, [r3, #8]
_0829A146:
adds r0, r6, #0
orrs r0, r4
str r0, [r5, #4]
mov r2, ip
str r5, [r2, #8]
ldr r0, _0829A170
ldr r0, [r0]
cmp r6, r0
blo _0829A162
ldr r0, _0829A174
ldr r1, [r0]
mov r0, sb
bl _malloc_trim_r
_0829A162:
mov r0, sb
bl __malloc_unlock
b _0829A2AE
.align 2, 0
_0829A16C: .4byte gUnknown_203CF34
_0829A170: .4byte gUnknown_203D33C
_0829A174: .4byte gUnknown_203D340
_0829A178:
str r4, [r7, #4]
movs r0, #0
mov r8, r0
movs r0, #1
ands r1, r0
cmp r1, #0
bne _0829A1A4
ldr r0, [r5]
subs r5, r5, r0
adds r6, r6, r0
ldr r1, [r5, #8]
mov r0, ip
adds r0, #8
cmp r1, r0
bne _0829A19C
movs r2, #1
mov r8, r2
b _0829A1A4
_0829A19C:
ldr r3, [r5, #0xc]
adds r2, r1, #0
str r3, [r2, #0xc]
str r2, [r3, #8]
_0829A1A4:
adds r0, r7, r4
ldr r0, [r0, #4]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0829A1DC
adds r6, r6, r4
ldr r1, [r7, #8]
mov r0, r8
cmp r0, #0
bne _0829A1D4
ldr r0, _0829A1D0
cmp r1, r0
bne _0829A1D4
movs r2, #1
mov r8, r2
str r5, [r1, #0xc]
str r5, [r1, #8]
str r1, [r5, #0xc]
str r1, [r5, #8]
b _0829A1DC
.align 2, 0
_0829A1D0: .4byte gUnknown_203CF3C
_0829A1D4:
ldr r3, [r7, #0xc]
adds r2, r1, #0
str r3, [r2, #0xc]
str r2, [r3, #8]
_0829A1DC:
movs r1, #1
adds r0, r6, #0
orrs r0, r1
str r0, [r5, #4]
adds r0, r5, r6
str r6, [r0]
mov r0, r8
cmp r0, #0
bne _0829A2A8
ldr r0, _0829A20C
cmp r6, r0
bhi _0829A214
lsrs r4, r6, #3
ldr r2, _0829A210
adds r0, r4, #0
asrs r0, r0, #2
lsls r1, r0
ldr r0, [r2, #4]
orrs r0, r1
str r0, [r2, #4]
lsls r0, r4, #3
adds r3, r0, r2
ldr r2, [r3, #8]
b _0829A2A0
.align 2, 0
_0829A20C: .4byte 0x000001FF
_0829A210: .4byte gUnknown_203CF34
_0829A214:
lsrs r1, r6, #9
cmp r1, #0
bne _0829A21E
lsrs r4, r6, #3
b _0829A266
_0829A21E:
cmp r1, #4
bhi _0829A22A
lsrs r0, r6, #6
adds r4, r0, #0
adds r4, #0x38
b _0829A266
_0829A22A:
cmp r1, #0x14
bhi _0829A234
adds r4, r1, #0
adds r4, #0x5b
b _0829A266
_0829A234:
cmp r1, #0x54
bhi _0829A240
lsrs r0, r6, #0xc
adds r4, r0, #0
adds r4, #0x6e
b _0829A266
_0829A240:
movs r0, #0xaa
lsls r0, r0, #1
cmp r1, r0
bhi _0829A250
lsrs r0, r6, #0xf
adds r4, r0, #0
adds r4, #0x77
b _0829A266
_0829A250:
ldr r0, _0829A260
cmp r1, r0
bhi _0829A264
lsrs r0, r6, #0x12
adds r4, r0, #0
adds r4, #0x7c
b _0829A266
.align 2, 0
_0829A260: .4byte 0x00000554
_0829A264:
movs r4, #0x7e
_0829A266:
lsls r0, r4, #3
ldr r7, _0829A284
adds r3, r0, r7
ldr r2, [r3, #8]
cmp r2, r3
bne _0829A288
adds r0, r4, #0
asrs r0, r0, #2
movs r1, #1
lsls r1, r0
ldr r0, [r7, #4]
orrs r0, r1
str r0, [r7, #4]
b _0829A2A0
.align 2, 0
_0829A284: .4byte gUnknown_203CF34
_0829A288:
ldr r0, [r2, #4]
movs r1, #4
rsbs r1, r1, #0
b _0829A298
_0829A290:
ldr r2, [r2, #8]
cmp r2, r3
beq _0829A29E
ldr r0, [r2, #4]
_0829A298:
ands r0, r1
cmp r6, r0
blo _0829A290
_0829A29E:
ldr r3, [r2, #0xc]
_0829A2A0:
str r3, [r5, #0xc]
str r2, [r5, #8]
str r5, [r3, #8]
str r5, [r2, #0xc]
_0829A2A8:
mov r0, sb
bl __malloc_unlock
_0829A2AE:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end _free_r
thumb_func_start _malloc_trim_r
_malloc_trim_r: @ 0x0829A2B8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
adds r4, r1, #0
bl __malloc_lock
ldr r0, _0829A340
mov r8, r0
ldr r0, [r0, #8]
ldr r6, [r0, #4]
movs r0, #4
rsbs r0, r0, #0
ands r6, r0
subs r4, r6, r4
movs r5, #0x80
lsls r5, r5, #5
ldr r1, _0829A344
adds r4, r4, r1
adds r0, r4, #0
adds r1, r5, #0
bl __udivsi3
subs r0, #1
lsls r4, r0, #0xc
cmp r4, r5
blt _0829A336
adds r0, r7, #0
movs r1, #0
bl _sbrk_r
adds r2, r0, #0
mov r1, r8
ldr r0, [r1, #8]
adds r0, r0, r6
cmp r2, r0
bne _0829A336
rsbs r1, r4, #0
adds r0, r7, #0
bl _sbrk_r
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _0829A350
adds r0, r7, #0
movs r1, #0
bl _sbrk_r
adds r2, r0, #0
mov r0, r8
ldr r3, [r0, #8]
subs r6, r2, r3
cmp r6, #0xf
ble _0829A336
ldr r1, _0829A348
ldr r0, _0829A34C
ldr r0, [r0]
subs r0, r2, r0
str r0, [r1]
movs r0, #1
orrs r6, r0
str r6, [r3, #4]
_0829A336:
adds r0, r7, #0
bl __malloc_unlock
movs r0, #0
b _0829A36C
.align 2, 0
_0829A340: .4byte gUnknown_203CF34
_0829A344: .4byte 0x00000FEF
_0829A348: .4byte gUnknown_203D350
_0829A34C: .4byte gUnknown_203D344
_0829A350:
mov r1, r8
ldr r2, [r1, #8]
subs r0, r6, r4
movs r1, #1
orrs r0, r1
str r0, [r2, #4]
ldr r1, _0829A374
ldr r0, [r1]
subs r0, r0, r4
str r0, [r1]
adds r0, r7, #0
bl __malloc_unlock
movs r0, #1
_0829A36C:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829A374: .4byte gUnknown_203D350
thumb_func_end _malloc_trim_r
thumb_func_start __sfvwrite
__sfvwrite: @ 0x0829A378
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
adds r5, r0, #0
mov sl, r1
ldr r6, [r1, #8]
cmp r6, #0
bne _0829A390
b _0829A586
_0829A390:
movs r0, #8
ldrh r1, [r5, #0xc]
ands r0, r1
cmp r0, #0
beq _0829A3A0
ldr r0, [r5, #0x10]
cmp r0, #0
bne _0829A3AC
_0829A3A0:
adds r0, r5, #0
bl __swsetup
cmp r0, #0
beq _0829A3AC
b _0829A592
_0829A3AC:
mov r2, sl
ldr r2, [r2]
mov r8, r2
movs r6, #0
ldrh r1, [r5, #0xc]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0829A400
_0829A3BE:
ldr r0, [r5, #0x1c]
ldr r3, [r5, #0x24]
cmp r6, #0
bne _0829A3D4
_0829A3C6:
mov r1, r8
ldr r7, [r1]
ldr r6, [r1, #4]
movs r2, #8
add r8, r2
cmp r6, #0
beq _0829A3C6
_0829A3D4:
adds r2, r6, #0
movs r1, #0x80
lsls r1, r1, #3
cmp r6, r1
bls _0829A3E0
adds r2, r1, #0
_0829A3E0:
adds r1, r7, #0
bl _call_via_r3
adds r4, r0, #0
cmp r4, #0
bgt _0829A3EE
b _0829A58A
_0829A3EE:
adds r7, r7, r4
subs r6, r6, r4
mov r1, sl
ldr r0, [r1, #8]
subs r0, r0, r4
str r0, [r1, #8]
cmp r0, #0
bne _0829A3BE
b _0829A586
_0829A400:
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0829A4BA
_0829A408:
ldrh r1, [r5, #0xc]
ldr r0, [r5, #8]
ldr r3, [r5]
cmp r6, #0
bne _0829A420
_0829A412:
mov r2, r8
ldr r7, [r2]
ldr r6, [r2, #4]
movs r2, #8
add r8, r2
cmp r6, #0
beq _0829A412
_0829A420:
adds r4, r0, #0
movs r2, #0x80
lsls r2, r2, #2
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _0829A44E
cmp r6, r4
bhs _0829A434
adds r4, r6, #0
_0829A434:
adds r0, r3, #0
adds r1, r7, #0
adds r2, r4, #0
bl memmove
ldr r0, [r5, #8]
subs r0, r0, r4
str r0, [r5, #8]
ldr r0, [r5]
adds r0, r0, r4
str r0, [r5]
adds r4, r6, #0
b _0829A4A8
_0829A44E:
ldr r0, [r5, #0x10]
cmp r3, r0
bls _0829A476
cmp r6, r4
bls _0829A476
adds r0, r3, #0
adds r1, r7, #0
adds r2, r4, #0
bl memmove
ldr r0, [r5]
adds r0, r0, r4
str r0, [r5]
adds r0, r5, #0
bl fflush
cmp r0, #0
beq _0829A474
b _0829A58A
_0829A474:
b _0829A4A8
_0829A476:
ldr r4, [r5, #0x14]
cmp r6, r4
blo _0829A490
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 _0829A58A
b _0829A4A8
_0829A490:
adds r4, r6, #0
adds r0, r3, #0
adds r1, r7, #0
adds r2, r4, #0
bl memmove
ldr r0, [r5, #8]
subs r0, r0, r4
str r0, [r5, #8]
ldr r0, [r5]
adds r0, r0, r4
str r0, [r5]
_0829A4A8:
adds r7, r7, r4
subs r6, r6, r4
mov r1, sl
ldr r0, [r1, #8]
subs r0, r0, r4
str r0, [r1, #8]
cmp r0, #0
bne _0829A408
b _0829A586
_0829A4BA:
movs r2, #0
str r2, [sp]
_0829A4BE:
cmp r6, #0
bne _0829A4D4
movs r0, #0
str r0, [sp]
_0829A4C6:
mov r1, r8
ldr r7, [r1]
ldr r6, [r1, #4]
movs r2, #8
add r8, r2
cmp r6, #0
beq _0829A4C6
_0829A4D4:
ldr r0, [sp]
cmp r0, #0
bne _0829A4F8
adds r0, r7, #0
movs r1, #0xa
adds r2, r6, #0
bl memchr
adds r1, r0, #0
cmp r1, #0
beq _0829A4F0
subs r0, r7, #1
subs r1, r1, r0
b _0829A4F2
_0829A4F0:
adds r1, r6, #1
_0829A4F2:
mov sb, r1
movs r2, #1
str r2, [sp]
_0829A4F8:
mov r2, sb
cmp sb, r6
bls _0829A500
adds r2, r6, #0
_0829A500:
ldr r0, [r5, #8]
ldr r1, [r5, #0x14]
adds r4, r0, r1
ldr r0, [r5, #0x10]
ldr r3, [r5]
cmp r3, r0
bls _0829A52E
cmp r2, r4
ble _0829A52E
adds r0, r3, #0
adds r1, r7, #0
adds r2, r4, #0
bl memmove
ldr r0, [r5]
adds r0, r0, r4
str r0, [r5]
adds r0, r5, #0
bl fflush
cmp r0, #0
bne _0829A58A
b _0829A55E
_0829A52E:
adds r4, r1, #0
cmp r2, r4
blt _0829A548
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 _0829A58A
b _0829A55E
_0829A548:
adds r4, r2, #0
adds r0, r3, #0
adds r1, r7, #0
bl memmove
ldr r0, [r5, #8]
subs r0, r0, r4
str r0, [r5, #8]
ldr r0, [r5]
adds r0, r0, r4
str r0, [r5]
_0829A55E:
mov r0, sb
subs r0, r0, r4
mov sb, r0
cmp r0, #0
bne _0829A576
adds r0, r5, #0
bl fflush
cmp r0, #0
bne _0829A58A
movs r1, #0
str r1, [sp]
_0829A576:
adds r7, r7, r4
subs r6, r6, r4
mov r2, sl
ldr r0, [r2, #8]
subs r0, r0, r4
str r0, [r2, #8]
cmp r0, #0
bne _0829A4BE
_0829A586:
movs r0, #0
b _0829A596
_0829A58A:
movs r0, #0x40
ldrh r1, [r5, #0xc]
orrs r0, r1
strh r0, [r5, #0xc]
_0829A592:
movs r0, #1
rsbs r0, r0, #0
_0829A596:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end __sfvwrite
thumb_func_start _fwalk
_fwalk: @ 0x0829A5A4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r1
movs r7, #0
movs r1, #0xec
lsls r1, r1, #1
adds r6, r0, r1
cmp r6, #0
beq _0829A5DC
_0829A5B8:
ldr r5, [r6, #8]
ldr r4, [r6, #4]
b _0829A5D0
_0829A5BE:
movs r1, #0xc
ldrsh r0, [r5, r1]
cmp r0, #0
beq _0829A5CE
adds r0, r5, #0
bl _call_via_r8
orrs r7, r0
_0829A5CE:
adds r5, #0x58
_0829A5D0:
subs r4, #1
cmp r4, #0
bge _0829A5BE
ldr r6, [r6]
cmp r6, #0
bne _0829A5B8
_0829A5DC:
adds r0, r7, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_end _fwalk
thumb_func_start _setlocale_r
_setlocale_r: @ 0x0829A5E4
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r4, r2, #0
cmp r4, #0
beq _0829A618
ldr r1, _0829A60C
adds r0, r4, #0
bl strcmp
cmp r0, #0
beq _0829A614
ldr r1, _0829A610
adds r0, r4, #0
bl strcmp
cmp r0, #0
beq _0829A614
movs r0, #0
b _0829A61A
.align 2, 0
_0829A60C: .4byte gUnknown_890F224
_0829A610: .4byte gUnknown_890F21C
_0829A614:
str r6, [r5, #0x30]
str r4, [r5, #0x34]
_0829A618:
ldr r0, _0829A61C
_0829A61A:
pop {r4, r5, r6, pc}
.align 2, 0
_0829A61C: .4byte gUnknown_890F224
thumb_func_end _setlocale_r
thumb_func_start _localeconv_r
_localeconv_r: @ 0x0829A620
ldr r0, _0829A624
bx lr
.align 2, 0
_0829A624: .4byte gUnknown_890F1EC
thumb_func_end _localeconv_r
thumb_func_start setlocale
setlocale: @ 0x0829A628
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldr r0, _0829A63C
ldr r0, [r0]
adds r1, r3, #0
bl _setlocale_r
pop {pc}
.align 2, 0
_0829A63C: .4byte gUnknown_203CF1C
thumb_func_end setlocale
thumb_func_start localeconv
localeconv: @ 0x0829A640
push {lr}
ldr r0, _0829A64C
ldr r0, [r0]
bl _localeconv_r
pop {pc}
.align 2, 0
_0829A64C: .4byte gUnknown_203CF1C
thumb_func_end localeconv
thumb_func_start __smakebuf
__smakebuf: @ 0x0829A650
push {r4, r5, r6, r7, lr}
sub sp, #0x3c
adds r4, r0, #0
movs r0, #2
ldrh r1, [r4, #0xc]
ands r0, r1
cmp r0, #0
bne _0829A6E6
movs r2, #0xe
ldrsh r0, [r4, r2]
cmp r0, #0
blt _0829A678
ldr r0, [r4, #0x54]
movs r2, #0xe
ldrsh r1, [r4, r2]
mov r2, sp
bl _fstat_r
cmp r0, #0
bge _0829A68A
_0829A678:
movs r7, #0
movs r6, #0x80
lsls r6, r6, #3
movs r1, #0x80
lsls r1, r1, #4
adds r0, r1, #0
ldrh r2, [r4, #0xc]
orrs r0, r2
b _0829A6CE
_0829A68A:
movs r7, #0
ldr r1, [sp, #4]
movs r0, #0xf0
lsls r0, r0, #8
ands r1, r0
movs r0, #0x80
lsls r0, r0, #6
cmp r1, r0
bne _0829A69E
movs r7, #1
_0829A69E:
movs r6, #0x80
lsls r6, r6, #3
movs r0, #0x80
lsls r0, r0, #8
cmp r1, r0
bne _0829A6C4
ldr r1, [r4, #0x28]
ldr r0, _0829A6C0
cmp r1, r0
bne _0829A6C4
adds r0, r6, #0
ldrh r1, [r4, #0xc]
orrs r0, r1
strh r0, [r4, #0xc]
str r6, [r4, #0x4c]
b _0829A6D0
.align 2, 0
_0829A6C0: .4byte __sseek
_0829A6C4:
movs r2, #0x80
lsls r2, r2, #4
adds r0, r2, #0
ldrh r1, [r4, #0xc]
orrs r0, r1
_0829A6CE:
strh r0, [r4, #0xc]
_0829A6D0:
ldr r0, [r4, #0x54]
adds r1, r6, #0
bl _malloc_r
adds r2, r0, #0
cmp r2, #0
bne _0829A6F4
movs r0, #2
ldrh r2, [r4, #0xc]
orrs r0, r2
strh r0, [r4, #0xc]
_0829A6E6:
adds r0, r4, #0
adds r0, #0x43
str r0, [r4]
str r0, [r4, #0x10]
movs r0, #1
str r0, [r4, #0x14]
b _0829A722
_0829A6F4:
ldr r1, [r4, #0x54]
ldr r0, _0829A728
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 _0829A722
movs r2, #0xe
ldrsh r0, [r4, r2]
bl isatty
cmp r0, #0
beq _0829A722
movs r0, #1
ldrh r1, [r4, #0xc]
orrs r0, r1
strh r0, [r4, #0xc]
_0829A722:
add sp, #0x3c
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829A728: .4byte _cleanup_r
thumb_func_end __smakebuf
thumb_func_start sub_0829A72C
sub_0829A72C: @ 0x0829A72C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
str r0, [sp]
ldr r0, _0829A7A0
ldr r0, [r0, #8]
mov r8, r0
ldr r7, [r0, #4]
movs r0, #4
rsbs r0, r0, #0
ands r7, r0
mov r2, r8
adds r4, r2, r7
ldr r0, _0829A7A4
ldr r0, [r0]
adds r1, r1, r0
adds r6, r1, #0
adds r6, #0x10
ldr r3, _0829A7A8
mov sl, r3
ldr r0, [r3]
movs r2, #1
rsbs r2, r2, #0
mov sb, r2
cmp r0, sb
beq _0829A76E
ldr r3, _0829A7AC
adds r6, r1, r3
ldr r0, _0829A7B0
ands r6, r0
_0829A76E:
ldr r0, [sp]
adds r1, r6, #0
bl _sbrk_r
adds r5, r0, #0
cmp r5, sb
beq _0829A870
cmp r5, r4
bhs _0829A786
ldr r0, _0829A7A0
cmp r8, r0
bne _0829A870
_0829A786:
ldr r1, _0829A7B4
ldr r0, [r1]
adds r2, r0, r6
str r2, [r1]
cmp r5, r4
bne _0829A7B8
adds r2, r6, r7
ldr r3, _0829A7A0
ldr r1, [r3, #8]
movs r0, #1
orrs r2, r0
str r2, [r1, #4]
b _0829A858
.align 2, 0
_0829A7A0: .4byte gUnknown_203CF34
_0829A7A4: .4byte gUnknown_203D340
_0829A7A8: .4byte gUnknown_203D344
_0829A7AC: .4byte 0x0000100F
_0829A7B0: .4byte 0xFFFFF000
_0829A7B4: .4byte gUnknown_203D350
_0829A7B8:
mov r3, sl
ldr r0, [r3]
cmp r0, sb
bne _0829A7C4
str r5, [r3]
b _0829A7CA
_0829A7C4:
subs r0, r5, r4
adds r0, r2, r0
str r0, [r1]
_0829A7CA:
adds r1, r5, #0
adds r1, #8
movs r0, #7
ands r1, r0
cmp r1, #0
beq _0829A7DE
movs r0, #8
subs r4, r0, r1
adds r5, r5, r4
b _0829A7E0
_0829A7DE:
movs r4, #0
_0829A7E0:
adds r0, r5, r6
movs r1, #0x80
lsls r1, r1, #5
subs r1, #1
ands r0, r1
movs r1, #0x80
lsls r1, r1, #5
subs r0, r1, r0
adds r4, r4, r0
ldr r0, [sp]
adds r1, r4, #0
bl _sbrk_r
adds r2, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r2, r0
beq _0829A870
ldr r1, _0829A828
ldr r0, [r1]
adds r0, r0, r4
str r0, [r1]
ldr r1, _0829A82C
str r5, [r1, #8]
subs r0, r2, r5
adds r2, r0, r4
movs r3, #1
orrs r2, r3
str r2, [r5, #4]
cmp r8, r1
beq _0829A858
cmp r7, #0xf
bhi _0829A830
str r3, [r5, #4]
b _0829A870
.align 2, 0
_0829A828: .4byte gUnknown_203D350
_0829A82C: .4byte gUnknown_203CF34
_0829A830:
subs r7, #0xc
movs r0, #8
rsbs r0, r0, #0
ands r7, r0
mov r2, r8
ldr r0, [r2, #4]
ands r0, r3
orrs r0, r7
str r0, [r2, #4]
adds r1, r2, r7
movs r0, #5
str r0, [r1, #4]
str r0, [r1, #8]
cmp r7, #0xf
bls _0829A858
mov r1, r8
adds r1, #8
ldr r0, [sp]
bl _free_r
_0829A858:
ldr r0, _0829A87C
ldr r2, _0829A880
ldr r1, [r0]
ldr r0, [r2]
cmp r1, r0
bls _0829A866
str r1, [r2]
_0829A866:
ldr r2, _0829A884
ldr r0, [r2]
cmp r1, r0
bls _0829A870
str r1, [r2]
_0829A870:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829A87C: .4byte gUnknown_203D350
_0829A880: .4byte gUnknown_203D348
_0829A884: .4byte gUnknown_203D34C
thumb_func_end sub_0829A72C
thumb_func_start _malloc_r
_malloc_r: @ 0x0829A888
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
str r0, [sp]
adds r1, #0xb
cmp r1, #0x16
ble _0829A8AA
movs r0, #8
rsbs r0, r0, #0
mov r8, r0
mov r2, r8
ands r2, r1
mov r8, r2
b _0829A8AE
_0829A8AA:
movs r3, #0x10
mov r8, r3
_0829A8AE:
ldr r0, [sp]
bl __malloc_lock
ldr r0, _0829A8F4
cmp r8, r0
bhi _0829A902
mov r4, r8
lsrs r4, r4, #3
mov ip, r4
ldr r0, _0829A8F8
mov r7, r8
adds r2, r7, r0
ldr r5, [r2, #0xc]
cmp r5, r2
bne _0829A8D6
adds r2, r5, #0
adds r2, #8
ldr r5, [r2, #0xc]
cmp r5, r2
beq _0829A8FC
_0829A8D6:
ldr r2, [r5, #4]
movs r0, #4
rsbs r0, r0, #0
ands r2, r0
ldr r6, [r5, #0xc]
ldr r4, [r5, #8]
str r6, [r4, #0xc]
str r4, [r6, #8]
adds r2, r5, r2
ldr r0, [r2, #4]
movs r1, #1
orrs r0, r1
str r0, [r2, #4]
b _0829AC2E
.align 2, 0
_0829A8F4: .4byte 0x000001F7
_0829A8F8: .4byte gUnknown_203CF34
_0829A8FC:
movs r0, #2
add ip, r0
b _0829A9AE
_0829A902:
mov r2, r8
lsrs r1, r2, #9
cmp r1, #0
bne _0829A90E
lsrs r2, r2, #3
b _0829A95E
_0829A90E:
cmp r1, #4
bhi _0829A91C
mov r3, r8
lsrs r0, r3, #6
adds r0, #0x38
mov ip, r0
b _0829A960
_0829A91C:
cmp r1, #0x14
bhi _0829A926
adds r1, #0x5b
mov ip, r1
b _0829A960
_0829A926:
cmp r1, #0x54
bhi _0829A934
mov r4, r8
lsrs r0, r4, #0xc
adds r0, #0x6e
mov ip, r0
b _0829A960
_0829A934:
movs r0, #0xaa
lsls r0, r0, #1
cmp r1, r0
bhi _0829A946
mov r7, r8
lsrs r0, r7, #0xf
adds r0, #0x77
mov ip, r0
b _0829A960
_0829A946:
ldr r0, _0829A958
cmp r1, r0
bhi _0829A95C
mov r1, r8
lsrs r0, r1, #0x12
adds r0, #0x7c
mov ip, r0
b _0829A960
.align 2, 0
_0829A958: .4byte 0x00000554
_0829A95C:
movs r2, #0x7e
_0829A95E:
mov ip, r2
_0829A960:
mov r3, ip
lsls r0, r3, #3
ldr r1, _0829A984
adds r4, r0, r1
ldr r5, [r4, #0xc]
cmp r5, r4
beq _0829A9AA
ldr r1, [r5, #4]
movs r0, #4
rsbs r0, r0, #0
ands r1, r0
mov r7, r8
subs r3, r1, r7
cmp r3, #0xf
ble _0829A988
adds r0, #3
add ip, r0
b _0829A9AA
.align 2, 0
_0829A984: .4byte gUnknown_203CF34
_0829A988:
cmp r3, #0
blt _0829A98E
b _0829ABC8
_0829A98E:
ldr r5, [r5, #0xc]
cmp r5, r4
beq _0829A9AA
ldr r1, [r5, #4]
movs r0, #4
rsbs r0, r0, #0
ands r1, r0
mov r2, r8
subs r3, r1, r2
cmp r3, #0xf
ble _0829A988
movs r3, #1
rsbs r3, r3, #0
add ip, r3
_0829A9AA:
movs r4, #1
add ip, r4
_0829A9AE:
ldr r0, _0829A9EC
ldr r5, [r0, #8]
mov sl, r0
cmp r5, sl
bne _0829A9BA
b _0829AABC
_0829A9BA:
ldr r1, [r5, #4]
movs r0, #4
rsbs r0, r0, #0
ands r1, r0
mov r7, r8
subs r3, r1, r7
cmp r3, #0xf
ble _0829A9F0
adds r2, r5, r7
movs r1, #1
adds r0, r7, #0
orrs r0, r1
str r0, [r5, #4]
mov r4, sl
str r2, [r4, #0xc]
str r2, [r4, #8]
str r4, [r2, #0xc]
str r4, [r2, #8]
adds r0, r3, #0
orrs r0, r1
str r0, [r2, #4]
adds r0, r2, r3
str r3, [r0]
b _0829AC2E
.align 2, 0
_0829A9EC: .4byte gUnknown_203CF3C
_0829A9F0:
mov r7, sl
str r7, [r7, #0xc]
str r7, [r7, #8]
cmp r3, #0
blt _0829AA06
adds r2, r5, r1
ldr r0, [r2, #4]
movs r1, #1
orrs r0, r1
str r0, [r2, #4]
b _0829AC2E
_0829AA06:
ldr r0, _0829AA28
cmp r1, r0
bhi _0829AA2C
lsrs r2, r1, #3
mov r3, sl
subs r3, #8
adds r0, r2, #0
asrs r0, r0, #2
movs r1, #1
lsls r1, r0
ldr r0, [r3, #4]
orrs r0, r1
str r0, [r3, #4]
lsls r0, r2, #3
adds r6, r0, r3
ldr r4, [r6, #8]
b _0829AAB4
.align 2, 0
_0829AA28: .4byte 0x000001FF
_0829AA2C:
lsrs r2, r1, #9
cmp r2, #0
bne _0829AA36
lsrs r2, r1, #3
b _0829AA7A
_0829AA36:
cmp r2, #4
bhi _0829AA42
lsrs r0, r1, #6
adds r2, r0, #0
adds r2, #0x38
b _0829AA7A
_0829AA42:
cmp r2, #0x14
bhi _0829AA4A
adds r2, #0x5b
b _0829AA7A
_0829AA4A:
cmp r2, #0x54
bhi _0829AA56
lsrs r0, r1, #0xc
adds r2, r0, #0
adds r2, #0x6e
b _0829AA7A
_0829AA56:
movs r0, #0xaa
lsls r0, r0, #1
cmp r2, r0
bhi _0829AA66
lsrs r0, r1, #0xf
adds r2, r0, #0
adds r2, #0x77
b _0829AA7A
_0829AA66:
ldr r0, _0829AA74
cmp r2, r0
bhi _0829AA78
lsrs r0, r1, #0x12
adds r2, r0, #0
adds r2, #0x7c
b _0829AA7A
.align 2, 0
_0829AA74: .4byte 0x00000554
_0829AA78:
movs r2, #0x7e
_0829AA7A:
lsls r0, r2, #3
ldr r3, _0829AA98
adds r6, r0, r3
ldr r4, [r6, #8]
cmp r4, r6
bne _0829AA9C
adds r0, r2, #0
asrs r0, r0, #2
movs r1, #1
lsls r1, r0
ldr r7, _0829AA98
ldr r0, [r7, #4]
orrs r0, r1
str r0, [r7, #4]
b _0829AAB4
.align 2, 0
_0829AA98: .4byte gUnknown_203CF34
_0829AA9C:
ldr r0, [r4, #4]
movs r2, #4
rsbs r2, r2, #0
b _0829AAAC
_0829AAA4:
ldr r4, [r4, #8]
cmp r4, r6
beq _0829AAB2
ldr r0, [r4, #4]
_0829AAAC:
ands r0, r2
cmp r1, r0
blo _0829AAA4
_0829AAB2:
ldr r6, [r4, #0xc]
_0829AAB4:
str r6, [r5, #0xc]
str r4, [r5, #8]
str r5, [r6, #8]
str r5, [r4, #0xc]
_0829AABC:
mov r0, ip
cmp r0, #0
bge _0829AAC4
adds r0, #3
_0829AAC4:
asrs r0, r0, #2
movs r6, #1
lsls r6, r0
ldr r0, _0829AAE8
ldr r1, [r0, #4]
cmp r6, r1
bhi _0829AB86
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _0829AAFA
movs r0, #4
rsbs r0, r0, #0
mov r2, ip
ands r0, r2
adds r0, #4
mov ip, r0
b _0829AAF0
.align 2, 0
_0829AAE8: .4byte gUnknown_203CF34
_0829AAEC:
movs r3, #4
add ip, r3
_0829AAF0:
lsls r6, r6, #1
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _0829AAEC
_0829AAFA:
ldr r4, _0829AB78
mov sb, r4
_0829AAFE:
mov r7, ip
str r7, [sp, #4]
mov r1, ip
lsls r0, r1, #3
mov r3, sb
adds r2, r0, r3
adds r4, r2, #0
_0829AB0C:
ldr r5, [r4, #0xc]
cmp r5, r4
beq _0829AB2C
movs r0, #4
rsbs r0, r0, #0
_0829AB16:
ldr r1, [r5, #4]
ands r1, r0
mov r7, r8
subs r3, r1, r7
cmp r3, #0xf
bgt _0829ABDC
cmp r3, #0
bge _0829AC04
ldr r5, [r5, #0xc]
cmp r5, r4
bne _0829AB16
_0829AB2C:
adds r4, #8
movs r0, #1
add ip, r0
mov r0, ip
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0829AB0C
_0829AB3C:
ldr r0, [sp, #4]
ands r0, r1
cmp r0, #0
beq _0829AB7C
ldr r3, [sp, #4]
subs r3, #1
str r3, [sp, #4]
subs r2, #8
ldr r0, [r2, #8]
cmp r0, r2
beq _0829AB3C
_0829AB52:
lsls r6, r6, #1
mov r4, sb
ldr r1, [r4, #4]
cmp r6, r1
bhi _0829AB86
cmp r6, #0
beq _0829AB86
adds r0, r6, #0
ands r0, r1
cmp r0, #0
bne _0829AAFE
_0829AB68:
movs r7, #4
add ip, r7
lsls r6, r6, #1
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _0829AB68
b _0829AAFE
.align 2, 0
_0829AB78: .4byte gUnknown_203CF34
_0829AB7C:
mov r1, sb
ldr r0, [r1, #4]
bics r0, r6
str r0, [r1, #4]
b _0829AB52
_0829AB86:
ldr r2, _0829ABC4
ldr r0, [r2, #8]
ldr r0, [r0, #4]
movs r4, #4
rsbs r4, r4, #0
ands r0, r4
mov r7, r8
subs r3, r0, r7
cmp r0, r8
blo _0829AB9E
cmp r3, #0xf
bgt _0829AC18
_0829AB9E:
ldr r0, [sp]
mov r1, r8
bl sub_0829A72C
ldr r1, _0829ABC4
ldr r0, [r1, #8]
ldr r0, [r0, #4]
ands r0, r4
mov r2, r8
subs r3, r0, r2
cmp r0, r8
blo _0829ABBA
cmp r3, #0xf
bgt _0829AC18
_0829ABBA:
ldr r0, [sp]
bl __malloc_unlock
movs r0, #0
b _0829AC38
.align 2, 0
_0829ABC4: .4byte gUnknown_203CF34
_0829ABC8:
ldr r6, [r5, #0xc]
ldr r4, [r5, #8]
str r6, [r4, #0xc]
str r4, [r6, #8]
adds r2, r5, r1
ldr r0, [r2, #4]
movs r1, #1
orrs r0, r1
str r0, [r2, #4]
b _0829AC2E
_0829ABDC:
mov r4, r8
adds r2, r5, r4
movs r1, #1
orrs r4, r1
str r4, [r5, #4]
ldr r6, [r5, #0xc]
ldr r4, [r5, #8]
str r6, [r4, #0xc]
str r4, [r6, #8]
mov r7, sl
str r2, [r7, #0xc]
str r2, [r7, #8]
str r7, [r2, #0xc]
str r7, [r2, #8]
adds r0, r3, #0
orrs r0, r1
str r0, [r2, #4]
adds r0, r2, r3
str r3, [r0]
b _0829AC2E
_0829AC04:
adds r2, r5, r1
ldr r0, [r2, #4]
movs r1, #1
orrs r0, r1
str r0, [r2, #4]
ldr r6, [r5, #0xc]
ldr r4, [r5, #8]
str r6, [r4, #0xc]
str r4, [r6, #8]
b _0829AC2E
_0829AC18:
ldr r2, _0829AC44
ldr r5, [r2, #8]
movs r1, #1
mov r0, r8
orrs r0, r1
str r0, [r5, #4]
mov r4, r8
adds r0, r5, r4
str r0, [r2, #8]
orrs r3, r1
str r3, [r0, #4]
_0829AC2E:
ldr r0, [sp]
bl __malloc_unlock
adds r0, r5, #0
adds r0, #8
_0829AC38:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829AC44: .4byte gUnknown_203CF34
thumb_func_end _malloc_r
thumb_func_start _mbtowc_r
_mbtowc_r: @ 0x0829AC48
sub sp, #4
cmp r1, #0
bne _0829AC50
mov r1, sp
_0829AC50:
cmp r2, #0
beq _0829AC6C
cmp r3, #0
bne _0829AC5E
movs r0, #1
rsbs r0, r0, #0
b _0829AC6E
_0829AC5E:
ldrb r0, [r2]
str r0, [r1]
ldrb r0, [r2]
cmp r0, #0
beq _0829AC6C
movs r0, #1
b _0829AC6E
_0829AC6C:
movs r0, #0
_0829AC6E:
add sp, #4
bx lr
.align 2, 0
thumb_func_end _mbtowc_r
thumb_func_start memchr
memchr: @ 0x0829AC74
push {r4, r5, r6, r7, lr}
adds r5, r1, #0
adds r1, r0, #0
movs r0, #0xff
ands r5, r0
cmp r2, #3
bls _0829ACE8
movs r0, #3
ands r0, r1
cmp r0, #0
bne _0829ACE8
adds r4, r1, #0
movs r6, #0
movs r1, #0
_0829AC90:
lsls r0, r6, #8
adds r6, r0, r5
adds r1, #1
cmp r1, #3
bls _0829AC90
cmp r2, #3
bls _0829ACCE
ldr r0, _0829ACD4
mov ip, r0
ldr r7, _0829ACD8
_0829ACA4:
ldr r1, [r4]
eors r1, r6
mov r3, ip
adds r0, r1, r3
bics r0, r1
ands r0, r7
cmp r0, #0
beq _0829ACC6
adds r1, r4, #0
movs r3, #0
_0829ACB8:
ldrb r0, [r1]
cmp r0, r5
beq _0829ACE2
adds r1, #1
adds r3, #1
cmp r3, #3
bls _0829ACB8
_0829ACC6:
subs r2, #4
adds r4, #4
cmp r2, #3
bhi _0829ACA4
_0829ACCE:
adds r1, r4, #0
b _0829ACE8
.align 2, 0
_0829ACD4: .4byte 0xFEFEFEFF
_0829ACD8: .4byte 0x80808080
_0829ACDC:
ldrb r0, [r1]
cmp r0, r5
bne _0829ACE6
_0829ACE2:
adds r0, r1, #0
b _0829ACF2
_0829ACE6:
adds r1, #1
_0829ACE8:
adds r0, r2, #0
subs r2, #1
cmp r0, #0
bne _0829ACDC
movs r0, #0
_0829ACF2:
pop {r4, r5, r6, r7, pc}
thumb_func_end memchr
thumb_func_start memmove
memmove: @ 0x0829ACF4
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r3, r1, #0
cmp r3, r5
bhs _0829AD26
adds r0, r3, r2
cmp r5, r0
bhs _0829AD26
adds r3, r0, #0
adds r4, r5, r2
subs r2, #1
movs r0, #1
rsbs r0, r0, #0
cmp r2, r0
beq _0829AD78
adds r1, r0, #0
_0829AD16:
subs r4, #1
subs r3, #1
ldrb r0, [r3]
strb r0, [r4]
subs r2, #1
cmp r2, r1
bne _0829AD16
b _0829AD78
_0829AD26:
cmp r2, #0xf
bls _0829AD5E
adds r0, r3, #0
orrs r0, r4
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0829AD5E
adds r1, r3, #0
_0829AD38:
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 _0829AD38
cmp r2, #3
bls _0829AD5C
_0829AD52:
ldm r1!, {r0}
stm r4!, {r0}
subs r2, #4
cmp r2, #3
bhi _0829AD52
_0829AD5C:
adds r3, r1, #0
_0829AD5E:
subs r2, #1
movs r0, #1
rsbs r0, r0, #0
cmp r2, r0
beq _0829AD78
adds r1, r0, #0
_0829AD6A:
ldrb r0, [r3]
strb r0, [r4]
adds r3, #1
adds r4, #1
subs r2, #1
cmp r2, r1
bne _0829AD6A
_0829AD78:
adds r0, r5, #0
pop {r4, r5, pc}
thumb_func_end memmove
thumb_func_start __malloc_lock
__malloc_lock: @ 0x0829AD7C
bx lr
.align 2, 0
thumb_func_end __malloc_lock
thumb_func_start __malloc_unlock
__malloc_unlock: @ 0x0829AD80
bx lr
.align 2, 0
thumb_func_end __malloc_unlock
thumb_func_start _Balloc
_Balloc: @ 0x0829AD84
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
ldr r0, [r4, #0x4c]
cmp r0, #0
bne _0829ADA0
adds r0, r4, #0
movs r1, #4
movs r2, #0x10
bl _calloc_r
str r0, [r4, #0x4c]
cmp r0, #0
beq _0829ADC8
_0829ADA0:
ldr r1, [r4, #0x4c]
lsls r0, r6, #2
adds r2, r0, r1
ldr r1, [r2]
cmp r1, #0
beq _0829ADB2
ldr r0, [r1]
str r0, [r2]
b _0829ADD0
_0829ADB2:
movs r5, #1
lsls r5, r6
lsls r2, r5, #2
adds r2, #0x14
adds r0, r4, #0
movs r1, #1
bl _calloc_r
adds r1, r0, #0
cmp r1, #0
bne _0829ADCC
_0829ADC8:
movs r0, #0
b _0829ADD8
_0829ADCC:
str r6, [r1, #4]
str r5, [r1, #8]
_0829ADD0:
movs r0, #0
str r0, [r1, #0x10]
str r0, [r1, #0xc]
adds r0, r1, #0
_0829ADD8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_end _Balloc
thumb_func_start _Bfree
_Bfree: @ 0x0829ADDC
adds r3, r0, #0
adds r2, r1, #0
cmp r2, #0
beq _0829ADF2
ldr r0, [r2, #4]
ldr r1, [r3, #0x4c]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
str r1, [r2]
str r2, [r0]
_0829ADF2:
bx lr
thumb_func_end _Bfree
thumb_func_start _multadd
_multadd: @ 0x0829ADF4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, 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, _0829AE88
mov ip, r0
_0829AE10:
ldr r1, [r3]
adds r0, r1, #0
mov r2, ip
ands r0, r2
adds r2, r0, #0
muls r2, r4, r2
add r2, r8
lsrs r1, r1, #0x10
adds r0, r1, #0
muls r0, r4, r0
lsrs r1, r2, #0x10
adds r0, r0, r1
lsrs r1, r0, #0x10
mov r8, r1
lsls r0, r0, #0x10
mov r1, ip
ands r2, r1
adds r0, r0, r2
stm r3!, {r0}
adds r7, #1
cmp r7, r6
blt _0829AE10
mov r2, r8
cmp r2, #0
beq _0829AE7E
ldr r0, [r5, #8]
cmp r6, r0
blt _0829AE6E
ldr r1, [r5, #4]
adds r1, #1
mov r0, sb
bl _Balloc
adds r4, r0, #0
adds r0, #0xc
adds r1, r5, #0
adds r1, #0xc
ldr r2, [r5, #0x10]
lsls r2, r2, #2
adds r2, #8
bl memcpy
mov r0, sb
adds r1, r5, #0
bl _Bfree
adds r5, r4, #0
_0829AE6E:
lsls r1, r6, #2
adds r0, r5, #0
adds r0, #0x14
adds r0, r0, r1
mov r1, r8
str r1, [r0]
adds r6, #1
str r6, [r5, #0x10]
_0829AE7E:
adds r0, r5, #0
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829AE88: .4byte 0x0000FFFF
thumb_func_end _multadd
thumb_func_start _s2b
_s2b: @ 0x0829AE8C
push {r4, r5, r6, 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, #8
movs r1, #9
bl __divsi3
movs r1, #0
movs r2, #1
cmp r0, #1
ble _0829AEB4
_0829AEAC:
lsls r2, r2, #1
adds r1, #1
cmp r0, r2
bgt _0829AEAC
_0829AEB4:
adds r0, r7, #0
bl _Balloc
adds r1, r0, #0
ldr r0, [sp, #0x18]
str r0, [r1, #0x14]
movs r0, #1
str r0, [r1, #0x10]
movs r5, #9
cmp r6, #9
ble _0829AEE6
adds r4, #9
_0829AECC:
ldrb r3, [r4]
subs r3, #0x30
adds r4, #1
adds r0, r7, #0
movs r2, #0xa
bl _multadd
adds r1, r0, #0
adds r5, #1
cmp r5, r6
blt _0829AECC
adds r4, #1
b _0829AEE8
_0829AEE6:
adds r4, #0xa
_0829AEE8:
cmp r5, r8
bge _0829AF06
mov r0, r8
subs r5, r0, r5
_0829AEF0:
ldrb r3, [r4]
subs r3, #0x30
adds r4, #1
adds r0, r7, #0
movs r2, #0xa
bl _multadd
adds r1, r0, #0
subs r5, #1
cmp r5, #0
bne _0829AEF0
_0829AF06:
adds r0, r1, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end _s2b
thumb_func_start _hi0bits
_hi0bits: @ 0x0829AF10
adds r1, r0, #0
movs r2, #0
ldr r0, _0829AF60
ands r0, r1
cmp r0, #0
bne _0829AF20
movs r2, #0x10
lsls r1, r1, #0x10
_0829AF20:
movs r0, #0xff
lsls r0, r0, #0x18
ands r0, r1
cmp r0, #0
bne _0829AF2E
adds r2, #8
lsls r1, r1, #8
_0829AF2E:
movs r0, #0xf0
lsls r0, r0, #0x18
ands r0, r1
cmp r0, #0
bne _0829AF3C
adds r2, #4
lsls r1, r1, #4
_0829AF3C:
movs r0, #0xc0
lsls r0, r0, #0x18
ands r0, r1
cmp r0, #0
bne _0829AF4A
adds r2, #2
lsls r1, r1, #2
_0829AF4A:
cmp r1, #0
blt _0829AF64
adds r2, #1
movs r0, #0x80
lsls r0, r0, #0x17
ands r0, r1
cmp r0, #0
bne _0829AF64
movs r0, #0x20
b _0829AF66
.align 2, 0
_0829AF60: .4byte 0xFFFF0000
_0829AF64:
adds r0, r2, #0
_0829AF66:
bx lr
thumb_func_end _hi0bits
thumb_func_start _lo0bits
_lo0bits: @ 0x0829AF68
adds r3, r0, #0
ldr r1, [r3]
movs r0, #7
ands r0, r1
cmp r0, #0
beq _0829AF98
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0829AF80
movs r0, #0
b _0829AFE8
_0829AF80:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0829AF90
lsrs r0, r1, #1
str r0, [r3]
movs r0, #1
b _0829AFE8
_0829AF90:
lsrs r0, r1, #2
str r0, [r3]
movs r0, #2
b _0829AFE8
_0829AF98:
movs r2, #0
ldr r0, _0829AFE0
ands r0, r1
cmp r0, #0
bne _0829AFA6
movs r2, #0x10
lsrs r1, r1, #0x10
_0829AFA6:
movs r0, #0xff
ands r0, r1
cmp r0, #0
bne _0829AFB2
adds r2, #8
lsrs r1, r1, #8
_0829AFB2:
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _0829AFBE
adds r2, #4
lsrs r1, r1, #4
_0829AFBE:
movs r0, #3
ands r0, r1
cmp r0, #0
bne _0829AFCA
adds r2, #2
lsrs r1, r1, #2
_0829AFCA:
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0829AFE4
adds r2, #1
lsrs r1, r1, #1
cmp r1, #0
bne _0829AFE4
movs r0, #0x20
b _0829AFE8
.align 2, 0
_0829AFE0: .4byte 0x0000FFFF
_0829AFE4:
str r1, [r3]
adds r0, r2, #0
_0829AFE8:
bx lr
.align 2, 0
thumb_func_end _lo0bits
thumb_func_start _i2b
_i2b: @ 0x0829AFEC
push {r4, lr}
adds r4, r1, #0
movs r1, #1
bl _Balloc
str r4, [r0, #0x14]
movs r1, #1
str r1, [r0, #0x10]
pop {r4, pc}
.align 2, 0
thumb_func_end _i2b
thumb_func_start _multiply
_multiply: @ 0x0829B000
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, 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 _0829B020
str r4, [sp]
adds r4, r5, #0
ldr r5, [sp]
_0829B020:
ldr r1, [r4, #4]
ldr r6, [r4, #0x10]
ldr r0, [r5, #0x10]
mov r8, r0
mov r2, r8
adds r2, r6, r2
str r2, [sp, #4]
ldr r0, [r4, #8]
cmp r2, r0
ble _0829B036
adds r1, #1
_0829B036:
adds r0, r3, #0
bl _Balloc
str r0, [sp]
adds r7, r0, #0
adds r7, #0x14
ldr r1, [sp, #4]
lsls r0, r1, #2
adds r2, r7, r0
str r2, [sp, #8]
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, #8]
cmp r7, r0
bhs _0829B06A
movs r0, #0
_0829B062:
stm r7!, {r0}
ldr r5, [sp, #8]
cmp r7, r5
blo _0829B062
_0829B06A:
str r1, [sp, #8]
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 sb, r0
mov r1, sb
str r1, [sp, #0x20]
cmp r8, r4
bhs _0829B132
_0829B084:
mov r2, r8
ldm r2!, {r6}
str r2, [sp, #0x14]
ldr r0, _0829B140
ands r6, r0
mov r4, sb
adds r4, #4
str r4, [sp, #0x1c]
cmp r6, #0
beq _0829B0DC
ldr r7, [sp, #8]
mov r5, sb
movs r1, #0
mov ip, r1
mov sl, r0
_0829B0A2:
ldm r7!, {r3}
adds r0, r3, #0
mov r2, sl
ands r0, r2
adds r1, r0, #0
muls r1, r6, r1
ldr r2, [r5]
adds r0, r2, #0
mov r4, sl
ands r0, r4
adds r1, r1, r0
mov r0, ip
adds r4, r1, r0
lsrs r1, r4, #0x10
lsrs r3, r3, #0x10
adds r0, r3, #0
muls r0, r6, r0
lsrs r2, r2, #0x10
adds r0, r0, r2
adds r2, r0, r1
lsrs r0, r2, #0x10
mov ip, r0
strh r2, [r5]
strh r4, [r5, #2]
adds r5, #4
ldr r1, [sp, #0xc]
cmp r7, r1
blo _0829B0A2
str r0, [r5]
_0829B0DC:
mov r2, r8
ldrh r6, [r2, #2]
cmp r6, #0
beq _0829B124
ldr r7, [sp, #8]
mov r5, sb
movs r4, #0
mov ip, r4
ldr r2, [r5]
ldr r3, _0829B140
_0829B0F0:
ldm r7!, {r1}
adds r0, r1, #0
ands r0, r3
muls r0, r6, r0
ldrh r4, [r5, #2]
adds r4, r4, r0
mov r8, r4
add r4, ip
lsrs r0, r4, #0x10
mov ip, r0
strh r4, [r5]
strh r2, [r5, #2]
adds r5, #4
lsrs r1, r1, #0x10
muls r1, r6, r1
ldr r0, [r5]
ands r0, r3
adds r1, r1, r0
mov r4, ip
adds r2, r1, r4
lsrs r0, r2, #0x10
mov ip, r0
ldr r1, [sp, #0xc]
cmp r7, r1
blo _0829B0F0
str r2, [r5]
_0829B124:
ldr r2, [sp, #0x14]
mov r8, r2
ldr r4, [sp, #0x1c]
mov sb, r4
ldr r5, [sp, #0x10]
cmp r8, r5
blo _0829B084
_0829B132:
ldr r0, [sp, #0x20]
ldr r1, [sp, #0x18]
adds r5, r0, r1
ldr r2, [sp, #4]
cmp r2, #0
ble _0829B156
b _0829B14E
.align 2, 0
_0829B140: .4byte 0x0000FFFF
_0829B144:
ldr r4, [sp, #4]
subs r4, #1
str r4, [sp, #4]
cmp r4, #0
ble _0829B156
_0829B14E:
subs r5, #4
ldr r0, [r5]
cmp r0, #0
beq _0829B144
_0829B156:
ldr r5, [sp, #4]
ldr r0, [sp]
str r5, [r0, #0x10]
ldr r0, [sp]
add sp, #0x24
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end _multiply
thumb_func_start _pow5mult
_pow5mult: @ 0x0829B16C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r7, r1, #0
adds r6, r2, #0
movs r1, #3
ands r1, r6
cmp r1, #0
beq _0829B196
ldr r0, _0829B1B8
subs r1, #1
lsls r1, r1, #2
adds r1, r1, r0
ldr r2, [r1]
mov r0, r8
adds r1, r7, #0
movs r3, #0
bl _multadd
adds r7, r0, #0
_0829B196:
asrs r6, r6, #2
cmp r6, #0
beq _0829B1FC
mov r0, r8
ldr r5, [r0, #0x48]
adds r4, r5, #0
cmp r5, #0
bne _0829B1D8
ldr r1, _0829B1BC
bl _i2b
mov r1, r8
str r0, [r1, #0x48]
adds r5, r0, #0
str r4, [r5]
b _0829B1D8
.align 2, 0
_0829B1B8: .4byte gUnknown_890F228
_0829B1BC: .4byte 0x00000271
_0829B1C0:
ldr r0, [r5]
adds r4, r0, #0
cmp r0, #0
bne _0829B1D6
mov r0, r8
adds r1, r5, #0
adds r2, r5, #0
bl _multiply
str r0, [r5]
str r4, [r0]
_0829B1D6:
adds r5, r0, #0
_0829B1D8:
movs r0, #1
ands r0, r6
cmp r0, #0
beq _0829B1F6
mov r0, r8
adds r1, r7, #0
adds r2, r5, #0
bl _multiply
adds r4, r0, #0
mov r0, r8
adds r1, r7, #0
bl _Bfree
adds r7, r4, #0
_0829B1F6:
asrs r6, r6, #1
cmp r6, #0
bne _0829B1C0
_0829B1FC:
adds r0, r7, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_end _pow5mult
thumb_func_start _lshift
_lshift: @ 0x0829B204
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov sl, r0
mov r8, r1
adds r5, r2, #0
asrs r6, r5, #5
ldr r1, [r1, #4]
mov r2, r8
ldr r0, [r2, #0x10]
adds r0, r6, r0
adds r7, r0, #1
ldr r2, [r2, #8]
cmp r7, r2
ble _0829B22E
_0829B226:
adds r1, #1
lsls r2, r2, #1
cmp r7, r2
bgt _0829B226
_0829B22E:
mov r0, sl
bl _Balloc
mov sb, r0
mov r4, sb
adds r4, #0x14
mov r0, r8
adds r0, #0x14
cmp r6, #0
ble _0829B24E
movs r1, #0
adds r2, r6, #0
_0829B246:
stm r4!, {r1}
subs r2, #1
cmp r2, #0
bne _0829B246
_0829B24E:
adds r3, r0, #0
mov r1, r8
ldr r0, [r1, #0x10]
lsls r0, r0, #2
adds r6, r3, r0
movs r0, #0x1f
ands r5, r0
cmp r5, #0
beq _0829B280
movs r0, #0x20
subs r1, r0, r5
movs r2, #0
_0829B266:
ldr r0, [r3]
lsls r0, r5
orrs r0, r2
stm r4!, {r0}
ldm r3!, {r2}
lsrs r2, r1
cmp r3, r6
blo _0829B266
str r2, [r4]
cmp r2, #0
beq _0829B288
adds r7, #1
b _0829B288
_0829B280:
ldm r3!, {r0}
stm r4!, {r0}
cmp r3, r6
blo _0829B280
_0829B288:
subs r0, r7, #1
mov r2, sb
str r0, [r2, #0x10]
mov r0, sl
mov r1, r8
bl _Bfree
mov r0, sb
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end _lshift
thumb_func_start __mcmp
__mcmp: @ 0x0829B2A4
push {r4, r5, lr}
adds r2, r0, #0
adds r5, r1, #0
ldr r0, [r2, #0x10]
ldr r1, [r5, #0x10]
subs r0, r0, r1
cmp r0, #0
bne _0829B2E0
adds r4, r2, #0
adds r4, #0x14
lsls r1, r1, #2
adds r3, r4, r1
adds r0, r5, #0
adds r0, #0x14
adds r1, r0, r1
_0829B2C2:
subs r3, #4
subs r1, #4
ldr r0, [r3]
ldr r2, [r1]
cmp r0, r2
beq _0829B2DA
movs r1, #1
cmp r0, r2
bhs _0829B2D6
subs r1, #2
_0829B2D6:
adds r0, r1, #0
b _0829B2E0
_0829B2DA:
cmp r3, r4
bhi _0829B2C2
movs r0, #0
_0829B2E0:
pop {r4, r5, pc}
.align 2, 0
thumb_func_end __mcmp
thumb_func_start __mdiff
__mdiff: @ 0x0829B2E4
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
adds r6, r0, #0
adds r5, r1, #0
mov r8, r2
adds r0, r5, #0
mov r1, r8
bl __mcmp
adds r4, r0, #0
cmp r4, #0
bne _0829B316
adds r0, r6, #0
movs r1, #0
bl _Balloc
adds r7, r0, #0
movs r0, #1
str r0, [r7, #0x10]
str r4, [r7, #0x14]
b _0829B3C6
_0829B316:
cmp r4, #0
bge _0829B324
adds r7, r5, #0
mov r5, r8
mov r8, r7
movs r4, #1
b _0829B326
_0829B324:
movs r4, #0
_0829B326:
ldr r1, [r5, #4]
adds r0, r6, #0
bl _Balloc
adds r7, r0, #0
str r4, [r7, #0xc]
ldr r0, [r5, #0x10]
mov sb, r0
adds r6, r5, #0
adds r6, #0x14
lsls r0, r0, #2
adds r0, r0, r6
mov sl, r0
mov r1, r8
ldr r0, [r1, #0x10]
movs r3, #0x14
add r3, r8
mov ip, r3
lsls r0, r0, #2
add r0, ip
str r0, [sp]
adds r4, r7, #0
adds r4, #0x14
movs r5, #0
ldr r0, _0829B3B0
mov r8, r0
_0829B35A:
ldm r6!, {r1}
str r1, [sp, #4]
mov r3, r8
ands r1, r3
mov r0, ip
adds r0, #4
mov ip, r0
subs r0, #4
ldm r0!, {r2}
adds r0, r2, #0
ands r0, r3
subs r1, r1, r0
adds r0, r1, r5
asrs r5, r0, #0x10
ldr r1, [sp, #4]
lsrs r3, r1, #0x10
lsrs r2, r2, #0x10
subs r3, r3, r2
adds r1, r3, r5
asrs r5, r1, #0x10
strh r1, [r4]
strh r0, [r4, #2]
adds r4, #4
ldr r3, [sp]
cmp ip, r3
blo _0829B35A
cmp r6, sl
bhs _0829B3BA
ldr r2, _0829B3B0
_0829B394:
ldm r6!, {r1}
adds r0, r1, #0
ands r0, r2
adds r0, r0, r5
asrs r5, r0, #0x10
lsrs r1, r1, #0x10
adds r1, r1, r5
asrs r5, r1, #0x10
strh r1, [r4]
strh r0, [r4, #2]
adds r4, #4
cmp r6, sl
blo _0829B394
b _0829B3BA
.align 2, 0
_0829B3B0: .4byte 0x0000FFFF
_0829B3B4:
movs r0, #1
rsbs r0, r0, #0
add sb, r0
_0829B3BA:
subs r4, #4
ldr r0, [r4]
cmp r0, #0
beq _0829B3B4
mov r1, sb
str r1, [r7, #0x10]
_0829B3C6:
adds r0, r7, #0
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_end __mdiff
thumb_func_start _ulp
_ulp: @ 0x0829B3D4
push {r4, lr}
ldr r2, _0829B3E8
ands r2, r0
ldr r0, _0829B3EC
adds r2, r2, r0
cmp r2, #0
ble _0829B3F0
adds r3, r2, #0
movs r4, #0
b _0829B41A
.align 2, 0
_0829B3E8: .4byte 0x7FF00000
_0829B3EC: .4byte 0xFCC00000
_0829B3F0:
rsbs r0, r2, #0
asrs r2, r0, #0x14
cmp r2, #0x13
bgt _0829B404
movs r0, #0x80
lsls r0, r0, #0xc
adds r3, r0, #0
asrs r3, r2
movs r4, #0
b _0829B41A
_0829B404:
movs r3, #0
subs r2, #0x14
cmp r2, #0x1e
bgt _0829B416
movs r0, #0x1f
subs r0, r0, r2
movs r1, #1
lsls r1, r0
b _0829B418
_0829B416:
movs r1, #1
_0829B418:
adds r4, r1, #0
_0829B41A:
adds r1, r4, #0
adds r0, r3, #0
pop {r4, pc}
thumb_func_end _ulp
thumb_func_start _b2d
_b2d: @ 0x0829B420
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r4, r1, #0
movs r1, #0x14
adds r1, r1, r0
mov r8, r1
ldr r0, [r0, #0x10]
lsls r0, r0, #2
adds r5, r1, r0
subs r5, #4
ldr r2, [r5]
adds r0, r2, #0
str r2, [sp]
bl _hi0bits
adds r3, r0, #0
movs r0, #0x20
subs r0, r0, r3
str r0, [r4]
ldr r2, [sp]
cmp r3, #0xa
bgt _0829B480
movs r0, #0xb
subs r0, r0, r3
adds r1, r2, #0
lsrs r1, r0
ldr r0, _0829B468
adds r6, r1, #0
orrs r6, r0
cmp r5, r8
bls _0829B46C
subs r5, #4
ldr r1, [r5]
b _0829B46E
.align 2, 0
_0829B468: .4byte 0x3FF00000
_0829B46C:
movs r1, #0
_0829B46E:
adds r0, r3, #0
adds r0, #0x15
lsls r2, r0
movs r0, #0xb
subs r0, r0, r3
lsrs r1, r0
adds r7, r2, #0
orrs r7, r1
b _0829B4CC
_0829B480:
cmp r5, r8
bls _0829B48A
subs r5, #4
ldr r4, [r5]
b _0829B48C
_0829B48A:
movs r4, #0
_0829B48C:
subs r3, #0xb
cmp r3, #0
beq _0829B4C4
lsls r2, r3
movs r0, #0x20
subs r0, r0, r3
adds r1, r4, #0
lsrs r1, r0
ldr r0, _0829B4B0
orrs r1, r0
adds r6, r2, #0
orrs r6, r1
cmp r5, r8
bls _0829B4B4
subs r5, #4
ldr r2, [r5]
b _0829B4B6
.align 2, 0
_0829B4B0: .4byte 0x3FF00000
_0829B4B4:
movs r2, #0
_0829B4B6:
lsls r4, r3
movs r0, #0x20
subs r0, r0, r3
lsrs r2, r0
adds r7, r4, #0
orrs r7, r2
b _0829B4CC
_0829B4C4:
ldr r0, _0829B4D8
adds r6, r2, #0
orrs r6, r0
adds r7, r4, #0
_0829B4CC:
adds r1, r7, #0
adds r0, r6, #0
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829B4D8: .4byte 0x3FF00000
thumb_func_end _b2d
thumb_func_start _d2b
_d2b: @ 0x0829B4DC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r3
ldr r3, [sp, #0x28]
mov sl, r3
adds r5, r2, #0
adds r4, r1, #0
movs r1, #1
bl _Balloc
adds r6, r0, #0
movs r0, #0x14
adds r0, r0, r6
mov r8, r0
ldr r2, _0829B544
adds r1, r4, #0
ands r2, r1
str r2, [sp, #4]
ldr r0, _0829B548
ands r4, r0
lsrs r7, r4, #0x14
cmp r7, #0
beq _0829B51A
movs r0, #0x80
lsls r0, r0, #0xd
orrs r0, r2
str r0, [sp, #4]
_0829B51A:
str r5, [sp]
cmp r5, #0
beq _0829B564
mov r0, sp
bl _lo0bits
adds r2, r0, #0
cmp r2, #0
beq _0829B54C
movs r0, #0x20
subs r0, r0, r2
ldr r1, [sp, #4]
lsls r1, r0
ldr r0, [sp]
orrs r0, r1
str r0, [r6, #0x14]
ldr r0, [sp, #4]
lsrs r0, r2
str r0, [sp, #4]
b _0829B550
.align 2, 0
_0829B544: .4byte 0x000FFFFF
_0829B548: .4byte 0x7FFFFFFF
_0829B54C:
ldr r0, [sp]
str r0, [r6, #0x14]
_0829B550:
ldr r0, [sp, #4]
mov r1, r8
str r0, [r1, #4]
movs r1, #1
cmp r0, #0
beq _0829B55E
movs r1, #2
_0829B55E:
str r1, [r6, #0x10]
adds r4, r1, #0
b _0829B578
_0829B564:
add r0, sp, #4
bl _lo0bits
adds r2, r0, #0
ldr r0, [sp, #4]
str r0, [r6, #0x14]
movs r0, #1
str r0, [r6, #0x10]
movs r4, #1
adds r2, #0x20
_0829B578:
cmp r7, #0
beq _0829B594
ldr r3, _0829B590
adds r0, r2, r3
adds r0, r7, r0
mov r1, sb
str r0, [r1]
movs r0, #0x35
subs r0, r0, r2
mov r3, sl
str r0, [r3]
b _0829B5B0
.align 2, 0
_0829B590: .4byte 0xFFFFFBCD
_0829B594:
ldr r1, _0829B5C0
adds r0, r2, r1
mov r3, sb
str r0, [r3]
lsls r0, r4, #2
add r0, r8
subs r0, #4
ldr r0, [r0]
bl _hi0bits
lsls r1, r4, #5
subs r1, r1, r0
mov r0, sl
str r1, [r0]
_0829B5B0:
adds r0, r6, #0
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829B5C0: .4byte 0xFFFFFBCE
thumb_func_end _d2b
thumb_func_start _ratio
_ratio: @ 0x0829B5C4
push {r4, r5, r6, r7, lr}
sub sp, #0x10
adds r4, r0, #0
adds r5, r1, #0
mov r1, sp
bl _b2d
str r0, [sp, #8]
str r1, [sp, #0xc]
add r1, sp, #4
adds r0, r5, #0
bl _b2d
adds r7, r1, #0
adds r6, r0, #0
ldr r2, [sp]
ldr r0, [sp, #4]
subs r2, r2, r0
ldr r0, [r4, #0x10]
ldr r1, [r5, #0x10]
subs r0, r0, r1
lsls r0, r0, #5
adds r0, r2, r0
cmp r0, #0
ble _0829B600
lsls r0, r0, #0x14
ldr r1, [sp, #8]
adds r0, r1, r0
str r0, [sp, #8]
b _0829B604
_0829B600:
lsls r0, r0, #0x14
subs r6, r6, r0
_0829B604:
ldr r0, [sp, #8]
ldr r1, [sp, #0xc]
adds r3, r7, #0
adds r2, r6, #0
bl __divdf3
add sp, #0x10
pop {r4, r5, r6, r7, pc}
thumb_func_end _ratio
thumb_func_start _mprec_log10
_mprec_log10: @ 0x0829B614
push {r4, lr}
adds r4, r0, #0
ldr r1, _0829B630
ldr r0, _0829B62C
cmp r4, #0x17
bgt _0829B638
ldr r0, _0829B634
lsls r1, r4, #3
adds r1, r1, r0
ldr r0, [r1]
ldr r1, [r1, #4]
b _0829B64A
.align 2, 0
_0829B62C: .4byte 0x3FF00000
_0829B630: .4byte 0x00000000
_0829B634: .4byte gUnknown_890F234
_0829B638:
cmp r4, #0
ble _0829B64A
_0829B63C:
ldr r3, _0829B650
ldr r2, _0829B64C
bl __muldf3
subs r4, #1
cmp r4, #0
bgt _0829B63C
_0829B64A:
pop {r4, pc}
.align 2, 0
_0829B64C: .4byte 0x40240000
_0829B650: .4byte 0x00000000
thumb_func_end _mprec_log10
thumb_func_start isinf
isinf: @ 0x0829B654
ldr r3, _0829B670
ands r3, r0
rsbs r2, r1, #0
orrs r2, r1
lsrs r2, r2, #0x1f
orrs r3, r2
ldr r0, _0829B674
subs r3, r0, r3
rsbs r0, r3, #0
orrs r3, r0
lsrs r3, r3, #0x1f
movs r0, #1
subs r0, r0, r3
bx lr
.align 2, 0
_0829B670: .4byte 0x7FFFFFFF
_0829B674: .4byte 0x7FF00000
thumb_func_end isinf
thumb_func_start isnan
isnan: @ 0x0829B678
ldr r3, _0829B690
ands r3, r0
rsbs r2, r1, #0
orrs r2, r1
lsrs r2, r2, #0x1f
orrs r3, r2
ldr r0, _0829B694
subs r3, r0, r3
lsrs r3, r3, #0x1f
adds r0, r3, #0
bx lr
.align 2, 0
_0829B690: .4byte 0x7FFFFFFF
_0829B694: .4byte 0x7FF00000
thumb_func_end isnan
thumb_func_start _sbrk_r
_sbrk_r: @ 0x0829B698
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
ldr r4, _0829B6C0
movs r1, #0
str r1, [r4]
bl _sbrk
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829B6BA
ldr r0, [r4]
cmp r0, #0
beq _0829B6BA
str r0, [r5]
_0829B6BA:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829B6C0: .4byte gUnknown_300764C
thumb_func_end _sbrk_r
thumb_func_start __sread
__sread: @ 0x0829B6C4
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 _read_r
adds r1, r0, #0
cmp r1, #0
blt _0829B6E6
ldr r0, [r5, #0x50]
adds r0, r0, r1
str r0, [r5, #0x50]
b _0829B6EE
_0829B6E6:
ldr r0, _0829B6F4
ldrh r2, [r5, #0xc]
ands r0, r2
strh r0, [r5, #0xc]
_0829B6EE:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829B6F4: .4byte 0xFFFFEFFF
thumb_func_end __sread
thumb_func_start __swrite
__swrite: @ 0x0829B6F8
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
movs r0, #0x80
lsls r0, r0, #1
ldrh r1, [r4, #0xc]
ands r0, r1
cmp r0, #0
beq _0829B71A
ldr r0, [r4, #0x54]
movs r2, #0xe
ldrsh r1, [r4, r2]
movs r2, #0
movs r3, #2
bl _lseek_r
_0829B71A:
ldr r0, _0829B734
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 _write_r
pop {r4, r5, r6, pc}
.align 2, 0
_0829B734: .4byte 0xFFFFEFFF
thumb_func_end __swrite
thumb_func_start __sseek
__sseek: @ 0x0829B738
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 _lseek_r
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829B764
ldr r0, _0829B760
ldrh r2, [r5, #0xc]
ands r0, r2
strh r0, [r5, #0xc]
b _0829B772
.align 2, 0
_0829B760: .4byte 0xFFFFEFFF
_0829B764:
movs r2, #0x80
lsls r2, r2, #5
adds r0, r2, #0
ldrh r2, [r5, #0xc]
orrs r0, r2
strh r0, [r5, #0xc]
str r1, [r5, #0x50]
_0829B772:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_end __sseek
thumb_func_start __sclose
__sclose: @ 0x0829B778
push {lr}
ldr r2, [r0, #0x54]
movs r3, #0xe
ldrsh r1, [r0, r3]
adds r0, r2, #0
bl _close_r
pop {pc}
thumb_func_end __sclose
thumb_func_start strlen
strlen: @ 0x0829B788
push {r4, r5, lr}
adds r1, r0, #0
adds r5, r1, #0
movs r0, #3
ands r0, r1
cmp r0, #0
bne _0829B7C0
adds r2, r1, #0
ldr r1, [r2]
ldr r4, _0829B7A4
adds r0, r1, r4
bics r0, r1
ldr r3, _0829B7A8
b _0829B7B4
.align 2, 0
_0829B7A4: .4byte 0xFEFEFEFF
_0829B7A8: .4byte 0x80808080
_0829B7AC:
adds r2, #4
ldr r1, [r2]
adds r0, r1, r4
bics r0, r1
_0829B7B4:
ands r0, r3
cmp r0, #0
beq _0829B7AC
adds r1, r2, #0
b _0829B7C0
_0829B7BE:
adds r1, #1
_0829B7C0:
ldrb r0, [r1]
cmp r0, #0
bne _0829B7BE
subs r0, r1, r5
pop {r4, r5, pc}
.align 2, 0
thumb_func_end strlen
thumb_func_start sub_0829B7CC
sub_0829B7CC: @ 0x0829B7CC
adds r3, r0, #0
movs r1, #0
ldr r2, _0829B7D4
b _0829B7E0
.align 2, 0
_0829B7D4: .4byte gUnknown_3001AB0
_0829B7D8:
adds r2, #8
adds r1, #1
cmp r1, #0x13
bgt _0829B7E6
_0829B7E0:
ldr r0, [r2]
cmp r0, r3
bne _0829B7D8
_0829B7E6:
adds r0, r1, #0
bx lr
.align 2, 0
thumb_func_end sub_0829B7CC
thumb_func_start sub_0829B7EC
sub_0829B7EC: @ 0x0829B7EC
adds r2, r0, #0
ldr r0, _0829B800
ldr r1, [r0]
ldr r0, [r1, #4]
movs r3, #0xe
ldrsh r0, [r0, r3]
cmp r2, r0
bne _0829B808
ldr r0, _0829B804
b _0829B82E
.align 2, 0
_0829B800: .4byte gUnknown_203CF1C
_0829B804: .4byte gUnknown_3001AA4
_0829B808:
ldr r0, [r1, #8]
movs r3, #0xe
ldrsh r0, [r0, r3]
cmp r2, r0
bne _0829B81C
ldr r0, _0829B818
b _0829B82E
.align 2, 0
_0829B818: .4byte gUnknown_3001AA8
_0829B81C:
ldr r0, [r1, #0xc]
movs r1, #0xe
ldrsh r0, [r0, r1]
cmp r2, r0
beq _0829B82C
adds r0, r2, #0
subs r0, #0x20
b _0829B830
_0829B82C:
ldr r0, _0829B834
_0829B82E:
ldr r0, [r0]
_0829B830:
bx lr
.align 2, 0
_0829B834: .4byte gUnknown_3001AAC
thumb_func_end sub_0829B7EC
thumb_func_start initialise_monitor_handles
initialise_monitor_handles: @ 0x0829B838
push {r4, r5, lr}
sub sp, #0xc
ldr r4, _0829B894
str r4, [sp]
movs r3, #3
str r3, [sp, #8]
movs r0, #0
str r0, [sp, #4]
movs r5, #1
adds r0, r5, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
ldr r5, _0829B898
str r2, [r5]
str r4, [sp]
str r3, [sp, #8]
movs r0, #4
str r0, [sp, #4]
ldr r3, _0829B89C
movs r4, #1
adds r0, r4, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
ldr r0, _0829B8A0
str r2, [r0]
str r2, [r3]
ldr r2, _0829B8A4
adds r1, r2, #0
subs r4, #2
adds r0, r2, #0
adds r0, #0x98
_0829B87A:
str r4, [r0]
subs r0, #8
cmp r0, r1
bge _0829B87A
movs r0, #0
ldr r1, [r5]
str r1, [r2]
str r0, [r2, #4]
ldr r1, [r3]
str r1, [r2, #8]
str r0, [r2, #0xc]
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_0829B894: .4byte gUnknown_890F34C
_0829B898: .4byte gUnknown_3001AA4
_0829B89C: .4byte gUnknown_3001AA8
_0829B8A0: .4byte gUnknown_3001AAC
_0829B8A4: .4byte gUnknown_3001AB0
thumb_func_end initialise_monitor_handles
thumb_func_start sub_0829B8A8
sub_0829B8A8: @ 0x0829B8A8
push {r4, lr}
movs r3, #0x13
movs r4, #0
adds r0, r3, #0
adds r1, r4, #0
svc #0xab
adds r2, r0, #0
adds r0, r2, #0
pop {r4, pc}
.align 2, 0
thumb_func_end sub_0829B8A8
thumb_func_start sub_0829B8BC
sub_0829B8BC: @ 0x0829B8BC
push {r4, r5, lr}
adds r5, r0, #0
bl __errno
adds r4, r0, #0
bl sub_0829B8A8
str r0, [r4]
adds r0, r5, #0
pop {r4, r5, pc}
thumb_func_end sub_0829B8BC
thumb_func_start sub_0829B8D0
sub_0829B8D0: @ 0x0829B8D0
push {lr}
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _0829B8E0
adds r0, r1, #0
b _0829B8E6
_0829B8E0:
adds r0, r1, #0
bl sub_0829B8BC
_0829B8E6:
pop {pc}
thumb_func_end sub_0829B8D0
thumb_func_start _swiread
_swiread: @ 0x0829B8E8
push {r4, r5, lr}
sub sp, #0xc
adds r4, r1, #0
adds r5, r2, #0
bl sub_0829B7EC
str r0, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
movs r3, #6
adds r0, r3, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
adds r0, r2, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end _swiread
thumb_func_start _read
_read: @ 0x0829B90C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r7, r2, #0
bl sub_0829B7EC
bl sub_0829B7CC
adds r6, r0, #0
adds r0, r4, #0
adds r1, r5, #0
adds r2, r7, #0
bl _swiread
cmp r0, #0
bge _0829B936
movs r0, #1
rsbs r0, r0, #0
bl sub_0829B8BC
b _0829B94C
_0829B936:
subs r2, r7, r0
cmp r6, #0x14
beq _0829B94A
ldr r0, _0829B950
lsls r1, r6, #3
adds r0, #4
adds r1, r1, r0
ldr r0, [r1]
adds r0, r0, r2
str r0, [r1]
_0829B94A:
adds r0, r2, #0
_0829B94C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829B950: .4byte gUnknown_3001AB0
thumb_func_end _read
thumb_func_start _swilseek
_swilseek: @ 0x0829B954
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #8
mov r8, r0
adds r5, r1, #0
adds r4, r2, #0
bl sub_0829B7EC
adds r7, r0, #0
bl sub_0829B7CC
adds r6, r0, #0
cmp r4, #1
bne _0829B98A
cmp r6, #0x14
bne _0829B97C
movs r0, #1
rsbs r0, r0, #0
b _0829B9CC
_0829B97C:
ldr r0, _0829B9D4
lsls r1, r6, #3
adds r0, #4
adds r1, r1, r0
ldr r0, [r1]
adds r5, r5, r0
movs r4, #0
_0829B98A:
cmp r4, #2
bne _0829B99C
str r7, [sp]
movs r3, #0xc
adds r0, r3, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
adds r5, r5, r2
_0829B99C:
mov r0, r8
bl sub_0829B7EC
str r0, [sp]
str r5, [sp, #4]
movs r3, #0xa
adds r0, r3, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
cmp r6, #0x14
beq _0829B9C2
cmp r2, #0
bne _0829B9C2
ldr r0, _0829B9D4
lsls r1, r6, #3
adds r0, #4
adds r1, r1, r0
str r5, [r1]
_0829B9C2:
movs r0, #1
rsbs r0, r0, #0
cmp r2, #0
bne _0829B9CC
adds r0, r5, #0
_0829B9CC:
add sp, #8
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829B9D4: .4byte gUnknown_3001AB0
thumb_func_end _swilseek
thumb_func_start _lseek
_lseek: @ 0x0829B9D8
push {lr}
bl _swilseek
bl sub_0829B8D0
pop {pc}
thumb_func_end _lseek
thumb_func_start _swiwrite
_swiwrite: @ 0x0829B9E4
push {r4, r5, lr}
sub sp, #0xc
adds r4, r1, #0
adds r5, r2, #0
bl sub_0829B7EC
str r0, [sp]
str r4, [sp, #4]
str r5, [sp, #8]
movs r3, #5
adds r0, r3, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
adds r0, r2, #0
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
thumb_func_end _swiwrite
thumb_func_start _write
_write: @ 0x0829BA08
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
bl sub_0829B7EC
bl sub_0829B7CC
adds r7, r0, #0
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl _swiwrite
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
beq _0829BA30
cmp r0, r6
bne _0829BA38
_0829BA30:
adds r0, r1, #0
bl sub_0829B8BC
b _0829BA4E
_0829BA38:
subs r2, r6, r0
cmp r7, #0x14
beq _0829BA4C
ldr r0, _0829BA50
lsls r1, r7, #3
adds r0, #4
adds r1, r1, r0
ldr r0, [r1]
adds r0, r0, r2
str r0, [r1]
_0829BA4C:
adds r0, r2, #0
_0829BA4E:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0829BA50: .4byte gUnknown_3001AB0
thumb_func_end _write
thumb_func_start _swiopen
_swiopen: @ 0x0829BA54
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0xc
adds r7, r0, #0
adds r4, r1, #0
movs r5, #0
movs r6, #1
rsbs r6, r6, #0
adds r0, r6, #0
bl sub_0829B7CC
mov r8, r0
cmp r0, #0x14
bne _0829BA76
adds r0, r6, #0
b _0829BAEA
_0829BA76:
movs r0, #2
ands r0, r4
cmp r0, #0
beq _0829BA80
movs r5, #2
_0829BA80:
movs r0, #0x80
lsls r0, r0, #2
ands r0, r4
cmp r0, #0
beq _0829BA8E
movs r0, #4
orrs r5, r0
_0829BA8E:
movs r0, #0x80
lsls r0, r0, #3
ands r0, r4
cmp r0, #0
beq _0829BA9C
movs r0, #4
orrs r5, r0
_0829BA9C:
movs r1, #8
ands r4, r1
cmp r4, #0
beq _0829BAAC
movs r0, #5
rsbs r0, r0, #0
ands r5, r0
orrs r5, r1
_0829BAAC:
str r7, [sp]
adds r0, r7, #0
bl strlen
str r0, [sp, #8]
str r5, [sp, #4]
movs r2, #1
adds r0, r2, #0
mov r1, sp
svc #0xab
adds r3, r0, #0
cmp r3, #0
blt _0829BAE4
ldr r0, _0829BAE0
mov r1, r8
lsls r2, r1, #3
adds r1, r2, r0
str r3, [r1]
adds r0, #4
adds r2, r2, r0
movs r0, #0
str r0, [r2]
adds r0, r3, #0
adds r0, #0x20
b _0829BAEA
.align 2, 0
_0829BAE0: .4byte gUnknown_3001AB0
_0829BAE4:
adds r0, r3, #0
bl sub_0829B8BC
_0829BAEA:
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_end _swiopen
thumb_func_start _open
_open: @ 0x0829BAF4
push {r1, r2, r3}
push {lr}
ldr r1, [sp, #4]
bl _swiopen
bl sub_0829B8D0
pop {r3}
add sp, #0xc
bx r3
thumb_func_end _open
thumb_func_start _swiclose
_swiclose: @ 0x0829BB08
push {lr}
sub sp, #4
bl sub_0829B7EC
str r0, [sp]
bl sub_0829B7CC
adds r1, r0, #0
cmp r1, #0x14
beq _0829BB28
ldr r0, _0829BB38
lsls r1, r1, #3
adds r1, r1, r0
movs r0, #1
rsbs r0, r0, #0
str r0, [r1]
_0829BB28:
movs r3, #2
adds r0, r3, #0
mov r1, sp
svc #0xab
adds r2, r0, #0
adds r0, r2, #0
add sp, #4
pop {pc}
.align 2, 0
_0829BB38: .4byte gUnknown_3001AB0
thumb_func_end _swiclose
thumb_func_start _close
_close: @ 0x0829BB3C
push {lr}
bl _swiclose
bl sub_0829B8D0
pop {pc}
thumb_func_end _close
thumb_func_start _exit
_exit: @ 0x0829BB48
mov ip, r3
mov r3, r8
push {r3}
mov r3, ip
movs r2, #0x18
ldr r3, _0829BB64
adds r0, r2, #0
adds r1, r3, #0
svc #0xab
mov r8, r0
pop {r3}
mov r8, r3
bx lr
.align 2, 0
_0829BB64: .4byte 0x00020026
thumb_func_end _exit
thumb_func_start _kill
_kill: @ 0x0829BB68
mov ip, r3
mov r3, r8
push {r3}
mov r3, ip
movs r2, #0x18
ldr r3, _0829BB84
adds r0, r2, #0
adds r1, r3, #0
svc #0xab
mov r8, r0
pop {r3}
mov r8, r3
bx lr
.align 2, 0
_0829BB84: .4byte 0x00020026
thumb_func_end _kill
thumb_func_start _getpid
_getpid: @ 0x0829BB88
movs r0, #1
bx lr
thumb_func_end _getpid
thumb_func_start _sbrk
_sbrk: @ 0x0829BB8C
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r4, _0829BBBC
ldr r0, [r4]
cmp r0, #0
bne _0829BB9C
ldr r0, _0829BBC0
str r0, [r4]
_0829BB9C:
ldr r5, [r4]
adds r0, r5, r6
cmp r0, sp
bls _0829BBB2
ldr r1, _0829BBC4
movs r0, #1
movs r2, #0x20
bl _write
bl abort
_0829BBB2:
ldr r0, [r4]
adds r0, r0, r6
str r0, [r4]
adds r0, r5, #0
pop {r4, r5, r6, pc}
.align 2, 0
_0829BBBC: .4byte gUnknown_3001AA0
_0829BBC0: .4byte gUnknown_88BA568
_0829BBC4: .4byte gUnknown_890F350
thumb_func_end _sbrk
thumb_func_start _fstat
_fstat: @ 0x0829BBC8
movs r0, #0x80
lsls r0, r0, #6
str r0, [r1, #4]
movs r0, #0
bx lr
.align 2, 0
thumb_func_end _fstat
thumb_func_start _unlink
_unlink: @ 0x0829BBD4
movs r0, #1
rsbs r0, r0, #0
bx lr
.align 2, 0
thumb_func_end _unlink
thumb_func_start _raise
_raise: @ 0x0829BBDC
bx lr
.align 2, 0
thumb_func_end _raise
thumb_func_start _gettimeofday
_gettimeofday: @ 0x0829BBE0
push {r4, r5, lr}
adds r2, r0, #0
adds r3, r1, #0
cmp r2, #0
beq _0829BBFE
movs r4, #0x11
movs r5, #0
adds r0, r4, #0
adds r1, r5, #0
svc #0xab
adds r5, r0, #0
adds r4, r5, #0
str r4, [r2]
movs r0, #0
str r0, [r2, #4]
_0829BBFE:
cmp r3, #0
beq _0829BC08
movs r0, #0
str r0, [r3]
str r0, [r3, #4]
_0829BC08:
movs r0, #0
pop {r4, r5, pc}
thumb_func_end _gettimeofday
thumb_func_start _times
_times: @ 0x0829BC0C
push {r4, r5, lr}
adds r2, r0, #0
movs r4, #0x10
movs r5, #0
adds r0, r4, #0
adds r1, r5, #0
svc #0xab
adds r3, r0, #0
cmp r2, #0
beq _0829BC2A
str r3, [r2]
movs r0, #0
str r0, [r2, #4]
str r0, [r2, #8]
str r0, [r2, #0xc]
_0829BC2A:
adds r0, r3, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_end _times
thumb_func_start _write_r
_write_r: @ 0x0829BC30
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
adds r1, r2, #0
adds r2, r3, #0
ldr r4, _0829BC5C
movs r3, #0
str r3, [r4]
bl _write
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829BC56
ldr r0, [r4]
cmp r0, #0
beq _0829BC56
str r0, [r5]
_0829BC56:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829BC5C: .4byte gUnknown_300764C
thumb_func_end _write_r
thumb_func_start _calloc_r
_calloc_r: @ 0x0829BC60
push {r4, lr}
muls r1, r2, r1
bl _malloc_r
adds r4, r0, #0
cmp r4, #0
bne _0829BC72
movs r0, #0
b _0829BCB6
_0829BC72:
adds r0, r4, #0
subs r0, #8
ldr r0, [r0, #4]
movs r1, #4
rsbs r1, r1, #0
ands r0, r1
subs r2, r0, #4
cmp r2, #0x24
bhi _0829BCAC
adds r1, r4, #0
cmp r2, #0x13
bls _0829BCA2
movs r0, #0
stm r1!, {r0}
str r0, [r4, #4]
adds r1, #4
cmp r2, #0x1b
bls _0829BCA2
stm r1!, {r0}
stm r1!, {r0}
cmp r2, #0x23
bls _0829BCA2
stm r1!, {r0}
stm r1!, {r0}
_0829BCA2:
movs r0, #0
stm r1!, {r0}
stm r1!, {r0}
str r0, [r1]
b _0829BCB4
_0829BCAC:
adds r0, r4, #0
movs r1, #0
bl memset
_0829BCB4:
adds r0, r4, #0
_0829BCB6:
pop {r4, pc}
thumb_func_end _calloc_r
thumb_func_start _close_r
_close_r: @ 0x0829BCB8
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
ldr r4, _0829BCE0
movs r1, #0
str r1, [r4]
bl _close
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829BCDA
ldr r0, [r4]
cmp r0, #0
beq _0829BCDA
str r0, [r5]
_0829BCDA:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829BCE0: .4byte gUnknown_300764C
thumb_func_end _close_r
thumb_func_start __errno
__errno: @ 0x0829BCE4
ldr r0, _0829BCEC
ldr r0, [r0]
bx lr
.align 2, 0
_0829BCEC: .4byte gUnknown_203CF1C
thumb_func_end __errno
thumb_func_start _fstat_r
_fstat_r: @ 0x0829BCF0
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
adds r1, r2, #0
ldr r4, _0829BD18
movs r2, #0
str r2, [r4]
bl _fstat
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829BD14
ldr r0, [r4]
cmp r0, #0
beq _0829BD14
str r0, [r5]
_0829BD14:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829BD18: .4byte gUnknown_300764C
thumb_func_end _fstat_r
thumb_func_start abort
abort: @ 0x0829BD1C
mov ip, r3
mov r3, r8
push {r3}
mov r3, ip
movs r2, #0x18
ldr r3, _0829BD38
adds r0, r2, #0
adds r1, r3, #0
svc #0xab
mov r8, r0
pop {r3}
mov r8, r3
bx lr
.align 2, 0
_0829BD38: .4byte 0x00020022
thumb_func_end abort
thumb_func_start isatty
isatty: @ 0x0829BD3C
movs r0, #1
bx lr
thumb_func_end isatty
thumb_func_start alarm
alarm: @ 0x0829BD40
bx lr
.align 2, 0
thumb_func_end alarm
thumb_func_start _lseek_r
_lseek_r: @ 0x0829BD44
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
adds r1, r2, #0
adds r2, r3, #0
ldr r4, _0829BD70
movs r3, #0
str r3, [r4]
bl _lseek
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829BD6A
ldr r0, [r4]
cmp r0, #0
beq _0829BD6A
str r0, [r5]
_0829BD6A:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829BD70: .4byte gUnknown_300764C
thumb_func_end _lseek_r
thumb_func_start _read_r
_read_r: @ 0x0829BD74
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
adds r1, r2, #0
adds r2, r3, #0
ldr r4, _0829BDA0
movs r3, #0
str r3, [r4]
bl _read
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0829BD9A
ldr r0, [r4]
cmp r0, #0
beq _0829BD9A
str r0, [r5]
_0829BD9A:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
_0829BDA0: .4byte gUnknown_300764C