summaryrefslogtreecommitdiff
path: root/asm/cute_sketch.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/cute_sketch.s')
-rw-r--r--asm/cute_sketch.s3487
1 files changed, 3487 insertions, 0 deletions
diff --git a/asm/cute_sketch.s b/asm/cute_sketch.s
new file mode 100644
index 000000000..0f1b217a7
--- /dev/null
+++ b/asm/cute_sketch.s
@@ -0,0 +1,3487 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FC7A0
+sub_80FC7A0: @ 80FC7A0
+ push {lr}
+ ldr r2, _080FC7E8 @ =gUnknown_03005DEC
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FC7EC @ =gUnknown_03005E00
+ ldrb r1, [r0, 0x1F]
+ strb r1, [r2]
+ ldr r2, _080FC7F0 @ =gUnknown_03005DE8
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FC7F4 @ =gUnknown_03005DFC
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FC7F8 @ =gUnknown_03005DF8
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FC7FC @ =gUnknown_03005DF0
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FC800 @ =gUnknown_03005E04
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FC804 @ =gUnknown_03005DF4
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrb r0, [r0]
+ subs r0, 0x2
+ cmp r0, 0x22
+ bls _080FC7DC
+ b _080FC928
+_080FC7DC:
+ lsls r0, 2
+ ldr r1, _080FC808 @ =_080FC80C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FC7E8: .4byte gUnknown_03005DEC
+_080FC7EC: .4byte gUnknown_03005E00
+_080FC7F0: .4byte gUnknown_03005DE8
+_080FC7F4: .4byte gUnknown_03005DFC
+_080FC7F8: .4byte gUnknown_03005DF8
+_080FC7FC: .4byte gUnknown_03005DF0
+_080FC800: .4byte gUnknown_03005E04
+_080FC804: .4byte gUnknown_03005DF4
+_080FC808: .4byte _080FC80C
+ .align 2, 0
+_080FC80C:
+ .4byte _080FC898
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8F8
+ .4byte _080FC928
+ .4byte _080FC89E
+ .4byte _080FC8A4
+ .4byte _080FC8B8
+ .4byte _080FC8CA
+ .4byte _080FC928
+ .4byte _080FC8E0
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC8E6
+ .4byte _080FC8C4
+ .4byte _080FC8EC
+ .4byte _080FC8F2
+ .4byte _080FC928
+ .4byte _080FC928
+ .4byte _080FC904
+_080FC898:
+ bl sub_80FCAA4
+ b _080FC928
+_080FC89E:
+ bl sub_80FCB5C
+ b _080FC928
+_080FC8A4:
+ bl sub_80FCD54
+ ldr r0, _080FC8B4 @ =gUnknown_03005E00
+ ldrb r0, [r0]
+ bl sub_80FCC18
+ b _080FC928
+ .align 2, 0
+_080FC8B4: .4byte gUnknown_03005E00
+_080FC8B8:
+ bl sub_80FCD54
+ bl sub_80FCEA4
+ bl sub_80FCCBC
+_080FC8C4:
+ bl sub_80FCEA4
+ b _080FC928
+_080FC8CA:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ b _080FC928
+_080FC8E0:
+ bl sub_80FCF3C
+ b _080FC928
+_080FC8E6:
+ bl sub_80FCD54
+ b _080FC928
+_080FC8EC:
+ bl sub_80FD06C
+ b _080FC928
+_080FC8F2:
+ bl sub_80FD114
+ b _080FC928
+_080FC8F8:
+ bl sub_80FCAC4
+ movs r0, 0x3
+ bl sub_80FC92C
+ b _080FC928
+_080FC904:
+ bl sub_80FCD54
+ bl sub_80FD06C
+ bl sub_80FD114
+ bl sub_80FCCBC
+ bl sub_80FCB5C
+ bl sub_80FCB5C
+ movs r0, 0x2
+ bl sub_80FC92C
+ movs r0, 0x4
+ bl sub_80FC9E4
+_080FC928:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FC7A0
+
+ thumb_func_start sub_80FC92C
+sub_80FC92C: @ 80FC92C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r2, 0
+ ldr r0, _080FC9CC @ =gUnknown_03005DF0
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FC9BE
+ ldr r1, _080FC9D0 @ =gUnknown_03005DF8
+ mov r12, r1
+ ldr r3, _080FC9D4 @ =gUnknown_03005E04
+ mov r10, r3
+ ldr r0, _080FC9D8 @ =gUnknown_03005DE8
+ mov r9, r0
+_080FC952:
+ ldr r1, _080FC9DC @ =gUnknown_03005DFC
+ ldrb r0, [r1]
+ adds r0, r2
+ mov r3, r10
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FC9E0 @ =gUnknown_03005DEC
+ ldr r1, [r3]
+ adds r1, r0
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r4, 0
+ adds r5, r2, 0x1
+ mov r0, r12
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _080FC9B2
+ movs r6, 0x80
+ lsls r6, 8
+_080FC97E:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FC9A2
+ movs r0, 0x1F
+ ands r0, r1
+ adds r0, r7
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _080FC998
+ movs r2, 0x1F
+_080FC998:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FC9A2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, 0x2
+ mov r1, r12
+ ldrb r1, [r1]
+ cmp r4, r1
+ bcc _080FC97E
+_080FC9B2:
+ lsls r0, r5, 24
+ lsrs r2, r0, 24
+ mov r3, r8
+ ldrb r3, [r3]
+ cmp r2, r3
+ bcc _080FC952
+_080FC9BE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FC9CC: .4byte gUnknown_03005DF0
+_080FC9D0: .4byte gUnknown_03005DF8
+_080FC9D4: .4byte gUnknown_03005E04
+_080FC9D8: .4byte gUnknown_03005DE8
+_080FC9DC: .4byte gUnknown_03005DFC
+_080FC9E0: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FC92C
+
+ thumb_func_start sub_80FC9E4
+sub_80FC9E4: @ 80FC9E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCA8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCA7C
+ ldr r1, _080FCA90 @ =gUnknown_03005DF8
+ mov r10, r1
+_080FCA02:
+ ldr r3, _080FCA94 @ =gUnknown_03005DFC
+ ldrb r0, [r3]
+ adds r0, r2
+ ldr r3, _080FCA98 @ =gUnknown_03005E04
+ ldrb r1, [r3]
+ muls r0, r1
+ lsls r0, 1
+ ldr r3, _080FCA9C @ =gUnknown_03005DEC
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r3, _080FCAA0 @ =gUnknown_03005DE8
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r3, r1, r0
+ movs r5, 0
+ adds r7, r2, 0x1
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FCA70
+ movs r1, 0x80
+ lsls r1, 8
+ mov r9, r1
+ movs r0, 0x1F
+ mov r12, r0
+ mov r1, r8
+ subs r6, r0, r1
+_080FCA38:
+ ldrh r1, [r3]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCA60
+ movs r4, 0x1F
+ mov r2, r12
+ ands r2, r1
+ cmp r2, r6
+ ble _080FCA56
+ mov r1, r8
+ lsrs r0, r1, 1
+ subs r0, r4, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+_080FCA56:
+ lsls r0, r2, 10
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r0, r2
+ strh r0, [r3]
+_080FCA60:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, 0x2
+ mov r0, r10
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FCA38
+_080FCA70:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r1, _080FCA8C @ =gUnknown_03005DF0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcc _080FCA02
+_080FCA7C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCA8C: .4byte gUnknown_03005DF0
+_080FCA90: .4byte gUnknown_03005DF8
+_080FCA94: .4byte gUnknown_03005DFC
+_080FCA98: .4byte gUnknown_03005E04
+_080FCA9C: .4byte gUnknown_03005DEC
+_080FCAA0: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FC9E4
+
+ thumb_func_start sub_80FCAA4
+sub_80FCAA4: @ 80FCAA4
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _080FCAC0 @ =0x00000c7f
+_080FCAAA:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ bl sub_80FD1C8
+ adds r4, 0x1
+ cmp r4, r5
+ bls _080FCAAA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCAC0: .4byte 0x00000c7f
+ thumb_func_end sub_80FCAA4
+
+ thumb_func_start sub_80FCAC4
+sub_80FCAC4: @ 80FCAC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCB44 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCB36
+ ldr r0, _080FCB48 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCB4C @ =gUnknown_03005DF8
+_080FCADC:
+ ldr r0, _080FCB50 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCB54 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCB58 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCB2A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCB08:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCB1C
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD39C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCB1C:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCB08
+_080FCB2A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCB44 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCADC
+_080FCB36:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCB44: .4byte gUnknown_03005DF0
+_080FCB48: .4byte gUnknown_03005DEC
+_080FCB4C: .4byte gUnknown_03005DF8
+_080FCB50: .4byte gUnknown_03005DFC
+_080FCB54: .4byte gUnknown_03005E04
+_080FCB58: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCAC4
+
+ thumb_func_start sub_80FCB5C
+sub_80FCB5C: @ 80FCB5C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FCC00 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCBF2
+ ldr r0, _080FCC04 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCC08 @ =gUnknown_03005E04
+_080FCB74:
+ ldr r0, _080FCC0C @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ ldrb r0, [r3]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCC10 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, r2, 0x1
+ cmp r5, r0
+ bge _080FCBE6
+ ldr r6, _080FCC08 @ =gUnknown_03005E04
+_080FCBAA:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FCBD0
+ ldrb r2, [r6]
+ lsls r2, 1
+ adds r2, r4, r2
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD68C
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r3, [sp, 0x4]
+_080FCBD0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FCC14 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FCBAA
+_080FCBE6:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCC00 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCB74
+_080FCBF2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCC00: .4byte gUnknown_03005DF8
+_080FCC04: .4byte gUnknown_03005DEC
+_080FCC08: .4byte gUnknown_03005E04
+_080FCC0C: .4byte gUnknown_03005DFC
+_080FCC10: .4byte gUnknown_03005DE8
+_080FCC14: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FCB5C
+
+ thumb_func_start sub_80FCC18
+sub_80FCC18: @ 80FCC18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r2, 0
+ ldr r0, _080FCCA4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCC94
+ ldr r0, _080FCCA8 @ =gUnknown_03005DEC
+ mov r9, r0
+ ldr r3, _080FCCAC @ =gUnknown_03005DF8
+_080FCC38:
+ ldr r0, _080FCCB0 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCCB4 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r9
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCCB8 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCC88
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCC64:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCC7A
+ adds r0, r4, 0
+ mov r1, r8
+ str r3, [sp]
+ bl sub_80FD3D0
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCC7A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCC64
+_080FCC88:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCCA4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCC38
+_080FCC94:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCCA4: .4byte gUnknown_03005DF0
+_080FCCA8: .4byte gUnknown_03005DEC
+_080FCCAC: .4byte gUnknown_03005DF8
+_080FCCB0: .4byte gUnknown_03005DFC
+_080FCCB4: .4byte gUnknown_03005E04
+_080FCCB8: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCC18
+
+ thumb_func_start sub_80FCCBC
+sub_80FCCBC: @ 80FCCBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCD3C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCD2E
+ ldr r0, _080FCD40 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCD44 @ =gUnknown_03005DF8
+_080FCCD4:
+ ldr r0, _080FCD48 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCD4C @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCD50 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCD22
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCD00:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCD14
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD4DC
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCD14:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCD00
+_080FCD22:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCD3C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCCD4
+_080FCD2E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCD3C: .4byte gUnknown_03005DF0
+_080FCD40: .4byte gUnknown_03005DEC
+_080FCD44: .4byte gUnknown_03005DF8
+_080FCD48: .4byte gUnknown_03005DFC
+_080FCD4C: .4byte gUnknown_03005E04
+_080FCD50: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCCBC
+
+ thumb_func_start sub_80FCD54
+sub_80FCD54: @ 80FCD54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _080FCDE0
+ ldr r0, _080FCE90 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FCD6A:
+ ldr r0, _080FCE94 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r7
+ ldr r0, _080FCE98 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r2, r8
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FCE9C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r5, r1, r0
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r6, 0x1
+ adds r5, r4, 0
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r7, 0x1
+ cmp r6, r0
+ bge _080FCDCA
+_080FCDA2:
+ adds r4, r5, 0x2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r5, r4, 0
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _080FCDA2
+_080FCDCA:
+ subs r1, r5, 0x2
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _080FCD6A
+_080FCDE0:
+ movs r6, 0
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcs _080FCE80
+ ldr r3, _080FCE90 @ =gUnknown_03005DEC
+ mov r9, r3
+ ldr r0, _080FCE98 @ =gUnknown_03005E04
+ mov r8, r0
+_080FCDF2:
+ ldr r0, _080FCE94 @ =gUnknown_03005DFC
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r9
+ ldr r2, [r3]
+ adds r2, r0
+ ldr r0, _080FCE9C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ adds r0, r6
+ lsls r0, 1
+ adds r5, r2, r0
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ movs r7, 0x1
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, 0x1
+ cmp r7, r0
+ bge _080FCE64
+ ldr r4, _080FCE98 @ =gUnknown_03005E04
+_080FCE32:
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ ldrb r1, [r4]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, _080FCE8C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r7, r0
+ blt _080FCE32
+_080FCE64:
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 1
+ subs r1, r5, r1
+ adds r0, r5, 0
+ bl sub_80FD50C
+ strh r0, [r5]
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ ldr r0, _080FCEA0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080FCDF2
+_080FCE80:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCE8C: .4byte gUnknown_03005DF0
+_080FCE90: .4byte gUnknown_03005DEC
+_080FCE94: .4byte gUnknown_03005DFC
+_080FCE98: .4byte gUnknown_03005E04
+_080FCE9C: .4byte gUnknown_03005DE8
+_080FCEA0: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FCD54
+
+ thumb_func_start sub_80FCEA4
+sub_80FCEA4: @ 80FCEA4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FCF24 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FCF16
+ ldr r0, _080FCF28 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r3, _080FCF2C @ =gUnknown_03005DF8
+_080FCEBC:
+ ldr r0, _080FCF30 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FCF34 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r4, r8
+ ldr r1, [r4]
+ adds r1, r0
+ ldr r0, _080FCF38 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ adds r6, r2, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcs _080FCF0A
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FCEE8:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FCEFC
+ adds r0, r4, 0
+ str r3, [sp]
+ bl sub_80FD53C
+ strh r0, [r4]
+ ldr r3, [sp]
+_080FCEFC:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r5, r0
+ bcc _080FCEE8
+_080FCF0A:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FCF24 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FCEBC
+_080FCF16:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FCF24: .4byte gUnknown_03005DF0
+_080FCF28: .4byte gUnknown_03005DEC
+_080FCF2C: .4byte gUnknown_03005DF8
+_080FCF30: .4byte gUnknown_03005DFC
+_080FCF34: .4byte gUnknown_03005E04
+_080FCF38: .4byte gUnknown_03005DE8
+ thumb_func_end sub_80FCEA4
+
+ thumb_func_start sub_80FCF3C
+sub_80FCF3C: @ 80FCF3C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _080FD068 @ =gUnknown_03005DEC
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ adds r5, r0, 0
+_080FCF54:
+ movs r7, 0
+_080FCF56:
+ ldrh r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ bne _080FCF66
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FCF66:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FCF56
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FCF54
+ movs r7, 0
+ ldr r1, _080FD068 @ =gUnknown_03005DEC
+ mov r10, r1
+ mov r3, sp
+ movs r2, 0x80
+ lsls r2, 8
+ mov r9, r2
+_080FCF8A:
+ lsls r0, r7, 1
+ mov r2, r10
+ ldr r1, [r2]
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ strh r1, [r3]
+ mov r1, r9
+ strh r1, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ adds r5, r0, 0
+_080FCFA0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r0, r2
+ cmp r0, 0
+ bne _080FCFC0
+ adds r2, r4, 0
+ adds r2, 0x80
+ mov r0, sp
+ adds r1, r4, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FCFC0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x80
+ cmp r6, 0x3E
+ bls _080FCFA0
+ mov r0, r9
+ strh r0, [r4]
+ mov r1, r10
+ ldr r0, [r1]
+ adds r4, r0, r5
+ ldrh r0, [r4]
+ strh r0, [r3]
+ mov r2, r9
+ strh r2, [r4]
+ movs r6, 0x1
+ adds r4, 0x80
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FCFE8:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ adds r5, r4, 0
+ adds r5, 0x80
+ cmp r0, 0
+ bne _080FD008
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r5, 0
+ str r3, [sp, 0x4]
+ bl sub_80FD7AC
+ strh r0, [r4]
+ ldr r3, [sp, 0x4]
+ strh r0, [r3]
+_080FD008:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r5, 0
+ cmp r6, 0x3E
+ bls _080FCFE8
+ mov r2, r9
+ strh r2, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3F
+ bls _080FCF8A
+ ldr r0, _080FD068 @ =gUnknown_03005DEC
+ ldr r4, [r0]
+ movs r6, 0
+ movs r0, 0x80
+ lsls r0, 8
+ mov r8, r0
+_080FD02E:
+ movs r7, 0
+ adds r5, r6, 0x1
+_080FD032:
+ ldrh r0, [r4]
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD044
+ adds r0, r4, 0
+ bl sub_80FD53C
+ strh r0, [r4]
+_080FD044:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, 0x2
+ cmp r7, 0x3F
+ bls _080FD032
+ lsls r0, r5, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3F
+ bls _080FD02E
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD068: .4byte gUnknown_03005DEC
+ thumb_func_end sub_80FCF3C
+
+ thumb_func_start sub_80FD06C
+sub_80FD06C: @ 80FD06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FD0FC @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD0EE
+ ldr r0, _080FD100 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FD082:
+ ldr r0, _080FD104 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FD108 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD10C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ adds r4, 0x2
+ ldr r0, _080FD110 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD0E2
+ movs r0, 0x80
+ lsls r0, 8
+ adds r7, r0, 0
+_080FD0BA:
+ ldrh r0, [r4]
+ ands r0, r7
+ cmp r0, 0
+ bne _080FD0D0
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+_080FD0D0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FD110 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD0BA
+_080FD0E2:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD0FC @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD082
+_080FD0EE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD0FC: .4byte gUnknown_03005DF0
+_080FD100: .4byte gUnknown_03005DEC
+_080FD104: .4byte gUnknown_03005DFC
+_080FD108: .4byte gUnknown_03005E04
+_080FD10C: .4byte gUnknown_03005DE8
+_080FD110: .4byte gUnknown_03005DF8
+ thumb_func_end sub_80FD06C
+
+ thumb_func_start sub_80FD114
+sub_80FD114: @ 80FD114
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r2, 0
+ ldr r0, _080FD1B0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FD1A2
+ ldr r0, _080FD1B4 @ =gUnknown_03005DEC
+ mov r8, r0
+ ldr r7, _080FD1B8 @ =gUnknown_03005E04
+_080FD12C:
+ ldr r0, _080FD1BC @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FD1C0 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ adds r0, r2
+ lsls r0, 1
+ adds r4, r1, r0
+ ldrh r1, [r4]
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0x1
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r6, r2, 0x1
+ cmp r5, r0
+ bge _080FD196
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FD166:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ bne _080FD180
+ mov r0, sp
+ adds r1, r4, 0
+ str r2, [sp, 0x4]
+ bl sub_80FD568
+ strh r0, [r4]
+ mov r1, sp
+ strh r0, [r1]
+ ldr r2, [sp, 0x4]
+_080FD180:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r4, r0
+ ldr r0, _080FD1C4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080FD166
+_080FD196:
+ lsls r0, r6, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD1B0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FD12C
+_080FD1A2:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD1B0: .4byte gUnknown_03005DF8
+_080FD1B4: .4byte gUnknown_03005DEC
+_080FD1B8: .4byte gUnknown_03005E04
+_080FD1BC: .4byte gUnknown_03005DFC
+_080FD1C0: .4byte gUnknown_03005DE8
+_080FD1C4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FD114
+
+ thumb_func_start sub_80FD1C8
+sub_80FD1C8: @ 80FD1C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ mov r2, sp
+ ldr r3, _080FD234 @ =gUnknown_083E7A50
+ lsls r1, r0, 1
+ add r1, r10
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ strb r0, [r2, 0x1]
+ mov r5, sp
+ adds r0, r3, 0x2
+ adds r1, r0
+ ldrb r4, [r1]
+ lsls r2, r4, 24
+ lsrs r1, r2, 27
+ movs r0, 0x7
+ ands r1, r0
+ strh r1, [r5, 0x2]
+ lsrs r2, 25
+ mov r9, r2
+ movs r0, 0x3
+ ands r2, r0
+ mov r9, r2
+ movs r5, 0x1
+ ands r5, r4
+ movs r4, 0x1
+ mov r8, r4
+ cmp r8, r1
+ bcs _080FD27A
+ mov r3, sp
+_080FD21A:
+ cmp r5, 0
+ bne _080FD238
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ mov r4, r8
+ subs r0, r4
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ add r0, r8
+ b _080FD24A
+ .align 2, 0
+_080FD234: .4byte gUnknown_083E7A50
+_080FD238:
+ mov r0, r8
+ lsls r2, r0, 2
+ mov r4, sp
+ adds r1, r4, r2
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+_080FD24A:
+ strb r0, [r1, 0x1]
+ add r2, sp
+ ldrb r0, [r2]
+ cmp r0, 0x3F
+ bhi _080FD25A
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x3F
+ bls _080FD262
+_080FD25A:
+ mov r0, r8
+ subs r0, 0x1
+ strh r0, [r3, 0x2]
+ b _080FD27A
+_080FD262:
+ ldrh r0, [r3, 0x2]
+ mov r1, r8
+ subs r0, r1
+ strh r0, [r2, 0x2]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldrh r0, [r3, 0x2]
+ cmp r8, r0
+ bcc _080FD21A
+_080FD27A:
+ movs r2, 0
+ mov r8, r2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcc _080FD288
+ b _080FD38A
+_080FD288:
+ movs r3, 0x1F
+_080FD28A:
+ ldr r1, _080FD2E8 @ =gUnknown_03005DEC
+ mov r4, r8
+ lsls r0, r4, 2
+ mov r2, sp
+ adds r6, r2, r0
+ ldrb r0, [r6, 0x1]
+ lsls r0, 7
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrh r1, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD376
+ movs r7, 0x1F
+ ands r7, r1
+ lsls r0, r1, 16
+ lsrs r5, r0, 21
+ ands r5, r3
+ lsrs r4, r0, 26
+ ands r4, r3
+ mov r0, r9
+ cmp r0, 0
+ blt _080FD36C
+ cmp r0, 0x1
+ ble _080FD2EC
+ cmp r0, 0x3
+ bgt _080FD36C
+ ldrh r0, [r6, 0x2]
+ adds r1, r7, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r1, r5, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r7, 0x1F
+ bls _080FD360
+ movs r7, 0x1F
+ b _080FD360
+ .align 2, 0
+_080FD2E8: .4byte gUnknown_03005DEC
+_080FD2EC:
+ mov r1, r10
+ lsls r0, r1, 1
+ add r0, r10
+ ldr r1, _080FD320 @ =gUnknown_083E7A50
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsrs r0, 3
+ movs r1, 0x7
+ ands r0, r1
+ movs r1, 0x3
+ str r2, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [sp, 0x18]
+ ldr r3, [sp, 0x1C]
+ cmp r0, 0x1
+ beq _080FD33C
+ cmp r0, 0x1
+ bgt _080FD324
+ cmp r0, 0
+ beq _080FD32A
+ b _080FD36C
+ .align 2, 0
+_080FD320: .4byte gUnknown_083E7A50
+_080FD324:
+ cmp r0, 0x2
+ beq _080FD34E
+ b _080FD36C
+_080FD32A:
+ ldrh r0, [r6, 0x2]
+ cmp r7, r0
+ bcc _080FD338
+ subs r0, r7, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ b _080FD36C
+_080FD338:
+ movs r7, 0
+ b _080FD36C
+_080FD33C:
+ ldrh r0, [r6, 0x2]
+ cmp r5, r0
+ bcc _080FD34A
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _080FD36C
+_080FD34A:
+ movs r5, 0
+ b _080FD36C
+_080FD34E:
+ ldrh r0, [r6, 0x2]
+ cmp r4, r0
+ bcc _080FD35C
+ subs r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ b _080FD36C
+_080FD35C:
+ movs r4, 0
+ b _080FD36C
+_080FD360:
+ cmp r5, 0x1F
+ bls _080FD366
+ movs r5, 0x1F
+_080FD366:
+ cmp r4, 0x1F
+ bls _080FD36C
+ movs r4, 0x1F
+_080FD36C:
+ lsls r0, r4, 10
+ lsls r1, r5, 5
+ orrs r0, r1
+ orrs r7, r0
+ strh r7, [r2]
+_080FD376:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r8, r0
+ bcs _080FD38A
+ b _080FD28A
+_080FD38A:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD1C8
+
+ thumb_func_start sub_80FD39C
+sub_80FD39C: @ 80FD39C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, r1, 10
+ lsls r2, r1, 5
+ orrs r0, r2
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD39C
+
+ thumb_func_start sub_80FD3D0
+sub_80FD3D0: @ 80FD3D0
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD400
+ cmp r3, 0x10
+ bhi _080FD400
+ cmp r0, 0x10
+ bhi _080FD400
+ adds r0, r4, 0
+ bl sub_80FD40C
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD402
+_080FD400:
+ ldr r0, _080FD408 @ =0x00007fff
+_080FD402:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD408: .4byte 0x00007fff
+ thumb_func_end sub_80FD3D0
+
+ thumb_func_start sub_80FD40C
+sub_80FD40C: @ 80FD40C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+ movs r7, 0
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _080FD4C4
+ lsls r0, 2
+ ldr r1, _080FD450 @ =_080FD454
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FD450: .4byte _080FD454
+ .align 2, 0
+_080FD454:
+ .4byte _080FD46C
+ .4byte _080FD47C
+ .4byte _080FD48C
+ .4byte _080FD49A
+ .4byte _080FD4A8
+ .4byte _080FD4B6
+_080FD46C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r7, r6, 0
+ movs r1, 0
+ mov r8, r1
+ b _080FD4C4
+_080FD47C:
+ movs r7, 0
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r6, r8
+ b _080FD4C4
+_080FD48C:
+ movs r0, 0x15
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r7
+ b _080FD4C4
+_080FD49A:
+ movs r7, 0
+ movs r6, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FD4C2
+_080FD4A8:
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ mov r8, r6
+ b _080FD4C4
+_080FD4B6:
+ movs r7, 0
+ movs r0, 0x17
+ subs r0, r5
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0
+_080FD4C2:
+ mov r8, r0
+_080FD4C4:
+ lsls r0, r7, 10
+ lsls r1, r6, 5
+ orrs r0, r1
+ mov r1, r8
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD40C
+
+ thumb_func_start sub_80FD4DC
+sub_80FD4DC: @ 80FD4DC
+ push {lr}
+ ldrh r0, [r0]
+ movs r2, 0x1F
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r2
+ lsrs r0, 26
+ ands r0, r2
+ cmp r1, 0x10
+ bhi _080FD500
+ cmp r3, 0x10
+ bhi _080FD500
+ cmp r0, 0x10
+ bhi _080FD500
+ movs r0, 0
+ b _080FD502
+_080FD500:
+ ldr r0, _080FD508 @ =0x00007fff
+_080FD502:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD508: .4byte 0x00007fff
+ thumb_func_end sub_80FD4DC
+
+ thumb_func_start sub_80FD50C
+sub_80FD50C: @ 80FD50C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r3, [r4]
+ cmp r3, 0
+ beq _080FD534
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080FD526
+ adds r0, r2, 0
+ b _080FD536
+_080FD526:
+ ldrh r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080FD534
+ ldrh r0, [r4]
+ b _080FD536
+_080FD534:
+ movs r0, 0
+_080FD536:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD50C
+
+ thumb_func_start sub_80FD53C
+sub_80FD53C: @ 80FD53C
+ push {r4,lr}
+ ldrh r1, [r0]
+ movs r0, 0x1F
+ movs r3, 0x1F
+ ands r3, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ lsrs r1, 26
+ subs r3, r0, r3
+ adds r4, r0, 0
+ bics r4, r2
+ adds r2, r4, 0
+ bics r0, r1
+ lsls r0, 10
+ lsls r2, 5
+ orrs r0, r2
+ orrs r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD53C
+
+ thumb_func_start sub_80FD568
+sub_80FD568: @ 80FD568
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r1, 0
+ ldrh r4, [r0]
+ ldrh r5, [r7]
+ lsls r6, r4, 16
+ lsls r0, r5, 16
+ mov r12, r0
+ cmp r4, r5
+ beq _080FD5DA
+ mov r2, sp
+ movs r3, 0x1F
+ movs r1, 0x1F
+ adds r0, r1, 0
+ ands r0, r4
+ strh r0, [r2]
+ lsrs r0, r6, 21
+ ands r0, r3
+ strh r0, [r2, 0x2]
+ lsrs r0, r6, 26
+ ands r0, r3
+ strh r0, [r2, 0x4]
+ mov r0, sp
+ ands r1, r5
+ strh r1, [r0, 0x6]
+ mov r1, sp
+ mov r2, r12
+ lsrs r0, r2, 21
+ ands r0, r3
+ strh r0, [r1, 0x8]
+ lsrs r0, r2, 26
+ ands r0, r3
+ strh r0, [r1, 0xA]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0x19
+ bls _080FD5C2
+ mov r0, sp
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x19
+ bhi _080FD5DA
+_080FD5C2:
+ mov r0, sp
+ ldrh r0, [r0, 0x6]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ cmp r0, 0x19
+ bls _080FD5DE
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ cmp r0, 0x19
+ bls _080FD5DE
+_080FD5DA:
+ ldrh r0, [r7]
+ b _080FD684
+_080FD5DE:
+ movs r4, 0
+ add r6, sp, 0xC
+ mov r7, sp
+ adds r7, 0x6
+ adds r5, r6, 0
+_080FD5E8:
+ lsls r2, r4, 1
+ mov r1, sp
+ adds r0, r1, r2
+ adds r1, r7, r2
+ ldrh r3, [r0]
+ ldrh r0, [r1]
+ cmp r3, r0
+ bls _080FD5FE
+ adds r1, r5, r2
+ subs r0, r3, r0
+ b _080FD602
+_080FD5FE:
+ adds r1, r5, r2
+ subs r0, r3
+_080FD602:
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _080FD5E8
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r1]
+ cmp r3, r0
+ bcc _080FD628
+ ldrh r2, [r1, 0x4]
+ cmp r3, r2
+ bcc _080FD622
+ adds r2, r3, 0
+ b _080FD63C
+_080FD622:
+ cmp r0, r2
+ bcs _080FD62E
+ b _080FD636
+_080FD628:
+ ldrh r2, [r1, 0x4]
+ cmp r0, r2
+ bcc _080FD632
+_080FD62E:
+ ldrh r2, [r1, 0x2]
+ b _080FD63C
+_080FD632:
+ cmp r2, r3
+ bcc _080FD63A
+_080FD636:
+ ldrh r2, [r1, 0x4]
+ b _080FD63C
+_080FD63A:
+ ldrh r2, [r6]
+_080FD63C:
+ mov r0, sp
+ ldrh r1, [r0, 0x6]
+ lsrs r0, r2, 1
+ movs r6, 0x1F
+ subs r6, r0
+ adds r0, r1, 0
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ ldrh r0, [r0, 0xA]
+ muls r0, r6
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ lsls r4, 5
+ orrs r0, r4
+ orrs r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r5, 0
+_080FD684:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD568
+
+ thumb_func_start sub_80FD68C
+sub_80FD68C: @ 80FD68C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD6B4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD6B4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD79C
+_080FD6B4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD736
+ cmp r1, r6
+ bne _080FD736
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD79C
+_080FD736:
+ cmp r7, r6
+ bls _080FD73E
+ subs r0, r7, r6
+ b _080FD740
+_080FD73E:
+ subs r0, r6, r7
+_080FD740:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD74C
+ subs r0, r1, r6
+ b _080FD74E
+_080FD74C:
+ subs r0, r6, r1
+_080FD74E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD758
+ adds r0, r2, 0
+_080FD758:
+ lsrs r0, 1
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD79C:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD68C
+
+ thumb_func_start sub_80FD7AC
+sub_80FD7AC: @ 80FD7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r3, r0, 0
+ mov r10, r1
+ str r2, [sp]
+ ldrh r1, [r3]
+ mov r0, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080FD7D4
+ ldrh r0, [r2]
+ cmp r0, r1
+ bne _080FD7D4
+ mov r1, r10
+ ldrh r0, [r1]
+ b _080FD8BA
+_080FD7D4:
+ mov r2, r10
+ ldrh r0, [r2]
+ movs r1, 0x1F
+ mov r9, r1
+ movs r4, 0x1F
+ adds r5, r4, 0
+ ands r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ mov r1, r9
+ ands r1, r2
+ mov r8, r1
+ lsrs r0, 26
+ mov r2, r9
+ ands r2, r0
+ str r2, [sp, 0x4]
+ ldrh r2, [r3]
+ adds r0, r4, 0
+ ands r0, r2
+ lsls r2, 16
+ lsrs r1, r2, 21
+ mov r3, r9
+ ands r1, r3
+ adds r0, r1
+ lsrs r2, 26
+ ands r2, r3
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r1, r8
+ adds r0, r5, r1
+ ldr r2, [sp, 0x4]
+ adds r0, r2
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, [sp]
+ ldrh r1, [r3]
+ ands r4, r1
+ lsls r1, 16
+ lsrs r0, r1, 21
+ mov r2, r9
+ ands r0, r2
+ adds r4, r0
+ lsrs r1, 26
+ ands r1, r2
+ adds r4, r1
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r7, r6
+ bne _080FD856
+ cmp r1, r6
+ bne _080FD856
+ mov r3, r10
+ ldrh r0, [r3]
+ b _080FD8BA
+_080FD856:
+ cmp r7, r6
+ bls _080FD85E
+ subs r0, r7, r6
+ b _080FD860
+_080FD85E:
+ subs r0, r6, r7
+_080FD860:
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r1, r6
+ bls _080FD86C
+ subs r0, r1, r6
+ b _080FD86E
+_080FD86C:
+ subs r0, r6, r1
+_080FD86E:
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ bcc _080FD878
+ adds r0, r2, 0
+_080FD878:
+ movs r4, 0x1F
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r1, [sp, 0x4]
+ adds r0, r1, 0
+ muls r0, r4
+ movs r1, 0x1F
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 6
+ mov r2, r8
+ lsls r1, r2, 5
+ orrs r0, r1
+ orrs r5, r0
+ lsls r0, r5, 16
+ lsrs r0, 16
+_080FD8BA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD7AC
+
+ thumb_func_start sub_80FD8CC
+sub_80FD8CC: @ 80FD8CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldrb r1, [r0, 0x1D]
+ lsrs r5, r1, 3
+ ldrb r1, [r0, 0x1E]
+ lsrs r1, 3
+ str r1, [sp, 0x8]
+ ldr r1, [r0, 0x4]
+ str r1, [sp]
+ ldr r2, [r0, 0x10]
+ str r2, [sp, 0x4]
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0x2
+ bne _080FD97C
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcc _080FD8FA
+ b _080FDA08
+_080FD8FA:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD96E
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD90E:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 6
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD91E:
+ lsls r0, r4, 3
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r0, [r2, 0x2]
+ lsls r0, 8
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0x6]
+ lsls r0, 8
+ ldrh r1, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ ldrh r1, [r2, 0x8]
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r0, [r2, 0xE]
+ lsls r0, 8
+ ldrh r1, [r2, 0xC]
+ orrs r0, r1
+ strh r0, [r3, 0x6]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD91E
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD90E
+_080FD96E:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD8FA
+ b _080FDA08
+_080FD97C:
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ cmp r1, r0
+ bcs _080FDA08
+_080FD984:
+ movs r0, 0
+ adds r2, r1, 0x1
+ mov r10, r2
+ cmp r0, r5
+ bcs _080FD9FC
+ adds r2, r1, 0
+ muls r2, r5
+ mov r9, r2
+ lsls r1, 3
+ mov r8, r1
+_080FD998:
+ movs r4, 0
+ lsls r6, r0, 4
+ adds r7, r0, 0x1
+ add r0, r9
+ lsls r0, 5
+ ldr r1, [sp, 0x4]
+ adds r1, r0
+ mov r12, r1
+_080FD9A8:
+ lsls r0, r4, 2
+ mov r2, r12
+ adds r3, r2, r0
+ mov r1, r8
+ adds r0, r1, r4
+ lsls r0, 3
+ muls r0, r5
+ lsls r0, 1
+ ldr r2, [sp]
+ adds r0, r2, r0
+ adds r2, r0, r6
+ ldrh r1, [r2, 0x2]
+ lsls r1, 4
+ ldrh r0, [r2]
+ orrs r1, r0
+ ldrh r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0x6]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3]
+ ldrh r1, [r2, 0xA]
+ lsls r1, 4
+ ldrh r0, [r2, 0x8]
+ orrs r1, r0
+ ldrh r0, [r2, 0xC]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2, 0xE]
+ lsls r0, 12
+ orrs r1, r0
+ strh r1, [r3, 0x2]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x7
+ bls _080FD9A8
+ lsls r0, r7, 16
+ lsrs r0, 16
+ cmp r0, r5
+ bcc _080FD998
+_080FD9FC:
+ mov r1, r10
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+ ldr r2, [sp, 0x8]
+ cmp r1, r2
+ bcc _080FD984
+_080FDA08:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD8CC
+
+ thumb_func_start sub_80FDA18
+sub_80FDA18: @ 80FDA18
+ push {lr}
+ ldr r2, _080FDA68 @ =gUnknown_03005E0C
+ ldrb r1, [r0, 0x18]
+ lsls r1, 4
+ strh r1, [r2]
+ ldr r3, _080FDA6C @ =gUnknown_03005E08
+ ldrh r2, [r2]
+ lsls r2, 1
+ ldr r1, [r0, 0x8]
+ adds r1, r2
+ str r1, [r3]
+ ldr r2, _080FDA70 @ =gUnknown_03005DEC
+ ldr r1, [r0, 0x4]
+ str r1, [r2]
+ ldr r2, _080FDA74 @ =gUnknown_03005DE8
+ ldrb r1, [r0, 0x19]
+ strb r1, [r2]
+ ldr r2, _080FDA78 @ =gUnknown_03005DFC
+ ldrb r1, [r0, 0x1A]
+ strb r1, [r2]
+ ldr r2, _080FDA7C @ =gUnknown_03005DF8
+ ldrb r1, [r0, 0x1B]
+ strb r1, [r2]
+ ldr r2, _080FDA80 @ =gUnknown_03005DF0
+ ldrb r1, [r0, 0x1C]
+ strb r1, [r2]
+ ldr r2, _080FDA84 @ =gUnknown_03005E04
+ ldrb r1, [r0, 0x1D]
+ strb r1, [r2]
+ ldr r2, _080FDA88 @ =gUnknown_03005DF4
+ ldrb r1, [r0, 0x1E]
+ strb r1, [r2]
+ ldrh r0, [r0, 0x14]
+ cmp r0, 0x5
+ bhi _080FDADE
+ lsls r0, 2
+ ldr r1, _080FDA8C @ =_080FDA90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FDA68: .4byte gUnknown_03005E0C
+_080FDA6C: .4byte gUnknown_03005E08
+_080FDA70: .4byte gUnknown_03005DEC
+_080FDA74: .4byte gUnknown_03005DE8
+_080FDA78: .4byte gUnknown_03005DFC
+_080FDA7C: .4byte gUnknown_03005DF8
+_080FDA80: .4byte gUnknown_03005DF0
+_080FDA84: .4byte gUnknown_03005E04
+_080FDA88: .4byte gUnknown_03005DF4
+_080FDA8C: .4byte _080FDA90
+ .align 2, 0
+_080FDA90:
+ .4byte _080FDAA8
+ .4byte _080FDAB0
+ .4byte _080FDAB8
+ .4byte _080FDAC2
+ .4byte _080FDACC
+ .4byte _080FDAD6
+_080FDAA8:
+ movs r0, 0
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB0:
+ movs r0, 0x1
+ bl sub_80FDC18
+ b _080FDADE
+_080FDAB8:
+ bl sub_80FDAE4
+ bl sub_80FDF88
+ b _080FDADE
+_080FDAC2:
+ bl sub_80FDBE4
+ bl sub_80FDED8
+ b _080FDADE
+_080FDACC:
+ bl sub_80FDBA8
+ bl sub_80FDE28
+ b _080FDADE
+_080FDAD6:
+ bl sub_80FDB8C
+ bl sub_80FDD70
+_080FDADE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDA18
+
+ thumb_func_start sub_80FDAE4
+sub_80FDAE4: @ 80FDAE4
+ ldr r2, _080FDB4C @ =gUnknown_03005E08
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, [r2]
+ ldr r2, _080FDB50 @ =0x000018c6
+ adds r1, r2, 0
+ strh r1, [r0, 0x2]
+ ldr r2, _080FDB54 @ =0x000077bd
+ adds r1, r2, 0
+ strh r1, [r0, 0x4]
+ ldr r2, _080FDB58 @ =0x00002d6b
+ adds r1, r2, 0
+ strh r1, [r0, 0x6]
+ ldr r2, _080FDB5C @ =0x000018dd
+ adds r1, r2, 0
+ strh r1, [r0, 0x8]
+ ldr r2, _080FDB60 @ =0x00001ba6
+ adds r1, r2, 0
+ strh r1, [r0, 0xA]
+ ldr r2, _080FDB64 @ =0x000074c6
+ adds r1, r2, 0
+ strh r1, [r0, 0xC]
+ ldr r2, _080FDB68 @ =0x00001bbd
+ adds r1, r2, 0
+ strh r1, [r0, 0xE]
+ ldr r2, _080FDB6C @ =0x000074dd
+ adds r1, r2, 0
+ strh r1, [r0, 0x10]
+ ldr r2, _080FDB70 @ =0x000077a6
+ adds r1, r2, 0
+ strh r1, [r0, 0x12]
+ ldr r2, _080FDB74 @ =0x0000197d
+ adds r1, r2, 0
+ strh r1, [r0, 0x14]
+ ldr r2, _080FDB78 @ =0x00001bab
+ adds r1, r2, 0
+ strh r1, [r0, 0x16]
+ ldr r2, _080FDB7C @ =0x00007566
+ adds r1, r2, 0
+ strh r1, [r0, 0x18]
+ ldr r2, _080FDB80 @ =0x00002cdd
+ adds r1, r2, 0
+ strh r1, [r0, 0x1A]
+ ldr r2, _080FDB84 @ =0x00002fa6
+ adds r1, r2, 0
+ strh r1, [r0, 0x1C]
+ ldr r2, _080FDB88 @ =0x000074cb
+ adds r1, r2, 0
+ strh r1, [r0, 0x1E]
+ bx lr
+ .align 2, 0
+_080FDB4C: .4byte gUnknown_03005E08
+_080FDB50: .4byte 0x000018c6
+_080FDB54: .4byte 0x000077bd
+_080FDB58: .4byte 0x00002d6b
+_080FDB5C: .4byte 0x000018dd
+_080FDB60: .4byte 0x00001ba6
+_080FDB64: .4byte 0x000074c6
+_080FDB68: .4byte 0x00001bbd
+_080FDB6C: .4byte 0x000074dd
+_080FDB70: .4byte 0x000077a6
+_080FDB74: .4byte 0x0000197d
+_080FDB78: .4byte 0x00001bab
+_080FDB7C: .4byte 0x00007566
+_080FDB80: .4byte 0x00002cdd
+_080FDB84: .4byte 0x00002fa6
+_080FDB88: .4byte 0x000074cb
+ thumb_func_end sub_80FDAE4
+
+ thumb_func_start sub_80FDB8C
+sub_80FDB8C: @ 80FDB8C
+ ldr r2, _080FDBA0 @ =gUnknown_03005E08
+ ldr r0, [r2]
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, [r2]
+ strh r1, [r2, 0x2]
+ ldr r1, _080FDBA4 @ =0x00007fff
+ adds r0, r1, 0
+ strh r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_080FDBA0: .4byte gUnknown_03005E08
+_080FDBA4: .4byte 0x00007fff
+ thumb_func_end sub_80FDB8C
+
+ thumb_func_start sub_80FDBA8
+sub_80FDBA8: @ 80FDBA8
+ push {r4,r5,lr}
+ ldr r1, _080FDBE0 @ =gUnknown_03005E08
+ ldr r0, [r1]
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, [r1]
+ strh r2, [r0, 0x2]
+ movs r4, 0
+ adds r5, r1, 0
+_080FDBBA:
+ ldr r0, [r5]
+ lsls r2, r4, 1
+ adds r2, r0
+ adds r0, r4, 0x2
+ lsls r3, r0, 1
+ lsls r1, r0, 11
+ lsls r0, 6
+ orrs r1, r0
+ orrs r1, r3
+ strh r1, [r2, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xD
+ bls _080FDBBA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDBE0: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBA8
+
+ thumb_func_start sub_80FDBE4
+sub_80FDBE4: @ 80FDBE4
+ push {r4,lr}
+ ldr r2, _080FDC14 @ =gUnknown_03005E08
+ ldr r1, [r2]
+ movs r0, 0
+ strh r0, [r1]
+ movs r3, 0
+ adds r4, r2, 0
+_080FDBF2:
+ ldr r0, [r4]
+ lsls r2, r3, 1
+ adds r2, r0
+ lsls r0, r3, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r0, r3
+ strh r0, [r2, 0x2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _080FDBF2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDC14: .4byte gUnknown_03005E08
+ thumb_func_end sub_80FDBE4
+
+ thumb_func_start sub_80FDC18
+sub_80FDC18: @ 80FDC18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ movs r1, 0xDF
+ mov r9, r1
+ cmp r0, 0
+ bne _080FDC30
+ movs r2, 0xFF
+ mov r9, r2
+_080FDC30:
+ movs r6, 0
+ ldr r3, _080FDCB4 @ =gUnknown_03005E08
+ mov r12, r3
+ mov r0, r9
+ lsls r4, r0, 1
+ ldr r5, _080FDCB8 @ =gUnknown_03005DF0
+ cmp r6, r9
+ bcs _080FDC54
+ movs r2, 0
+_080FDC42:
+ ldr r0, [r3]
+ lsls r1, r6, 1
+ adds r1, r0
+ strh r2, [r1]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r9
+ bcc _080FDC42
+_080FDC54:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, r4, r0
+ ldr r2, _080FDCBC @ =0x00003def
+ adds r1, r2, 0
+ strh r1, [r0]
+ movs r3, 0
+ ldrb r5, [r5]
+ cmp r3, r5
+ bcs _080FDD58
+_080FDC68:
+ ldr r2, _080FDCC0 @ =gUnknown_03005DEC
+ ldr r0, _080FDCC4 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r3
+ ldr r0, _080FDCC8 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ ldr r1, [r2]
+ adds r1, r0
+ ldr r0, _080FDCCC @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDCD0 @ =gUnknown_03005DF8
+ adds r2, r0, 0
+ adds r3, 0x1
+ mov r10, r3
+ ldrb r3, [r2]
+ cmp r6, r3
+ bcs _080FDD4A
+ ldr r0, _080FDCD4 @ =gUnknown_03005E0C
+ mov r8, r0
+_080FDC98:
+ ldrh r0, [r4]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDCD8
+ mov r1, r8
+ ldrh r0, [r1]
+ strh r0, [r4]
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ b _080FDD3E
+ .align 2, 0
+_080FDCB4: .4byte gUnknown_03005E08
+_080FDCB8: .4byte gUnknown_03005DF0
+_080FDCBC: .4byte 0x00003def
+_080FDCC0: .4byte gUnknown_03005DEC
+_080FDCC4: .4byte gUnknown_03005DFC
+_080FDCC8: .4byte gUnknown_03005E04
+_080FDCCC: .4byte gUnknown_03005DE8
+_080FDCD0: .4byte gUnknown_03005DF8
+_080FDCD4: .4byte gUnknown_03005E0C
+_080FDCD8:
+ adds r0, r4, 0
+ bl sub_80FE038
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r3, 0x1
+ adds r6, 0x1
+ adds r7, r4, 0x2
+ cmp r3, r9
+ bcs _080FDD34
+ ldr r0, _080FDD04 @ =gUnknown_03005E08
+ ldr r2, [r0]
+ ldrh r1, [r2, 0x2]
+ mov r12, r0
+ cmp r1, 0
+ bne _080FDD08
+ strh r5, [r2, 0x2]
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, 0x1
+ b _080FDD32
+ .align 2, 0
+_080FDD04: .4byte gUnknown_03005E08
+_080FDD08:
+ mov r2, r12
+ ldr r1, [r2]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r5
+ beq _080FDD2C
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r9
+ bcs _080FDD34
+ lsls r0, r3, 1
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080FDD08
+ strh r5, [r1]
+_080FDD2C:
+ mov r1, r8
+ ldrh r0, [r1]
+ adds r0, r3
+_080FDD32:
+ strh r0, [r4]
+_080FDD34:
+ ldr r2, _080FDD68 @ =gUnknown_03005DF8
+ cmp r3, r9
+ bne _080FDD3E
+ mov r3, r9
+ strh r3, [r4]
+_080FDD3E:
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ adds r4, r7, 0
+ ldrb r0, [r2]
+ cmp r6, r0
+ bcc _080FDC98
+_080FDD4A:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ ldr r0, _080FDD6C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _080FDC68
+_080FDD58:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDD68: .4byte gUnknown_03005DF8
+_080FDD6C: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDC18
+
+ thumb_func_start sub_80FDD70
+sub_80FDD70: @ 80FDD70
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r2, 0
+ ldr r0, _080FDDC4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDE14
+ ldr r0, _080FDDC8 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDD84:
+ ldr r0, _080FDDCC @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDDD0 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDDD4 @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r6, 0
+ ldr r0, _080FDDD8 @ =gUnknown_03005DF8
+ adds r3, r0, 0
+ adds r7, r2, 0x1
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcs _080FDE08
+ ldr r5, _080FDDDC @ =gUnknown_03005E0C
+_080FDDB0:
+ ldrh r0, [r4]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDDE0
+ ldrh r0, [r5]
+ strh r0, [r4]
+ b _080FDDFA
+ .align 2, 0
+_080FDDC4: .4byte gUnknown_03005DF0
+_080FDDC8: .4byte gUnknown_03005DEC
+_080FDDCC: .4byte gUnknown_03005DFC
+_080FDDD0: .4byte gUnknown_03005E04
+_080FDDD4: .4byte gUnknown_03005DE8
+_080FDDD8: .4byte gUnknown_03005DF8
+_080FDDDC: .4byte gUnknown_03005E0C
+_080FDDE0:
+ adds r0, r4, 0
+ bl sub_80FD4DC
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FDDF2
+ ldrh r0, [r5]
+ adds r0, 0x1
+ b _080FDDF6
+_080FDDF2:
+ ldrh r0, [r5]
+ adds r0, 0x2
+_080FDDF6:
+ strh r0, [r4]
+ ldr r3, _080FDE20 @ =gUnknown_03005DF8
+_080FDDFA:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, 0x2
+ ldrb r0, [r3]
+ cmp r6, r0
+ bcc _080FDDB0
+_080FDE08:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDE24 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDD84
+_080FDE14:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDE20: .4byte gUnknown_03005DF8
+_080FDE24: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDD70
+
+ thumb_func_start sub_80FDE28
+sub_80FDE28: @ 80FDE28
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDE7C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDEC4
+ ldr r0, _080FDE80 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDE3E:
+ ldr r0, _080FDE84 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDE88 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDE8C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDE90 @ =gUnknown_03005DF8
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDEB8
+ ldr r6, _080FDE94 @ =gUnknown_03005E0C
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDE6E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDE98
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDEA8
+ .align 2, 0
+_080FDE7C: .4byte gUnknown_03005DF0
+_080FDE80: .4byte gUnknown_03005DEC
+_080FDE84: .4byte gUnknown_03005DFC
+_080FDE88: .4byte gUnknown_03005E04
+_080FDE8C: .4byte gUnknown_03005DE8
+_080FDE90: .4byte gUnknown_03005DF8
+_080FDE94: .4byte gUnknown_03005E0C
+_080FDE98:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE17C
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDEA8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDED0 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDE6E
+_080FDEB8:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDED4 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDE3E
+_080FDEC4:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDED0: .4byte gUnknown_03005DF8
+_080FDED4: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDE28
+
+ thumb_func_start sub_80FDED8
+sub_80FDED8: @ 80FDED8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDF2C @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FDF74
+ ldr r0, _080FDF30 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDEEE:
+ ldr r0, _080FDF34 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDF38 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDF3C @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDF40 @ =gUnknown_03005DF8
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FDF68
+ ldr r6, _080FDF44 @ =gUnknown_03005E0C
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDF1E:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDF48
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FDF58
+ .align 2, 0
+_080FDF2C: .4byte gUnknown_03005DF0
+_080FDF30: .4byte gUnknown_03005DEC
+_080FDF34: .4byte gUnknown_03005DFC
+_080FDF38: .4byte gUnknown_03005E04
+_080FDF3C: .4byte gUnknown_03005DE8
+_080FDF40: .4byte gUnknown_03005DF8
+_080FDF44: .4byte gUnknown_03005E0C
+_080FDF48:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE1B0
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FDF58:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FDF80 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDF1E
+_080FDF68:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FDF84 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDEEE
+_080FDF74:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDF80: .4byte gUnknown_03005DF8
+_080FDF84: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDED8
+
+ thumb_func_start sub_80FDF88
+sub_80FDF88: @ 80FDF88
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r2, 0
+ ldr r0, _080FDFDC @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _080FE024
+ ldr r0, _080FDFE0 @ =gUnknown_03005DEC
+ mov r8, r0
+_080FDF9E:
+ ldr r0, _080FDFE4 @ =gUnknown_03005DFC
+ ldrb r1, [r0]
+ adds r1, r2
+ ldr r0, _080FDFE8 @ =gUnknown_03005E04
+ ldrb r0, [r0]
+ muls r0, r1
+ lsls r0, 1
+ mov r3, r8
+ ldr r1, [r3]
+ adds r1, r0
+ ldr r0, _080FDFEC @ =gUnknown_03005DE8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r1, r0
+ movs r5, 0
+ ldr r0, _080FDFF0 @ =gUnknown_03005DF8
+ adds r7, r2, 0x1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcs _080FE018
+ ldr r6, _080FDFF4 @ =gUnknown_03005E0C
+ movs r0, 0x80
+ lsls r0, 8
+ adds r2, r0, 0
+_080FDFCE:
+ ldrh r0, [r4]
+ ands r0, r2
+ cmp r0, 0
+ beq _080FDFF8
+ ldrh r0, [r6]
+ strh r0, [r4]
+ b _080FE008
+ .align 2, 0
+_080FDFDC: .4byte gUnknown_03005DF0
+_080FDFE0: .4byte gUnknown_03005DEC
+_080FDFE4: .4byte gUnknown_03005DFC
+_080FDFE8: .4byte gUnknown_03005E04
+_080FDFEC: .4byte gUnknown_03005DE8
+_080FDFF0: .4byte gUnknown_03005DF8
+_080FDFF4: .4byte gUnknown_03005E0C
+_080FDFF8:
+ adds r0, r4, 0
+ str r2, [sp]
+ bl sub_80FE0AC
+ ldrh r1, [r6]
+ adds r0, r1
+ strh r0, [r4]
+ ldr r2, [sp]
+_080FE008:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, 0x2
+ ldr r0, _080FE030 @ =gUnknown_03005DF8
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _080FDFCE
+_080FE018:
+ lsls r0, r7, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FE034 @ =gUnknown_03005DF0
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _080FDF9E
+_080FE024:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE030: .4byte gUnknown_03005DF8
+_080FE034: .4byte gUnknown_03005DF0
+ thumb_func_end sub_80FDF88
+
+ thumb_func_start sub_80FE038
+sub_80FE038: @ 80FE038
+ push {r4,lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r4, 0x1F
+ ands r4, r0
+ lsls r0, 16
+ lsrs r3, r0, 21
+ ands r3, r1
+ lsrs r2, r0, 26
+ ands r2, r1
+ movs r1, 0x3
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE05C
+ movs r0, 0x1C
+ ands r0, r4
+ adds r4, r0, 0x4
+_080FE05C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE06A
+ movs r0, 0x1C
+ ands r0, r3
+ adds r3, r0, 0x4
+_080FE06A:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE078
+ movs r0, 0x1C
+ ands r0, r2
+ adds r2, r0, 0x4
+_080FE078:
+ cmp r4, 0x5
+ bhi _080FE07E
+ movs r4, 0x6
+_080FE07E:
+ cmp r4, 0x1E
+ bls _080FE084
+ movs r4, 0x1E
+_080FE084:
+ cmp r3, 0x5
+ bhi _080FE08A
+ movs r3, 0x6
+_080FE08A:
+ cmp r3, 0x1E
+ bls _080FE090
+ movs r3, 0x1E
+_080FE090:
+ cmp r2, 0x5
+ bhi _080FE096
+ movs r2, 0x6
+_080FE096:
+ cmp r2, 0x1E
+ bls _080FE09C
+ movs r2, 0x1E
+_080FE09C:
+ lsls r0, r2, 10
+ lsls r1, r3, 5
+ orrs r0, r1
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE038
+
+ thumb_func_start sub_80FE0AC
+sub_80FE0AC: @ 80FE0AC
+ push {lr}
+ ldrh r0, [r0]
+ movs r1, 0x1F
+ movs r3, 0x1F
+ ands r3, r0
+ lsls r0, 16
+ lsrs r2, r0, 21
+ ands r2, r1
+ lsrs r0, 26
+ ands r0, r1
+ cmp r3, 0xB
+ bhi _080FE0D0
+ cmp r2, 0xA
+ bhi _080FE0D0
+ cmp r0, 0xA
+ bhi _080FE0D0
+ movs r0, 0x1
+ b _080FE176
+_080FE0D0:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0DC
+ cmp r0, 0x13
+ bhi _080FE100
+_080FE0DC:
+ cmp r3, 0x13
+ bls _080FE0F4
+ cmp r2, 0x13
+ bls _080FE0EA
+ cmp r0, 0xE
+ bhi _080FE100
+ b _080FE138
+_080FE0EA:
+ cmp r0, 0x13
+ bls _080FE0F4
+ cmp r2, 0xE
+ bhi _080FE100
+ b _080FE114
+_080FE0F4:
+ cmp r2, 0x13
+ bls _080FE104
+ cmp r0, 0x13
+ bls _080FE104
+ cmp r3, 0xE
+ bls _080FE15C
+_080FE100:
+ movs r0, 0x2
+ b _080FE176
+_080FE104:
+ cmp r3, 0x13
+ bls _080FE128
+ cmp r2, 0xB
+ bls _080FE11C
+ cmp r0, 0xB
+ bls _080FE118
+ cmp r2, r0
+ bcs _080FE138
+_080FE114:
+ movs r0, 0x8
+ b _080FE176
+_080FE118:
+ movs r0, 0xA
+ b _080FE176
+_080FE11C:
+ cmp r0, 0xB
+ bls _080FE124
+ movs r0, 0xD
+ b _080FE176
+_080FE124:
+ movs r0, 0x4
+ b _080FE176
+_080FE128:
+ cmp r2, 0x13
+ bls _080FE14C
+ cmp r3, 0xB
+ bls _080FE140
+ cmp r0, 0xB
+ bls _080FE13C
+ cmp r3, r0
+ bcc _080FE15C
+_080FE138:
+ movs r0, 0x7
+ b _080FE176
+_080FE13C:
+ movs r0, 0xB
+ b _080FE176
+_080FE140:
+ cmp r0, 0xB
+ bls _080FE148
+ movs r0, 0xE
+ b _080FE176
+_080FE148:
+ movs r0, 0x5
+ b _080FE176
+_080FE14C:
+ cmp r0, 0x13
+ bls _080FE174
+ cmp r3, 0xB
+ bls _080FE160
+ cmp r2, 0xB
+ bls _080FE168
+ cmp r3, r2
+ bcs _080FE114
+_080FE15C:
+ movs r0, 0x9
+ b _080FE176
+_080FE160:
+ cmp r2, 0xB
+ bls _080FE168
+ movs r0, 0xC
+ b _080FE176
+_080FE168:
+ cmp r0, 0xB
+ bls _080FE170
+ movs r0, 0xF
+ b _080FE176
+_080FE170:
+ movs r0, 0x6
+ b _080FE176
+_080FE174:
+ movs r0, 0x3
+_080FE176:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE0AC
+
+ thumb_func_start sub_80FE17C
+sub_80FE17C: @ 80FE17C
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ movs r1, 0x1E
+ ands r0, r1
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE1A8
+ lsrs r0, 17
+ b _080FE1AA
+_080FE1A8:
+ movs r0, 0x1
+_080FE1AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE17C
+
+ thumb_func_start sub_80FE1B0
+sub_80FE1B0: @ 80FE1B0
+ push {lr}
+ ldrh r1, [r0]
+ movs r3, 0x1F
+ movs r0, 0x1F
+ ands r0, r1
+ lsls r1, 16
+ lsrs r2, r1, 21
+ ands r2, r3
+ lsrs r1, 26
+ ands r1, r3
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FE1B0
+
+ .align 2, 0 @ Don't pad with nop.