summaryrefslogtreecommitdiff
path: root/asm/link_rfu.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-16 23:54:22 -0800
commit670fef77ac4d9116d5fdc28c0da40622919a062b (patch)
tree61c0e925f059404473826ac775305ba5e2706ab1 /asm/link_rfu.s
first commit
Diffstat (limited to 'asm/link_rfu.s')
-rw-r--r--asm/link_rfu.s10821
1 files changed, 10821 insertions, 0 deletions
diff --git a/asm/link_rfu.s b/asm/link_rfu.s
new file mode 100644
index 000000000..b8453706c
--- /dev/null
+++ b/asm/link_rfu.s
@@ -0,0 +1,10821 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80FD3A4
+sub_80FD3A4: @ 80FD3A4
+ push {r4,lr}
+ bl rfu_REQBN_softReset_and_checkID
+ adds r4, r0, 0
+ ldr r0, _080FD3E8 @ =0x00008001
+ cmp r4, r0
+ bne _080FD3B8
+ ldr r1, _080FD3EC @ =gUnknown_3005E10
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+_080FD3B8:
+ ldr r0, _080FD3EC @ =gUnknown_3005E10
+ ldrb r2, [r0, 0x4]
+ adds r1, r0, 0
+ cmp r2, 0x17
+ beq _080FD3CC
+ cmp r2, 0x1
+ beq _080FD3CC
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ strb r0, [r1, 0x4]
+_080FD3CC:
+ movs r0, 0
+ strb r0, [r1, 0x7]
+ strb r0, [r1, 0xD]
+ strb r0, [r1, 0x1]
+ strb r0, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x6]
+ bl sub_80FEAF4
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FD3E8: .4byte 0x00008001
+_080FD3EC: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FD3A4
+
+ thumb_func_start sub_80FD3F0
+sub_80FD3F0: @ 80FD3F0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _080FD410 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FD418
+ ldr r0, _080FD414 @ =gUnknown_3005E10
+ ldrb r0, [r0, 0x2]
+ movs r2, 0
+ cmp r0, 0x1
+ bne _080FD420
+ movs r2, 0x1
+ b _080FD420
+ .align 2, 0
+_080FD410: .4byte gUnknown_3007460
+_080FD414: .4byte gUnknown_3005E10
+_080FD418:
+ ldr r0, _080FD42C @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x3]
+ movs r1, 0
+ strb r1, [r0, 0x3]
+_080FD420:
+ adds r0, r2, 0
+ bl rfu_REQ_sendData
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD42C: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FD3F0
+
+ thumb_func_start sub_80FD430
+sub_80FD430: @ 80FD430
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ cmp r5, 0
+ beq _080FD478
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _080FD468 @ =gUnknown_3005E10
+ ldr r2, _080FD46C @ =0x01000024
+ mov r0, sp
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0xFF
+ strb r0, [r4, 0x6]
+ str r5, [r4, 0x40]
+ str r6, [r4, 0x44]
+ ldr r0, _080FD470 @ =sub_80FE394
+ bl rfu_setMSCCallback
+ ldr r0, _080FD474 @ =sub_80FDC98
+ bl rfu_setREQCallback
+ movs r0, 0
+ b _080FD47A
+ .align 2, 0
+_080FD468: .4byte gUnknown_3005E10
+_080FD46C: .4byte 0x01000024
+_080FD470: .4byte sub_80FE394
+_080FD474: .4byte sub_80FDC98
+_080FD478:
+ movs r0, 0x4
+_080FD47A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD430
+
+ thumb_func_start sub_80FD484
+sub_80FD484: @ 80FD484
+ push {r4,lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _080FD4A8 @ =gUnknown_3005E10
+ ldr r2, _080FD4AC @ =0x01000020
+ mov r0, sp
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0xFF
+ strb r0, [r4, 0x6]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD4A8: .4byte gUnknown_3005E10
+_080FD4AC: .4byte 0x01000020
+ thumb_func_end sub_80FD484
+
+ thumb_func_start sub_80FD4B0
+sub_80FD4B0: @ 80FD4B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80FD4E4
+ ldr r1, _080FD4E0 @ =gUnknown_3005E10
+ movs r2, 0x1
+ strb r2, [r1, 0x4]
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ str r4, [r1, 0x3C]
+ ldrb r0, [r4, 0x11]
+ strb r0, [r1, 0x9]
+ ldrh r0, [r4, 0x12]
+ strh r0, [r1, 0x32]
+ ldrh r0, [r4, 0x14]
+ strh r0, [r1, 0x18]
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _080FD4D8
+ strb r2, [r1, 0xB]
+_080FD4D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD4E0: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FD4B0
+
+ thumb_func_start sub_80FD4E4
+sub_80FD4E4: @ 80FD4E4
+ push {r4,r5,lr}
+ ldr r2, _080FD528 @ =gUnknown_3005E10
+ movs r0, 0
+ strb r0, [r2, 0x5]
+ strb r0, [r2, 0x4]
+ movs r1, 0xFF
+ strb r1, [r2, 0x6]
+ strb r0, [r2, 0x7]
+ strb r0, [r2, 0x10]
+ strb r0, [r2, 0xC]
+ adds r1, r2, 0
+ adds r1, 0x24
+ strb r0, [r1]
+ adds r1, 0xC
+ strb r0, [r1]
+ movs r3, 0
+ adds r5, r2, 0
+ adds r5, 0x28
+ movs r4, 0
+ adds r2, 0x34
+_080FD50C:
+ lsls r1, r3, 1
+ adds r0, r1, r5
+ strh r4, [r0]
+ adds r1, r2
+ strh r4, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080FD50C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD528: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FD4E4
+
+ thumb_func_start sub_80FD52C
+sub_80FD52C: @ 80FD52C
+ ldr r1, _080FD534 @ =gUnknown_3005E10
+ movs r0, 0x15
+ strb r0, [r1, 0x4]
+ bx lr
+ .align 2, 0
+_080FD534: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FD52C
+
+ thumb_func_start sub_80FD538
+sub_80FD538: @ 80FD538
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r1, _080FD570 @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080FD574
+ cmp r0, 0x8
+ bne _080FD55E
+ cmp r5, 0x1
+ beq _080FD574
+_080FD55E:
+ movs r0, 0x1
+ strh r0, [r1, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x1
+ b _080FD606
+ .align 2, 0
+_080FD570: .4byte gUnknown_3005E10
+_080FD574:
+ bl rfu_getMasterSlave
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FD594
+ ldr r1, _080FD590 @ =gUnknown_3005E10
+ movs r0, 0x2
+ strh r0, [r1, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x2
+ b _080FD606
+ .align 2, 0
+_080FD590: .4byte gUnknown_3005E10
+_080FD594:
+ movs r2, 0
+ ldrh r0, [r6]
+ ldr r4, _080FD5C8 @ =0x0000ffff
+ adds r1, r6, 0x2
+ ldr r3, _080FD5CC @ =gUnknown_3005E10
+ cmp r0, r4
+ beq _080FD5B4
+_080FD5A2:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bhi _080FD5B4
+ ldrh r0, [r1]
+ adds r1, 0x2
+ cmp r0, r4
+ bne _080FD5A2
+_080FD5B4:
+ cmp r2, 0x10
+ bne _080FD5D0
+ movs r0, 0x4
+ strh r0, [r3, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x4
+ b _080FD606
+ .align 2, 0
+_080FD5C8: .4byte 0x0000ffff
+_080FD5CC: .4byte gUnknown_3005E10
+_080FD5D0:
+ cmp r5, 0x1
+ bls _080FD5DE
+ movs r0, 0x1
+ strb r0, [r3, 0x7]
+ movs r5, 0x1
+ movs r7, 0
+ b _080FD5E2
+_080FD5DE:
+ movs r0, 0
+ strb r0, [r3, 0x7]
+_080FD5E2:
+ cmp r5, 0
+ beq _080FD5EC
+ movs r0, 0x5
+ strb r0, [r3, 0x4]
+ b _080FD5FA
+_080FD5EC:
+ movs r0, 0x9
+ strb r0, [r3, 0x4]
+ ldrb r0, [r3, 0xB]
+ cmp r0, 0
+ beq _080FD5FA
+ movs r0, 0x2
+ strb r0, [r3, 0xB]
+_080FD5FA:
+ strb r5, [r3, 0x6]
+ strh r7, [r3, 0x1A]
+ mov r0, r8
+ strh r0, [r3, 0x26]
+ str r6, [r3, 0x20]
+ movs r0, 0
+_080FD606:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD538
+
+ thumb_func_start sub_80FD610
+sub_80FD610: @ 80FD610
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldr r1, _080FD644 @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080FD648
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _080FD648
+ movs r0, 0x1
+ strh r0, [r1, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x1
+ b _080FD6E8
+ .align 2, 0
+_080FD644: .4byte gUnknown_3005E10
+_080FD648:
+ bl rfu_getMasterSlave
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FD668
+ ldr r1, _080FD664 @ =gUnknown_3005E10
+ movs r0, 0x2
+ strh r0, [r1, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x2
+ b _080FD6E8
+ .align 2, 0
+_080FD664: .4byte gUnknown_3005E10
+_080FD668:
+ movs r2, 0
+ ldr r0, _080FD6B4 @ =gUnknown_3007460
+ ldr r1, [r0]
+ ldrb r3, [r1, 0x8]
+ ldr r5, _080FD6B8 @ =gUnknown_3005E10
+ adds r7, r0, 0
+ cmp r2, r3
+ bcs _080FD696
+ ldrh r0, [r1, 0x14]
+ cmp r0, r6
+ beq _080FD696
+ adds r4, r1, 0
+ adds r1, r3, 0
+_080FD682:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcs _080FD696
+ lsls r0, r2, 5
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x14]
+ cmp r0, r6
+ bne _080FD682
+_080FD696:
+ ldr r0, [r7]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ beq _080FD6A2
+ cmp r2, r0
+ bne _080FD6BC
+_080FD6A2:
+ movs r0, 0x3
+ strh r0, [r5, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x3
+ b _080FD6E8
+ .align 2, 0
+_080FD6B4: .4byte gUnknown_3007460
+_080FD6B8: .4byte gUnknown_3005E10
+_080FD6BC:
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0
+ beq _080FD6C6
+ cmp r0, 0x9
+ bne _080FD6CE
+_080FD6C6:
+ movs r0, 0xC
+ strb r0, [r5, 0x4]
+ movs r0, 0xD
+ b _080FD6D4
+_080FD6CE:
+ movs r0, 0xB
+ strb r0, [r5, 0x4]
+ movs r0, 0xC
+_080FD6D4:
+ strb r0, [r5, 0x5]
+ strh r6, [r5, 0x1E]
+ mov r0, r8
+ strh r0, [r5, 0x1A]
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _080FD6E6
+ movs r0, 0x7
+ strb r0, [r5, 0x7]
+_080FD6E6:
+ movs r0, 0
+_080FD6E8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FD610
+
+ thumb_func_start sub_80FD6F4
+sub_80FD6F4: @ 80FD6F4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r6, _080FD758 @ =gUnknown_3005E10
+ adds r3, r6, 0
+ adds r3, 0x30
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _080FD750
+ adds r0, r2, 0
+ bics r0, r1
+ strb r0, [r3]
+ movs r4, 0
+ ldr r7, _080FD75C @ =gUnknown_3007460
+ movs r5, 0x1
+ adds r3, 0x4
+ movs r2, 0
+_080FD71A:
+ adds r0, r1, 0
+ asrs r0, r4
+ ands r0, r5
+ cmp r0, 0
+ beq _080FD72A
+ lsls r0, r4, 1
+ adds r0, r3
+ strh r2, [r0]
+_080FD72A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080FD71A
+ ldr r0, [r7]
+ ldrb r4, [r0, 0x3]
+ ands r4, r1
+ cmp r4, 0
+ beq _080FD744
+ adds r0, r4, 0
+ bl sub_80FE818
+_080FD744:
+ ldr r0, _080FD758 @ =gUnknown_3005E10
+ strh r4, [r0, 0x14]
+ movs r0, 0x33
+ adds r1, r4, 0
+ bl sub_80FE7F0
+_080FD750:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FD758: .4byte gUnknown_3005E10
+_080FD75C: .4byte gUnknown_3007460
+ thumb_func_end sub_80FD6F4
+
+ thumb_func_start sub_80FD760
+sub_80FD760: @ 80FD760
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, _080FD77C @ =gUnknown_3005E10
+ strb r2, [r1, 0x7]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _080FD780
+ bl sub_80FD4E4
+ movs r0, 0x17
+ strb r0, [r5, 0x4]
+ b _080FD84A
+ .align 2, 0
+_080FD77C: .4byte gUnknown_3005E10
+_080FD780:
+ ldrb r0, [r5, 0x4]
+ subs r0, 0x5
+ cmp r0, 0xD
+ bhi _080FD836
+ lsls r0, 2
+ ldr r1, _080FD794 @ =_080FD798
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FD794: .4byte _080FD798
+ .align 2, 0
+_080FD798:
+ .4byte _080FD7D0
+ .4byte _080FD7DC
+ .4byte _080FD7DC
+ .4byte _080FD83C
+ .4byte _080FD7E6
+ .4byte _080FD7F0
+ .4byte _080FD7F0
+ .4byte _080FD7FA
+ .4byte _080FD804
+ .4byte _080FD804
+ .4byte _080FD83C
+ .4byte _080FD80A
+ .4byte _080FD830
+ .4byte _080FD830
+_080FD7D0:
+ movs r1, 0
+ movs r0, 0x8
+ strb r0, [r5, 0x4]
+ strb r1, [r5, 0x5]
+ movs r2, 0x13
+ b _080FD83C
+_080FD7DC:
+ movs r0, 0x7
+ strb r0, [r5, 0x4]
+ movs r0, 0x8
+ strb r0, [r5, 0x5]
+ b _080FD83C
+_080FD7E6:
+ movs r0, 0
+ strb r0, [r5, 0x5]
+ strb r0, [r5, 0x4]
+ movs r2, 0x21
+ b _080FD83C
+_080FD7F0:
+ movs r1, 0
+ movs r0, 0xB
+ strb r0, [r5, 0x4]
+ strb r1, [r5, 0x5]
+ b _080FD83C
+_080FD7FA:
+ movs r0, 0
+ strb r0, [r5, 0x5]
+ strb r0, [r5, 0x4]
+ movs r2, 0x23
+ b _080FD83C
+_080FD804:
+ movs r0, 0xE
+ strb r0, [r5, 0x4]
+ b _080FD83C
+_080FD80A:
+ ldrb r0, [r5, 0x11]
+ strb r0, [r5, 0x4]
+ ldrb r0, [r5, 0x12]
+ strb r0, [r5, 0x5]
+ ldr r4, _080FD82C @ =gUnknown_3007460
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x3]
+ bl sub_80FE818
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x3]
+ strh r0, [r5, 0x14]
+ movs r0, 0x33
+ movs r1, 0x1
+ bl sub_80FE7F0
+ b _080FD84A
+ .align 2, 0
+_080FD82C: .4byte gUnknown_3007460
+_080FD830:
+ movs r0, 0x12
+ strb r0, [r5, 0x4]
+ b _080FD83C
+_080FD836:
+ strb r2, [r5, 0x5]
+ strb r2, [r5, 0x4]
+ movs r2, 0x43
+_080FD83C:
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0
+ bne _080FD84A
+ adds r0, r2, 0
+ movs r1, 0
+ bl sub_80FE7F0
+_080FD84A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FD760
+
+ thumb_func_start sub_80FD850
+sub_80FD850: @ 80FD850
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ mov r8, r1
+ mov r5, sp
+ adds r5, 0x1
+ mov r4, sp
+ adds r4, 0x2
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_81E13F0
+ mov r0, sp
+ ldrb r0, [r0]
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _080FD922
+ ldr r1, _080FD8EC @ =gUnknown_3005E10
+ mov r0, sp
+ ldrb r0, [r0]
+ strh r0, [r1, 0x14]
+ ldrb r0, [r5]
+ strh r0, [r1, 0x16]
+ ldrb r0, [r1, 0x9]
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _080FD90A
+ movs r0, 0x1
+ strb r0, [r6, 0xA]
+ ldrb r0, [r6, 0x6]
+ cmp r0, 0
+ bne _080FD8A6
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080FD8A6
+ movs r0, 0x4
+ strb r0, [r6, 0xA]
+_080FD8A6:
+ ldrb r0, [r6, 0xA]
+ cmp r0, 0x1
+ bne _080FD8F0
+ movs r2, 0
+ mov r4, sp
+ movs r5, 0x1
+ mov r12, r6
+ mov r3, r12
+ adds r3, 0x30
+ movs r6, 0x34
+ add r6, r12
+ mov r9, r6
+_080FD8BE:
+ ldrb r0, [r4]
+ asrs r0, r2
+ ands r0, r5
+ cmp r0, 0
+ beq _080FD8DC
+ adds r0, r5, 0
+ lsls r0, r2
+ ldrb r1, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+ lsls r0, r2, 1
+ add r0, r9
+ mov r6, r12
+ ldrh r1, [r6, 0x32]
+ strh r1, [r0]
+_080FD8DC:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080FD8BE
+ movs r0, 0x31
+ b _080FD902
+ .align 2, 0
+_080FD8EC: .4byte gUnknown_3005E10
+_080FD8F0:
+ movs r0, 0
+ strb r0, [r6, 0xA]
+ mov r0, sp
+ ldrb r0, [r0]
+ bl sub_80FE818
+ movs r0, 0x1
+ mov r8, r0
+ movs r0, 0x33
+_080FD902:
+ movs r1, 0x1
+ bl sub_80FE7F0
+ b _080FD91E
+_080FD90A:
+ mov r0, sp
+ ldrb r0, [r0]
+ bl sub_80FE818
+ movs r1, 0x1
+ mov r8, r1
+ movs r0, 0x30
+ movs r1, 0x2
+ bl sub_80FE7F0
+_080FD91E:
+ bl sub_80FEAF4
+_080FD922:
+ ldr r0, _080FDA0C @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FD9FC
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _080FD980
+ movs r2, 0
+ ldr r6, _080FDA10 @ =gUnknown_3005E10
+ movs r3, 0x1
+ adds r4, r6, 0
+ adds r4, 0x34
+ adds r6, 0x30
+ adds r5, r7, 0
+_080FD940:
+ ldrb r0, [r6]
+ asrs r0, r2
+ ands r0, r3
+ cmp r0, 0
+ beq _080FD95C
+ ldrb r0, [r5]
+ asrs r0, r2
+ ands r0, r3
+ cmp r0, 0
+ beq _080FD95C
+ lsls r0, r2, 1
+ adds r0, r4
+ movs r1, 0
+ strh r1, [r0]
+_080FD95C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080FD940
+ ldr r3, _080FDA10 @ =gUnknown_3005E10
+ adds r2, r3, 0
+ adds r2, 0x30
+ ldrb r1, [r7]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ strh r0, [r3, 0x14]
+ movs r0, 0x32
+ movs r1, 0x1
+ bl sub_80FE7F0
+_080FD980:
+ ldr r0, _080FDA10 @ =gUnknown_3005E10
+ adds r3, r0, 0
+ adds r3, 0x30
+ ldrb r1, [r3]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080FD9F8
+ movs r4, 0
+ movs r2, 0
+ movs r5, 0x1
+_080FD994:
+ ldrb r0, [r3]
+ asrs r0, r2
+ ands r0, r5
+ cmp r0, 0
+ beq _080FD9C6
+ lsls r1, r2, 1
+ adds r0, r6, 0
+ adds r0, 0x34
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080FD9C6
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FD9C6
+ adds r0, r5, 0
+ lsls r0, r2
+ ldrb r1, [r3]
+ bics r1, r0
+ strb r1, [r3]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080FD9C6:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _080FD994
+ cmp r4, 0
+ beq _080FD9EA
+ adds r0, r4, 0
+ bl sub_80FE818
+ movs r6, 0x1
+ mov r8, r6
+ ldr r0, _080FDA10 @ =gUnknown_3005E10
+ strh r4, [r0, 0x14]
+ movs r0, 0x33
+ movs r1, 0x1
+ bl sub_80FE7F0
+_080FD9EA:
+ ldr r0, _080FDA10 @ =gUnknown_3005E10
+ adds r1, r0, 0
+ adds r1, 0x30
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0
+ bne _080FD9FC
+_080FD9F8:
+ movs r0, 0
+ strb r0, [r6, 0xA]
+_080FD9FC:
+ mov r0, r8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FDA0C: .4byte gUnknown_3007460
+_080FDA10: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FD850
+
+ thumb_func_start sub_80FDA14
+sub_80FDA14: @ 80FDA14
+ push {lr}
+ bl rfu_syncVBlank
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDA2C
+ movs r0, 0xF1
+ movs r1, 0
+ bl sub_80FE7F0
+ bl sub_80FEAF4
+_080FDA2C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDA14
+
+ thumb_func_start sub_80FDA30
+sub_80FDA30: @ 80FDA30
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r1, _080FDA48 @ =gUnknown_3005E10
+ ldr r2, [r1, 0x40]
+ cmp r2, 0
+ bne _080FDA4C
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _080FDA4C
+ strb r2, [r1, 0x4]
+ b _080FDC1A
+ .align 2, 0
+_080FDA48: .4byte gUnknown_3005E10
+_080FDA4C:
+ ldr r0, _080FDA80 @ =gUnknown_3005E10
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _080FDA5A
+ adds r0, r3, 0
+ bl sub_80FDC28
+_080FDA5A:
+ ldr r4, _080FDA80 @ =gUnknown_3005E10
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ bne _080FDA64
+ b _080FDBE4
+_080FDA64:
+ bl rfu_waitREQComplete
+ movs r0, 0x1
+ strb r0, [r4, 0xE]
+ ldrb r0, [r4, 0x4]
+ subs r0, 0x1
+ cmp r0, 0x16
+ bls _080FDA76
+ b _080FDBDA
+_080FDA76:
+ lsls r0, 2
+ ldr r1, _080FDA84 @ =_080FDA88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FDA80: .4byte gUnknown_3005E10
+_080FDA84: .4byte _080FDA88
+ .align 2, 0
+_080FDA88:
+ .4byte _080FDB08
+ .4byte _080FDB40
+ .4byte _080FDB46
+ .4byte _080FDB5C
+ .4byte _080FDB74
+ .4byte _080FDB7A
+ .4byte _080FDB80
+ .4byte _080FDBDA
+ .4byte _080FDB86
+ .4byte _080FDB8C
+ .4byte _080FDB92
+ .4byte _080FDB98
+ .4byte _080FDBA8
+ .4byte _080FDBAE
+ .4byte _080FDBDA
+ .4byte _080FDBB4
+ .4byte _080FDBC4
+ .4byte _080FDBCA
+ .4byte _080FDBD0
+ .4byte _080FDBDA
+ .4byte _080FDBD6
+ .4byte _080FDBDA
+ .4byte _080FDAE4
+_080FDAE4:
+ bl sub_80FD3A4
+ ldr r1, _080FDB00 @ =0x00008001
+ movs r2, 0xFF
+ cmp r0, r1
+ bne _080FDAF2
+ movs r2, 0x44
+_080FDAF2:
+ ldr r1, _080FDB04 @ =gUnknown_3005E10
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ strb r0, [r1, 0x4]
+ adds r0, r2, 0
+ b _080FDB32
+ .align 2, 0
+_080FDB00: .4byte 0x00008001
+_080FDB04: .4byte gUnknown_3005E10
+_080FDB08:
+ bl sub_80FD3A4
+ ldr r1, _080FDB20 @ =0x00008001
+ cmp r0, r1
+ bne _080FDB28
+ ldr r0, _080FDB24 @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ movs r1, 0x3
+ strb r1, [r0, 0x5]
+ b _080FDBDA
+ .align 2, 0
+_080FDB20: .4byte 0x00008001
+_080FDB24: .4byte gUnknown_3005E10
+_080FDB28:
+ ldr r1, _080FDB3C @ =gUnknown_3005E10
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ strb r0, [r1, 0x4]
+ movs r0, 0xFF
+_080FDB32:
+ movs r1, 0
+ bl sub_80FE7F0
+ b _080FDBDA
+ .align 2, 0
+_080FDB3C: .4byte gUnknown_3005E10
+_080FDB40:
+ bl sub_81E0AE4
+ b _080FDBDA
+_080FDB46:
+ ldr r0, _080FDB58 @ =gUnknown_3005E10
+ ldr r2, [r0, 0x3C]
+ ldrh r0, [r2, 0x2]
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ bl rfu_REQ_configSystem
+ b _080FDBDA
+ .align 2, 0
+_080FDB58: .4byte gUnknown_3005E10
+_080FDB5C:
+ ldr r0, _080FDB70 @ =gUnknown_3005E10
+ ldr r3, [r0, 0x3C]
+ ldrb r0, [r3, 0x4]
+ ldrh r1, [r3, 0x6]
+ ldr r2, [r3, 0x8]
+ ldr r3, [r3, 0xC]
+ bl rfu_REQ_configGameData
+ b _080FDBDA
+ .align 2, 0
+_080FDB70: .4byte gUnknown_3005E10
+_080FDB74:
+ bl sub_81E0CAC
+ b _080FDBDA
+_080FDB7A:
+ bl sub_81E0D88
+ b _080FDBDA
+_080FDB80:
+ bl sub_81E0D9C
+ b _080FDBDA
+_080FDB86:
+ bl sub_81E0F74
+ b _080FDBDA
+_080FDB8C:
+ bl sub_81E0FAC
+ b _080FDBDA
+_080FDB92:
+ bl sub_81E0FE4
+ b _080FDBDA
+_080FDB98:
+ ldr r0, _080FDBA4 @ =gUnknown_3005E10
+ ldrh r0, [r0, 0x1E]
+ bl rfu_REQ_startConnectParent
+ b _080FDBDA
+ .align 2, 0
+_080FDBA4: .4byte gUnknown_3005E10
+_080FDBA8:
+ bl sub_81E1170
+ b _080FDBDA
+_080FDBAE:
+ bl rfu_REQ_endConnectParent
+ b _080FDBDA
+_080FDBB4:
+ ldr r0, _080FDBC0 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ bl rfu_REQ_CHILD_startConnectRecovery
+ b _080FDBDA
+ .align 2, 0
+_080FDBC0: .4byte gUnknown_3007460
+_080FDBC4:
+ bl sub_81E1A28
+ b _080FDBDA
+_080FDBCA:
+ bl sub_81E1B10
+ b _080FDBDA
+_080FDBD0:
+ bl rfu_REQ_changeMasterSlave
+ b _080FDBDA
+_080FDBD6:
+ bl rfu_REQ_stopMode
+_080FDBDA:
+ bl rfu_waitREQComplete
+ ldr r1, _080FDC20 @ =gUnknown_3005E10
+ movs r0, 0
+ strb r0, [r1, 0xE]
+_080FDBE4:
+ ldr r0, _080FDC20 @ =gUnknown_3005E10
+ ldrb r0, [r0, 0x4]
+ subs r0, 0x12
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080FDBF4
+ b _080FDA5A
+_080FDBF4:
+ ldr r0, _080FDC24 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FDC0A
+ movs r0, 0
+ bl sub_80FD850
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FDC1A
+_080FDC0A:
+ bl sub_80FE418
+ bl sub_80FE63C
+ bl sub_80FE74C
+ bl sub_80FE918
+_080FDC1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FDC20: .4byte gUnknown_3005E10
+_080FDC24: .4byte gUnknown_3007460
+ thumb_func_end sub_80FDA30
+
+ thumb_func_start sub_80FDC28
+sub_80FDC28: @ 80FDC28
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _080FDC4C @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x7]
+ adds r4, r0, 0
+ cmp r1, 0x5
+ bne _080FDC52
+ movs r2, 0x1
+ strb r2, [r4, 0x6]
+ strb r1, [r4, 0x4]
+ ldrh r0, [r4, 0x1C]
+ strh r0, [r4, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDC50
+ movs r0, 0x6
+ strb r0, [r4, 0x7]
+ b _080FDC52
+ .align 2, 0
+_080FDC4C: .4byte gUnknown_3005E10
+_080FDC50:
+ strb r2, [r4, 0x7]
+_080FDC52:
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0x1
+ bne _080FDC7C
+ strb r0, [r4, 0x6]
+ movs r0, 0x5
+ strb r0, [r4, 0x4]
+ adds r0, r3, 0
+ movs r1, 0x8C
+ bl __umodsi3
+ strh r0, [r4, 0x1A]
+ movs r1, 0x8C
+ subs r1, r0
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDC78
+ movs r0, 0x2
+ b _080FDC7A
+_080FDC78:
+ movs r0, 0x3
+_080FDC7A:
+ strb r0, [r4, 0x7]
+_080FDC7C:
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0x3
+ bne _080FDC92
+ movs r0, 0
+ strb r0, [r4, 0x6]
+ movs r0, 0x28
+ strh r0, [r4, 0x1A]
+ movs r0, 0x4
+ strb r0, [r4, 0x7]
+ movs r0, 0x9
+ strb r0, [r4, 0x4]
+_080FDC92:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDC28
+
+ thumb_func_start sub_80FDC98
+sub_80FDC98: @ 80FDC98
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r0, _080FDCD0 @ =gUnknown_3005E10
+ ldrb r1, [r0, 0xE]
+ adds r7, r0, 0
+ cmp r1, 0
+ bne _080FDCB6
+ b _080FE17C
+_080FDCB6:
+ movs r0, 0
+ strb r0, [r7, 0xE]
+ mov r0, r8
+ subs r0, 0x10
+ cmp r0, 0x2D
+ bls _080FDCC4
+ b _080FE16E
+_080FDCC4:
+ lsls r0, 2
+ ldr r1, _080FDCD4 @ =_080FDCD8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FDCD0: .4byte gUnknown_3005E10
+_080FDCD4: .4byte _080FDCD8
+ .align 2, 0
+_080FDCD8:
+ .4byte _080FDD90
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FDDBC
+ .4byte _080FDDA8
+ .4byte _080FE16E
+ .4byte _080FDDD0
+ .4byte _080FDDE0
+ .4byte _080FDE04
+ .4byte _080FDE24
+ .4byte _080FDE44
+ .4byte _080FDEB4
+ .4byte _080FDEE6
+ .4byte _080FDEFC
+ .4byte _080FDF44
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE0BC
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FDFB4
+ .4byte _080FE000
+ .4byte _080FE048
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE16E
+ .4byte _080FE15C
+_080FDD90:
+ cmp r6, 0
+ beq _080FDD96
+ b _080FE16E
+_080FDD96:
+ ldr r0, _080FDDA4 @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ movs r1, 0x4
+ strb r1, [r0, 0x5]
+ b _080FE16E
+ .align 2, 0
+_080FDDA4: .4byte gUnknown_3005E10
+_080FDDA8:
+ cmp r6, 0
+ beq _080FDDAE
+ b _080FE16E
+_080FDDAE:
+ ldr r0, _080FDDB8 @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ strb r6, [r0, 0x5]
+ b _080FE16E
+ .align 2, 0
+_080FDDB8: .4byte gUnknown_3005E10
+_080FDDBC:
+ cmp r6, 0
+ beq _080FDDC2
+ b _080FE16E
+_080FDDC2:
+ ldr r0, _080FDDCC @ =gUnknown_3005E10
+ strb r6, [r0, 0x5]
+ strb r6, [r0, 0x4]
+ movs r0, 0
+ b _080FE0DA
+ .align 2, 0
+_080FDDCC: .4byte gUnknown_3005E10
+_080FDDD0:
+ cmp r6, 0
+ beq _080FDDD6
+ b _080FE16E
+_080FDDD6:
+ ldr r1, _080FDDDC @ =gUnknown_3005E10
+ movs r0, 0x6
+ b _080FDEF0
+ .align 2, 0
+_080FDDDC: .4byte gUnknown_3005E10
+_080FDDE0:
+ ldr r1, _080FDE00 @ =gUnknown_3005E10
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0
+ bne _080FDDEA
+ b _080FE16E
+_080FDDEA:
+ subs r0, 0x1
+ strh r0, [r1, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDDF6
+ b _080FE16E
+_080FDDF6:
+ movs r0, 0x7
+ strb r0, [r1, 0x4]
+ movs r0, 0x8
+ strb r0, [r1, 0x5]
+ b _080FE16E
+ .align 2, 0
+_080FDE00: .4byte gUnknown_3005E10
+_080FDE04:
+ cmp r6, 0
+ beq _080FDE0A
+ b _080FE16E
+_080FDE0A:
+ ldr r0, _080FDE20 @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x5]
+ strb r1, [r0, 0x4]
+ strb r6, [r0, 0x5]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ beq _080FDE1A
+ b _080FE16E
+_080FDE1A:
+ movs r0, 0x13
+ b _080FE0DA
+ .align 2, 0
+_080FDE20: .4byte gUnknown_3005E10
+_080FDE24:
+ cmp r6, 0
+ beq _080FDE2A
+ b _080FE16E
+_080FDE2A:
+ ldrb r0, [r7, 0xB]
+ cmp r0, 0x1
+ bne _080FDE3A
+ ldrh r0, [r7, 0x1A]
+ cmp r0, 0x1
+ bls _080FDE3A
+ subs r0, 0x1
+ strh r0, [r7, 0x1A]
+_080FDE3A:
+ ldr r1, _080FDE40 @ =gUnknown_3005E10
+ movs r0, 0xA
+ b _080FDEF0
+ .align 2, 0
+_080FDE40: .4byte gUnknown_3005E10
+_080FDE44:
+ cmp r6, 0
+ bne _080FDE8A
+ bl sub_80FE778
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ strb r0, [r1]
+ ldr r4, _080FDEAC @ =gUnknown_3005E10
+ strh r0, [r4, 0x14]
+ cmp r0, 0
+ beq _080FDE64
+ movs r0, 0x20
+ movs r1, 0x1
+ bl sub_80FE7F0
+_080FDE64:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _080FDE8A
+ ldrh r0, [r4, 0x1A]
+ cmp r0, 0x1
+ beq _080FDE8A
+ ldr r0, _080FDEB0 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x4
+ bne _080FDE8A
+ bl sub_81E0FE4
+ bl rfu_waitREQComplete
+ movs r0, 0x9
+ strb r0, [r4, 0x4]
+ movs r0, 0x1
+ strb r0, [r4, 0xB]
+_080FDE8A:
+ ldr r1, _080FDEAC @ =gUnknown_3005E10
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0
+ bne _080FDE94
+ b _080FE16E
+_080FDE94:
+ subs r0, 0x1
+ strh r0, [r1, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDEA0
+ b _080FE16E
+_080FDEA0:
+ movs r0, 0xB
+ strb r0, [r1, 0x4]
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _080FE16E
+ .align 2, 0
+_080FDEAC: .4byte gUnknown_3005E10
+_080FDEB0: .4byte gUnknown_3007460
+_080FDEB4:
+ cmp r6, 0
+ beq _080FDEBA
+ b _080FE16E
+_080FDEBA:
+ ldr r2, _080FDED4 @ =gUnknown_3005E10
+ ldrb r0, [r2, 0x5]
+ strb r0, [r2, 0x4]
+ ldrb r1, [r2, 0x7]
+ cmp r1, 0
+ bne _080FDED8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FDECE
+ b _080FE16E
+_080FDECE:
+ movs r0, 0x21
+ b _080FE0DA
+ .align 2, 0
+_080FDED4: .4byte gUnknown_3005E10
+_080FDED8:
+ cmp r1, 0x7
+ bne _080FDEDE
+ b _080FE16E
+_080FDEDE:
+ movs r0, 0x5
+ strb r0, [r2, 0x4]
+ strb r0, [r2, 0x7]
+ b _080FE16E
+_080FDEE6:
+ cmp r6, 0
+ beq _080FDEEC
+ b _080FE16E
+_080FDEEC:
+ ldr r1, _080FDEF8 @ =gUnknown_3005E10
+ movs r0, 0xD
+_080FDEF0:
+ strb r0, [r1, 0x5]
+ strb r0, [r1, 0x4]
+ b _080FE16E
+ .align 2, 0
+_080FDEF8: .4byte gUnknown_3005E10
+_080FDEFC:
+ cmp r6, 0
+ bne _080FDF20
+ ldr r4, _080FDF3C @ =gUnknown_3005E20
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_81E12A4
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FDF20
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FDF20
+ adds r1, r4, 0
+ subs r1, 0x10
+ movs r0, 0xE
+ strb r0, [r1, 0x4]
+_080FDF20:
+ ldr r1, _080FDF40 @ =gUnknown_3005E10
+ ldrh r0, [r1, 0x1A]
+ cmp r0, 0
+ bne _080FDF2A
+ b _080FE16E
+_080FDF2A:
+ subs r0, 0x1
+ strh r0, [r1, 0x1A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDF36
+ b _080FE16E
+_080FDF36:
+ movs r0, 0xE
+ strb r0, [r1, 0x4]
+ b _080FE16E
+ .align 2, 0
+_080FDF3C: .4byte gUnknown_3005E20
+_080FDF40: .4byte gUnknown_3005E10
+_080FDF44:
+ cmp r6, 0
+ beq _080FDF4A
+ b _080FE16E
+_080FDF4A:
+ ldr r4, _080FDF7C @ =gUnknown_3005E20
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_81E12A4
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FDF5C
+ b _080FE16E
+_080FDF5C:
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FDF80
+ adds r1, r4, 0
+ subs r1, 0x10
+ movs r0, 0x13
+ strb r0, [r1, 0x4]
+ movs r0, 0xF
+ strb r0, [r1, 0x5]
+ movs r0, 0x22
+ strh r0, [r1, 0x1E]
+ ldrb r0, [r1, 0x10]
+ strh r0, [r1, 0x14]
+ b _080FDFA0
+ .align 2, 0
+_080FDF7C: .4byte gUnknown_3005E20
+_080FDF80:
+ adds r1, r4, 0
+ subs r1, 0x10
+ strb r6, [r1, 0x5]
+ strb r6, [r1, 0x4]
+ movs r0, 0x23
+ strh r0, [r1, 0x1E]
+ mov r0, sp
+ ldrb r0, [r0]
+ strh r0, [r1, 0x14]
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _080FDFA0
+ movs r0, 0x3
+ strb r0, [r1, 0x7]
+ movs r0, 0x9
+ strb r0, [r1, 0x4]
+_080FDFA0:
+ ldr r4, _080FDFB0 @ =gUnknown_3005E10
+ ldrb r0, [r4, 0x1E]
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0
+ strh r0, [r4, 0x1E]
+ b _080FE16E
+ .align 2, 0
+_080FDFB0: .4byte gUnknown_3005E10
+_080FDFB4:
+ cmp r6, 0
+ beq _080FDFBA
+ b _080FE16E
+_080FDFBA:
+ ldr r2, _080FDFFC @ =gUnknown_3007460
+ ldr r3, [r2]
+ ldrb r0, [r3, 0x3]
+ movs r1, 0
+ strh r0, [r7, 0x14]
+ movs r0, 0x11
+ strb r0, [r7, 0x5]
+ strb r0, [r7, 0x4]
+ strb r1, [r7, 0x10]
+ ldrb r0, [r3, 0x3]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FDFD8
+ b _080FE16E
+_080FDFD8:
+ adds r1, r7, 0
+ movs r3, 0x1
+_080FDFDC:
+ ldrb r0, [r1, 0x10]
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _080FDFEC
+ b _080FE16E
+_080FDFEC:
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x3]
+ ldrb r4, [r7, 0x10]
+ asrs r0, r4
+ ands r0, r3
+ cmp r0, 0
+ beq _080FDFDC
+ b _080FE16E
+ .align 2, 0
+_080FDFFC: .4byte gUnknown_3007460
+_080FE000:
+ cmp r6, 0
+ bne _080FE01E
+ mov r0, sp
+ bl sub_81E1AE0
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FE01E
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _080FE01E
+ ldr r1, _080FE044 @ =gUnknown_3005E10
+ movs r0, 0x12
+ strb r0, [r1, 0x4]
+_080FE01E:
+ ldr r2, _080FE044 @ =gUnknown_3005E10
+ ldrb r0, [r2, 0x10]
+ lsls r0, 1
+ adds r1, r2, 0
+ adds r1, 0x34
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080FE032
+ b _080FE16E
+_080FE032:
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE03E
+ b _080FE16E
+_080FE03E:
+ movs r0, 0x12
+ strb r0, [r2, 0x4]
+ b _080FE16E
+ .align 2, 0
+_080FE044: .4byte gUnknown_3005E10
+_080FE048:
+ cmp r6, 0
+ beq _080FE04E
+ b _080FE16E
+_080FE04E:
+ mov r0, sp
+ bl sub_81E1AE0
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE05C
+ b _080FE16E
+_080FE05C:
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FE078
+ ldr r1, _080FE074 @ =gUnknown_3005E10
+ movs r0, 0x13
+ strb r0, [r1, 0x4]
+ movs r0, 0x16
+ strb r0, [r1, 0x5]
+ movs r0, 0x32
+ strh r0, [r1, 0x1E]
+ b _080FE08C
+ .align 2, 0
+_080FE074: .4byte gUnknown_3005E10
+_080FE078:
+ ldr r4, _080FE0B4 @ =gUnknown_3005E10
+ strb r6, [r4, 0x5]
+ strb r6, [r4, 0x4]
+ ldr r0, _080FE0B8 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ bl sub_80FE818
+ movs r0, 0x33
+ strh r0, [r4, 0x1E]
+_080FE08C:
+ ldr r5, _080FE0B4 @ =gUnknown_3005E10
+ ldrb r0, [r5, 0x10]
+ lsls r0, 1
+ adds r1, r5, 0
+ adds r1, 0x34
+ adds r0, r1
+ movs r1, 0
+ movs r4, 0
+ strh r4, [r0]
+ adds r0, r5, 0
+ adds r0, 0x30
+ strb r1, [r0]
+ strb r1, [r5, 0xA]
+ ldrb r0, [r5, 0x1E]
+ movs r1, 0x1
+ bl sub_80FE7F0
+ strh r4, [r5, 0x1E]
+ b _080FE16E
+ .align 2, 0
+_080FE0B4: .4byte gUnknown_3005E10
+_080FE0B8: .4byte gUnknown_3007460
+_080FE0BC:
+ cmp r6, 0
+ bne _080FE16E
+ ldr r5, _080FE0E4 @ =gUnknown_3005E10
+ ldrb r1, [r5, 0x5]
+ adds r0, r1, 0
+ cmp r0, 0x16
+ bne _080FE0E8
+ ldrb r0, [r5, 0x11]
+ strb r0, [r5, 0x4]
+ ldrb r0, [r5, 0x12]
+ strb r0, [r5, 0x5]
+ ldrb r0, [r5, 0x2]
+ movs r0, 0x1
+ strb r0, [r5, 0x2]
+ movs r0, 0x41
+_080FE0DA:
+ movs r1, 0
+ bl sub_80FE7F0
+ b _080FE16E
+ .align 2, 0
+_080FE0E4: .4byte gUnknown_3005E10
+_080FE0E8:
+ cmp r0, 0xF
+ bne _080FE16E
+ strb r1, [r5, 0x4]
+ ldrb r0, [r5, 0x2]
+ movs r4, 0x1
+ strb r4, [r5, 0x2]
+ movs r0, 0x41
+ movs r1, 0
+ bl sub_80FE7F0
+ adds r1, r5, 0
+ adds r1, 0x24
+ ldrb r0, [r5, 0x10]
+ lsls r4, r0
+ ldrb r0, [r1]
+ orrs r4, r0
+ strb r4, [r1]
+ ldrb r0, [r5, 0x10]
+ lsls r0, 1
+ adds r1, 0x4
+ adds r0, r1
+ ldrh r1, [r5, 0x26]
+ movs r7, 0
+ strh r1, [r0]
+ ldrb r1, [r5, 0x10]
+ movs r0, 0x4
+ bl rfu_clearSlot
+ mov r4, sp
+ ldrb r0, [r5, 0x10]
+ movs r1, 0xE
+ bl rfu_NI_CHILD_setSendGameName
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FE16E
+ strb r7, [r5, 0x5]
+ strb r7, [r5, 0x4]
+ bl sub_80FEAF4
+ ldr r0, _080FE158 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ ldrb r0, [r0, 0x3]
+ orrs r0, r1
+ bl sub_80FE818
+ mov r0, sp
+ ldrb r0, [r0]
+ strh r0, [r5, 0x14]
+ movs r0, 0x25
+ movs r1, 0x1
+ bl sub_80FE7F0
+ b _080FE16E
+ .align 2, 0
+_080FE158: .4byte gUnknown_3007460
+_080FE15C:
+ cmp r6, 0
+ bne _080FE16E
+ ldr r0, _080FE178 @ =gUnknown_3005E10
+ strb r6, [r0, 0x5]
+ strb r6, [r0, 0x4]
+ movs r0, 0x42
+ movs r1, 0
+ bl sub_80FE7F0
+_080FE16E:
+ ldr r1, _080FE178 @ =gUnknown_3005E10
+ movs r0, 0x1
+ strb r0, [r1, 0xE]
+ b _080FE1CA
+ .align 2, 0
+_080FE178: .4byte gUnknown_3005E10
+_080FE17C:
+ cmp r6, 0x3
+ bne _080FE1CA
+ ldrb r0, [r7, 0xF]
+ cmp r0, 0
+ beq _080FE1CA
+ mov r3, r8
+ cmp r3, 0x24
+ beq _080FE194
+ cmp r3, 0x26
+ beq _080FE194
+ cmp r3, 0x27
+ bne _080FE1CA
+_080FE194:
+ bl sub_81E090C
+ bl rfu_waitREQComplete
+ mov r0, sp
+ bl rfu_getRFUStatus
+ mov r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FE1CA
+ ldr r4, _080FE1E0 @ =gUnknown_3007460
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080FE1CA
+ bl rfu_getSTWIRecvBuffer
+ ldr r1, [r4]
+ ldrb r1, [r1, 0x2]
+ strb r1, [r0, 0x4]
+ movs r1, 0x1
+ strb r1, [r0, 0x5]
+ movs r0, 0x29
+ bl sub_80FD850
+ movs r6, 0
+_080FE1CA:
+ mov r4, r8
+ cmp r4, 0x26
+ bne _080FE1D2
+ b _080FE2E6
+_080FE1D2:
+ cmp r4, 0x26
+ bgt _080FE1E4
+ cmp r4, 0x10
+ bne _080FE1DC
+ b _080FE304
+_080FE1DC:
+ b _080FE322
+ .align 2, 0
+_080FE1E0: .4byte gUnknown_3007460
+_080FE1E4:
+ mov r0, r8
+ cmp r0, 0x30
+ beq _080FE1F2
+ cmp r0, 0x3D
+ bne _080FE1F0
+ b _080FE304
+_080FE1F0:
+ b _080FE322
+_080FE1F2:
+ cmp r6, 0
+ beq _080FE1F8
+ b _080FE326
+_080FE1F8:
+ bl rfu_getSTWIRecvBuffer
+ ldr r4, _080FE2A8 @ =gUnknown_3005E10
+ ldrb r0, [r0, 0x8]
+ strh r0, [r4, 0x14]
+ bl sub_80FE83C
+ adds r2, r4, 0
+ adds r2, 0x30
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _080FE24E
+ ldrb r0, [r4, 0x14]
+ adds r3, r1, 0
+ bics r3, r0
+ adds r0, r3, 0
+ strb r0, [r2]
+ movs r3, 0
+ adds r7, r4, 0
+ adds r1, r7, 0
+ movs r5, 0x1
+ adds r4, r1, 0
+ adds r4, 0x34
+ movs r2, 0
+_080FE228:
+ ldrh r0, [r1, 0x14]
+ asrs r0, r3
+ ands r0, r5
+ cmp r0, 0
+ beq _080FE238
+ lsls r0, r3, 1
+ adds r0, r4
+ strh r2, [r0]
+_080FE238:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080FE228
+ ldr r1, _080FE2A8 @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _080FE24E
+ strb r0, [r1, 0x5]
+ strb r0, [r1, 0x4]
+_080FE24E:
+ mov r3, sp
+ ldr r1, _080FE2A8 @ =gUnknown_3005E10
+ ldrb r2, [r1]
+ ldrb r0, [r1, 0x14]
+ ands r0, r2
+ strb r0, [r3]
+ movs r3, 0
+ adds r7, r1, 0
+ ldr r2, _080FE2AC @ =gUnknown_3007460
+ mov r1, sp
+ movs r5, 0x1
+ adds r4, r7, 0
+_080FE266:
+ ldrb r0, [r1]
+ asrs r0, r3
+ ands r0, r5
+ cmp r0, 0
+ beq _080FE27A
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _080FE27A
+ subs r0, 0x1
+ strb r0, [r7, 0x1]
+_080FE27A:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _080FE266
+ ldrb r1, [r7, 0x14]
+ ldrb r0, [r7]
+ bics r0, r1
+ strb r0, [r7]
+ ldrb r1, [r7, 0x7]
+ cmp r1, 0
+ beq _080FE2C4
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080FE2D6
+ cmp r1, 0x8
+ bne _080FE2B0
+ ldrh r0, [r7, 0x1C]
+ strh r0, [r7, 0x1A]
+ movs r0, 0x6
+ strb r0, [r7, 0x7]
+ b _080FE2C2
+ .align 2, 0
+_080FE2A8: .4byte gUnknown_3005E10
+_080FE2AC: .4byte gUnknown_3007460
+_080FE2B0:
+ ldrb r0, [r7, 0x4]
+ subs r0, 0x6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080FE2C4
+ movs r0, 0x1
+ strb r0, [r7, 0x7]
+ movs r0, 0x5
+_080FE2C2:
+ strb r0, [r7, 0x4]
+_080FE2C4:
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080FE2D6
+ ldrb r0, [r7, 0x4]
+ cmp r0, 0
+ bne _080FE2D6
+ movs r0, 0xFF
+ strb r0, [r7, 0x6]
+_080FE2D6:
+ ldrb r0, [r7, 0xE]
+ cmp r0, 0
+ bne _080FE322
+ movs r0, 0x40
+ movs r1, 0x1
+ bl sub_80FE7F0
+ b _080FE322
+_080FE2E6:
+ bl sub_80FE6F0
+ ldr r0, _080FE300 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _080FE322
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_80FE7F0
+ b _080FE322
+ .align 2, 0
+_080FE300: .4byte gUnknown_3007460
+_080FE304:
+ cmp r6, 0
+ bne _080FE326
+ ldr r0, _080FE350 @ =gUnknown_3005E10
+ strb r6, [r0, 0xD]
+ strb r6, [r0, 0x1]
+ strb r6, [r0]
+ movs r1, 0xFF
+ strb r1, [r0, 0x6]
+ bl sub_80FEAF4
+ mov r4, r8
+ cmp r4, 0x3D
+ bne _080FE322
+ bl sub_80FD484
+_080FE322:
+ cmp r6, 0
+ beq _080FE376
+_080FE326:
+ ldr r7, _080FE350 @ =gUnknown_3005E10
+ mov r0, r8
+ cmp r0, 0x1C
+ bne _080FE358
+ cmp r6, 0
+ beq _080FE358
+ ldrb r0, [r7, 0x7]
+ cmp r0, 0x4
+ bne _080FE358
+ ldr r2, _080FE354 @ =gUnknown_3007460
+ ldr r1, [r2]
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, [r2]
+ movs r0, 0xF
+ strb r0, [r1, 0x2]
+ bl sub_80FE818
+ bl rfu_waitREQComplete
+ b _080FE388
+ .align 2, 0
+_080FE350: .4byte gUnknown_3005E10
+_080FE354: .4byte gUnknown_3007460
+_080FE358:
+ movs r1, 0
+ mov r3, r8
+ strh r3, [r7, 0x14]
+ strh r6, [r7, 0x16]
+ ldrb r0, [r7, 0xE]
+ cmp r0, 0
+ beq _080FE36A
+ strb r1, [r7, 0x5]
+ strb r1, [r7, 0x4]
+_080FE36A:
+ movs r0, 0xF0
+ movs r1, 0x2
+ bl sub_80FE7F0
+ bl sub_80FEAF4
+_080FE376:
+ mov r4, r8
+ cmp r4, 0xFF
+ bne _080FE388
+ movs r0, 0xF2
+ movs r1, 0
+ bl sub_80FE7F0
+ bl sub_80FEAF4
+_080FE388:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FDC98
+
+ thumb_func_start sub_80FE394
+sub_80FE394: @ 80FE394
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, _080FE3C8 @ =gUnknown_3005E10
+ ldrb r7, [r4, 0xE]
+ movs r0, 0
+ strb r0, [r4, 0xE]
+ movs r0, 0x1
+ strb r0, [r4, 0xF]
+ ldr r0, _080FE3CC @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _080FE3D0
+ adds r0, r6, 0
+ bl sub_80FD850
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x1
+ beq _080FE3E8
+ bl sub_80FEAF4
+ strb r5, [r4, 0xF]
+ strb r7, [r4, 0xE]
+ b _080FE40C
+ .align 2, 0
+_080FE3C8: .4byte gUnknown_3005E10
+_080FE3CC: .4byte gUnknown_3007460
+_080FE3D0:
+ mov r0, sp
+ bl rfu_UNI_PARENT_getDRAC_ACK
+ lsls r0, 16
+ cmp r0, 0
+ bne _080FE3E8
+ mov r1, sp
+ ldrb r0, [r4, 0x3]
+ ldrb r1, [r1]
+ orrs r0, r1
+ ldrb r1, [r4, 0x3]
+ strb r0, [r4, 0x3]
+_080FE3E8:
+ ldr r4, _080FE414 @ =gUnknown_3005E10
+ ldr r1, [r4, 0x44]
+ cmp r1, 0
+ beq _080FE404
+ adds r0, r6, 0
+ bl _call_via_r1
+ bl rfu_waitREQComplete
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x2
+ bne _080FE404
+ bl sub_80FEAF4
+_080FE404:
+ ldr r1, _080FE414 @ =gUnknown_3005E10
+ movs r0, 0
+ strb r0, [r1, 0xF]
+ strb r7, [r1, 0xE]
+_080FE40C:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE414: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FE394
+
+ thumb_func_start sub_80FE418
+sub_80FE418: @ 80FE418
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r1, _080FE49C @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x4]
+ subs r0, 0x5
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r1, 0
+ cmp r0, 0x3
+ bls _080FE436
+ b _080FE62A
+_080FE436:
+ ldr r0, _080FE4A0 @ =gUnknown_3007460
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r3, 0xC]
+ adds r4, r1, 0
+ eors r4, r0
+ ands r4, r1
+ ldrb r0, [r2, 0x7]
+ bics r4, r0
+ mov r8, r4
+ strb r1, [r3, 0xC]
+ cmp r4, 0
+ beq _080FE45E
+ strh r4, [r3, 0x14]
+ movs r0, 0x10
+ movs r1, 0x1
+ str r3, [sp, 0x4]
+ bl sub_80FE7F0
+ ldr r3, [sp, 0x4]
+_080FE45E:
+ movs r0, 0
+ str r0, [sp]
+ movs r6, 0
+ adds r7, r3, 0
+ movs r1, 0x24
+ adds r1, r3
+ mov r9, r1
+_080FE46C:
+ movs r0, 0x80
+ lsls r0, 17
+ lsls r0, r6
+ lsrs r4, r0, 24
+ movs r5, 0
+ mov r0, r8
+ ands r0, r4
+ cmp r0, 0
+ beq _080FE4BE
+ lsls r1, r6, 1
+ adds r0, r7, 0
+ adds r0, 0x28
+ adds r1, r0
+ ldrh r0, [r7, 0x26]
+ strh r0, [r1]
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ mov r10, r6
+ b _080FE574
+ .align 2, 0
+_080FE49C: .4byte gUnknown_3005E10
+_080FE4A0: .4byte gUnknown_3007460
+_080FE4A4:
+ ldrb r1, [r7]
+ adds r0, r4, 0
+ orrs r0, r1
+ strb r0, [r7]
+ ldrb r0, [r7, 0x1]
+ adds r0, 0x1
+ strb r0, [r7, 0x1]
+ ldr r0, [sp]
+ orrs r0, r4
+ str r0, [sp]
+ movs r0, 0x1
+ orrs r5, r0
+ b _080FE508
+_080FE4BE:
+ mov r1, r9
+ ldrb r0, [r1]
+ ands r0, r4
+ adds r2, r6, 0x1
+ mov r10, r2
+ cmp r0, 0
+ beq _080FE574
+ ldr r0, _080FE518 @ =gUnknown_3007450
+ lsls r1, r6, 2
+ adds r1, r0
+ ldr r1, [r1]
+ ldrh r0, [r1, 0x34]
+ cmp r0, 0x46
+ bne _080FE524
+ adds r0, r1, 0
+ adds r0, 0x61
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080FE53C
+ movs r5, 0x2
+ ldr r3, [r3, 0x20]
+ ldrh r2, [r3]
+ ldr r0, _080FE51C @ =0x0000ffff
+ cmp r2, r0
+ beq _080FE508
+ ldr r0, _080FE520 @ =gUnknown_3007460
+ ldr r0, [r0]
+ lsls r1, r6, 5
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ ldr r1, _080FE51C @ =0x0000ffff
+_080FE4FC:
+ cmp r0, r2
+ beq _080FE4A4
+ adds r3, 0x2
+ ldrh r2, [r3]
+ cmp r2, r1
+ bne _080FE4FC
+_080FE508:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _080FE53C
+ movs r0, 0x4
+ orrs r5, r0
+ b _080FE53C
+ .align 2, 0
+_080FE518: .4byte gUnknown_3007450
+_080FE51C: .4byte 0x0000ffff
+_080FE520: .4byte gUnknown_3007460
+_080FE524:
+ lsls r1, r6, 1
+ adds r0, r3, 0
+ adds r0, 0x28
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _080FE5F8 @ =0x0000ffff
+ ands r0, r1
+ cmp r0, 0
+ bne _080FE53C
+ movs r5, 0x6
+_080FE53C:
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080FE562
+ mov r2, r9
+ ldrb r0, [r2]
+ bics r0, r4
+ movs r2, 0
+ mov r1, r9
+ strb r0, [r1]
+ lsls r0, r6, 1
+ adds r1, r7, 0
+ adds r1, 0x28
+ adds r0, r1
+ strh r2, [r0]
+ movs r0, 0x8
+ adds r1, r6, 0
+ bl rfu_clearSlot
+_080FE562:
+ movs r0, 0x4
+ ands r5, r0
+ ldr r3, _080FE5FC @ =gUnknown_3005E10
+ cmp r5, 0
+ beq _080FE574
+ ldrb r1, [r7, 0xD]
+ adds r0, r4, 0
+ orrs r0, r1
+ strb r0, [r7, 0xD]
+_080FE574:
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080FE580
+ b _080FE46C
+_080FE580:
+ ldr r4, [sp]
+ cmp r4, 0
+ beq _080FE592
+ ldr r0, _080FE5FC @ =gUnknown_3005E10
+ strh r4, [r0, 0x14]
+ movs r0, 0x11
+ movs r1, 0x1
+ bl sub_80FE7F0
+_080FE592:
+ ldr r1, _080FE5FC @ =gUnknown_3005E10
+ ldrb r0, [r1, 0xD]
+ cmp r0, 0
+ beq _080FE5CE
+ movs r5, 0x1
+ ldr r0, _080FE600 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _080FE5B2
+ ldrb r0, [r1, 0x3]
+ ldrb r1, [r1]
+ ands r0, r1
+ cmp r0, r1
+ beq _080FE5B2
+ movs r5, 0
+_080FE5B2:
+ cmp r5, 0
+ beq _080FE5CE
+ ldr r4, _080FE5FC @ =gUnknown_3005E10
+ ldrb r0, [r4, 0xD]
+ bl sub_80FE818
+ ldrb r0, [r4, 0xD]
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ strb r1, [r4, 0xD]
+ movs r0, 0x12
+ movs r1, 0x1
+ bl sub_80FE7F0
+_080FE5CE:
+ ldr r0, _080FE5FC @ =gUnknown_3005E10
+ adds r1, r0, 0
+ adds r1, 0x24
+ ldrb r1, [r1]
+ adds r3, r0, 0
+ cmp r1, 0
+ bne _080FE62A
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0x8
+ bne _080FE62A
+ ldrb r0, [r3, 0x7]
+ cmp r0, 0
+ bne _080FE604
+ strb r0, [r3, 0x5]
+ strb r0, [r3, 0x4]
+ movs r0, 0x14
+ movs r1, 0
+ bl sub_80FE7F0
+ b _080FE62A
+ .align 2, 0
+_080FE5F8: .4byte 0x0000ffff
+_080FE5FC: .4byte gUnknown_3005E10
+_080FE600: .4byte gUnknown_3007460
+_080FE604:
+ cmp r0, 0x2
+ bne _080FE610
+ movs r0, 0x3
+ strb r0, [r3, 0x7]
+ movs r0, 0x9
+ b _080FE616
+_080FE610:
+ movs r0, 0x1
+ strb r0, [r3, 0x7]
+ movs r0, 0x5
+_080FE616:
+ strb r0, [r3, 0x4]
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080FE62A
+ movs r0, 0
+ strh r0, [r3, 0x1A]
+ movs r0, 0x8
+ strb r0, [r3, 0x7]
+ movs r0, 0x5
+ strb r0, [r3, 0x4]
+_080FE62A:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FE418
+
+ thumb_func_start sub_80FE63C
+sub_80FE63C: @ 80FE63C
+ push {r4-r6,lr}
+ ldr r1, _080FE6E0 @ =0x04000208
+ ldrh r0, [r1]
+ adds r6, r0, 0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r4, _080FE6E4 @ =gUnknown_3005E10
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0xF
+ bne _080FE6A0
+ ldrb r1, [r4, 0x10]
+ lsls r1, 1
+ adds r5, r4, 0
+ adds r5, 0x28
+ adds r1, r5
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080FE676
+ ldr r1, _080FE6E8 @ =gUnknown_3007450
+ ldrb r0, [r4, 0x10]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x27
+ bne _080FE6A0
+_080FE676:
+ bl sub_80FEB14
+ movs r0, 0x18
+ strb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x4
+ bl rfu_clearSlot
+ adds r2, r4, 0
+ adds r2, 0x24
+ movs r1, 0x1
+ ldrb r0, [r4, 0x10]
+ lsls r1, r0
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4, 0x10]
+ lsls r0, 1
+ adds r0, r5
+ movs r1, 0
+ strh r1, [r0]
+_080FE6A0:
+ ldr r0, _080FE6E0 @ =0x04000208
+ strh r6, [r0]
+ ldr r5, _080FE6E4 @ =gUnknown_3005E10
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x18
+ bne _080FE6DA
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x1
+ bne _080FE6B6
+ bl sub_80FEB14
+_080FE6B6:
+ ldrb r0, [r5, 0x2]
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080FE6DA
+ strb r4, [r5, 0x5]
+ strb r4, [r5, 0x4]
+ ldr r0, _080FE6EC @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x2]
+ ldrb r0, [r0, 0x3]
+ orrs r0, r1
+ bl sub_80FE818
+ strh r4, [r5, 0x14]
+ movs r0, 0x25
+ movs r1, 0x1
+ bl sub_80FE7F0
+_080FE6DA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE6E0: .4byte 0x04000208
+_080FE6E4: .4byte gUnknown_3005E10
+_080FE6E8: .4byte gUnknown_3007450
+_080FE6EC: .4byte gUnknown_3007460
+ thumb_func_end sub_80FE63C
+
+ thumb_func_start sub_80FE6F0
+sub_80FE6F0: @ 80FE6F0
+ push {r4,r5,lr}
+ ldr r5, _080FE744 @ =gUnknown_3005E10
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0xF
+ bne _080FE73C
+ ldr r1, _080FE748 @ =gUnknown_3007450
+ ldrb r2, [r5, 0x10]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x26
+ bne _080FE73C
+ movs r4, 0
+ strb r4, [r5, 0x5]
+ strb r4, [r5, 0x4]
+ movs r0, 0x4
+ adds r1, r2, 0
+ bl rfu_clearSlot
+ adds r2, r5, 0
+ adds r2, 0x24
+ movs r1, 0x1
+ ldrb r0, [r5, 0x10]
+ lsls r1, r0
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5, 0x10]
+ lsls r0, 1
+ adds r1, r5, 0
+ adds r1, 0x28
+ adds r0, r1
+ strh r4, [r0]
+ movs r0, 0x24
+ movs r1, 0
+ bl sub_80FE7F0
+_080FE73C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE744: .4byte gUnknown_3005E10
+_080FE748: .4byte gUnknown_3007450
+ thumb_func_end sub_80FE6F0
+
+ thumb_func_start sub_80FE74C
+sub_80FE74C: @ 80FE74C
+ push {lr}
+ ldr r1, _080FE774 @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _080FE770
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0x1
+ bne _080FE770
+ ldrb r0, [r1, 0x4]
+ strb r0, [r1, 0x11]
+ ldrb r0, [r1, 0x5]
+ strb r0, [r1, 0x12]
+ movs r0, 0x10
+ strb r0, [r1, 0x4]
+ movs r0, 0x11
+ strb r0, [r1, 0x5]
+ movs r0, 0x2
+ strb r0, [r1, 0xA]
+_080FE770:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE774: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FE74C
+
+ thumb_func_start sub_80FE778
+sub_80FE778: @ 80FE778
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r1, _080FE7E4 @ =gUnknown_3007460
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x8]
+ cmp r6, r0
+ bcs _080FE7D4
+ mov r8, r0
+ ldr r0, _080FE7E8 @ =gUnknown_3005E10
+ mov r10, r0
+ mov r9, r1
+_080FE798:
+ mov r1, r10
+ ldr r3, [r1, 0x20]
+ ldrh r2, [r3]
+ adds r0, r5, 0x1
+ mov r12, r0
+ ldr r1, _080FE7EC @ =0x0000ffff
+ cmp r2, r1
+ beq _080FE7CA
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r1, r5, 5
+ adds r0, r1
+ ldrh r4, [r0, 0x18]
+ ldr r7, _080FE7EC @ =0x0000ffff
+ movs r1, 0x1
+ lsls r1, r5
+_080FE7B8:
+ cmp r4, r2
+ bne _080FE7C2
+ orrs r6, r1
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_080FE7C2:
+ adds r3, 0x2
+ ldrh r2, [r3]
+ cmp r2, r7
+ bne _080FE7B8
+_080FE7CA:
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, r8
+ bcc _080FE798
+_080FE7D4:
+ adds r0, r6, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FE7E4: .4byte gUnknown_3007460
+_080FE7E8: .4byte gUnknown_3005E10
+_080FE7EC: .4byte 0x0000ffff
+ thumb_func_end sub_80FE778
+
+ thumb_func_start sub_80FE7F0
+sub_80FE7F0: @ 80FE7F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _080FE814 @ =gUnknown_3005E10
+ ldr r2, [r4, 0x40]
+ cmp r2, 0
+ beq _080FE806
+ bl _call_via_r2
+_080FE806:
+ movs r0, 0
+ strh r0, [r4, 0x16]
+ strh r0, [r4, 0x14]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE814: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FE7F0
+
+ thumb_func_start sub_80FE818
+sub_80FE818: @ 80FE818
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _080FE838 @ =gUnknown_3005E10
+ ldrb r5, [r4, 0xE]
+ movs r1, 0x1
+ strb r1, [r4, 0xE]
+ bl rfu_REQ_disconnect
+ bl rfu_waitREQComplete
+ strb r5, [r4, 0xE]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE838: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FE818
+
+ thumb_func_start sub_80FE83C
+sub_80FE83C: @ 80FE83C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080FE908 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080FE884
+ movs r4, 0
+_080FE84E:
+ ldr r1, _080FE90C @ =gUnknown_3007450
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE87A
+ ldrb r1, [r2, 0x1A]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE87A
+ adds r2, r1, 0
+ bics r2, r5
+ movs r0, 0x20
+ adds r1, r4, 0
+ bl rfu_changeSendTarget
+_080FE87A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080FE84E
+_080FE884:
+ ldr r0, _080FE908 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0
+ beq _080FE8C2
+ movs r4, 0
+_080FE890:
+ ldr r1, _080FE90C @ =gUnknown_3007450
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x34]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE8B8
+ adds r0, r2, 0
+ adds r0, 0x4E
+ ldrb r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ beq _080FE8B8
+ adds r0, r4, 0
+ bl rfu_NI_stopReceivingData
+_080FE8B8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080FE890
+_080FE8C2:
+ ldr r0, _080FE908 @ =gUnknown_3007460
+ ldr r3, [r0]
+ ldrb r2, [r3, 0x6]
+ cmp r2, 0
+ beq _080FE900
+ mvns r1, r5
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3, 0x6]
+ movs r4, 0
+ ldr r7, _080FE910 @ =gUnknown_3007440
+ ldr r6, _080FE914 @ =0x00008024
+_080FE8DA:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r2, [r0]
+ ldrh r0, [r2]
+ cmp r0, r6
+ bne _080FE8F6
+ ldrb r3, [r2, 0x3]
+ adds r0, r5, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _080FE8F6
+ adds r0, r1, 0
+ ands r0, r3
+ strb r0, [r2, 0x3]
+_080FE8F6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080FE8DA
+_080FE900:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FE908: .4byte gUnknown_3007460
+_080FE90C: .4byte gUnknown_3007450
+_080FE910: .4byte gUnknown_3007440
+_080FE914: .4byte 0x00008024
+ thumb_func_end sub_80FE83C
+
+ thumb_func_start sub_80FE918
+sub_80FE918: @ 80FE918
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080FEA04 @ =gUnknown_3005E10
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _080FE9F4
+ ldr r0, _080FEA08 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _080FE9B8
+ movs r6, 0
+_080FE938:
+ ldr r3, _080FEA0C @ =gUnknown_3007450
+ lsls r2, r6, 2
+ adds r0, r2, r3
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r0, r4, 0
+ ands r1, r0
+ adds r7, r2, 0
+ adds r0, r6, 0x1
+ mov r9, r0
+ cmp r1, 0
+ beq _080FE9AE
+ movs r5, 0
+ movs r4, 0
+ movs r1, 0x1
+ mov r8, r1
+ mov r10, r3
+_080FE95E:
+ adds r0, r7, r3
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1A]
+ asrs r0, r4
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE988
+ lsls r0, r4, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldr r1, _080FEA04 @ =gUnknown_3005E10
+ ldrh r0, [r0, 0x2]
+ ldrh r1, [r1, 0x18]
+ cmp r0, r1
+ bls _080FE988
+ mov r0, r8
+ lsls r0, r4
+ orrs r5, r0
+ lsls r0, r5, 24
+ lsrs r5, r0, 24
+_080FE988:
+ cmp r5, 0
+ beq _080FE9A4
+ mov r1, r10
+ adds r0, r7, r1
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1A]
+ adds r2, r5, 0
+ eors r2, r0
+ movs r0, 0x20
+ adds r1, r6, 0
+ str r3, [sp]
+ bl rfu_changeSendTarget
+ ldr r3, [sp]
+_080FE9A4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _080FE95E
+_080FE9AE:
+ mov r3, r9
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080FE938
+_080FE9B8:
+ ldr r0, _080FEA08 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0
+ beq _080FE9F4
+ movs r6, 0
+_080FE9C4:
+ ldr r1, _080FEA0C @ =gUnknown_3007450
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x34]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080FE9EA
+ ldr r1, _080FEA04 @ =gUnknown_3005E10
+ ldrh r0, [r2, 0x36]
+ ldrh r1, [r1, 0x18]
+ cmp r0, r1
+ bls _080FE9EA
+ adds r0, r6, 0
+ bl rfu_NI_stopReceivingData
+_080FE9EA:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _080FE9C4
+_080FE9F4:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEA04: .4byte gUnknown_3005E10
+_080FEA08: .4byte gUnknown_3007460
+_080FEA0C: .4byte gUnknown_3007450
+ thumb_func_end sub_80FE918
+
+ thumb_func_start sub_80FEA10
+sub_80FEA10: @ 80FEA10
+ push {lr}
+ ldr r1, _080FEA20 @ =gUnknown_3005E10
+ str r0, [r1, 0x44]
+ ldr r0, _080FEA24 @ =sub_80FE394
+ bl rfu_setMSCCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEA20: .4byte gUnknown_3005E10
+_080FEA24: .4byte sub_80FE394
+ thumb_func_end sub_80FEA10
+
+ thumb_func_start sub_80FEA28
+sub_80FEA28: @ 80FEA28
+ ldr r1, _080FEA30 @ =gUnknown_3005E10
+ str r0, [r1, 0x40]
+ bx lr
+ .align 2, 0
+_080FEA30: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FEA28
+
+ thumb_func_start sub_80FEA34
+sub_80FEA34: @ 80FEA34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _080FEA58 @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x9]
+ adds r3, r0, 0
+ cmp r1, 0
+ beq _080FEA5C
+ cmp r4, 0
+ bne _080FEA5C
+ adds r0, 0x30
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080FEA5C
+ movs r0, 0x5
+ b _080FEA6C
+ .align 2, 0
+_080FEA58: .4byte gUnknown_3005E10
+_080FEA5C:
+ ldr r2, _080FEA74 @ =0x04000208
+ ldrh r1, [r2]
+ movs r0, 0
+ strh r0, [r2]
+ strb r4, [r3, 0x9]
+ strh r5, [r3, 0x32]
+ strh r1, [r2]
+ movs r0, 0
+_080FEA6C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FEA74: .4byte 0x04000208
+ thumb_func_end sub_80FEA34
+
+ thumb_func_start sub_80FEA78
+sub_80FEA78: @ 80FEA78
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r0, _080FEA94 @ =gUnknown_3007460
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x4]
+ ldrb r0, [r0, 0x5]
+ orrs r0, r1
+ cmp r0, 0
+ bne _080FEA9C
+ ldr r0, _080FEA98 @ =gUnknown_3005E10
+ strh r2, [r0, 0x18]
+ movs r0, 0
+ b _080FEAAC
+ .align 2, 0
+_080FEA94: .4byte gUnknown_3007460
+_080FEA98: .4byte gUnknown_3005E10
+_080FEA9C:
+ ldr r1, _080FEAB0 @ =gUnknown_3005E10
+ movs r0, 0x6
+ strh r0, [r1, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x6
+_080FEAAC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FEAB0: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FEA78
+
+ thumb_func_start sub_80FEAB4
+sub_80FEAB4: @ 80FEAB4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ ldr r1, _080FEADC @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x4]
+ subs r0, 0x9
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _080FEAE0
+ movs r0, 0x7
+ strh r0, [r1, 0x14]
+ movs r0, 0xF3
+ movs r1, 0x1
+ bl sub_80FE7F0
+ movs r0, 0x7
+ b _080FEAEE
+ .align 2, 0
+_080FEADC: .4byte gUnknown_3005E10
+_080FEAE0:
+ cmp r2, 0
+ beq _080FEAEA
+ movs r0, 0x1
+ strb r0, [r1, 0xB]
+ b _080FEAEC
+_080FEAEA:
+ strb r3, [r1, 0xB]
+_080FEAEC:
+ movs r0, 0
+_080FEAEE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FEAB4
+
+ thumb_func_start sub_80FEAF4
+sub_80FEAF4: @ 80FEAF4
+ push {lr}
+ ldr r1, _080FEB10 @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080FEB0C
+ ldrb r0, [r1, 0x2]
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ movs r0, 0x45
+ movs r1, 0
+ bl sub_80FE7F0
+_080FEB0C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEB10: .4byte gUnknown_3005E10
+ thumb_func_end sub_80FEAF4
+
+ thumb_func_start sub_80FEB14
+sub_80FEB14: @ 80FEB14
+ push {lr}
+ ldr r1, _080FEB28 @ =gUnknown_3005E10
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080FEB2C
+ movs r0, 0x45
+ movs r1, 0
+ bl sub_80FE7F0
+ b _080FEB38
+ .align 2, 0
+_080FEB28: .4byte gUnknown_3005E10
+_080FEB2C:
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x1
+ bne _080FEB38
+ ldrb r0, [r1, 0x2]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+_080FEB38:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEB14
+
+ thumb_func_start sub_80FEB3C
+sub_80FEB3C: @ 80FEB3C
+ push {lr}
+ ldr r0, _080FEB5C @ =gUnknown_3005E10
+ ldrb r1, [r0, 0x7]
+ adds r2, r0, 0
+ cmp r1, 0
+ beq _080FEBA6
+ ldrb r0, [r2, 0x4]
+ subs r0, 0x5
+ cmp r0, 0x6
+ bhi _080FEBA6
+ lsls r0, 2
+ ldr r1, _080FEB60 @ =_080FEB64
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FEB5C: .4byte gUnknown_3005E10
+_080FEB60: .4byte _080FEB64
+ .align 2, 0
+_080FEB64:
+ .4byte _080FEB80
+ .4byte _080FEB88
+ .4byte _080FEB92
+ .4byte _080FEB92
+ .4byte _080FEB98
+ .4byte _080FEB98
+ .4byte _080FEB9E
+_080FEB80:
+ movs r0, 0x3
+ strb r0, [r2, 0x7]
+ movs r0, 0x9
+ b _080FEBA4
+_080FEB88:
+ movs r0, 0x2
+ strb r0, [r2, 0x7]
+ movs r0, 0x1
+ strh r0, [r2, 0x1A]
+ b _080FEBA6
+_080FEB92:
+ movs r0, 0x2
+ strb r0, [r2, 0x7]
+ b _080FEBA6
+_080FEB98:
+ movs r0, 0x28
+ strh r0, [r2, 0x1A]
+ b _080FEBA6
+_080FEB9E:
+ movs r0, 0x28
+ strh r0, [r2, 0x1A]
+ movs r0, 0xA
+_080FEBA4:
+ strb r0, [r2, 0x4]
+_080FEBA6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEB3C
+
+ thumb_func_start sub_80FEBAC
+sub_80FEBAC: @ 80FEBAC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_80773BC
+ ldr r0, _080FEC00 @ =sub_80FEC54
+ movs r1, 0
+ bl sub_807741C
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _080FEC04 @ =gUnknown_3005090
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r6, 0
+ bl sub_80776E8
+ adds r0, r4, 0
+ movs r1, 0x4
+ mov r2, r8
+ bl sub_80776E8
+ ldr r0, _080FEC08 @ =sub_80FEC0C
+ bl sub_8000544
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEC00: .4byte sub_80FEC54
+_080FEC04: .4byte gUnknown_3005090
+_080FEC08: .4byte sub_80FEC0C
+ thumb_func_end sub_80FEBAC
+
+ thumb_func_start sub_80FEC0C
+sub_80FEC0C: @ 80FEC0C
+ push {lr}
+ bl sub_8077578
+ bl sub_8006B5C
+ bl sub_8006BA8
+ bl sub_80704D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEC0C
+
+ thumb_func_start sub_80FEC24
+sub_80FEC24: @ 80FEC24
+ push {lr}
+ bl sub_8070474
+ bl sub_8007320
+ bl sub_8007610
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEC24
+
+ thumb_func_start sub_80FEC38
+sub_80FEC38: @ 80FEC38
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _080FEC50 @ =gUnknown_3005090
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ str r1, [r2]
+ movs r0, 0
+ strh r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_080FEC50: .4byte gUnknown_3005090
+ thumb_func_end sub_80FEC38
+
+ thumb_func_start sub_80FEC54
+sub_80FEC54: @ 80FEC54
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_805642C
+ cmp r0, 0
+ bne _080FEC70
+_080FEC62:
+ adds r0, r4, 0
+ bl sub_80FED80
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEC62
+ b _080FEC7E
+_080FEC70:
+ adds r0, r4, 0
+ bl sub_80FED80
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080FEC86
+_080FEC7E:
+ ldr r1, _080FEC8C @ =sub_80FEC90
+ adds r0, r4, 0
+ bl sub_80FEC38
+_080FEC86:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEC8C: .4byte sub_80FEC90
+ thumb_func_end sub_80FEC54
+
+ thumb_func_start sub_80FEC90
+sub_80FEC90: @ 80FEC90
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080FECB4 @ =gUnknown_3005098
+ adds r6, r0, r1
+ movs r0, 0
+ ldrsh r5, [r6, r0]
+ cmp r5, 0x1
+ beq _080FECEC
+ cmp r5, 0x1
+ bgt _080FECB8
+ cmp r5, 0
+ beq _080FECC2
+ b _080FED6E
+ .align 2, 0
+_080FECB4: .4byte gUnknown_3005098
+_080FECB8:
+ cmp r5, 0x2
+ beq _080FED28
+ cmp r5, 0x3
+ beq _080FED38
+ b _080FED6E
+_080FECC2:
+ ldr r0, _080FECE8 @ =sub_80FEC24
+ bl sub_80006F4
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_80714D4
+ str r5, [sp]
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ b _080FED20
+ .align 2, 0
+_080FECE8: .4byte sub_80FEC24
+_080FECEC:
+ bl sub_80FF028
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x17
+ bne _080FED10
+ movs r1, 0x1
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ movs r0, 0x3
+ strh r0, [r6]
+ b _080FED6E
+_080FED10:
+ cmp r4, 0
+ beq _080FED6E
+ movs r0, 0x5
+ bl sub_80722CC
+ adds r0, r4, 0
+ bl sub_8100134
+_080FED20:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ b _080FED6E
+_080FED28:
+ bl sub_810014C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FED6E
+ movs r0, 0x1
+ strh r0, [r6]
+ b _080FED6E
+_080FED38:
+ ldr r0, _080FED78 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080FED6E
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0xE
+ bne _080FED50
+ bl sub_80FEF4C
+_080FED50:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _080FED62
+ ldr r0, _080FED7C @ =0x0000082d
+ bl sub_806E680
+ bl sub_80FEF2C
+_080FED62:
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_8077720
+ bl sub_80FEE24
+_080FED6E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FED78: .4byte gUnknown_2037AB8
+_080FED7C: .4byte 0x0000082d
+ thumb_func_end sub_80FEC90
+
+ thumb_func_start sub_80FED80
+sub_80FED80: @ 80FED80
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080FEDA4 @ =gUnknown_3005098
+ adds r6, r0, r1
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x4
+ bhi _080FEE12
+ lsls r0, 2
+ ldr r1, _080FEDA8 @ =_080FEDAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FEDA4: .4byte gUnknown_3005098
+_080FEDA8: .4byte _080FEDAC
+ .align 2, 0
+_080FEDAC:
+ .4byte _080FEDC0
+ .4byte _080FEDD4
+ .4byte _080FEDDA
+ .4byte _080FEDEE
+ .4byte _080FEE06
+_080FEDC0:
+ movs r0, 0
+ bl sub_80006F4
+ bl sub_8006B10
+ bl sub_80088F0
+ bl sub_8070528
+ b _080FEE16
+_080FEDD4:
+ bl sub_80BDE44
+ b _080FEDF2
+_080FEDDA:
+ ldrb r4, [r6, 0x2]
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8077720
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_80FEF6C
+ b _080FEDF2
+_080FEDEE:
+ bl sub_80FFF80
+_080FEDF2:
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FEE16
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_8077720
+ bl sub_80FEE24
+ b _080FEE16
+_080FEE06:
+ bl sub_80FFF98
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FEE16
+ b _080FEE1C
+_080FEE12:
+ movs r0, 0
+ b _080FEE1E
+_080FEE16:
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+_080FEE1C:
+ movs r0, 0x1
+_080FEE1E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FED80
+
+ thumb_func_start sub_80FEE24
+sub_80FEE24: @ 80FEE24
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80BDE70
+ bl sub_80FF010
+ bl sub_810011C
+ bl sub_8003ECC
+ adds r0, r4, 0
+ bl sub_8000544
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FEE24
+
+ thumb_func_start sub_80FEE44
+sub_80FEE44: @ 80FEE44
+ push {lr}
+ ldr r0, _080FEE58 @ =gUnknown_20370C0
+ ldrh r0, [r0]
+ cmp r0, 0xE
+ bhi _080FEF12
+ lsls r0, 2
+ ldr r1, _080FEE5C @ =_080FEE60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FEE58: .4byte gUnknown_20370C0
+_080FEE5C: .4byte _080FEE60
+ .align 2, 0
+_080FEE60:
+ .4byte _080FEE9C
+ .4byte _080FEEB0
+ .4byte _080FEEC4
+ .4byte _080FEED8
+ .4byte _080FEEF4
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEF12
+ .4byte _080FEEEC
+_080FEE9C:
+ ldr r0, _080FEEA8 @ =gUnknown_3005008
+ ldr r0, [r0]
+ ldr r2, _080FEEAC @ =0x00002ca0
+ adds r1, r0, r2
+ b _080FEF08
+ .align 2, 0
+_080FEEA8: .4byte gUnknown_3005008
+_080FEEAC: .4byte 0x00002ca0
+_080FEEB0:
+ ldr r0, _080FEEBC @ =gUnknown_3005008
+ ldr r0, [r0]
+ ldr r2, _080FEEC0 @ =0x00002cac
+ adds r1, r0, r2
+ b _080FEF08
+ .align 2, 0
+_080FEEBC: .4byte gUnknown_3005008
+_080FEEC0: .4byte 0x00002cac
+_080FEEC4:
+ ldr r0, _080FEED0 @ =gUnknown_3005008
+ ldr r0, [r0]
+ ldr r2, _080FEED4 @ =0x00002cb8
+ adds r1, r0, r2
+ b _080FEF08
+ .align 2, 0
+_080FEED0: .4byte gUnknown_3005008
+_080FEED4: .4byte 0x00002cb8
+_080FEED8:
+ ldr r0, _080FEEE4 @ =gUnknown_3005008
+ ldr r0, [r0]
+ ldr r2, _080FEEE8 @ =0x00002cc4
+ adds r1, r0, r2
+ b _080FEF08
+ .align 2, 0
+_080FEEE4: .4byte gUnknown_3005008
+_080FEEE8: .4byte 0x00002cc4
+_080FEEEC:
+ bl sub_8143DA8
+ adds r1, r0, 0
+ b _080FEF08
+_080FEEF4:
+ ldr r2, _080FEF18 @ =gUnknown_3005008
+ ldr r0, _080FEF1C @ =gUnknown_20370C2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080FEF20 @ =0x00002cd0
+ adds r0, r1
+ ldr r1, [r2]
+ adds r1, r0
+_080FEF08:
+ ldr r0, _080FEF24 @ =gUnknown_20370C0
+ ldrb r0, [r0]
+ ldr r2, _080FEF28 @ =sub_80568C4
+ bl sub_80FEBAC
+_080FEF12:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF18: .4byte gUnknown_3005008
+_080FEF1C: .4byte gUnknown_20370C2
+_080FEF20: .4byte 0x00002cd0
+_080FEF24: .4byte gUnknown_20370C0
+_080FEF28: .4byte sub_80568C4
+ thumb_func_end sub_80FEE44
+
+ thumb_func_start sub_80FEF2C
+sub_80FEF2C: @ 80FEF2C
+ push {r4,lr}
+ ldr r4, _080FEF44 @ =gUnknown_20370C0
+ ldr r0, _080FEF48 @ =gUnknown_843F29C
+ movs r1, 0x4
+ bl sub_80FFEDC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF44: .4byte gUnknown_20370C0
+_080FEF48: .4byte gUnknown_843F29C
+ thumb_func_end sub_80FEF2C
+
+ thumb_func_start sub_80FEF4C
+sub_80FEF4C: @ 80FEF4C
+ push {r4,lr}
+ ldr r4, _080FEF64 @ =gUnknown_20370C0
+ ldr r0, _080FEF68 @ =gUnknown_843F2A4
+ movs r1, 0x4
+ bl sub_80FFEDC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FEF64: .4byte gUnknown_20370C0
+_080FEF68: .4byte gUnknown_843F2A4
+ thumb_func_end sub_80FEF4C
+
+ thumb_func_start sub_80FEF6C
+sub_80FEF6C: @ 80FEF6C
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080FEF88 @ =gUnknown_203ACE8
+ movs r0, 0x2C
+ bl sub_8002B9C
+ str r0, [r4]
+ cmp r0, 0
+ bne _080FEF8C
+ movs r0, 0
+ b _080FF006
+ .align 2, 0
+_080FEF88: .4byte gUnknown_203ACE8
+_080FEF8C:
+ movs r1, 0
+ strb r5, [r0]
+ ldr r0, [r4]
+ str r6, [r0, 0x14]
+ strb r1, [r0, 0x4]
+ ldr r0, [r4]
+ strb r1, [r0, 0x5]
+ ldr r0, [r4]
+ strb r1, [r0, 0x6]
+ ldr r0, [r4]
+ strb r1, [r0, 0x9]
+ adds r0, r5, 0
+ bl sub_80FFF1C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldr r2, _080FF00C @ =gUnknown_843F2AC
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r2, [r1, 0x1]
+ strb r2, [r3, 0x2]
+ ldr r2, [r4]
+ ldrb r1, [r1, 0x2]
+ strb r1, [r2, 0x3]
+ ldr r1, [r4]
+ ldrb r3, [r1, 0x2]
+ ldrb r2, [r1, 0x3]
+ adds r5, r3, 0
+ muls r5, r2
+ adds r2, r5, 0
+ strb r2, [r1, 0x7]
+ ldr r1, [r4]
+ strb r0, [r1, 0x1]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0x9
+ bls _080FEFE0
+ movs r0, 0x9
+ strb r0, [r1, 0x7]
+_080FEFE0:
+ ldr r0, [r4]
+ adds r1, r0, 0
+ adds r1, 0x18
+ ldrb r2, [r0, 0x7]
+ adds r0, r6, 0
+ bl CpuSet
+ bl sub_80BDF38
+ ldr r2, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r0, 0x1
+ strb r0, [r2, 0xD]
+ movs r0, 0x1
+_080FF006:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF00C: .4byte gUnknown_843F2AC
+ thumb_func_end sub_80FEF6C
+
+ thumb_func_start sub_80FF010
+sub_80FF010: @ 80FF010
+ push {lr}
+ ldr r0, _080FF024 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080FF01E
+ bl sub_8002BC4
+_080FF01E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF024: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF010
+
+ thumb_func_start sub_80FF028
+sub_80FF028: @ 80FF028
+ push {lr}
+ ldr r0, _080FF040 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x6
+ bhi _080FF092
+ lsls r0, 2
+ ldr r1, _080FF044 @ =_080FF048
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FF040: .4byte gUnknown_203ACE8
+_080FF044: .4byte _080FF048
+ .align 2, 0
+_080FF048:
+ .4byte _080FF064
+ .4byte _080FF06A
+ .4byte _080FF070
+ .4byte _080FF076
+ .4byte _080FF07C
+ .4byte _080FF082
+ .4byte _080FF088
+_080FF064:
+ bl sub_80FF098
+ b _080FF08C
+_080FF06A:
+ bl sub_80FF20C
+ b _080FF08C
+_080FF070:
+ bl sub_80FF360
+ b _080FF08C
+_080FF076:
+ bl sub_80FF41C
+ b _080FF08C
+_080FF07C:
+ bl sub_80FF4A8
+ b _080FF08C
+_080FF082:
+ bl sub_80FF544
+ b _080FF08C
+_080FF088:
+ bl sub_80FF4F0
+_080FF08C:
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FF094
+_080FF092:
+ movs r0, 0
+_080FF094:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF028
+
+ thumb_func_start sub_80FF098
+sub_80FF098: @ 80FF098
+ push {r4-r7,lr}
+ ldr r0, _080FF0C0 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF0E4
+ ldr r1, _080FF0C4 @ =gUnknown_203ACE8
+ ldr r3, [r1]
+ movs r2, 0
+ movs r0, 0x2
+ strb r0, [r3, 0x4]
+ ldr r0, [r1]
+ strb r2, [r0, 0xA]
+ ldr r0, [r1]
+ strb r2, [r0, 0xB]
+ ldr r0, [r1]
+ strb r2, [r0, 0xC]
+ movs r0, 0x9
+ b _080FF1FC
+ .align 2, 0
+_080FF0C0: .4byte gUnknown_30030F0
+_080FF0C4: .4byte gUnknown_203ACE8
+_080FF0C8:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF194
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF184
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF174
+ movs r0, 0
+ b _080FF1FC
+_080FF0E4:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF1A4
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF1AA
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF0C8
+ ldr r2, _080FF16C @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x6]
+ subs r0, 0x1
+_080FF104:
+ strb r0, [r1, 0x6]
+_080FF106:
+ adds r7, r2, 0
+ adds r4, r7, 0
+ ldr r2, [r4]
+ movs r0, 0x6
+ ldrsb r0, [r2, r0]
+ ldr r6, _080FF170 @ =gUnknown_843F2AC
+ cmp r0, 0
+ bge _080FF124
+ ldrb r0, [r2, 0x1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x2]
+ strb r0, [r2, 0x6]
+_080FF124:
+ ldr r3, [r4]
+ movs r2, 0x6
+ ldrsb r2, [r3, r2]
+ adds r5, r6, 0
+ ldrb r1, [r3, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ cmp r2, r0
+ ble _080FF140
+ movs r0, 0
+ strb r0, [r3, 0x6]
+_080FF140:
+ ldr r3, [r4]
+ movs r2, 0x6
+ ldrsb r2, [r3, r2]
+ ldrb r1, [r3, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x2]
+ cmp r2, r0
+ bne _080FF1B4
+ movs r0, 0x5
+ ldrsb r0, [r3, r0]
+ cmp r0, 0x2
+ ble _080FF162
+ movs r0, 0x2
+ strb r0, [r3, 0x5]
+_080FF162:
+ ldr r1, [r4]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x3
+ b _080FF1FC
+ .align 2, 0
+_080FF16C: .4byte gUnknown_203ACE8
+_080FF170: .4byte gUnknown_843F2AC
+_080FF174:
+ ldr r2, _080FF180 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080FF106
+ .align 2, 0
+_080FF180: .4byte gUnknown_203ACE8
+_080FF184:
+ ldr r2, _080FF190 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x6]
+ adds r0, 0x1
+ b _080FF104
+ .align 2, 0
+_080FF190: .4byte gUnknown_203ACE8
+_080FF194:
+ ldr r2, _080FF1A0 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080FF106
+ .align 2, 0
+_080FF1A0: .4byte gUnknown_203ACE8
+_080FF1A4:
+ bl sub_80FF590
+ b _080FF1AE
+_080FF1AA:
+ bl sub_80FF5C0
+_080FF1AE:
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FF1FC
+_080FF1B4:
+ movs r0, 0x5
+ ldrsb r0, [r3, r0]
+ cmp r0, 0
+ bge _080FF1C2
+ ldrb r0, [r1, 0x1]
+ subs r0, 0x1
+ strb r0, [r3, 0x5]
+_080FF1C2:
+ ldr r3, [r4]
+ movs r2, 0x5
+ ldrsb r2, [r3, r2]
+ ldrb r1, [r3, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x1]
+ cmp r2, r0
+ blt _080FF1DC
+ movs r0, 0
+ strb r0, [r3, 0x5]
+_080FF1DC:
+ bl sub_80FFCE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080FF1FA
+ ldr r2, [r7]
+ ldr r0, [r2, 0x4]
+ ldr r1, _080FF204 @ =0x00ffff00
+ ands r0, r1
+ ldr r1, _080FF208 @ =0x00040100
+ cmp r0, r1
+ bne _080FF1FA
+ movs r0, 0
+ strb r0, [r2, 0x5]
+_080FF1FA:
+ movs r0, 0x2
+_080FF1FC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF204: .4byte 0x00ffff00
+_080FF208: .4byte 0x00040100
+ thumb_func_end sub_80FF098
+
+ thumb_func_start sub_80FF20C
+sub_80FF20C: @ 80FF20C
+ push {r4-r6,lr}
+ ldr r2, _080FF22C @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF270
+ ldr r0, _080FF230 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ beq _080FF26A
+ b _080FF254
+ .align 2, 0
+_080FF22C: .4byte gUnknown_30030F0
+_080FF230: .4byte gUnknown_203ACE8
+_080FF234:
+ movs r0, 0x20
+ ands r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0
+ bne _080FF2F8
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ bne _080FF2E8
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _080FF2D8
+ movs r0, 0
+ b _080FF34E
+_080FF254:
+ cmp r0, 0x1
+ bgt _080FF25E
+ cmp r0, 0
+ beq _080FF264
+ b _080FF270
+_080FF25E:
+ cmp r0, 0x2
+ beq _080FF30E
+ b _080FF270
+_080FF264:
+ bl sub_80FF5A8
+ b _080FF312
+_080FF26A:
+ bl sub_80FF590
+ b _080FF312
+_080FF270:
+ ldrh r2, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _080FF308
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _080FF30E
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _080FF234
+ ldr r2, _080FF2D0 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x6]
+ subs r0, 0x1
+ strb r0, [r1, 0x6]
+_080FF294:
+ adds r6, r2, 0
+_080FF296:
+ adds r5, r6, 0
+ ldr r4, [r5]
+ movs r3, 0x6
+ ldrsb r3, [r4, r3]
+ ldr r2, _080FF2D4 @ =gUnknown_843F2AC
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x2]
+ cmp r3, r0
+ bne _080FF318
+ movs r0, 0x5
+ ldrsb r0, [r4, r0]
+ cmp r0, 0
+ bge _080FF2BC
+ movs r0, 0x2
+ strb r0, [r4, 0x5]
+_080FF2BC:
+ ldr r1, [r5]
+ movs r0, 0x5
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ ble _080FF2CA
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_080FF2CA:
+ movs r0, 0x3
+ b _080FF34E
+ .align 2, 0
+_080FF2D0: .4byte gUnknown_203ACE8
+_080FF2D4: .4byte gUnknown_843F2AC
+_080FF2D8:
+ ldr r2, _080FF2E4 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ adds r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080FF294
+ .align 2, 0
+_080FF2E4: .4byte gUnknown_203ACE8
+_080FF2E8:
+ ldr r1, _080FF2F4 @ =gUnknown_203ACE8
+ ldr r0, [r1]
+ strb r3, [r0, 0x6]
+ adds r6, r1, 0
+ b _080FF296
+ .align 2, 0
+_080FF2F4: .4byte gUnknown_203ACE8
+_080FF2F8:
+ ldr r2, _080FF304 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x5]
+ subs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080FF294
+ .align 2, 0
+_080FF304: .4byte gUnknown_203ACE8
+_080FF308:
+ bl sub_80FF590
+ b _080FF312
+_080FF30E:
+ bl sub_80FF5C0
+_080FF312:
+ lsls r0, 16
+ lsrs r0, 16
+ b _080FF34E
+_080FF318:
+ movs r0, 0x5
+ ldrsb r0, [r4, r0]
+ ldrb r1, [r1, 0x1]
+ cmp r0, r1
+ blt _080FF326
+ subs r0, r1, 0x1
+ strb r0, [r4, 0x5]
+_080FF326:
+ bl sub_80FFCE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _080FF344
+ ldr r2, [r6]
+ ldr r0, [r2, 0x4]
+ ldr r1, _080FF354 @ =0x00ffff00
+ ands r0, r1
+ ldr r1, _080FF358 @ =0x00040100
+ cmp r0, r1
+ bne _080FF344
+ movs r0, 0
+ strb r0, [r2, 0x5]
+_080FF344:
+ ldr r0, _080FF35C @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ movs r0, 0x2
+_080FF34E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF354: .4byte 0x00ffff00
+_080FF358: .4byte 0x00040100
+_080FF35C: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF20C
+
+ thumb_func_start sub_80FF360
+sub_80FF360: @ 80FF360
+ push {lr}
+ ldr r1, _080FF378 @ =gUnknown_30030F0
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _080FF37C
+ bl sub_80FF678
+ b _080FF412
+ .align 2, 0
+_080FF378: .4byte gUnknown_30030F0
+_080FF37C:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _080FF3CA
+ ldr r0, _080FF39C @ =gUnknown_203ACE8
+ ldr r2, [r0]
+ movs r1, 0xA
+ ldrsb r1, [r2, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080FF3A0
+ bl sub_80FF5FC
+ b _080FF412
+ .align 2, 0
+_080FF39C: .4byte gUnknown_203ACE8
+_080FF3A0:
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x1
+ beq _080FF3BE
+ cmp r0, 0x1
+ bgt _080FF3B2
+ cmp r0, 0
+ beq _080FF3B8
+ b _080FF3CA
+_080FF3B2:
+ cmp r0, 0x2
+ beq _080FF3C4
+ b _080FF3CA
+_080FF3B8:
+ bl sub_80FF688
+ b _080FF412
+_080FF3BE:
+ bl sub_80FF6B4
+ b _080FF412
+_080FF3C4:
+ bl sub_80FF678
+ b _080FF412
+_080FF3CA:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF3DA
+ bl sub_80FF688
+ b _080FF412
+_080FF3DA:
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF3E8
+ movs r0, 0x2
+ b _080FF40E
+_080FF3E8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF3F4
+ movs r0, 0x3
+ b _080FF40E
+_080FF3F4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF400
+ movs r0, 0x1
+ b _080FF40E
+_080FF400:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF40C
+ movs r0, 0
+ b _080FF416
+_080FF40C:
+ movs r0, 0
+_080FF40E:
+ bl sub_80FF7CC
+_080FF412:
+ lsls r0, 16
+ lsrs r0, 16
+_080FF416:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF360
+
+ thumb_func_start sub_80FF41C
+sub_80FF41C: @ 80FF41C
+ push {lr}
+ ldr r2, _080FF438 @ =gUnknown_30030F0
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF440
+ ldr r0, _080FF43C @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ movs r0, 0xD
+ b _080FF4A2
+ .align 2, 0
+_080FF438: .4byte gUnknown_30030F0
+_080FF43C: .4byte gUnknown_203ACE8
+_080FF440:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF44E
+ bl sub_80FF6C8
+ b _080FF49E
+_080FF44E:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF45A
+ movs r0, 0x4
+ b _080FF49A
+_080FF45A:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF466
+ movs r0, 0x5
+ b _080FF49A
+_080FF466:
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF474
+ movs r0, 0x2
+ b _080FF49A
+_080FF474:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF480
+ movs r0, 0x3
+ b _080FF49A
+_080FF480:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080FF48C
+ movs r0, 0x1
+ b _080FF49A
+_080FF48C:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080FF498
+ movs r0, 0
+ b _080FF4A2
+_080FF498:
+ movs r0, 0
+_080FF49A:
+ bl sub_80FFA38
+_080FF49E:
+ lsls r0, 16
+ lsrs r0, 16
+_080FF4A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF41C
+
+ thumb_func_start sub_80FF4A8
+sub_80FF4A8: @ 80FF4A8
+ push {lr}
+ bl sub_81100C8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080FF4DC
+ cmp r1, 0
+ bgt _080FF4C4
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080FF4C8
+ b _080FF4E8
+_080FF4C4:
+ cmp r1, 0x1
+ bne _080FF4E8
+_080FF4C8:
+ bl sub_80FF5F0
+ ldr r1, _080FF4D8 @ =gUnknown_203ACE8
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+ b _080FF4EA
+ .align 2, 0
+_080FF4D8: .4byte gUnknown_203ACE8
+_080FF4DC:
+ ldr r0, _080FF4E4 @ =gUnknown_20370D0
+ strh r1, [r0]
+ movs r0, 0x17
+ b _080FF4EA
+ .align 2, 0
+_080FF4E4: .4byte gUnknown_20370D0
+_080FF4E8:
+ movs r0, 0
+_080FF4EA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF4A8
+
+ thumb_func_start sub_80FF4F0
+sub_80FF4F0: @ 80FF4F0
+ push {r4,lr}
+ bl sub_81100C8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080FF524
+ cmp r1, 0
+ bgt _080FF50C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080FF510
+ b _080FF53C
+_080FF50C:
+ cmp r1, 0x1
+ bne _080FF53C
+_080FF510:
+ bl sub_80FF5F0
+ ldr r1, _080FF520 @ =gUnknown_203ACE8
+ ldr r1, [r1]
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+ b _080FF53E
+ .align 2, 0
+_080FF520: .4byte gUnknown_203ACE8
+_080FF524:
+ ldr r4, _080FF538 @ =gUnknown_20370D0
+ bl sub_80FF78C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ bl sub_80FF6F0
+ movs r0, 0x17
+ b _080FF53E
+ .align 2, 0
+_080FF538: .4byte gUnknown_20370D0
+_080FF53C:
+ movs r0, 0
+_080FF53E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF4F0
+
+ thumb_func_start sub_80FF544
+sub_80FF544: @ 80FF544
+ push {lr}
+ bl sub_81100C8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080FF574
+ cmp r1, 0
+ bgt _080FF560
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080FF564
+ b _080FF588
+_080FF560:
+ cmp r1, 0x1
+ bne _080FF588
+_080FF564:
+ ldr r0, _080FF570 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x7
+ b _080FF58A
+ .align 2, 0
+_080FF570: .4byte gUnknown_203ACE8
+_080FF574:
+ bl sub_80FF728
+ ldr r0, _080FF584 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ movs r0, 0x8
+ b _080FF58A
+ .align 2, 0
+_080FF584: .4byte gUnknown_203ACE8
+_080FF588:
+ movs r0, 0
+_080FF58A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF544
+
+ thumb_func_start sub_80FF590
+sub_80FF590: @ 80FF590
+ ldr r2, _080FF5A4 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ strb r0, [r1, 0x8]
+ ldr r1, [r2]
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ movs r0, 0x5
+ bx lr
+ .align 2, 0
+_080FF5A4: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF590
+
+ thumb_func_start sub_80FF5A8
+sub_80FF5A8: @ 80FF5A8
+ ldr r2, _080FF5BC @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x4]
+ strb r0, [r1, 0x8]
+ ldr r1, [r2]
+ movs r0, 0x5
+ strb r0, [r1, 0x4]
+ movs r0, 0x4
+ bx lr
+ .align 2, 0
+_080FF5BC: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF5A8
+
+ thumb_func_start sub_80FF5C0
+sub_80FF5C0: @ 80FF5C0
+ push {r4,lr}
+ ldr r4, _080FF5DC @ =gUnknown_203ACE8
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x4]
+ strb r1, [r0, 0x8]
+ bl sub_80FFF48
+ cmp r0, 0
+ bne _080FF5E0
+ ldr r1, [r4]
+ movs r0, 0x6
+ strb r0, [r1, 0x4]
+ b _080FF5E8
+ .align 2, 0
+_080FF5DC: .4byte gUnknown_203ACE8
+_080FF5E0:
+ ldr r1, [r4]
+ movs r0, 0x4
+ strb r0, [r1, 0x4]
+ movs r0, 0x5
+_080FF5E8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF5C0
+
+ thumb_func_start sub_80FF5F0
+sub_80FF5F0: @ 80FF5F0
+ ldr r0, _080FF5F8 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_080FF5F8: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF5F0
+
+ thumb_func_start sub_80FF5FC
+sub_80FF5FC: @ 80FF5FC
+ push {lr}
+ ldr r0, _080FF624 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _080FF628
+ bl sub_80FFB8C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80BDF44
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_80BE16C
+ b _080FF638
+ .align 2, 0
+_080FF624: .4byte gUnknown_203ACE8
+_080FF628:
+ bl sub_80FFBAC
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ bl sub_80BE16C
+_080FF638:
+ bl sub_80BE1D4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080FF670
+ ldr r2, _080FF66C @ =gUnknown_203ACE8
+ ldr r3, [r2]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ movs r1, 0
+ strb r0, [r3, 0xF]
+ ldr r0, [r2]
+ strb r1, [r0, 0xE]
+ ldr r0, [r2]
+ strb r1, [r0, 0x10]
+ ldr r0, [r2]
+ strb r1, [r0, 0x11]
+ ldr r1, [r2]
+ movs r0, 0x3
+ strb r0, [r1, 0x4]
+ movs r0, 0xB
+ b _080FF672
+ .align 2, 0
+_080FF66C: .4byte gUnknown_203ACE8
+_080FF670:
+ movs r0, 0
+_080FF672:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF5FC
+
+ thumb_func_start sub_80FF678
+sub_80FF678: @ 80FF678
+ ldr r0, _080FF684 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ movs r0, 0xA
+ bx lr
+ .align 2, 0
+_080FF684: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF678
+
+ thumb_func_start sub_80FF688
+sub_80FF688: @ 80FF688
+ push {lr}
+ ldr r1, _080FF6A8 @ =gUnknown_203ACE8
+ ldr r0, [r1]
+ movs r2, 0
+ strb r2, [r0, 0xA]
+ ldr r0, [r1]
+ strb r2, [r0, 0xB]
+ ldr r0, [r1]
+ strb r2, [r0, 0xC]
+ ldr r1, [r1]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _080FF6AC
+ movs r0, 0x1
+ strb r0, [r1, 0x9]
+ b _080FF6AE
+ .align 2, 0
+_080FF6A8: .4byte gUnknown_203ACE8
+_080FF6AC:
+ strb r2, [r1, 0x9]
+_080FF6AE:
+ movs r0, 0x16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF688
+
+ thumb_func_start sub_80FF6B4
+sub_80FF6B4: @ 80FF6B4
+ push {lr}
+ ldr r0, _080FF6C4 @ =0x0000ffff
+ bl sub_80FF768
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF6C4: .4byte 0x0000ffff
+ thumb_func_end sub_80FF6B4
+
+ thumb_func_start sub_80FF6C8
+sub_80FF6C8: @ 80FF6C8
+ push {lr}
+ bl sub_80FFBE4
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80BE19C
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80FF768
+ ldr r0, _080FF6EC @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x4]
+ movs r0, 0xC
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF6EC: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF6C8
+
+ thumb_func_start sub_80FF6F0
+sub_80FF6F0: @ 80FF6F0
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r3, _080FF724 @ =gUnknown_203ACE8
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x7]
+ cmp r4, r0
+ bcs _080FF71E
+ adds r5, r3, 0
+_080FF700:
+ ldr r3, [r5]
+ ldr r1, [r3, 0x14]
+ lsls r2, r4, 1
+ adds r1, r2, r1
+ adds r0, r3, 0
+ adds r0, 0x18
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r3, [r3, 0x7]
+ cmp r4, r3
+ bcc _080FF700
+_080FF71E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF724: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF6F0
+
+ thumb_func_start sub_80FF728
+sub_80FF728: @ 80FF728
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r2, _080FF760 @ =gUnknown_203ACE8
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x7]
+ cmp r3, r0
+ bcs _080FF758
+ adds r5, r2, 0
+ ldr r0, _080FF764 @ =0x0000ffff
+ adds r4, r0, 0
+_080FF73C:
+ ldr r2, [r5]
+ lsls r0, r3, 1
+ adds r1, r2, 0
+ adds r1, 0x18
+ adds r1, r0
+ ldrh r0, [r1]
+ orrs r0, r4
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrb r2, [r2, 0x7]
+ cmp r3, r2
+ bcc _080FF73C
+_080FF758:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF760: .4byte gUnknown_203ACE8
+_080FF764: .4byte 0x0000ffff
+ thumb_func_end sub_80FF728
+
+ thumb_func_start sub_80FF768
+sub_80FF768: @ 80FF768
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_80FFB6C
+ lsls r0, 16
+ ldr r1, _080FF788 @ =gUnknown_203ACE8
+ ldr r1, [r1]
+ lsrs r0, 15
+ adds r1, 0x18
+ adds r1, r0
+ strh r4, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FF788: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF768
+
+ thumb_func_start sub_80FF78C
+sub_80FF78C: @ 80FF78C
+ push {r4,r5,lr}
+ movs r2, 0
+ ldr r0, _080FF7B4 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x7]
+ cmp r2, r1
+ bcs _080FF7C2
+ adds r5, r1, 0
+ adds r4, r0, 0
+ adds r4, 0x18
+ ldr r3, [r0, 0x14]
+_080FF7A2:
+ lsls r0, r2, 1
+ adds r1, r4, r0
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _080FF7B8
+ movs r0, 0x1
+ b _080FF7C4
+ .align 2, 0
+_080FF7B4: .4byte gUnknown_203ACE8
+_080FF7B8:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r5
+ bcc _080FF7A2
+_080FF7C2:
+ movs r0, 0
+_080FF7C4:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF78C
+
+ thumb_func_start sub_80FF7CC
+sub_80FF7CC: @ 80FF7CC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FF7F0 @ =gUnknown_203ACE8
+ ldr r3, [r0]
+ movs r1, 0xA
+ ldrsb r1, [r3, r1]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080FF7FC
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0
+ bne _080FF7F4
+ adds r0, r2, 0
+ bl sub_80FF80C
+ b _080FF802
+ .align 2, 0
+_080FF7F0: .4byte gUnknown_203ACE8
+_080FF7F4:
+ adds r0, r2, 0
+ bl sub_80FF8D8
+ b _080FF802
+_080FF7FC:
+ adds r0, r2, 0
+ bl sub_80FF968
+_080FF802:
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF7CC
+
+ thumb_func_start sub_80FF80C
+sub_80FF80C: @ 80FF80C
+ push {r4,lr}
+ cmp r0, 0x1
+ beq _080FF882
+ cmp r0, 0x1
+ bcc _080FF8A2
+ cmp r0, 0x2
+ beq _080FF820
+ cmp r0, 0x3
+ beq _080FF848
+ b _080FF8CE
+_080FF820:
+ ldr r0, _080FF83C @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ ldrb r3, [r1, 0xC]
+ cmn r0, r3
+ beq _080FF8CE
+ ldrb r2, [r1, 0xB]
+ cmp r0, 0
+ beq _080FF840
+ subs r0, r2, 0x1
+ strb r0, [r1, 0xB]
+_080FF838:
+ movs r0, 0xE
+ b _080FF8D0
+ .align 2, 0
+_080FF83C: .4byte gUnknown_203ACE8
+_080FF840:
+ subs r0, r3, 0x1
+ strb r0, [r1, 0xC]
+ movs r0, 0x10
+ b _080FF8D0
+_080FF848:
+ ldr r0, _080FF870 @ =gUnknown_203ACE8
+ ldr r2, [r0]
+ movs r1, 0xB
+ ldrsb r1, [r2, r1]
+ ldrb r3, [r2, 0xC]
+ adds r1, r3
+ ldrb r0, [r2, 0xD]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _080FF8CE
+ ldrb r1, [r2, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x2
+ bgt _080FF874
+ adds r0, r1, 0x1
+ strb r0, [r2, 0xB]
+ movs r4, 0xE
+ b _080FF87A
+ .align 2, 0
+_080FF870: .4byte gUnknown_203ACE8
+_080FF874:
+ adds r0, r3, 0x1
+ strb r0, [r2, 0xC]
+ movs r4, 0xF
+_080FF87A:
+ bl sub_80FFC1C
+ adds r0, r4, 0
+ b _080FF8D0
+_080FF882:
+ ldr r0, _080FF898 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080FF89C
+ subs r0, r2, 0x1
+ strb r0, [r1, 0xA]
+ b _080FF838
+ .align 2, 0
+_080FF898: .4byte gUnknown_203ACE8
+_080FF89C:
+ bl sub_80FF9E8
+ b _080FF838
+_080FF8A2:
+ ldr r0, _080FF8C4 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bgt _080FF8C8
+ adds r0, r2, 0x1
+ strb r0, [r1, 0xA]
+ bl sub_80FFC6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FF838
+ bl sub_80FF9E8
+ b _080FF838
+ .align 2, 0
+_080FF8C4: .4byte gUnknown_203ACE8
+_080FF8C8:
+ bl sub_80FF9E8
+ b _080FF838
+_080FF8CE:
+ movs r0, 0
+_080FF8D0:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FF80C
+
+ thumb_func_start sub_80FF8D8
+sub_80FF8D8: @ 80FF8D8
+ push {lr}
+ cmp r0, 0x1
+ beq _080FF944
+ cmp r0, 0x1
+ bcc _080FF928
+ cmp r0, 0x2
+ beq _080FF8EE
+ cmp r0, 0x3
+ beq _080FF90E
+ movs r0, 0
+ b _080FF960
+_080FF8EE:
+ ldr r0, _080FF900 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080FF904
+ subs r0, r2, 0x1
+ b _080FF906
+ .align 2, 0
+_080FF900: .4byte gUnknown_203ACE8
+_080FF904:
+ movs r0, 0x3
+_080FF906:
+ strb r0, [r1, 0xB]
+ bl sub_80FFC1C
+ b _080FF95E
+_080FF90E:
+ ldr r0, _080FF920 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bgt _080FF924
+ adds r0, r2, 0x1
+ b _080FF906
+ .align 2, 0
+_080FF920: .4byte gUnknown_203ACE8
+_080FF924:
+ movs r0, 0
+ b _080FF906
+_080FF928:
+ ldr r0, _080FF940 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+ bl sub_80FFC6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FF95E
+ b _080FF95A
+ .align 2, 0
+_080FF940: .4byte gUnknown_203ACE8
+_080FF944:
+ ldr r2, _080FF964 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ ldrb r0, [r1, 0xA]
+ subs r0, 0x1
+ strb r0, [r1, 0xA]
+ ldr r0, [r2]
+ ldrb r0, [r0, 0xA]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ bge _080FF95E
+_080FF95A:
+ bl sub_80FF9E8
+_080FF95E:
+ movs r0, 0xE
+_080FF960:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF964: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF8D8
+
+ thumb_func_start sub_80FF968
+sub_80FF968: @ 80FF968
+ push {lr}
+ adds r2, r0, 0
+ cmp r2, 0x1
+ beq _080FF9B8
+ cmp r2, 0x1
+ bcc _080FF9CC
+ cmp r2, 0x2
+ beq _080FF980
+ cmp r2, 0x3
+ beq _080FF99C
+ movs r0, 0
+ b _080FF9DE
+_080FF980:
+ ldr r0, _080FF994 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r3, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080FF998
+ subs r0, r3, 0x1
+ b _080FF9DA
+ .align 2, 0
+_080FF994: .4byte gUnknown_203ACE8
+_080FF998:
+ strb r2, [r1, 0xB]
+ b _080FF9DC
+_080FF99C:
+ ldr r0, _080FF9B0 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x1
+ bgt _080FF9B4
+ adds r0, r2, 0x1
+ b _080FF9DA
+ .align 2, 0
+_080FF9B0: .4byte gUnknown_203ACE8
+_080FF9B4:
+ movs r0, 0
+ b _080FF9DA
+_080FF9B8:
+ ldr r0, _080FF9C8 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xB]
+ adds r0, 0x1
+ strb r0, [r1, 0xB]
+ bl sub_80FFA0C
+ b _080FF9DC
+ .align 2, 0
+_080FF9C8: .4byte gUnknown_203ACE8
+_080FF9CC:
+ ldr r2, _080FF9E4 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0xA]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0xB]
+ adds r0, 0x1
+_080FF9DA:
+ strb r0, [r1, 0xB]
+_080FF9DC:
+ movs r0, 0xE
+_080FF9DE:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FF9E4: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF968
+
+ thumb_func_start sub_80FF9E8
+sub_80FF9E8: @ 80FF9E8
+ push {lr}
+ ldr r2, _080FFA08 @ =gUnknown_203ACE8
+ ldr r1, [r2]
+ movs r0, 0xFF
+ strb r0, [r1, 0xA]
+ ldr r2, [r2]
+ ldrb r1, [r2, 0xB]
+ movs r0, 0xB
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080FFA02
+ subs r0, r1, 0x1
+ strb r0, [r2, 0xB]
+_080FFA02:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFA08: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FF9E8
+
+ thumb_func_start sub_80FFA0C
+sub_80FFA0C: @ 80FFA0C
+ push {r4,lr}
+ ldr r4, _080FFA24 @ =gUnknown_203ACE8
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _080FFA28
+ movs r0, 0x1
+ strb r0, [r1, 0xA]
+ bl sub_80FFC1C
+ b _080FFA32
+ .align 2, 0
+_080FFA24: .4byte gUnknown_203ACE8
+_080FFA28:
+ ldrb r0, [r1, 0xB]
+ bl sub_80FFC04
+ ldr r1, [r4]
+ strb r0, [r1, 0xA]
+_080FFA32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80FFA0C
+
+ thumb_func_start sub_80FFA38
+sub_80FFA38: @ 80FFA38
+ push {r4,lr}
+ cmp r0, 0x5
+ bls _080FFA40
+ b _080FFB64
+_080FFA40:
+ lsls r0, 2
+ ldr r1, _080FFA4C @ =_080FFA50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FFA4C: .4byte _080FFA50
+ .align 2, 0
+_080FFA50:
+ .4byte _080FFAEC
+ .4byte _080FFACA
+ .4byte _080FFA68
+ .4byte _080FFA94
+ .4byte _080FFB14
+ .4byte _080FFB34
+_080FFA68:
+ ldr r0, _080FFA88 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ ldrb r3, [r1, 0xE]
+ adds r0, r3
+ cmp r0, 0
+ bgt _080FFA7A
+ b _080FFB64
+_080FFA7A:
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080FFA8C
+ subs r0, r2, 0x1
+ b _080FFAB2
+ .align 2, 0
+_080FFA88: .4byte gUnknown_203ACE8
+_080FFA8C:
+ subs r0, r3, 0x1
+ strb r0, [r1, 0xE]
+ movs r4, 0x12
+ b _080FFAC2
+_080FFA94:
+ ldr r0, _080FFAB8 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ ldrb r3, [r1, 0xE]
+ adds r0, r3
+ ldrb r2, [r1, 0xF]
+ cmp r0, r2
+ bge _080FFB64
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x11
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x2
+ bgt _080FFABC
+ adds r0, r2, 0x1
+_080FFAB2:
+ strb r0, [r1, 0x11]
+ movs r4, 0x11
+ b _080FFAC2
+ .align 2, 0
+_080FFAB8: .4byte gUnknown_203ACE8
+_080FFABC:
+ adds r0, r3, 0x1
+ strb r0, [r1, 0xE]
+ movs r4, 0x13
+_080FFAC2:
+ bl sub_80FFC44
+ adds r0, r4, 0
+ b _080FFB66
+_080FFACA:
+ ldr r0, _080FFADC @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x10
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ ble _080FFAE0
+ subs r0, r2, 0x1
+ b _080FFAE2
+ .align 2, 0
+_080FFADC: .4byte gUnknown_203ACE8
+_080FFAE0:
+ movs r0, 0x1
+_080FFAE2:
+ strb r0, [r1, 0x10]
+ bl sub_80FFC44
+_080FFAE8:
+ movs r0, 0x11
+ b _080FFB66
+_080FFAEC:
+ ldr r4, _080FFB10 @ =gUnknown_203ACE8
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x10
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bgt _080FFB0A
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x10]
+ bl sub_80FFCC0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFAE8
+ ldr r1, [r4]
+_080FFB0A:
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ b _080FFAE8
+ .align 2, 0
+_080FFB10: .4byte gUnknown_203ACE8
+_080FFB14:
+ ldr r0, _080FFB28 @ =gUnknown_203ACE8
+ ldr r2, [r0]
+ ldrb r0, [r2, 0xE]
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080FFB64
+ cmp r1, 0x3
+ bls _080FFB2C
+ subs r0, 0x4
+ b _080FFB2E
+ .align 2, 0
+_080FFB28: .4byte gUnknown_203ACE8
+_080FFB2C:
+ movs r0, 0
+_080FFB2E:
+ strb r0, [r2, 0xE]
+ movs r0, 0x14
+ b _080FFB66
+_080FFB34:
+ ldr r3, _080FFB60 @ =gUnknown_203ACE8
+ ldr r1, [r3]
+ ldrb r2, [r1, 0xE]
+ ldrb r0, [r1, 0xF]
+ subs r0, 0x4
+ cmp r2, r0
+ bgt _080FFB64
+ adds r0, r2, 0x4
+ strb r0, [r1, 0xE]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0xE]
+ ldrb r3, [r2, 0xF]
+ subs r0, r3, 0x3
+ cmp r1, r0
+ ble _080FFB58
+ adds r0, r3, 0
+ adds r0, 0xFD
+ strb r0, [r2, 0xE]
+_080FFB58:
+ bl sub_80FFC44
+ movs r0, 0x15
+ b _080FFB66
+ .align 2, 0
+_080FFB60: .4byte gUnknown_203ACE8
+_080FFB64:
+ movs r0, 0
+_080FFB66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFA38
+
+ thumb_func_start sub_80FFB6C
+sub_80FFB6C: @ 80FFB6C
+ ldr r0, _080FFB88 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ movs r2, 0x6
+ ldrsb r2, [r0, r2]
+ ldrb r1, [r0, 0x2]
+ muls r1, r2
+ ldrb r0, [r0, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .align 2, 0
+_080FFB88: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFB6C
+
+ thumb_func_start sub_80FFB8C
+sub_80FFB8C: @ 80FFB8C
+ ldr r0, _080FFBA8 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ movs r1, 0xB
+ ldrsb r1, [r0, r1]
+ ldrb r2, [r0, 0xC]
+ adds r1, r2
+ lsls r1, 1
+ ldrb r0, [r0, 0xA]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .align 2, 0
+_080FFBA8: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFB8C
+
+ thumb_func_start sub_80FFBAC
+sub_80FFBAC: @ 80FFBAC
+ push {lr}
+ ldr r0, _080FFBDC @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xA]
+ movs r3, 0
+ cmp r0, 0x6
+ bhi _080FFBBE
+ movs r3, 0xA
+ ldrsb r3, [r1, r3]
+_080FFBBE:
+ ldrb r0, [r1, 0xB]
+ movs r2, 0
+ cmp r0, 0x3
+ bhi _080FFBCA
+ movs r2, 0xB
+ ldrsb r2, [r1, r2]
+_080FFBCA:
+ ldr r0, _080FFBE0 @ =gUnknown_843F39C
+ lsls r1, r2, 3
+ subs r1, r2
+ adds r1, r3, r1
+ adds r1, r0
+ ldrb r0, [r1]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080FFBDC: .4byte gUnknown_203ACE8
+_080FFBE0: .4byte gUnknown_843F39C
+ thumb_func_end sub_80FFBAC
+
+ thumb_func_start sub_80FFBE4
+sub_80FFBE4: @ 80FFBE4
+ ldr r0, _080FFC00 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ movs r1, 0x11
+ ldrsb r1, [r0, r1]
+ ldrb r2, [r0, 0xE]
+ adds r1, r2
+ lsls r1, 1
+ ldrb r0, [r0, 0x10]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ bx lr
+ .align 2, 0
+_080FFC00: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFBE4
+
+ thumb_func_start sub_80FFC04
+sub_80FFC04: @ 80FFC04
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080FFC12
+ cmp r0, 0x1
+ beq _080FFC16
+_080FFC12:
+ movs r0, 0x6
+ b _080FFC18
+_080FFC16:
+ movs r0, 0x5
+_080FFC18:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFC04
+
+ thumb_func_start sub_80FFC1C
+sub_80FFC1C: @ 80FFC1C
+ push {lr}
+ b _080FFC32
+_080FFC20:
+ ldr r0, _080FFC40 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0xA]
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080FFC3C
+ subs r0, r2, 0x1
+ strb r0, [r1, 0xA]
+_080FFC32:
+ bl sub_80FFC6C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFC20
+_080FFC3C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFC40: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFC1C
+
+ thumb_func_start sub_80FFC44
+sub_80FFC44: @ 80FFC44
+ push {lr}
+ b _080FFC5A
+_080FFC48:
+ ldr r0, _080FFC68 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x10
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ beq _080FFC64
+ subs r0, r2, 0x1
+ strb r0, [r1, 0x10]
+_080FFC5A:
+ bl sub_80FFCC0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080FFC48
+_080FFC64:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFC68: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFC44
+
+ thumb_func_start sub_80FFC6C
+sub_80FFC6C: @ 80FFC6C
+ push {r4,lr}
+ ldr r4, _080FFC98 @ =gUnknown_203ACE8
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _080FFC9C
+ bl sub_80FFB8C
+ adds r4, r0, 0
+ bl sub_80BDF38
+ movs r1, 0
+ lsls r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsrs r0, 24
+ cmp r4, r0
+ bcc _080FFC92
+ movs r1, 0x1
+_080FFC92:
+ adds r0, r1, 0
+ b _080FFCB8
+ .align 2, 0
+_080FFC98: .4byte gUnknown_203ACE8
+_080FFC9C:
+ ldrb r0, [r1, 0xB]
+ bl sub_80FFC04
+ movs r2, 0
+ ldr r1, [r4]
+ ldrb r1, [r1, 0xA]
+ lsls r1, 24
+ asrs r1, 24
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r1, r0
+ ble _080FFCB6
+ movs r2, 0x1
+_080FFCB6:
+ adds r0, r2, 0
+_080FFCB8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFC6C
+
+ thumb_func_start sub_80FFCC0
+sub_80FFCC0: @ 80FFCC0
+ push {r4,lr}
+ bl sub_80FFBE4
+ adds r4, r0, 0
+ bl sub_80BE1D4
+ movs r1, 0
+ lsls r4, 16
+ lsls r0, 16
+ cmp r4, r0
+ bcc _080FFCD8
+ movs r1, 0x1
+_080FFCD8:
+ adds r0, r1, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFCC0
+
+ thumb_func_start sub_80FFCE0
+sub_80FFCE0: @ 80FFCE0
+ ldr r2, _080FFCF4 @ =gUnknown_843F2AC
+ ldr r0, _080FFCF8 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_080FFCF4: .4byte gUnknown_843F2AC
+_080FFCF8: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFCE0
+
+ thumb_func_start sub_80FFCFC
+sub_80FFCFC: @ 80FFCFC
+ ldr r2, _080FFD14 @ =gUnknown_843F2AC
+ ldr r0, _080FFD18 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_080FFD14: .4byte gUnknown_843F2AC
+_080FFD18: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFCFC
+
+ thumb_func_start sub_80FFD1C
+sub_80FFD1C: @ 80FFD1C
+ ldr r0, _080FFD24 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ adds r0, 0x18
+ bx lr
+ .align 2, 0
+_080FFD24: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD1C
+
+ thumb_func_start sub_80FFD28
+sub_80FFD28: @ 80FFD28
+ ldr r0, _080FFD30 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ bx lr
+ .align 2, 0
+_080FFD30: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD28
+
+ thumb_func_start sub_80FFD34
+sub_80FFD34: @ 80FFD34
+ ldr r0, _080FFD3C @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ bx lr
+ .align 2, 0
+_080FFD3C: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD34
+
+ thumb_func_start sub_80FFD40
+sub_80FFD40: @ 80FFD40
+ ldr r0, _080FFD48 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x5]
+ bx lr
+ .align 2, 0
+_080FFD48: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD40
+
+ thumb_func_start sub_80FFD4C
+sub_80FFD4C: @ 80FFD4C
+ ldr r0, _080FFD54 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x6]
+ bx lr
+ .align 2, 0
+_080FFD54: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD4C
+
+ thumb_func_start sub_80FFD58
+sub_80FFD58: @ 80FFD58
+ push {r4,r5,lr}
+ ldr r4, _080FFD88 @ =gUnknown_843F2AC
+ ldr r2, _080FFD8C @ =gUnknown_203ACE8
+ ldr r5, [r2]
+ ldrb r3, [r5, 0x1]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r3, r4, 0
+ adds r3, 0x8
+ adds r2, r3
+ ldr r2, [r2]
+ str r2, [r0]
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r4, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFD88: .4byte gUnknown_843F2AC
+_080FFD8C: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD58
+
+ thumb_func_start sub_80FFD90
+sub_80FFD90: @ 80FFD90
+ push {r4,r5,lr}
+ ldr r4, _080FFDC0 @ =gUnknown_843F2AC
+ ldr r2, _080FFDC4 @ =gUnknown_203ACE8
+ ldr r5, [r2]
+ ldrb r3, [r5, 0x1]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r3, r4, 0
+ adds r3, 0x10
+ adds r2, r3
+ ldr r2, [r2]
+ str r2, [r0]
+ ldrb r2, [r5, 0x1]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r4, 0x14
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFDC0: .4byte gUnknown_843F2AC
+_080FFDC4: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFD90
+
+ thumb_func_start sub_80FFDC8
+sub_80FFDC8: @ 80FFDC8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080FFDDC @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _080FFDE4
+ ldr r0, _080FFDE0 @ =gUnknown_84189EE
+ b _080FFDE6
+ .align 2, 0
+_080FFDDC: .4byte gUnknown_203ACE8
+_080FFDE0: .4byte gUnknown_84189EE
+_080FFDE4:
+ ldr r0, _080FFDF0 @ =gUnknown_84189E0
+_080FFDE6:
+ str r0, [r2]
+ movs r0, 0
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080FFDF0: .4byte gUnknown_84189E0
+ thumb_func_end sub_80FFDC8
+
+ thumb_func_start sub_80FFDF4
+sub_80FFDF4: @ 80FFDF4
+ ldr r2, _080FFE00 @ =gUnknown_8418937
+ str r2, [r0]
+ ldr r0, _080FFE04 @ =gUnknown_8418956
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080FFE00: .4byte gUnknown_8418937
+_080FFE04: .4byte gUnknown_8418956
+ thumb_func_end sub_80FFDF4
+
+ thumb_func_start sub_80FFE08
+sub_80FFE08: @ 80FFE08
+ ldr r2, _080FFE18 @ =gUnknown_203ACE8
+ ldr r3, [r2]
+ ldrb r2, [r3, 0xA]
+ strb r2, [r0]
+ ldrb r0, [r3, 0xB]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080FFE18: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFE08
+
+ thumb_func_start sub_80FFE1C
+sub_80FFE1C: @ 80FFE1C
+ ldr r0, _080FFE24 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x9]
+ bx lr
+ .align 2, 0
+_080FFE24: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFE1C
+
+ thumb_func_start sub_80FFE28
+sub_80FFE28: @ 80FFE28
+ ldr r0, _080FFE30 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_080FFE30: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFE28
+
+ thumb_func_start sub_80FFE34
+sub_80FFE34: @ 80FFE34
+ ldr r2, _080FFE44 @ =gUnknown_203ACE8
+ ldr r3, [r2]
+ ldrb r2, [r3, 0x10]
+ strb r2, [r0]
+ ldrb r0, [r3, 0x11]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080FFE44: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFE34
+
+ thumb_func_start sub_80FFE48
+sub_80FFE48: @ 80FFE48
+ ldr r0, _080FFE50 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xE]
+ bx lr
+ .align 2, 0
+_080FFE50: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFE48
+
+ thumb_func_start sub_80FFE54
+sub_80FFE54: @ 80FFE54
+ ldr r0, _080FFE5C @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xF]
+ bx lr
+ .align 2, 0
+_080FFE5C: .4byte gUnknown_203ACE8
+ thumb_func_end sub_80FFE54
+
+ thumb_func_start sub_80FFE60
+sub_80FFE60: @ 80FFE60
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80FFE60
+
+ thumb_func_start sub_80FFE64
+sub_80FFE64: @ 80FFE64
+ push {lr}
+ ldr r0, _080FFE78 @ =gUnknown_203ACE8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x2
+ beq _080FFE7C
+ cmp r0, 0x3
+ beq _080FFE86
+ b _080FFE90
+ .align 2, 0
+_080FFE78: .4byte gUnknown_203ACE8
+_080FFE7C:
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _080FFE90
+ ldrb r0, [r1, 0xC]
+ b _080FFE88
+_080FFE86:
+ ldrb r0, [r1, 0xE]
+_080FFE88:
+ cmp r0, 0
+ beq _080FFE90
+ movs r0, 0x1
+ b _080FFE92
+_080FFE90:
+ movs r0, 0
+_080FFE92:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFE64
+
+ thumb_func_start sub_80FFE98
+sub_80FFE98: @ 80FFE98
+ push {lr}
+ ldr r0, _080FFEAC @ =gUnknown_203ACE8
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x2
+ beq _080FFEB0
+ cmp r0, 0x3
+ beq _080FFEC6
+ b _080FFED4
+ .align 2, 0
+_080FFEAC: .4byte gUnknown_203ACE8
+_080FFEB0:
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ bne _080FFED4
+ ldrb r1, [r2, 0xC]
+ adds r1, 0x4
+ ldrb r0, [r2, 0xD]
+ subs r0, 0x1
+ cmp r1, r0
+ bgt _080FFED4
+ movs r0, 0x1
+ b _080FFED6
+_080FFEC6:
+ ldrb r0, [r2, 0xE]
+ adds r0, 0x4
+ ldrb r2, [r2, 0xF]
+ cmp r0, r2
+ bgt _080FFED4
+ movs r0, 0x1
+ b _080FFED6
+_080FFED4:
+ movs r0, 0
+_080FFED6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFE98
+
+ thumb_func_start sub_80FFEDC
+sub_80FFEDC: @ 80FFEDC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r2, 0
+ cmp r2, r3
+ bcs _080FFF12
+ ldr r0, _080FFF04 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ adds r4, r0, 0
+ adds r4, 0x18
+_080FFEF2:
+ lsls r0, r2, 1
+ adds r1, r0, r5
+ adds r0, r4, r0
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _080FFF08
+ movs r0, 0x1
+ b _080FFF14
+ .align 2, 0
+_080FFF04: .4byte gUnknown_203ACE8
+_080FFF08:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _080FFEF2
+_080FFF12:
+ movs r0, 0
+_080FFF14:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFEDC
+
+ thumb_func_start sub_80FFF1C
+sub_80FFF1C: @ 80FFF1C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r1, 0
+ ldr r2, _080FFF34 @ =gUnknown_843F2AC
+_080FFF26:
+ ldrb r0, [r2]
+ cmp r0, r3
+ bne _080FFF38
+ lsls r0, r1, 24
+ lsrs r0, 24
+ b _080FFF42
+ .align 2, 0
+_080FFF34: .4byte gUnknown_843F2AC
+_080FFF38:
+ adds r2, 0x18
+ adds r1, 0x1
+ cmp r1, 0x9
+ bls _080FFF26
+ movs r0, 0
+_080FFF42:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFF1C
+
+ thumb_func_start sub_80FFF48
+sub_80FFF48: @ 80FFF48
+ push {r4,lr}
+ movs r2, 0
+ ldr r0, _080FFF68 @ =gUnknown_203ACE8
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x7]
+ cmp r2, r1
+ bge _080FFF78
+ ldr r4, _080FFF6C @ =0x0000ffff
+ adds r3, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x18
+_080FFF5E:
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _080FFF70
+ movs r0, 0
+ b _080FFF7A
+ .align 2, 0
+_080FFF68: .4byte gUnknown_203ACE8
+_080FFF6C: .4byte 0x0000ffff
+_080FFF70:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r3
+ blt _080FFF5E
+_080FFF78:
+ movs r0, 0x1
+_080FFF7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFF48
+
+ thumb_func_start sub_80FFF80
+sub_80FFF80: @ 80FFF80
+ push {lr}
+ bl sub_8100BF4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080FFF90
+ movs r0, 0x1
+ b _080FFF92
+_080FFF90:
+ movs r0, 0
+_080FFF92:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80FFF80
+
+ thumb_func_start sub_80FFF98
+sub_80FFF98: @ 80FFF98
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r0, _080FFFB4 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bls _080FFFA8
+ b _08100100
+_080FFFA8:
+ lsls r0, 2
+ ldr r1, _080FFFB8 @ =_080FFFBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080FFFB4: .4byte gUnknown_203ACEC
+_080FFFB8: .4byte _080FFFBC
+ .align 2, 0
+_080FFFBC:
+ .4byte _080FFFD4
+ .4byte _08100038
+ .4byte _0810006C
+ .4byte _0810009C
+ .4byte _081000AE
+ .4byte _081000B8
+_080FFFD4:
+ movs r0, 0
+ bl sub_8001618
+ ldr r1, _08100028 @ =gUnknown_843F8A0
+ movs r0, 0
+ movs r2, 0x4
+ bl sub_8001658
+ ldr r4, _0810002C @ =gUnknown_203ACEC
+ ldr r1, [r4]
+ movs r0, 0xB0
+ lsls r0, 4
+ adds r1, r0
+ movs r0, 0x3
+ bl sub_8001FA0
+ ldr r1, [r4]
+ movs r0, 0xC0
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x1
+ bl sub_8001FA0
+ ldr r0, _08100030 @ =gUnknown_843F8B0
+ bl sub_8003B24
+ bl sub_8002C28
+ bl sub_8100CBC
+ bl sub_8100C5C
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0xE0
+ lsls r1, 19
+ ldr r2, _08100034 @ =0x01000100
+ add r0, sp, 0x4
+ bl CpuFastSet
+ b _08100104
+ .align 2, 0
+_08100028: .4byte gUnknown_843F8A0
+_0810002C: .4byte gUnknown_203ACEC
+_08100030: .4byte gUnknown_843F8B0
+_08100034: .4byte 0x01000100
+_08100038:
+ ldr r1, _08100064 @ =gUnknown_8E99DAC
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F696C
+ ldr r1, _08100068 @ =gUnknown_8E99E74
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002040
+ bl sub_8100F44
+ bl sub_8102428
+ movs r0, 0x3
+ bl sub_80020BC
+ b _08100104
+ .align 2, 0
+_08100064: .4byte gUnknown_8E99DAC
+_08100068: .4byte gUnknown_8E99E74
+_0810006C:
+ ldr r0, _08100094 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r0, r1
+ bl sub_8101100
+ ldr r1, _08100098 @ =gUnknown_843F7AC
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F696C
+ movs r0, 0x1
+ bl sub_80020BC
+ b _08100104
+ .align 2, 0
+_08100094: .4byte gUnknown_203ACEC
+_08100098: .4byte gUnknown_843F7AC
+_0810009C:
+ bl sub_8100D24
+ bl sub_8100E34
+ bl sub_8100FDC
+ bl sub_81012CC
+ b _08100104
+_081000AE:
+ bl sub_8101A90
+ bl sub_8101AC4
+ b _08100104
+_081000B8:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810010E
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8101A5C
+ movs r0, 0x48
+ movs r1, 0x3F
+ bl sub_8000A38
+ movs r0, 0x4A
+ movs r1, 0x3B
+ bl sub_8000A38
+ movs r0, 0x3
+ bl sub_80019BC
+ movs r0, 0x1
+ bl sub_80019BC
+ movs r0, 0x2
+ bl sub_80019BC
+ movs r0, 0
+ bl sub_80019BC
+ bl sub_81021D4
+ bl sub_8102320
+ b _08100104
+_08100100:
+ movs r0, 0
+ b _08100110
+_08100104:
+ ldr r0, _08100118 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0810010E:
+ movs r0, 0x1
+_08100110:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08100118: .4byte gUnknown_203ACEC
+ thumb_func_end sub_80FFF98
+
+ thumb_func_start sub_810011C
+sub_810011C: @ 810011C
+ push {lr}
+ ldr r0, _08100130 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0810012A
+ bl sub_8002BC4
+_0810012A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100130: .4byte gUnknown_203ACEC
+ thumb_func_end sub_810011C
+
+ thumb_func_start sub_8100134
+sub_8100134: @ 8100134
+ push {lr}
+ ldr r1, _08100148 @ =gUnknown_203ACEC
+ ldr r1, [r1]
+ movs r2, 0
+ strh r0, [r1, 0x4]
+ strh r2, [r1]
+ bl sub_810014C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100148: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8100134
+
+ thumb_func_start sub_810014C
+sub_810014C: @ 810014C
+ push {lr}
+ ldr r0, _08100164 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0x16
+ bhi _08100250
+ lsls r0, 2
+ ldr r1, _08100168 @ =_0810016C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08100164: .4byte gUnknown_203ACEC
+_08100168: .4byte _0810016C
+ .align 2, 0
+_0810016C:
+ .4byte _08100250
+ .4byte _081001C8
+ .4byte _081001CE
+ .4byte _081001D4
+ .4byte _081001DA
+ .4byte _081001E0
+ .4byte _081001E6
+ .4byte _081001EC
+ .4byte _081001F2
+ .4byte _081001F8
+ .4byte _081001FE
+ .4byte _08100204
+ .4byte _0810020A
+ .4byte _08100210
+ .4byte _08100216
+ .4byte _0810021C
+ .4byte _08100222
+ .4byte _08100228
+ .4byte _0810022E
+ .4byte _08100234
+ .4byte _0810023A
+ .4byte _08100240
+ .4byte _08100246
+_081001C8:
+ bl sub_8100258
+ b _0810024A
+_081001CE:
+ bl sub_8100290
+ b _0810024A
+_081001D4:
+ bl sub_8100374
+ b _0810024A
+_081001DA:
+ bl sub_8100430
+ b _0810024A
+_081001E0:
+ bl sub_81003A8
+ b _0810024A
+_081001E6:
+ bl sub_81003EC
+ b _0810024A
+_081001EC:
+ bl sub_8100474
+ b _0810024A
+_081001F2:
+ bl sub_81004B8
+ b _0810024A
+_081001F8:
+ bl sub_81004F4
+ b _0810024A
+_081001FE:
+ bl sub_81005C0
+ b _0810024A
+_08100204:
+ bl sub_81007D0
+ b _0810024A
+_0810020A:
+ bl sub_8100890
+ b _0810024A
+_08100210:
+ bl sub_810093C
+ b _0810024A
+_08100216:
+ bl sub_8100720
+ b _0810024A
+_0810021C:
+ bl sub_810072C
+ b _0810024A
+_08100222:
+ bl sub_8100774
+ b _0810024A
+_08100228:
+ bl sub_81009F8
+ b _0810024A
+_0810022E:
+ bl sub_8100A78
+ b _0810024A
+_08100234:
+ bl sub_8100A04
+ b _0810024A
+_0810023A:
+ bl sub_8100B70
+ b _0810024A
+_08100240:
+ bl sub_8100AE8
+ b _0810024A
+_08100246:
+ bl sub_8100660
+_0810024A:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08100252
+_08100250:
+ movs r0, 0
+_08100252:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810014C
+
+ thumb_func_start sub_8100258
+sub_8100258: @ 8100258
+ push {r4,lr}
+ ldr r4, _0810026C @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08100270
+ cmp r0, 0x1
+ beq _0810027E
+ b _08100288
+ .align 2, 0
+_0810026C: .4byte gUnknown_203ACEC
+_08100270:
+ bl sub_8100FDC
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100288
+_0810027E:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r0, 24
+ b _0810028A
+_08100288:
+ movs r0, 0x1
+_0810028A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100258
+
+ thumb_func_start sub_8100290
+sub_8100290: @ 8100290
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ bl sub_80FFD1C
+ adds r4, r0, 0
+ bl sub_80FFCE0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ bl sub_80FFD40
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_80FFD4C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl sub_80FFD34
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ lsls r0, 1
+ adds r4, r0
+ ldr r1, _08100304 @ =gUnknown_843F888
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 19
+ movs r1, 0xD0
+ lsls r1, 12
+ adds r0, r1
+ lsrs r6, r0, 16
+ movs r5, 0
+ cmp r5, r7
+ bcs _0810033A
+ ldr r2, _08100308 @ =0x0000ffff
+ mov r10, r2
+_081002EE:
+ ldrh r0, [r4]
+ cmp r0, r10
+ bne _08100310
+ movs r0, 0x1
+ ldr r1, _0810030C @ =gUnknown_843F8D8
+ movs r2, 0
+ bl sub_8005ED4
+ lsls r1, r0, 3
+ subs r0, r1, r0
+ b _08100322
+ .align 2, 0
+_08100304: .4byte gUnknown_843F888
+_08100308: .4byte 0x0000ffff
+_0810030C: .4byte gUnknown_843F8D8
+_08100310:
+ ldrh r1, [r4]
+ mov r0, sp
+ bl sub_80BD850
+ movs r0, 0x1
+ mov r1, sp
+ movs r2, 0
+ bl sub_8005ED4
+_08100322:
+ adds r0, 0x11
+ lsls r1, r6, 16
+ asrs r1, 16
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ adds r4, 0x2
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r7
+ bcc _081002EE
+_0810033A:
+ ldr r1, _08100370 @ =gUnknown_843F888
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ mov r2, r8
+ lsls r1, r2, 1
+ ldrb r0, [r0, 0x1]
+ adds r1, r0
+ adds r1, 0x1
+ lsls r1, 3
+ adds r1, 0x1
+ lsls r0, r6, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8101B58
+ movs r0, 0
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08100370: .4byte gUnknown_843F888
+ thumb_func_end sub_8100290
+
+ thumb_func_start sub_8100374
+sub_8100374: @ 8100374
+ push {lr}
+ bl sub_80FFD40
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08100396
+ cmp r0, 0x1
+ bgt _0810038C
+ cmp r0, 0
+ beq _08100392
+ b _081003A2
+_0810038C:
+ cmp r0, 0x2
+ beq _0810039A
+ b _081003A2
+_08100392:
+ movs r0, 0x1C
+ b _0810039C
+_08100396:
+ movs r0, 0x73
+ b _0810039C
+_0810039A:
+ movs r0, 0xBF
+_0810039C:
+ movs r1, 0x61
+ bl sub_8101B58
+_081003A2:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100374
+
+ thumb_func_start sub_81003A8
+sub_81003A8: @ 81003A8
+ push {r4,lr}
+ ldr r4, _081003BC @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081003C0
+ cmp r0, 0x1
+ beq _081003DA
+ b _081003E4
+ .align 2, 0
+_081003BC: .4byte gUnknown_203ACEC
+_081003C0:
+ bl sub_8101B88
+ movs r0, 0x2
+ bl sub_8100E7C
+ movs r0, 0x1
+ bl sub_8100F18
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081003E4
+_081003DA:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r0, 24
+ b _081003E6
+_081003E4:
+ movs r0, 0x1
+_081003E6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81003A8
+
+ thumb_func_start sub_81003EC
+sub_81003EC: @ 81003EC
+ push {r4,lr}
+ ldr r4, _08100400 @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08100404
+ cmp r0, 0x1
+ beq _0810041E
+ b _08100428
+ .align 2, 0
+_08100400: .4byte gUnknown_203ACEC
+_08100404:
+ bl sub_8101B88
+ movs r0, 0x3
+ bl sub_8100E7C
+ movs r0, 0
+ bl sub_8100F18
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100428
+_0810041E:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r0, 24
+ b _0810042A
+_08100428:
+ movs r0, 0x1
+_0810042A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81003EC
+
+ thumb_func_start sub_8100430
+sub_8100430: @ 8100430
+ push {r4,lr}
+ ldr r4, _08100444 @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08100448
+ cmp r0, 0x1
+ beq _08100462
+ b _0810046C
+ .align 2, 0
+_08100444: .4byte gUnknown_203ACEC
+_08100448:
+ bl sub_8101B88
+ movs r0, 0x1
+ bl sub_8100E7C
+ movs r0, 0x1
+ bl sub_8100F18
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0810046C
+_08100462:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r0, 24
+ b _0810046E
+_0810046C:
+ movs r0, 0x1
+_0810046E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100430
+
+ thumb_func_start sub_8100474
+sub_8100474: @ 8100474
+ push {r4,lr}
+ ldr r4, _08100488 @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0810048C
+ cmp r0, 0x1
+ beq _081004A6
+ b _081004B0
+ .align 2, 0
+_08100488: .4byte gUnknown_203ACEC
+_0810048C:
+ bl sub_8101BA8
+ movs r0, 0
+ bl sub_8100E7C
+ movs r0, 0
+ bl sub_80019BC
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081004B0
+_081004A6:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r0, 24
+ b _081004B2
+_081004B0:
+ movs r0, 0x1
+_081004B2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100474
+
+ thumb_func_start sub_81004B8
+sub_81004B8: @ 81004B8
+ push {r4,lr}
+ ldr r4, _081004CC @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081004D0
+ cmp r0, 0x1
+ beq _081004E6
+ movs r0, 0x1
+ b _081004EE
+ .align 2, 0
+_081004CC: .4byte gUnknown_203ACEC
+_081004D0:
+ bl sub_8101BA8
+ movs r0, 0
+ bl sub_8100E7C
+ bl sub_8100FDC
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_081004E6:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r0, 24
+_081004EE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81004B8
+
+ thumb_func_start sub_81004F4
+sub_81004F4: @ 81004F4
+ push {lr}
+ ldr r0, _0810050C @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _081005AE
+ lsls r0, 2
+ ldr r1, _08100510 @ =_08100514
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810050C: .4byte gUnknown_203ACEC
+_08100510: .4byte _08100514
+ .align 2, 0
+_08100514:
+ .4byte _08100528
+ .4byte _08100544
+ .4byte _08100556
+ .4byte _0810056C
+ .4byte _0810058C
+_08100528:
+ bl sub_8101B88
+ movs r0, 0
+ bl sub_80019D0
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8101A5C
+ bl sub_810131C
+ b _0810057A
+_08100544:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005B8
+ movs r0, 0
+ bl sub_81015D4
+ b _0810057A
+_08100556:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005B8
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005B8
+ b _0810057A
+_0810056C:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005B8
+ bl sub_8101FAC
+_0810057A:
+ ldr r0, _08100588 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081005B8
+ .align 2, 0
+_08100588: .4byte gUnknown_203ACEC
+_0810058C:
+ bl sub_8102018
+ lsls r0, 24
+ cmp r0, 0
+ bne _081005B8
+ bl sub_8101BC0
+ movs r0, 0
+ bl sub_81022E0
+ bl sub_810224C
+ ldr r0, _081005B4 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_081005AE:
+ movs r0, 0
+ b _081005BA
+ .align 2, 0
+_081005B4: .4byte gUnknown_203ACEC
+_081005B8:
+ movs r0, 0x1
+_081005BA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81004F4
+
+ thumb_func_start sub_81005C0
+sub_81005C0: @ 81005C0
+ push {lr}
+ ldr r0, _081005D8 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _08100658
+ lsls r0, 2
+ ldr r1, _081005DC @ =_081005E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081005D8: .4byte gUnknown_203ACEC
+_081005DC: .4byte _081005E0
+ .align 2, 0
+_081005E0:
+ .4byte _081005F4
+ .4byte _08100602
+ .4byte _0810061E
+ .4byte _08100630
+ .4byte _08100654
+_081005F4:
+ bl sub_8101C48
+ bl sub_81020AC
+ bl sub_81022B0
+ b _08100644
+_08100602:
+ bl sub_81020D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08100658
+ movs r0, 0x1
+ bl sub_81015D4
+ ldr r0, _0810062C @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0810061E:
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100658
+ b _08100644
+ .align 2, 0
+_0810062C: .4byte gUnknown_203ACEC
+_08100630:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100658
+ bl sub_8101BA8
+ movs r0, 0
+ bl sub_80019BC
+_08100644:
+ ldr r0, _08100650 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100658
+ .align 2, 0
+_08100650: .4byte gUnknown_203ACEC
+_08100654:
+ movs r0, 0
+ b _0810065A
+_08100658:
+ movs r0, 0x1
+_0810065A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81005C0
+
+ thumb_func_start sub_8100660
+sub_8100660: @ 8100660
+ push {lr}
+ ldr r0, _08100678 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _08100718
+ lsls r0, 2
+ ldr r1, _0810067C @ =_08100680
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08100678: .4byte gUnknown_203ACEC
+_0810067C: .4byte _08100680
+ .align 2, 0
+_08100680:
+ .4byte _08100694
+ .4byte _081006A8
+ .4byte _081006C2
+ .4byte _081006E8
+ .4byte _0810070E
+_08100694:
+ bl sub_8101C48
+ bl sub_81022B0
+ bl sub_810215C
+ movs r0, 0x5
+ bl sub_81015D4
+ b _081006D6
+_081006A8:
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100718
+ bl sub_81021B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100718
+ bl sub_810131C
+ b _081006D6
+_081006C2:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100718
+ movs r0, 0x6
+ bl sub_81015D4
+ bl sub_8102178
+_081006D6:
+ ldr r0, _081006E4 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100718
+ .align 2, 0
+_081006E4: .4byte gUnknown_203ACEC
+_081006E8:
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100718
+ bl sub_81021B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100718
+ bl sub_810224C
+ bl sub_8101BC0
+ ldr r0, _08100714 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0810070E:
+ movs r0, 0
+ b _0810071A
+ .align 2, 0
+_08100714: .4byte gUnknown_203ACEC
+_08100718:
+ movs r0, 0x1
+_0810071A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100660
+
+ thumb_func_start sub_8100720
+sub_8100720: @ 8100720
+ push {lr}
+ bl sub_8101C80
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100720
+
+ thumb_func_start sub_810072C
+sub_810072C: @ 810072C
+ push {r4,lr}
+ ldr r4, _08100740 @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08100744
+ cmp r0, 0x1
+ beq _08100754
+ b _0810076A
+ .align 2, 0
+_08100740: .4byte gUnknown_203ACEC
+_08100744:
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_81019B0
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_08100754:
+ bl sub_8101A10
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810076A
+ bl sub_8101C80
+ bl sub_810224C
+ movs r0, 0
+ b _0810076C
+_0810076A:
+ movs r0, 0x1
+_0810076C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810072C
+
+ thumb_func_start sub_8100774
+sub_8100774: @ 8100774
+ push {r4,lr}
+ ldr r4, _0810078C @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081007A8
+ cmp r0, 0x1
+ bgt _08100790
+ cmp r0, 0
+ beq _08100796
+ b _081007C8
+ .align 2, 0
+_0810078C: .4byte gUnknown_203ACEC
+_08100790:
+ cmp r0, 0x2
+ beq _081007C0
+ b _081007C8
+_08100796:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ bl sub_81019B0
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_081007A8:
+ bl sub_8101A10
+ lsls r0, 24
+ cmp r0, 0
+ bne _081007C8
+ bl sub_810224C
+ ldr r0, _081007C4 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_081007C0:
+ movs r0, 0
+ b _081007CA
+ .align 2, 0
+_081007C4: .4byte gUnknown_203ACEC
+_081007C8:
+ movs r0, 0x1
+_081007CA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100774
+
+ thumb_func_start sub_81007D0
+sub_81007D0: @ 81007D0
+ push {lr}
+ ldr r0, _081007E8 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bhi _08100888
+ lsls r0, 2
+ ldr r1, _081007EC @ =_081007F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081007E8: .4byte gUnknown_203ACEC
+_081007EC: .4byte _081007F0
+ .align 2, 0
+_081007F0:
+ .4byte _08100808
+ .4byte _08100816
+ .4byte _08100826
+ .4byte _08100838
+ .4byte _08100858
+ .4byte _0810087E
+_08100808:
+ bl sub_8101C48
+ bl sub_81020AC
+ bl sub_81022B0
+ b _08100848
+_08100816:
+ bl sub_81020D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100888
+ bl sub_81015BC
+ b _08100848
+_08100826:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100888
+ movs r0, 0x2
+ bl sub_81015D4
+ b _08100848
+_08100838:
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100888
+ movs r0, 0x2
+ bl sub_81012E0
+_08100848:
+ ldr r0, _08100854 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100888
+ .align 2, 0
+_08100854: .4byte gUnknown_203ACEC
+_08100858:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100888
+ bl sub_8101E80
+ movs r0, 0x1
+ bl sub_81022E0
+ bl sub_810224C
+ bl sub_8102394
+ ldr r0, _08100884 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0810087E:
+ movs r0, 0
+ b _0810088A
+ .align 2, 0
+_08100884: .4byte gUnknown_203ACEC
+_08100888:
+ movs r0, 0x1
+_0810088A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81007D0
+
+ thumb_func_start sub_8100890
+sub_8100890: @ 8100890
+ push {lr}
+ ldr r0, _081008A8 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bhi _08100934
+ lsls r0, 2
+ ldr r1, _081008AC @ =_081008B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081008A8: .4byte gUnknown_203ACEC
+_081008AC: .4byte _081008B0
+ .align 2, 0
+_081008B0:
+ .4byte _081008C8
+ .4byte _081008CE
+ .4byte _081008E0
+ .4byte _081008F2
+ .4byte _08100914
+ .4byte _0810092C
+_081008C8:
+ bl sub_8100FDC
+ b _08100902
+_081008CE:
+ bl sub_8101F80
+ bl sub_81022B0
+ bl sub_81023F8
+ bl sub_81015BC
+ b _08100902
+_081008E0:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100934
+ movs r0, 0x3
+ bl sub_81015D4
+ b _08100902
+_081008F2:
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100934
+ movs r0, 0
+ bl sub_80019BC
+_08100902:
+ ldr r0, _08100910 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100934
+ .align 2, 0
+_08100910: .4byte gUnknown_203ACEC
+_08100914:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100934
+ bl sub_8101BA8
+ ldr r0, _08100930 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0810092C:
+ movs r0, 0
+ b _08100936
+ .align 2, 0
+_08100930: .4byte gUnknown_203ACEC
+_08100934:
+ movs r0, 0x1
+_08100936:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100890
+
+ thumb_func_start sub_810093C
+sub_810093C: @ 810093C
+ push {lr}
+ ldr r0, _08100954 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrh r0, [r0]
+ cmp r0, 0x4
+ bhi _081009F0
+ lsls r0, 2
+ ldr r1, _08100958 @ =_0810095C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08100954: .4byte gUnknown_203ACEC
+_08100958: .4byte _0810095C
+ .align 2, 0
+_0810095C:
+ .4byte _08100970
+ .4byte _08100982
+ .4byte _08100994
+ .4byte _081009A4
+ .4byte _081009C4
+_08100970:
+ bl sub_8101F80
+ bl sub_81022B0
+ bl sub_81023F8
+ bl sub_81015BC
+ b _081009B2
+_08100982:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _081009F0
+ movs r0, 0x4
+ bl sub_81015D4
+ b _081009B2
+_08100994:
+ bl sub_81016AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _081009F0
+ bl sub_810131C
+ b _081009B2
+_081009A4:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _081009F0
+ bl sub_8101FAC
+_081009B2:
+ ldr r0, _081009C0 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081009F0
+ .align 2, 0
+_081009C0: .4byte gUnknown_203ACEC
+_081009C4:
+ bl sub_8102018
+ lsls r0, 24
+ cmp r0, 0
+ bne _081009F0
+ bl sub_8101BC0
+ movs r0, 0
+ bl sub_81022E0
+ bl sub_810224C
+ ldr r0, _081009EC @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _081009F2
+ .align 2, 0
+_081009EC: .4byte gUnknown_203ACEC
+_081009F0:
+ movs r0, 0x1
+_081009F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810093C
+
+ thumb_func_start sub_81009F8
+sub_81009F8: @ 81009F8
+ push {lr}
+ bl sub_8101F04
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81009F8
+
+ thumb_func_start sub_8100A04
+sub_8100A04: @ 8100A04
+ push {r4,lr}
+ ldr r4, _08100A1C @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08100A30
+ cmp r0, 0x1
+ bgt _08100A20
+ cmp r0, 0
+ beq _08100A2A
+ b _08100A6E
+ .align 2, 0
+_08100A1C: .4byte gUnknown_203ACEC
+_08100A20:
+ cmp r0, 0x2
+ beq _08100A4C
+ cmp r0, 0x3
+ beq _08100A6A
+ b _08100A6E
+_08100A2A:
+ bl sub_81013EC
+ b _08100A42
+_08100A30:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100A6E
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_81019B0
+_08100A42:
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100A6E
+_08100A4C:
+ bl sub_8101A10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100A6E
+ bl sub_8101F04
+ bl sub_810224C
+ bl sub_8102394
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_08100A6A:
+ movs r0, 0
+ b _08100A70
+_08100A6E:
+ movs r0, 0x1
+_08100A70:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100A04
+
+ thumb_func_start sub_8100A78
+sub_8100A78: @ 8100A78
+ push {r4,lr}
+ ldr r4, _08100A90 @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08100AA4
+ cmp r0, 0x1
+ bgt _08100A94
+ cmp r0, 0
+ beq _08100A9E
+ b _08100AE0
+ .align 2, 0
+_08100A90: .4byte gUnknown_203ACEC
+_08100A94:
+ cmp r0, 0x2
+ beq _08100AC2
+ cmp r0, 0x3
+ beq _08100ADC
+ b _08100AE0
+_08100A9E:
+ bl sub_8101410
+ b _08100AB8
+_08100AA4:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100AE0
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ bl sub_81019B0
+_08100AB8:
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100AE0
+_08100AC2:
+ bl sub_8101A10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100AE0
+ bl sub_810224C
+ bl sub_8102394
+ ldr r1, [r4]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_08100ADC:
+ movs r0, 0
+ b _08100AE2
+_08100AE0:
+ movs r0, 0x1
+_08100AE2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100A78
+
+ thumb_func_start sub_8100AE8
+sub_8100AE8: @ 8100AE8
+ push {r4,r5,lr}
+ ldr r5, _08100B00 @ =gUnknown_203ACEC
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08100B14
+ cmp r0, 0x1
+ bgt _08100B04
+ cmp r0, 0
+ beq _08100B0E
+ b _08100B66
+ .align 2, 0
+_08100B00: .4byte gUnknown_203ACEC
+_08100B04:
+ cmp r0, 0x2
+ beq _08100B44
+ cmp r0, 0x3
+ beq _08100B62
+ b _08100B66
+_08100B0E:
+ bl sub_8101434
+ b _08100B3A
+_08100B14:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100B66
+ bl sub_80FFE48
+ adds r4, r0, 0
+ bl sub_8101A48
+ lsls r4, 24
+ lsrs r4, 24
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_81019B0
+_08100B3A:
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100B66
+_08100B44:
+ bl sub_8101A10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100B66
+ bl sub_8101F04
+ bl sub_810224C
+ bl sub_8102394
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_08100B62:
+ movs r0, 0
+ b _08100B68
+_08100B66:
+ movs r0, 0x1
+_08100B68:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100AE8
+
+ thumb_func_start sub_8100B70
+sub_8100B70: @ 8100B70
+ push {r4,r5,lr}
+ ldr r5, _08100B88 @ =gUnknown_203ACEC
+ ldr r0, [r5]
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _08100B9C
+ cmp r0, 0x1
+ bgt _08100B8C
+ cmp r0, 0
+ beq _08100B96
+ b _08100BEA
+ .align 2, 0
+_08100B88: .4byte gUnknown_203ACEC
+_08100B8C:
+ cmp r0, 0x2
+ beq _08100BCC
+ cmp r0, 0x3
+ beq _08100BE6
+ b _08100BEA
+_08100B96:
+ bl sub_8101478
+ b _08100BC2
+_08100B9C:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100BEA
+ bl sub_80FFE48
+ adds r4, r0, 0
+ bl sub_8101A48
+ lsls r4, 24
+ lsrs r4, 24
+ subs r4, r0
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_81019B0
+_08100BC2:
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08100BEA
+_08100BCC:
+ bl sub_8101A10
+ lsls r0, 24
+ cmp r0, 0
+ bne _08100BEA
+ bl sub_810224C
+ bl sub_8102394
+ ldr r1, [r5]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_08100BE6:
+ movs r0, 0
+ b _08100BEC
+_08100BEA:
+ movs r0, 0x1
+_08100BEC:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100B70
+
+ thumb_func_start sub_8100BF4
+sub_8100BF4: @ 8100BF4
+ push {r4,lr}
+ ldr r4, _08100C50 @ =gUnknown_203ACEC
+ movs r0, 0x98
+ lsls r0, 5
+ bl sub_8002B9C
+ adds r2, r0, 0
+ str r2, [r4]
+ cmp r2, 0
+ beq _08100C54
+ movs r1, 0
+ strh r1, [r2]
+ movs r3, 0xB6
+ lsls r3, 2
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ adds r3, 0x4
+ adds r0, r2, r3
+ str r1, [r0]
+ movs r0, 0x1
+ b _08100C56
+ .align 2, 0
+_08100C50: .4byte gUnknown_203ACEC
+_08100C54:
+ movs r0, 0
+_08100C56:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8100BF4
+
+ thumb_func_start sub_8100C5C
+sub_8100C5C: @ 8100C5C
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r1, 0xC1
+ lsls r1, 6
+ movs r0, 0
+ bl sub_8000A38
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100C5C
+
+ thumb_func_start sub_8100CBC
+sub_8100CBC: @ 8100CBC
+ push {r4,lr}
+ bl sub_8070528
+ ldr r0, _08100D10 @ =gUnknown_8E99D8C
+ movs r1, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r0, _08100D14 @ =gUnknown_843F76C
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r0, _08100D18 @ =gUnknown_843F78C
+ movs r1, 0x40
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r0, _08100D1C @ =gUnknown_843F874
+ movs r1, 0xA0
+ movs r2, 0x8
+ bl sub_80703EC
+ ldr r4, _08100D20 @ =gUnknown_843F87C
+ adds r0, r4, 0
+ movs r1, 0xB0
+ movs r2, 0xA
+ bl sub_80703EC
+ adds r0, r4, 0
+ movs r1, 0xF0
+ movs r2, 0xA
+ bl sub_80703EC
+ adds r0, r4, 0
+ movs r1, 0x30
+ movs r2, 0xA
+ bl sub_80703EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100D10: .4byte gUnknown_8E99D8C
+_08100D14: .4byte gUnknown_843F76C
+_08100D18: .4byte gUnknown_843F78C
+_08100D1C: .4byte gUnknown_843F874
+_08100D20: .4byte gUnknown_843F87C
+ thumb_func_end sub_8100CBC
+
+ thumb_func_start sub_8100D24
+sub_8100D24: @ 8100D24
+ push {r4,r5,lr}
+ sub sp, 0x14
+ bl sub_80FFCFC
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _08100D7A
+ movs r0, 0x1
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8005ED4
+ movs r4, 0x80
+ subs r4, r0
+ lsrs r4, 1
+ movs r0, 0
+ movs r1, 0
+ bl sub_800445C
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ str r1, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ movs r0, 0x3
+ str r0, [sp, 0x10]
+ movs r0, 0
+ movs r1, 0x1
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8100DC4
+ movs r0, 0
+ bl sub_8003FA0
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8003F20
+_08100D7A:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100D24
+
+ thumb_func_start sub_8100D84
+sub_8100D84: @ 8100D84
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r2, 0
+ ldr r2, [sp, 0x1C]
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r2, 24
+ lsrs r0, r2, 24
+ lsls r4, 24
+ lsrs r4, 24
+ cmp r1, 0x1
+ bne _08100DAC
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+_08100DAC:
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ ldr r0, [sp, 0x24]
+ str r0, [sp, 0x8]
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_8002C48
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100D84
+
+ thumb_func_start sub_8100DC4
+sub_8100DC4: @ 8100DC4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r9, r2
+ ldr r2, [sp, 0x2C]
+ ldr r4, [sp, 0x30]
+ ldr r5, [sp, 0x34]
+ ldr r6, [sp, 0x38]
+ ldr r7, [sp, 0x3C]
+ mov r8, r7
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r1, 0x1
+ bne _08100E0A
+ adds r0, r3, 0x2
+ lsls r0, 24
+ lsrs r3, r0, 24
+_08100E0A:
+ add r0, sp, 0xC
+ strb r5, [r0]
+ strb r6, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ str r0, [sp]
+ lsls r0, r4, 24
+ asrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r9
+ str r0, [sp, 0x8]
+ mov r0, r12
+ adds r2, r7, 0
+ bl sub_812E51C
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100DC4
+
+ thumb_func_start sub_8100E34
+sub_8100E34: @ 8100E34
+ push {lr}
+ sub sp, 0xC
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x14
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002554
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0xE0
+ bl sub_815001C
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0xE
+ bl sub_8150048
+ movs r0, 0
+ bl sub_8100E7C
+ movs r0, 0x1
+ bl sub_8003FA0
+ movs r0, 0
+ bl sub_80020BC
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100E34
+
+ thumb_func_start sub_8100E7C
+sub_8100E7C: @ 8100E7C
+ push {lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, r1, 0
+ movs r0, 0
+ str r0, [sp, 0x10]
+ str r0, [sp, 0xC]
+ cmp r1, 0x1
+ beq _08100EC2
+ cmp r1, 0x1
+ bgt _08100E9A
+ cmp r1, 0
+ beq _08100EA4
+ b _08100ECA
+_08100E9A:
+ cmp r2, 0x2
+ beq _08100EAE
+ cmp r2, 0x3
+ beq _08100EB8
+ b _08100ECA
+_08100EA4:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_80FFD58
+ b _08100ECA
+_08100EAE:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_80FFDC8
+ b _08100ECA
+_08100EB8:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_80FFD90
+ b _08100ECA
+_08100EC2:
+ add r1, sp, 0x10
+ add r0, sp, 0xC
+ bl sub_80FFDF4
+_08100ECA:
+ movs r0, 0x1
+ movs r1, 0x11
+ bl sub_800445C
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _08100EEC
+ movs r1, 0
+ str r1, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_8100D84
+_08100EEC:
+ ldr r2, [sp, 0x10]
+ cmp r2, 0
+ beq _08100F08
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_8100D84
+_08100F08:
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_8003F20
+ add sp, 0x14
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8100E7C
+
+ thumb_func_start sub_8100F18
+sub_8100F18: @ 8100F18
+ push {lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08100F40 @ =gUnknown_843F8D0
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xE
+ str r1, [sp, 0x4]
+ str r0, [sp, 0x8]
+ adds r0, r2, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_810FF60
+ add sp, 0xC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100F40: .4byte gUnknown_843F8D0
+ thumb_func_end sub_8100F18
+
+ thumb_func_start sub_8100F44
+sub_8100F44: @ 8100F44
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl sub_80FFCE0
+ lsls r0, 24
+ ldr r5, _08100FC0 @ =0xffffff00
+ ldr r3, [sp]
+ ands r3, r5
+ movs r1, 0x3
+ orrs r3, r1
+ str r3, [sp]
+ ldr r1, _08100FC4 @ =gUnknown_843F888
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r2, [r0]
+ lsls r2, 8
+ ldr r4, _08100FC8 @ =0xffff00ff
+ adds r1, r4, 0
+ ands r1, r3
+ orrs r1, r2
+ str r1, [sp]
+ ldrb r2, [r0, 0x1]
+ lsls r2, 16
+ ldr r3, _08100FCC @ =0xff00ffff
+ ands r3, r1
+ orrs r3, r2
+ str r3, [sp]
+ ldrb r2, [r0, 0x2]
+ lsls r2, 24
+ ldr r1, _08100FD0 @ =0x00ffffff
+ ands r1, r3
+ orrs r1, r2
+ str r1, [sp]
+ ldrb r1, [r0, 0x3]
+ ldr r0, [sp, 0x4]
+ ands r0, r5
+ orrs r0, r1
+ ands r0, r4
+ movs r1, 0xB0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, _08100FD4 @ =0x0000ffff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl sub_8003CE4
+ ldr r1, _08100FD8 @ =gUnknown_203ACEC
+ ldr r1, [r1]
+ strh r0, [r1, 0x2]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8003FA0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08100FC0: .4byte 0xffffff00
+_08100FC4: .4byte gUnknown_843F888
+_08100FC8: .4byte 0xffff00ff
+_08100FCC: .4byte 0xff00ffff
+_08100FD0: .4byte 0x00ffffff
+_08100FD4: .4byte 0x0000ffff
+_08100FD8: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8100F44
+
+ thumb_func_start sub_8100FDC
+sub_8100FDC: @ 8100FDC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ bl sub_80FFD1C
+ adds r4, r0, 0
+ bl sub_80FFD34
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl sub_80FFD28
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ bl sub_80FFCE0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ ldr r0, _0810101C @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x11
+ bl sub_800445C
+ movs r6, 0
+ b _081010D6
+ .align 2, 0
+_0810101C: .4byte gUnknown_203ACEC
+_08101020:
+ ldr r0, _0810105C @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ adds r2, r1, 0
+ adds r2, 0xA
+ movs r0, 0xFF
+ strb r0, [r1, 0xA]
+ adds r0, r2, 0
+ ldr r1, _08101060 @ =gUnknown_843F8DB
+ bl sub_8008DA4
+ adds r2, r0, 0
+ movs r5, 0
+ lsls r7, r6, 28
+ adds r0, r6, 0x1
+ mov r9, r0
+ cmp r5, r8
+ bge _081010B4
+ ldr r0, _08101064 @ =0x0000ffff
+ mov r10, r0
+_08101046:
+ ldrh r0, [r4]
+ cmp r0, r10
+ beq _08101068
+ adds r1, r0, 0
+ adds r0, r2, 0
+ bl sub_80BD850
+ adds r2, r0, 0
+ adds r4, 0x2
+ b _08101096
+ .align 2, 0
+_0810105C: .4byte gUnknown_203ACEC
+_08101060: .4byte gUnknown_843F8DB
+_08101064: .4byte 0x0000ffff
+_08101068:
+ adds r0, r2, 0
+ movs r1, 0
+ movs r2, 0x4
+ bl sub_80092F4
+ adds r2, r0, 0
+ adds r4, 0x2
+ movs r3, 0xF9
+ movs r1, 0x9
+ movs r0, 0x6
+_0810107C:
+ strb r3, [r2]
+ adds r2, 0x1
+ strb r1, [r2]
+ adds r2, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bge _0810107C
+ adds r0, r2, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl sub_80092F4
+ adds r2, r0, 0
+_08101096:
+ adds r0, r2, 0
+ ldr r1, _081010F8 @ =gUnknown_843F8DB
+ bl sub_8008DA4
+ adds r2, r0, 0
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x2
+ bne _081010AE
+ cmp r5, 0
+ bne _081010AE
+ cmp r6, 0x4
+ beq _081010B4
+_081010AE:
+ adds r5, 0x1
+ cmp r5, r8
+ blt _08101046
+_081010B4:
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldr r0, _081010FC @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ ldrb r0, [r2, 0x2]
+ adds r2, 0xA
+ lsrs r1, r7, 24
+ str r1, [sp]
+ movs r1, 0xFF
+ str r1, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_8100D84
+ mov r6, r9
+_081010D6:
+ ldr r0, [sp, 0xC]
+ cmp r6, r0
+ blt _08101020
+ ldr r0, _081010FC @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ movs r1, 0x3
+ bl sub_8003F20
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081010F8: .4byte gUnknown_843F8DB
+_081010FC: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8100FDC
+
+ thumb_func_start sub_8101100
+sub_8101100: @ 8101100
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ bl sub_80FFCE0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r2, _08101194 @ =0x01000200
+ mov r0, sp
+ mov r1, r8
+ bl CpuFastSet
+ cmp r5, 0x2
+ bne _081011A4
+ ldr r0, _08101198 @ =gUnknown_843F888
+ adds r1, r0, 0
+ adds r1, 0x8
+ ldrb r5, [r0, 0x8]
+ ldrb r0, [r1, 0x2]
+ adds r4, r5, r0
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x3]
+ adds r0, r2
+ mov r12, r0
+ adds r7, r2, 0
+ cmp r7, r12
+ blt _08101144
+ b _08101296
+_08101144:
+ adds r3, r5, 0
+ lsls r0, r3, 1
+ mov r9, r0
+_0810114A:
+ subs r6, r3, 0x1
+ lsls r0, r7, 5
+ adds r1, r0, r6
+ lsls r1, 1
+ add r1, r8
+ ldr r5, _0810119C @ =0x00001005
+ adds r2, r5, 0
+ strh r2, [r1]
+ adds r6, r3, 0
+ adds r5, r0, 0
+ adds r2, r7, 0x1
+ cmp r6, r4
+ bge _0810117E
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0, 0
+ lsls r0, r7, 6
+ add r0, r8
+ add r0, r9
+ subs r6, r4, r6
+_08101172:
+ strh r1, [r0]
+ adds r0, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08101172
+ adds r6, r4, 0
+_0810117E:
+ adds r0, r5, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r5, _081011A0 @ =0x00001007
+ adds r1, r5, 0
+ strh r1, [r0]
+ adds r7, r2, 0
+ cmp r7, r12
+ blt _0810114A
+ b _08101296
+ .align 2, 0
+_08101194: .4byte 0x01000200
+_08101198: .4byte gUnknown_843F888
+_0810119C: .4byte 0x00001005
+_081011A0: .4byte 0x00001007
+_081011A4:
+ ldr r6, _081012A8 @ =gUnknown_843F888
+ mov r9, r6
+ lsls r5, 2
+ adds r1, r5, r6
+ ldrb r3, [r1, 0x1]
+ subs r7, r3, 0x1
+ ldrb r2, [r1]
+ subs r6, r2, 0x1
+ ldrb r0, [r1, 0x2]
+ adds r4, r2, r0
+ ldrb r0, [r1, 0x3]
+ adds r3, r0
+ mov r12, r3
+ lsls r0, r7, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r3, _081012AC @ =0x00001001
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r6, r2, 0
+ mov r10, r9
+ mov r9, r5
+ cmp r6, r4
+ bge _081011F0
+ ldr r5, _081012B0 @ =0x00001002
+ adds r2, r5, 0
+ lsls r1, r6, 1
+ lsls r0, r7, 6
+ add r0, r8
+ adds r1, r0
+ subs r6, r4, r6
+_081011E4:
+ strh r2, [r1]
+ adds r1, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bne _081011E4
+ adds r6, r4, 0
+_081011F0:
+ lsls r0, r7, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r6, _081012B4 @ =0x00001003
+ adds r1, r6, 0
+ strh r1, [r0]
+ adds r7, 0x1
+ cmp r7, r12
+ bge _08101252
+ ldr r0, _081012A8 @ =gUnknown_843F888
+ add r0, r9
+ ldrb r3, [r0]
+ lsls r5, r3, 1
+_0810120C:
+ subs r6, r3, 0x1
+ lsls r0, r7, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r2, _081012B8 @ =0x00001005
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r6, r3, 0
+ adds r2, r7, 0x1
+ cmp r6, r4
+ bge _0810123E
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0, 0
+ lsls r0, r7, 6
+ add r0, r8
+ adds r0, r5, r0
+ subs r6, r4, r6
+_08101232:
+ strh r1, [r0]
+ adds r0, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08101232
+ adds r6, r4, 0
+_0810123E:
+ lsls r0, r7, 5
+ adds r0, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r6, _081012BC @ =0x00001007
+ adds r1, r6, 0
+ strh r1, [r0]
+ adds r7, r2, 0
+ cmp r7, r12
+ blt _0810120C
+_08101252:
+ mov r0, r9
+ add r0, r10
+ ldrb r3, [r0]
+ subs r6, r3, 0x1
+ lsls r2, r7, 5
+ adds r0, r2, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r5, _081012C0 @ =0x00001009
+ adds r1, r5, 0
+ strh r1, [r0]
+ adds r6, r3, 0
+ adds r5, r2, 0
+ cmp r6, r4
+ bge _0810128A
+ ldr r0, _081012C4 @ =0x0000100a
+ adds r2, r0, 0
+ lsls r1, r6, 1
+ lsls r0, r7, 6
+ add r0, r8
+ adds r0, r1, r0
+ subs r6, r4, r6
+_0810127E:
+ strh r2, [r0]
+ adds r0, 0x2
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0810127E
+ adds r6, r4, 0
+_0810128A:
+ adds r0, r5, r6
+ lsls r0, 1
+ add r0, r8
+ ldr r2, _081012C8 @ =0x0000100b
+ adds r1, r2, 0
+ strh r1, [r0]
+_08101296:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081012A8: .4byte gUnknown_843F888
+_081012AC: .4byte 0x00001001
+_081012B0: .4byte 0x00001002
+_081012B4: .4byte 0x00001003
+_081012B8: .4byte 0x00001005
+_081012BC: .4byte 0x00001007
+_081012C0: .4byte 0x00001009
+_081012C4: .4byte 0x0000100a
+_081012C8: .4byte 0x0000100b
+ thumb_func_end sub_8101100
+
+ thumb_func_start sub_81012CC
+sub_81012CC: @ 81012CC
+ push {lr}
+ movs r0, 0x2
+ bl sub_8003FA0
+ movs r0, 0x2
+ bl sub_80020BC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81012CC
+
+ thumb_func_start sub_81012E0
+sub_81012E0: @ 81012E0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_810198C
+ movs r0, 0x2
+ movs r1, 0x11
+ bl sub_800445C
+ cmp r4, 0x1
+ beq _08101304
+ cmp r4, 0x1
+ bcc _081012FE
+ cmp r4, 0x2
+ beq _0810130A
+ b _0810130E
+_081012FE:
+ bl sub_810133C
+ b _0810130E
+_08101304:
+ bl sub_81013A0
+ b _0810130E
+_0810130A:
+ bl sub_81013DC
+_0810130E:
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8003F20
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81012E0
+
+ thumb_func_start sub_810131C
+sub_810131C: @ 810131C
+ push {lr}
+ bl sub_80FFE1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101330
+ movs r0, 0
+ bl sub_81012E0
+ b _08101336
+_08101330:
+ movs r0, 0x1
+ bl sub_81012E0
+_08101336:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810131C
+
+ thumb_func_start sub_810133C
+sub_810133C: @ 810133C
+ push {r4-r7,lr}
+ sub sp, 0xC
+ movs r5, 0
+ movs r7, 0x60
+_08101344:
+ movs r4, 0
+ lsls r0, r7, 24
+ lsrs r6, r0, 24
+_0810134A:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ adds r5, 0x1
+ bl sub_80BDF44
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ beq _0810138A
+ bl sub_80BDFB0
+ adds r2, r0, 0
+ movs r0, 0x54
+ adds r3, r4, 0
+ muls r3, r0
+ adds r3, 0xA
+ lsls r3, 24
+ lsrs r3, 24
+ str r6, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8100D84
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0810134A
+ adds r7, 0x10
+ b _08101344
+_0810138A:
+ bl sub_80FFE28
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_81019B0
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810133C
+
+ thumb_func_start sub_81013A0
+sub_81013A0: @ 81013A0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ movs r5, 0
+ movs r4, 0xC0
+ lsls r4, 23
+ ldr r6, _081013D8 @ =gUnknown_843F8E0
+_081013AC:
+ ldm r6!, {r2}
+ lsrs r0, r4, 24
+ str r0, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r3, 0xA
+ bl sub_8100D84
+ movs r0, 0x80
+ lsls r0, 21
+ adds r4, r0
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _081013AC
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081013D8: .4byte gUnknown_843F8E0
+ thumb_func_end sub_81013A0
+
+ thumb_func_start sub_81013DC
+sub_81013DC: @ 81013DC
+ push {lr}
+ movs r0, 0
+ movs r1, 0x4
+ bl sub_81014AC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81013DC
+
+ thumb_func_start sub_81013EC
+sub_81013EC: @ 81013EC
+ push {r4,lr}
+ bl sub_80FFE48
+ adds r4, r0, 0
+ adds r4, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8101558
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81014AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81013EC
+
+ thumb_func_start sub_8101410
+sub_8101410: @ 8101410
+ push {r4,lr}
+ bl sub_80FFE48
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8101558
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81014AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101410
+
+ thumb_func_start sub_8101434
+sub_8101434: @ 8101434
+ push {r4,r5,lr}
+ bl sub_80FFE48
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ adds r0, r5, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80FFE54
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bls _08101456
+ adds r4, r0, 0
+_08101456:
+ cmp r5, r4
+ bcs _08101470
+ subs r4, r5
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8101558
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81014AC
+_08101470:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101434
+
+ thumb_func_start sub_8101478
+sub_8101478: @ 8101478
+ push {r4,r5,lr}
+ bl sub_80FFE48
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl sub_8101A48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcs _081014A4
+ subs r4, r0, r5
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8101558
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81014AC
+_081014A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101478
+
+ thumb_func_start sub_81014AC
+sub_81014AC: @ 81014AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r4, r0, 1
+ lsls r0, 4
+ adds r1, r0, 0
+ adds r1, 0x60
+ movs r0, 0xFF
+ ands r1, r0
+ movs r0, 0
+ cmp r0, r10
+ bge _08101538
+ ldr r2, _08101550 @ =gUnknown_203ACEC
+ mov r9, r2
+_081014D8:
+ movs r5, 0
+ movs r2, 0x10
+ adds r2, r1
+ mov r8, r2
+ adds r7, r0, 0x1
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+_081014E6:
+ lsls r0, r4, 16
+ lsrs r0, 16
+ adds r4, 0x1
+ bl sub_80BE19C
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r0, _08101554 @ =0x0000ffff
+ cmp r1, r0
+ beq _0810152A
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, 0xCB
+ movs r2, 0
+ bl sub_80BDFC0
+ mov r0, r9
+ ldr r2, [r0]
+ adds r2, 0xCB
+ movs r0, 0xD
+ adds r3, r5, 0
+ muls r3, r0
+ adds r3, 0x3
+ lsls r3, 27
+ lsrs r3, 24
+ str r6, [sp]
+ movs r0, 0xFF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0x1
+ bl sub_8100D84
+_0810152A:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _081014E6
+ mov r1, r8
+ adds r0, r7, 0
+ cmp r0, r10
+ blt _081014D8
+_08101538:
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8003F20
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101550: .4byte gUnknown_203ACEC
+_08101554: .4byte 0x0000ffff
+ thumb_func_end sub_81014AC
+
+ thumb_func_start sub_8101558
+sub_8101558: @ 8101558
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r0, 20
+ adds r3, r0, 0
+ adds r3, 0x60
+ movs r0, 0xFF
+ ands r3, r0
+ lsrs r0, r1, 20
+ adds r1, r3, r0
+ cmp r1, 0xFF
+ ble _08101584
+ ldr r0, _08101580 @ =0xffffff00
+ adds r4, r1, r0
+ movs r0, 0x80
+ lsls r0, 1
+ subs r0, r3
+ b _08101586
+ .align 2, 0
+_08101580: .4byte 0xffffff00
+_08101584:
+ movs r4, 0
+_08101586:
+ movs r5, 0xE0
+ str r5, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x11
+ movs r2, 0
+ bl sub_8004378
+ cmp r4, 0
+ beq _081015B2
+ str r5, [sp]
+ lsls r0, r4, 16
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ movs r1, 0x11
+ movs r2, 0
+ movs r3, 0
+ bl sub_8004378
+_081015B2:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101558
+
+ thumb_func_start sub_81015BC
+sub_81015BC: @ 81015BC
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0x11
+ bl sub_800445C
+ movs r0, 0x2
+ movs r1, 0x2
+ bl sub_8003F20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81015BC
+
+ thumb_func_start sub_81015D4
+sub_81015D4: @ 81015D4
+ push {lr}
+ ldr r1, _081015E8 @ =gUnknown_203ACEC
+ cmp r0, 0x6
+ bhi _0810168E
+ lsls r0, 2
+ ldr r1, _081015EC @ =_081015F0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081015E8: .4byte gUnknown_203ACEC
+_081015EC: .4byte _081015F0
+ .align 2, 0
+_081015F0:
+ .4byte _0810160C
+ .4byte _08101620
+ .4byte _08101630
+ .4byte _08101644
+ .4byte _08101658
+ .4byte _0810166C
+ .4byte _08101680
+_0810160C:
+ ldr r1, _0810161C @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r0, 0
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0xA
+ b _0810168C
+ .align 2, 0
+_0810161C: .4byte gUnknown_203ACEC
+_08101620:
+ ldr r1, _0810162C @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x9
+ b _0810164C
+ .align 2, 0
+_0810162C: .4byte gUnknown_203ACEC
+_08101630:
+ ldr r1, _08101640 @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r0, 0xB
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0x11
+ b _0810168C
+ .align 2, 0
+_08101640: .4byte gUnknown_203ACEC
+_08101644:
+ ldr r1, _08101654 @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x11
+_0810164C:
+ strb r0, [r2, 0x6]
+ ldr r0, [r1]
+ strb r3, [r0, 0x7]
+ b _0810168E
+ .align 2, 0
+_08101654: .4byte gUnknown_203ACEC
+_08101658:
+ ldr r1, _08101668 @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r0, 0x11
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0xA
+ b _0810168C
+ .align 2, 0
+_08101668: .4byte gUnknown_203ACEC
+_0810166C:
+ ldr r1, _0810167C @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r0, 0x12
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0x16
+ b _0810168C
+ .align 2, 0
+_0810167C: .4byte gUnknown_203ACEC
+_08101680:
+ ldr r1, _081016A8 @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r0, 0x16
+ strb r0, [r2, 0x6]
+ ldr r2, [r1]
+ movs r0, 0x12
+_0810168C:
+ strb r0, [r2, 0x7]
+_0810168E:
+ ldr r1, [r1]
+ ldrb r0, [r1, 0x6]
+ movs r3, 0x1
+ negs r3, r3
+ adds r2, r3, 0
+ ldrb r3, [r1, 0x7]
+ cmp r0, r3
+ bcs _081016A0
+ movs r2, 0x1
+_081016A0:
+ strb r2, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081016A8: .4byte gUnknown_203ACEC
+ thumb_func_end sub_81015D4
+
+ thumb_func_start sub_81016AC
+sub_81016AC: @ 81016AC
+ push {r4,lr}
+ ldr r4, _081016D8 @ =gUnknown_203ACEC
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ cmp r2, r0
+ beq _081016DC
+ ldrb r0, [r1, 0x8]
+ adds r0, r2, r0
+ strb r0, [r1, 0x6]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x6]
+ bl sub_81016E4
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ b _081016DE
+ .align 2, 0
+_081016D8: .4byte gUnknown_203ACEC
+_081016DC:
+ movs r0, 0
+_081016DE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81016AC
+
+ thumb_func_start sub_81016E4
+sub_81016E4: @ 81016E4
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1E
+ str r0, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_8002454
+ cmp r4, 0x16
+ bls _08101706
+ b _08101822
+_08101706:
+ lsls r0, r4, 2
+ ldr r1, _08101710 @ =_08101714
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08101710: .4byte _08101714
+ .align 2, 0
+_08101714:
+ .4byte _08101822
+ .4byte _08101770
+ .4byte _08101778
+ .4byte _08101780
+ .4byte _08101788
+ .4byte _08101790
+ .4byte _08101798
+ .4byte _08101808
+ .4byte _081017FA
+ .4byte _081017EC
+ .4byte _081017DE
+ .4byte _081017A6
+ .4byte _081017AE
+ .4byte _081017B6
+ .4byte _081017BE
+ .4byte _081017C6
+ .4byte _081017CE
+ .4byte _081017D6
+ .4byte _081017DE
+ .4byte _081017EC
+ .4byte _081017FA
+ .4byte _08101808
+ .4byte _08101816
+_08101770:
+ movs r0, 0xB
+ movs r1, 0xE
+ movs r2, 0x3
+ b _0810179E
+_08101778:
+ movs r0, 0x9
+ movs r1, 0xE
+ movs r2, 0x7
+ b _0810179E
+_08101780:
+ movs r0, 0x7
+ movs r1, 0xE
+ movs r2, 0xB
+ b _0810179E
+_08101788:
+ movs r0, 0x5
+ movs r1, 0xE
+ movs r2, 0xF
+ b _0810179E
+_08101790:
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x13
+ b _0810179E
+_08101798:
+ movs r0, 0x1
+ movs r1, 0xE
+ movs r2, 0x17
+_0810179E:
+ movs r3, 0x2
+ bl sub_8101830
+ b _08101822
+_081017A6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x18
+ b _081017E4
+_081017AE:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x19
+ b _081017E4
+_081017B6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1A
+ b _081017E4
+_081017BE:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1B
+ b _081017E4
+_081017C6:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ b _081017E4
+_081017CE:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1D
+ b _081017E4
+_081017D6:
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x1E
+ b _081017E4
+_081017DE:
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x17
+_081017E4:
+ movs r3, 0xA
+ bl sub_8101830
+ b _08101822
+_081017EC:
+ movs r0, 0x1
+ movs r1, 0xB
+ movs r2, 0x17
+ movs r3, 0x8
+ bl sub_8101830
+ b _08101822
+_081017FA:
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x17
+ movs r3, 0x6
+ bl sub_8101830
+ b _08101822
+_08101808:
+ movs r0, 0x1
+ movs r1, 0xD
+ movs r2, 0x17
+ movs r3, 0x4
+ bl sub_8101830
+ b _08101822
+_08101816:
+ movs r0, 0x1
+ movs r1, 0xE
+ movs r2, 0x17
+ movs r3, 0x2
+ bl sub_8101830
+_08101822:
+ movs r0, 0x1
+ bl sub_80020BC
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81016E4
+
+ thumb_func_start sub_8101830
+sub_8101830: @ 8101830
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r12, r0
+ adds r7, r1, 0
+ mov r9, r2
+ mov r10, r3
+ ldr r0, _08101968 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 2
+ adds r6, r0, r1
+ mov r0, r12
+ add r0, r9
+ subs r5, r0, 0x1
+ adds r0, r7, r3
+ subs r0, 0x1
+ mov r8, r0
+ mov r2, r12
+ adds r3, r7, 0
+ lsls r0, r3, 5
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r4, _0810196C @ =0x00004001
+ adds r1, r4, 0
+ strh r1, [r0]
+ adds r2, 0x1
+ cmp r2, r5
+ bge _0810188C
+ ldr r0, _08101970 @ =0x00004002
+ adds r4, r0, 0
+ lsls r1, r2, 1
+ lsls r0, r3, 6
+ adds r0, r6
+ adds r1, r0
+ subs r2, r5, r2
+_08101880:
+ strh r4, [r1]
+ adds r1, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08101880
+ adds r2, r5, 0
+_0810188C:
+ lsls r0, r3, 5
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, _08101974 @ =0x00004003
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r3, 0x1
+ mov r4, r12
+ adds r4, 0x1
+ adds r0, r7, 0x1
+ str r0, [sp, 0x4]
+ mov r1, r9
+ subs r1, 0x2
+ str r1, [sp]
+ movs r2, 0x2
+ negs r2, r2
+ add r10, r2
+ cmp r3, r8
+ bge _081018FC
+ lsls r7, r4, 1
+ mov r9, r7
+_081018B8:
+ lsls r0, r3, 5
+ add r0, r12
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, _08101978 @ =0x00004005
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r2, r4, 0
+ adds r7, r3, 0x1
+ cmp r4, r5
+ bge _081018E8
+ movs r0, 0x80
+ lsls r0, 7
+ adds r1, r0, 0
+ lsls r0, r3, 6
+ adds r0, r6
+ add r0, r9
+ subs r2, r5, r4
+_081018DC:
+ strh r1, [r0]
+ adds r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _081018DC
+ adds r2, r5, 0
+_081018E8:
+ lsls r0, r3, 5
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, _0810197C @ =0x00004007
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r3, r7, 0
+ cmp r3, r8
+ blt _081018B8
+_081018FC:
+ lsls r0, r3, 5
+ mov r7, r12
+ adds r1, r0, r7
+ lsls r1, 1
+ adds r1, r6
+ ldr r7, _08101980 @ =0x00004009
+ adds r2, r7, 0
+ strh r2, [r1]
+ adds r2, r4, 0
+ mov r12, r0
+ cmp r4, r5
+ bge _0810192E
+ ldr r0, _08101984 @ =0x0000400a
+ adds r7, r0, 0
+ lsls r1, r4, 1
+ lsls r0, r3, 6
+ adds r0, r6
+ adds r0, r1, r0
+ subs r2, r5, r4
+_08101922:
+ strh r7, [r0]
+ adds r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bne _08101922
+ adds r2, r5, 0
+_0810192E:
+ mov r1, r12
+ adds r0, r1, r2
+ lsls r0, 1
+ adds r0, r6
+ ldr r2, _08101988 @ =0x0000400b
+ adds r1, r2, 0
+ strh r1, [r0]
+ lsls r0, r4, 27
+ lsrs r0, 24
+ ldr r3, [sp, 0x4]
+ lsls r1, r3, 27
+ lsrs r1, 24
+ ldr r4, [sp]
+ lsls r2, r4, 27
+ lsrs r2, 24
+ mov r7, r10
+ lsls r3, r7, 27
+ lsrs r3, 24
+ bl sub_8101A5C
+ 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
+_08101968: .4byte gUnknown_203ACEC
+_0810196C: .4byte 0x00004001
+_08101970: .4byte 0x00004002
+_08101974: .4byte 0x00004003
+_08101978: .4byte 0x00004005
+_0810197C: .4byte 0x00004007
+_08101980: .4byte 0x00004009
+_08101984: .4byte 0x0000400a
+_08101988: .4byte 0x0000400b
+ thumb_func_end sub_8101830
+
+ thumb_func_start sub_810198C
+sub_810198C: @ 810198C
+ push {lr}
+ movs r1, 0x80
+ lsls r1, 4
+ movs r0, 0x2
+ movs r2, 0
+ bl sub_8001D08
+ ldr r0, _081019AC @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xB3
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081019AC: .4byte gUnknown_203ACEC
+ thumb_func_end sub_810198C
+
+ thumb_func_start sub_81019B0
+sub_81019B0: @ 81019B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0x2
+ bl sub_8001E44
+ adds r2, r0, 0
+ ldr r0, _081019FC @ =gUnknown_203ACEC
+ ldr r3, [r0]
+ movs r0, 0xB3
+ lsls r0, 2
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ adds r0, r4
+ strh r0, [r1]
+ lsls r4, 20
+ asrs r4, 16
+ lsls r0, r4, 8
+ adds r2, r0
+ cmp r5, 0
+ beq _08101A00
+ movs r1, 0xB4
+ lsls r1, 2
+ adds r0, r3, r1
+ str r2, [r0]
+ movs r0, 0xB5
+ lsls r0, 2
+ adds r1, r3, r0
+ lsls r0, r5, 8
+ str r0, [r1]
+ cmp r4, 0
+ bge _08101A0A
+ negs r0, r0
+ str r0, [r1]
+ b _08101A0A
+ .align 2, 0
+_081019FC: .4byte gUnknown_203ACEC
+_08101A00:
+ movs r0, 0x2
+ adds r1, r2, 0
+ movs r2, 0
+ bl sub_8001D08
+_08101A0A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81019B0
+
+ thumb_func_start sub_8101A10
+sub_8101A10: @ 8101A10
+ push {lr}
+ movs r0, 0x2
+ bl sub_8001E44
+ ldr r1, _08101A3C @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r3, 0xB4
+ lsls r3, 2
+ adds r1, r2, r3
+ ldr r1, [r1]
+ cmp r0, r1
+ beq _08101A40
+ movs r1, 0xB5
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r1, [r0]
+ movs r0, 0x2
+ movs r2, 0x1
+ bl sub_8001D08
+ movs r0, 0x1
+ b _08101A42
+ .align 2, 0
+_08101A3C: .4byte gUnknown_203ACEC
+_08101A40:
+ movs r0, 0
+_08101A42:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8101A10
+
+ thumb_func_start sub_8101A48
+sub_8101A48: @ 8101A48
+ ldr r0, _08101A58 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xB3
+ lsls r1, 2
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_08101A58: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101A48
+
+ thumb_func_start sub_8101A5C
+sub_8101A5C: @ 8101A5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, r0, 8
+ adds r0, r2
+ orrs r4, r0
+ lsls r5, r1, 8
+ adds r1, r3
+ orrs r5, r1
+ movs r0, 0x40
+ adds r1, r4, 0
+ bl sub_8000A38
+ movs r0, 0x44
+ adds r1, r5, 0
+ bl sub_8000A38
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101A5C
+
+ thumb_func_start sub_8101A90
+sub_8101A90: @ 8101A90
+ push {r4,r5,lr}
+ ldr r0, _08101AB8 @ =gUnknown_843F8F0
+ bl sub_8008720
+ ldr r0, _08101ABC @ =gUnknown_843F910
+ bl sub_8008974
+ movs r5, 0
+ ldr r4, _08101AC0 @ =gUnknown_843F938
+_08101AA2:
+ adds r0, r4, 0
+ bl sub_800EBCC
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _08101AA2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101AB8: .4byte gUnknown_843F8F0
+_08101ABC: .4byte gUnknown_843F910
+_08101AC0: .4byte gUnknown_843F938
+ thumb_func_end sub_8101A90
+
+ thumb_func_start sub_8101AC4
+sub_8101AC4: @ 8101AC4
+ push {lr}
+ bl sub_80FFCE0
+ lsls r0, 24
+ ldr r1, _08101B10 @ =gUnknown_843F888
+ lsrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 19
+ ldrb r2, [r0, 0x1]
+ adds r2, 0x1
+ lsls r2, 3
+ adds r2, 0x1
+ ldr r0, _08101B14 @ =gUnknown_843F968
+ movs r3, 0xD0
+ lsls r3, 12
+ adds r1, r3
+ asrs r1, 16
+ movs r3, 0x2
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08101B18 @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r1, 0xB6
+ lsls r1, 2
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08101B1C @ =gUnknown_202063C
+ adds r1, r0
+ str r1, [r2]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101B10: .4byte gUnknown_843F888
+_08101B14: .4byte gUnknown_843F968
+_08101B18: .4byte gUnknown_203ACEC
+_08101B1C: .4byte gUnknown_202063C
+ thumb_func_end sub_8101AC4
+
+ thumb_func_start sub_8101B20
+sub_8101B20: @ 8101B20
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08101B4E
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08101B4E
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08101B4E
+ ldr r0, _08101B54 @ =0x0000fffa
+ strh r0, [r1, 0x24]
+_08101B4E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101B54: .4byte 0x0000fffa
+ thumb_func_end sub_8101B20
+
+ thumb_func_start sub_8101B58
+sub_8101B58: @ 8101B58
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08101B84 @ =gUnknown_203ACEC
+ ldr r2, [r2]
+ movs r3, 0xB6
+ lsls r3, 2
+ adds r2, r3
+ ldr r3, [r2]
+ movs r4, 0
+ strh r0, [r3, 0x20]
+ ldr r0, [r2]
+ strh r1, [r0, 0x22]
+ ldr r0, [r2]
+ strh r4, [r0, 0x24]
+ ldr r0, [r2]
+ strh r4, [r0, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101B84: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101B58
+
+ thumb_func_start sub_8101B88
+sub_8101B88: @ 8101B88
+ ldr r0, _08101BA4 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ movs r0, 0xB6
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0
+ strh r2, [r0, 0x2E]
+ ldr r0, [r1]
+ strh r2, [r0, 0x30]
+ ldr r0, [r1]
+ strh r2, [r0, 0x24]
+ bx lr
+ .align 2, 0
+_08101BA4: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101B88
+
+ thumb_func_start sub_8101BA8
+sub_8101BA8: @ 8101BA8
+ ldr r0, _08101BBC @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xB6
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ bx lr
+ .align 2, 0
+_08101BBC: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101BA8
+
+ thumb_func_start sub_8101BC0
+sub_8101BC0: @ 8101BC0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r6, _08101C38 @ =gUnknown_843F9B8
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08101C3C @ =gUnknown_203ACEC
+ ldr r2, [r5]
+ movs r1, 0xB7
+ lsls r1, 2
+ mov r8, r1
+ add r2, r8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, _08101C40 @ =gUnknown_202063C
+ adds r1, r4
+ str r1, [r2]
+ movs r0, 0x20
+ strh r0, [r1, 0x24]
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ movs r1, 0xB8
+ lsls r1, 2
+ adds r3, r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r3]
+ ldr r0, _08101C44 @ =0x0000ffe0
+ strh r0, [r1, 0x24]
+ add r2, r8
+ ldr r1, [r2]
+ adds r1, 0x3F
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_8101C80
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C38: .4byte gUnknown_843F9B8
+_08101C3C: .4byte gUnknown_203ACEC
+_08101C40: .4byte gUnknown_202063C
+_08101C44: .4byte 0x0000ffe0
+ thumb_func_end sub_8101BC0
+
+ thumb_func_start sub_8101C48
+sub_8101C48: @ 8101C48
+ push {r4-r6,lr}
+ ldr r5, _08101C7C @ =gUnknown_203ACEC
+ ldr r0, [r5]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_8007280
+ ldr r0, [r5]
+ adds r4, r0, r4
+ movs r6, 0
+ str r6, [r4]
+ movs r4, 0xB8
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_8007280
+ ldr r0, [r5]
+ adds r0, r4
+ str r6, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101C7C: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101C48
+
+ thumb_func_start sub_8101C80
+sub_8101C80: @ 8101C80
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08101CC8 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ movs r2, 0xB7
+ lsls r2, 2
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08101CDC
+ adds r2, 0x4
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08101CDC
+ mov r4, sp
+ adds r4, 0x1
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80FFE08
+ bl sub_80FFE1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08101CCC
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ bl sub_8101CE4
+ b _08101CDC
+ .align 2, 0
+_08101CC8: .4byte gUnknown_203ACEC
+_08101CCC:
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ bl sub_8101D9C
+_08101CDC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101C80
+
+ thumb_func_start sub_8101CE4
+sub_8101CE4: @ 8101CE4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r0, 24
+ asrs r5, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r5, r0
+ beq _08101D48
+ ldr r0, _08101D44 @ =gUnknown_203ACEC
+ mov r8, r0
+ ldr r0, [r0]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_800838C
+ mov r2, r8
+ ldr r1, [r2]
+ adds r4, r1, r4
+ ldr r2, [r4]
+ movs r0, 0x54
+ muls r5, r0
+ adds r5, 0x3A
+ strh r5, [r2, 0x20]
+ ldr r0, [r4]
+ lsls r4, r7, 24
+ asrs r4, 20
+ adds r4, 0x60
+ strh r4, [r0, 0x22]
+ movs r6, 0xB8
+ lsls r6, 2
+ adds r1, r6
+ ldr r0, [r1]
+ movs r1, 0
+ bl sub_800838C
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ ldr r1, [r0]
+ strh r5, [r1, 0x20]
+ b _08101D8A
+ .align 2, 0
+_08101D44: .4byte gUnknown_203ACEC
+_08101D48:
+ ldr r6, _08101D98 @ =gUnknown_203ACEC
+ ldr r0, [r6]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_800838C
+ ldr r1, [r6]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ movs r2, 0xD8
+ mov r8, r2
+ mov r2, r8
+ strh r2, [r0, 0x20]
+ ldr r0, [r4]
+ lsls r4, r7, 24
+ asrs r4, 20
+ adds r4, 0x70
+ strh r4, [r0, 0x22]
+ movs r5, 0xB8
+ lsls r5, 2
+ adds r1, r5
+ ldr r0, [r1]
+ movs r1, 0x1
+ bl sub_800838C
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, [r0]
+ mov r2, r8
+ strh r2, [r1, 0x20]
+_08101D8A:
+ ldr r0, [r0]
+ strh r4, [r0, 0x22]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101D98: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101CE4
+
+ thumb_func_start sub_8101D9C
+sub_8101D9C: @ 8101D9C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsrs r4, r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _08101E2C
+ lsls r0, r5, 24
+ asrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, 0x60
+ mov r8, r0
+ movs r7, 0x20
+ cmp r2, 0x6
+ bne _08101DCE
+ cmp r1, 0
+ bne _08101DCE
+ movs r7, 0x9D
+ movs r6, 0x2
+ b _08101DE4
+_08101DCE:
+ ldr r3, _08101E24 @ =gUnknown_843F958
+ lsls r1, r4, 24
+ lsrs r0, r1, 24
+ movs r2, 0
+ cmp r0, 0x6
+ bhi _08101DDC
+ asrs r2, r1, 24
+_08101DDC:
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ adds r7, r0
+ movs r6, 0x3
+_08101DE4:
+ ldr r5, _08101E28 @ =gUnknown_203ACEC
+ ldr r0, [r5]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ adds r1, r6, 0
+ bl sub_800838C
+ ldr r1, [r5]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ strh r7, [r0, 0x20]
+ ldr r0, [r4]
+ mov r2, r8
+ strh r2, [r0, 0x22]
+ movs r4, 0xB8
+ lsls r4, 2
+ adds r1, r4
+ ldr r0, [r1]
+ adds r1, r6, 0
+ bl sub_800838C
+ ldr r0, [r5]
+ adds r0, r4
+ ldr r1, [r0]
+ strh r7, [r1, 0x20]
+ ldr r0, [r0]
+ mov r1, r8
+ strh r1, [r0, 0x22]
+ b _08101E72
+ .align 2, 0
+_08101E24: .4byte gUnknown_843F958
+_08101E28: .4byte gUnknown_203ACEC
+_08101E2C:
+ ldr r6, _08101E7C @ =gUnknown_203ACEC
+ ldr r0, [r6]
+ movs r4, 0xB7
+ lsls r4, 2
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_800838C
+ ldr r1, [r6]
+ adds r4, r1, r4
+ ldr r0, [r4]
+ movs r2, 0xD8
+ mov r8, r2
+ mov r2, r8
+ strh r2, [r0, 0x20]
+ ldr r0, [r4]
+ lsls r4, r5, 24
+ asrs r4, 20
+ adds r4, 0x70
+ strh r4, [r0, 0x22]
+ movs r5, 0xB8
+ lsls r5, 2
+ adds r1, r5
+ ldr r0, [r1]
+ movs r1, 0x1
+ bl sub_800838C
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, [r0]
+ mov r2, r8
+ strh r2, [r1, 0x20]
+ ldr r0, [r0]
+ strh r4, [r0, 0x22]
+_08101E72:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101E7C: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101D9C
+
+ thumb_func_start sub_8101E80
+sub_8101E80: @ 8101E80
+ push {lr}
+ ldr r0, _08101EC4 @ =gUnknown_843F968
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08101EC8 @ =gUnknown_203ACEC
+ ldr r2, [r1]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08101ECC @ =gUnknown_202063C
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, _08101ED0 @ =sub_8101ED4
+ str r0, [r1, 0x1C]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ bl sub_8101F04
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101EC4: .4byte gUnknown_843F968
+_08101EC8: .4byte gUnknown_203ACEC
+_08101ECC: .4byte gUnknown_202063C
+_08101ED0: .4byte sub_8101ED4
+ thumb_func_end sub_8101E80
+
+ thumb_func_start sub_8101ED4
+sub_8101ED4: @ 8101ED4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08101EFA
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08101EFA
+ ldr r0, _08101F00 @ =0x0000fffa
+ strh r0, [r1, 0x24]
+_08101EFA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101F00: .4byte 0x0000fffa
+ thumb_func_end sub_8101ED4
+
+ thumb_func_start sub_8101F04
+sub_8101F04: @ 8101F04
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x1
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_80FFE34
+ mov r0, sp
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ movs r0, 0xD
+ muls r0, r1
+ adds r0, 0x3
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ ldrsb r1, [r4, r1]
+ lsls r1, 25
+ movs r2, 0xB0
+ lsls r2, 20
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_8101F40
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8101F04
+
+ thumb_func_start sub_8101F40
+sub_8101F40: @ 8101F40
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _08101F7C @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r3, r0, r1
+ ldr r1, [r3]
+ cmp r1, 0
+ beq _08101F74
+ lsls r0, r2, 3
+ adds r0, 0x4
+ movs r2, 0
+ strh r0, [r1, 0x20]
+ ldr r1, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 3
+ adds r0, 0x1
+ strh r0, [r1, 0x22]
+ ldr r0, [r3]
+ strh r2, [r0, 0x24]
+ ldr r0, [r3]
+ strh r2, [r0, 0x2E]
+_08101F74:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101F7C: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101F40
+
+ thumb_func_start sub_8101F80
+sub_8101F80: @ 8101F80
+ push {r4,lr}
+ ldr r4, _08101FA8 @ =gUnknown_203ACEC
+ ldr r0, [r4]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08101FA2
+ bl sub_8007280
+ ldr r0, [r4]
+ movs r1, 0xB9
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+_08101FA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08101FA8: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8101F80
+
+ thumb_func_start sub_8101FAC
+sub_8101FAC: @ 8101FAC
+ push {r4-r6,lr}
+ ldr r0, _08102004 @ =gUnknown_843FA40
+ movs r1, 0xD0
+ movs r2, 0x80
+ movs r3, 0x6
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08102008 @ =gUnknown_203ACEC
+ ldr r2, [r5]
+ movs r1, 0xBA
+ lsls r1, 2
+ adds r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r4, _0810200C @ =gUnknown_202063C
+ adds r1, r4
+ str r1, [r2]
+ movs r6, 0
+ ldr r0, _08102010 @ =0x0000ffc0
+ strh r0, [r1, 0x24]
+ ldr r0, _08102014 @ =gUnknown_843FA20
+ movs r1, 0xD0
+ movs r2, 0x50
+ movs r3, 0x5
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r3, r2, r1
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ str r1, [r3]
+ strb r6, [r2, 0x9]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102004: .4byte gUnknown_843FA40
+_08102008: .4byte gUnknown_203ACEC
+_0810200C: .4byte gUnknown_202063C
+_08102010: .4byte 0x0000ffc0
+_08102014: .4byte gUnknown_843FA20
+ thumb_func_end sub_8101FAC
+
+ thumb_func_start sub_8102018
+sub_8102018: @ 8102018
+ push {r4,lr}
+ ldr r4, _0810202C @ =gUnknown_203ACEC
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x9]
+ cmp r3, 0
+ beq _08102030
+ cmp r3, 0x1
+ beq _08102088
+ movs r0, 0
+ b _081020A6
+ .align 2, 0
+_0810202C: .4byte gUnknown_203ACEC
+_08102030:
+ movs r0, 0xBA
+ lsls r0, 2
+ adds r2, r0
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x8
+ strh r0, [r1, 0x24]
+ ldr r2, [r2]
+ movs r1, 0x24
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ blt _081020A4
+ strh r3, [r2, 0x24]
+ bl sub_80FFE1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08102066
+ ldr r0, [r4]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_800838C
+ b _08102076
+_08102066:
+ ldr r0, [r4]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl sub_800838C
+_08102076:
+ ldr r0, _08102084 @ =gUnknown_203ACEC
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ b _081020A4
+ .align 2, 0
+_08102084: .4byte gUnknown_203ACEC
+_08102088:
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081020A4
+ movs r0, 0x2
+ strb r0, [r2, 0x9]
+ movs r0, 0
+ b _081020A6
+_081020A4:
+ movs r0, 0x1
+_081020A6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8102018
+
+ thumb_func_start sub_81020AC
+sub_81020AC: @ 81020AC
+ push {lr}
+ ldr r2, _081020CC @ =gUnknown_203ACEC
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ ldr r0, [r2]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_800838C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081020CC: .4byte gUnknown_203ACEC
+ thumb_func_end sub_81020AC
+
+ thumb_func_start sub_81020D0
+sub_81020D0: @ 81020D0
+ push {r4-r6,lr}
+ ldr r5, _081020E4 @ =gUnknown_203ACEC
+ ldr r3, [r5]
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0
+ beq _081020E8
+ cmp r0, 0x1
+ beq _08102102
+ movs r0, 0
+ b _08102154
+ .align 2, 0
+_081020E4: .4byte gUnknown_203ACEC
+_081020E8:
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r3, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08102152
+ movs r0, 0x1
+ strb r0, [r3, 0x9]
+ b _08102152
+_08102102:
+ movs r0, 0xBA
+ lsls r0, 2
+ adds r2, r3, r0
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x8
+ movs r6, 0
+ strh r0, [r1, 0x24]
+ ldr r0, [r2]
+ movs r2, 0x24
+ ldrsh r1, [r0, r2]
+ movs r0, 0x40
+ negs r0, r0
+ cmp r1, r0
+ bgt _08102152
+ movs r4, 0xBB
+ lsls r4, 2
+ adds r0, r3, r4
+ ldr r0, [r0]
+ bl sub_8007280
+ ldr r0, [r5]
+ movs r1, 0xBA
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_8007280
+ ldr r1, [r5]
+ adds r4, r1, r4
+ str r6, [r4]
+ movs r2, 0xBA
+ lsls r2, 2
+ adds r0, r1, r2
+ str r6, [r0]
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ movs r0, 0
+ b _08102154
+_08102152:
+ movs r0, 0x1
+_08102154:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81020D0
+
+ thumb_func_start sub_810215C
+sub_810215C: @ 810215C
+ push {lr}
+ ldr r0, _08102174 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl sub_800838C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102174: .4byte gUnknown_203ACEC
+ thumb_func_end sub_810215C
+
+ thumb_func_start sub_8102178
+sub_8102178: @ 8102178
+ push {lr}
+ bl sub_80FFE1C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810219C
+ ldr r0, _08102198 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_800838C
+ b _081021AE
+ .align 2, 0
+_08102198: .4byte gUnknown_203ACEC
+_0810219C:
+ ldr r0, _081021B4 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x2
+ bl sub_800838C
+_081021AE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081021B4: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8102178
+
+ thumb_func_start sub_81021B8
+sub_81021B8: @ 81021B8
+ ldr r0, _081021D0 @ =gUnknown_203ACEC
+ ldr r0, [r0]
+ movs r1, 0xBB
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ lsrs r1, 4
+ movs r0, 0x1
+ bics r0, r1
+ bx lr
+ .align 2, 0
+_081021D0: .4byte gUnknown_203ACEC
+ thumb_func_end sub_81021B8
+
+ thumb_func_start sub_81021D4
+sub_81021D4: @ 81021D4
+ push {r4,lr}
+ ldr r4, _08102240 @ =gUnknown_843FA98
+ adds r0, r4, 0
+ movs r1, 0x60
+ movs r2, 0x50
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08102202
+ ldr r0, _08102244 @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ movs r0, 0xBC
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08102248 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r2]
+_08102202:
+ adds r0, r4, 0
+ movs r1, 0x60
+ movs r2, 0x9C
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08102236
+ ldr r0, _08102244 @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ movs r0, 0xBD
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08102248 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r2]
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_08102236:
+ bl sub_81022B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102240: .4byte gUnknown_843FA98
+_08102244: .4byte gUnknown_203ACEC
+_08102248: .4byte gUnknown_202063C
+ thumb_func_end sub_81021D4
+
+ thumb_func_start sub_810224C
+sub_810224C: @ 810224C
+ push {r4-r6,lr}
+ bl sub_80FFE64
+ ldr r6, _081022AC @ =gUnknown_203ACEC
+ ldr r1, [r6]
+ movs r2, 0xBC
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _08102266
+ movs r2, 0x1
+_08102266:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ movs r4, 0x1
+ lsls r2, 2
+ ldrb r1, [r3]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ bl sub_80FFE98
+ ldr r1, [r6]
+ movs r2, 0xBD
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _08102292
+ movs r2, 0x1
+_08102292:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ adds r1, r4, 0
+ ands r1, r2
+ lsls r1, 2
+ ldrb r2, [r3]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081022AC: .4byte gUnknown_203ACEC
+ thumb_func_end sub_810224C
+
+ thumb_func_start sub_81022B0
+sub_81022B0: @ 81022B0
+ ldr r3, _081022DC @ =gUnknown_203ACEC
+ ldr r0, [r3]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ movs r1, 0xBD
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_081022DC: .4byte gUnknown_203ACEC
+ thumb_func_end sub_81022B0
+
+ thumb_func_start sub_81022E0
+sub_81022E0: @ 81022E0
+ push {lr}
+ cmp r0, 0
+ bne _081022FC
+ ldr r0, _081022F8 @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ movs r1, 0x60
+ b _0810230A
+ .align 2, 0
+_081022F8: .4byte gUnknown_203ACEC
+_081022FC:
+ ldr r0, _0810231C @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ movs r1, 0xBC
+ lsls r1, 2
+ adds r0, r2, r1
+ ldr r0, [r0]
+ movs r1, 0x78
+_0810230A:
+ strh r1, [r0, 0x20]
+ movs r3, 0xBD
+ lsls r3, 2
+ adds r0, r2, r3
+ ldr r0, [r0]
+ strh r1, [r0, 0x20]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810231C: .4byte gUnknown_203ACEC
+ thumb_func_end sub_81022E0
+
+ thumb_func_start sub_8102320
+sub_8102320: @ 8102320
+ push {r4,lr}
+ ldr r4, _08102388 @ =gUnknown_843FA80
+ adds r0, r4, 0
+ movs r1, 0xDC
+ movs r2, 0x54
+ movs r3, 0x1
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0810234E
+ ldr r0, _0810238C @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ movs r0, 0xBE
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08102390 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r2]
+_0810234E:
+ adds r0, r4, 0
+ movs r1, 0xDC
+ movs r2, 0x9C
+ movs r3, 0x1
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0810237E
+ ldr r0, _0810238C @ =gUnknown_203ACEC
+ ldr r2, [r0]
+ movs r0, 0xBF
+ lsls r0, 2
+ adds r2, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08102390 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r2]
+ movs r1, 0x1
+ bl sub_800838C
+_0810237E:
+ bl sub_81023F8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08102388: .4byte gUnknown_843FA80
+_0810238C: .4byte gUnknown_203ACEC
+_08102390: .4byte gUnknown_202063C
+ thumb_func_end sub_8102320
+
+ thumb_func_start sub_8102394
+sub_8102394: @ 8102394
+ push {r4-r6,lr}
+ bl sub_80FFE64
+ ldr r6, _081023F4 @ =gUnknown_203ACEC
+ ldr r1, [r6]
+ movs r2, 0xBE
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _081023AE
+ movs r2, 0x1
+_081023AE:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ movs r4, 0x1
+ lsls r2, 2
+ ldrb r1, [r3]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r3]
+ bl sub_80FFE98
+ ldr r1, [r6]
+ movs r2, 0xBF
+ lsls r2, 2
+ adds r1, r2
+ ldr r1, [r1]
+ movs r2, 0
+ cmp r0, 0
+ bne _081023DA
+ movs r2, 0x1
+_081023DA:
+ adds r3, r1, 0
+ adds r3, 0x3E
+ adds r1, r4, 0
+ ands r1, r2
+ lsls r1, 2
+ ldrb r2, [r3]
+ adds r0, r5, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081023F4: .4byte gUnknown_203ACEC
+ thumb_func_end sub_8102394
+
+ thumb_func_start sub_81023F8
+sub_81023F8: @ 81023F8
+ ldr r3, _08102424 @ =gUnknown_203ACEC
+ ldr r0, [r3]
+ movs r1, 0xBE
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ movs r1, 0xBF
+ lsls r1, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08102424: .4byte gUnknown_203ACEC
+ thumb_func_end sub_81023F8
+
+ thumb_func_start sub_8102428
+sub_8102428: @ 8102428
+ push {r4,lr}
+ sub sp, 0x14
+ ldr r3, _081024A8 @ =0xffffff00
+ ldr r0, [sp, 0xC]
+ ands r0, r3
+ movs r1, 0x3
+ orrs r0, r1
+ ldr r2, _081024AC @ =0xffff00ff
+ ands r0, r2
+ movs r1, 0x80
+ lsls r1, 3
+ orrs r0, r1
+ ldr r1, _081024B0 @ =0xff00ffff
+ ands r0, r1
+ movs r1, 0xB0
+ lsls r1, 12
+ orrs r0, r1
+ ldr r1, _081024B4 @ =0x00ffffff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 21
+ orrs r0, r1
+ str r0, [sp, 0xC]
+ ldr r0, [sp, 0x10]
+ ands r0, r3
+ movs r1, 0x2
+ orrs r0, r1
+ ands r0, r2
+ movs r1, 0xB0
+ lsls r1, 4
+ orrs r0, r1
+ ldr r1, _081024B8 @ =0x0000ffff
+ ands r0, r1
+ movs r1, 0xC0
+ lsls r1, 14
+ orrs r0, r1
+ str r0, [sp, 0x10]
+ add r0, sp, 0xC
+ bl sub_8003CE4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl sub_800445C
+ ldr r2, _081024BC @ =gUnknown_841EE2B
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl sub_8100D84
+ adds r0, r4, 0
+ bl sub_8003FA0
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081024A8: .4byte 0xffffff00
+_081024AC: .4byte 0xffff00ff
+_081024B0: .4byte 0xff00ffff
+_081024B4: .4byte 0x00ffffff
+_081024B8: .4byte 0x0000ffff
+_081024BC: .4byte gUnknown_841EE2B
+ thumb_func_end sub_8102428
+
+ .align 2, 0 @ Don't pad with nop.