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