summaryrefslogtreecommitdiff
path: root/asm/field_weather_effects.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/field_weather_effects.s
first commit
Diffstat (limited to 'asm/field_weather_effects.s')
-rw-r--r--asm/field_weather_effects.s5240
1 files changed, 5240 insertions, 0 deletions
diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s
new file mode 100644
index 000000000..fd63d855b
--- /dev/null
+++ b/asm/field_weather_effects.s
@@ -0,0 +1,5240 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_807B2DC
+sub_807B2DC: @ 807B2DC
+ push {lr}
+ ldr r0, _0807B314 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r2, _0807B318 @ =0x000006c1
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r1, _0807B31C @ =0x000006c2
+ adds r3, r0, r1
+ movs r1, 0x14
+ strb r1, [r3]
+ ldr r3, _0807B320 @ =0x000006d2
+ adds r1, r0, r3
+ strb r2, [r1]
+ subs r3, 0x6
+ adds r1, r0, r3
+ strh r2, [r1]
+ ldr r1, _0807B324 @ =0x000006de
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807B310
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807ADB0
+_0807B310:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B314: .4byte gUnknown_83C2BBC
+_0807B318: .4byte 0x000006c1
+_0807B31C: .4byte 0x000006c2
+_0807B320: .4byte 0x000006d2
+_0807B324: .4byte 0x000006de
+ thumb_func_end sub_807B2DC
+
+ thumb_func_start sub_807B328
+sub_807B328: @ 807B328
+ push {r4,lr}
+ bl sub_807B2DC
+ ldr r0, _0807B350 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B354 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807B348
+ adds r4, r1, r2
+_0807B33E:
+ bl sub_807B358
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807B33E
+_0807B348:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B350: .4byte gUnknown_83C2BBC
+_0807B354: .4byte 0x000006d2
+ thumb_func_end sub_807B328
+
+ thumb_func_start sub_807B358
+sub_807B358: @ 807B358
+ push {r4,r5,lr}
+ ldr r0, _0807B374 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807B378 @ =0x000006cc
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807B388
+ cmp r0, 0x1
+ bgt _0807B37C
+ cmp r0, 0
+ beq _0807B382
+ b _0807B3AC
+ .align 2, 0
+_0807B374: .4byte gUnknown_83C2BBC
+_0807B378: .4byte 0x000006cc
+_0807B37C:
+ cmp r0, 0x2
+ beq _0807B394
+ b _0807B3AC
+_0807B382:
+ bl sub_807B438
+ b _0807B3A6
+_0807B388:
+ movs r0, 0xC
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_807ADF0
+ b _0807B3A6
+_0807B394:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B3AC
+ ldr r0, _0807B3B4 @ =0x000006d2
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807B3A6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807B3AC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B3B4: .4byte 0x000006d2
+ thumb_func_end sub_807B358
+
+ thumb_func_start sub_807B3B8
+sub_807B3B8: @ 807B3B8
+ push {r4,lr}
+ ldr r0, _0807B3D0 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807B3D4 @ =0x000006ce
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0807B3D8
+ cmp r0, 0x1
+ beq _0807B3E4
+ movs r0, 0
+ b _0807B3FA
+ .align 2, 0
+_0807B3D0: .4byte gUnknown_83C2BBC
+_0807B3D4: .4byte 0x000006ce
+_0807B3D8:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_807ADF0
+ b _0807B3F2
+_0807B3E4:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807B3F8
+ bl sub_807B504
+_0807B3F2:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807B3F8:
+ movs r0, 0x1
+_0807B3FA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807B3B8
+
+ thumb_func_start sub_807B400
+sub_807B400: @ 807B400
+ ldr r0, _0807B418 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807B41C @ =0x000006c1
+ adds r2, r1, r0
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _0807B420 @ =0x000006c2
+ adds r1, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0807B418: .4byte gUnknown_83C2BBC
+_0807B41C: .4byte 0x000006c1
+_0807B420: .4byte 0x000006c2
+ thumb_func_end sub_807B400
+
+ thumb_func_start sub_807B424
+sub_807B424: @ 807B424
+ push {lr}
+ bl sub_807B400
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B424
+
+ thumb_func_start nullsub_48
+nullsub_48: @ 807B430
+ bx lr
+ thumb_func_end nullsub_48
+
+ thumb_func_start sub_807B434
+sub_807B434: @ 807B434
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_807B434
+
+ thumb_func_start sub_807B438
+sub_807B438: @ 807B438
+ push {r4,r5,lr}
+ ldr r0, _0807B4B0 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807B4B4 @ =0x000006de
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0807B4F4
+ ldr r0, _0807B4B8 @ =gUnknown_83C65D4
+ bl sub_80086DC
+ ldr r0, _0807B4BC @ =gUnknown_83C2D00
+ bl sub_807ABC0
+ movs r5, 0
+_0807B456:
+ ldr r0, _0807B4C0 @ =gUnknown_83C65F0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _0807B4CC
+ ldr r0, _0807B4B0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ lsls r2, r5, 2
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r1, r0
+ adds r1, r2
+ lsls r4, r3, 4
+ adds r4, r3
+ lsls r4, 2
+ ldr r0, _0807B4C4 @ =gUnknown_202063C
+ adds r4, r0
+ str r4, [r1]
+ ldr r0, _0807B4C8 @ =gUnknown_83C65C8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r2, 0x2]
+ adds r1, 0x7
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r4, 0
+ adds r2, 0x20
+ adds r3, r4, 0
+ adds r3, 0x22
+ bl sub_8063B1C
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+ b _0807B4DE
+ .align 2, 0
+_0807B4B0: .4byte gUnknown_83C2BBC
+_0807B4B4: .4byte 0x000006de
+_0807B4B8: .4byte gUnknown_83C65D4
+_0807B4BC: .4byte gUnknown_83C2D00
+_0807B4C0: .4byte gUnknown_83C65F0
+_0807B4C4: .4byte gUnknown_202063C
+_0807B4C8: .4byte gUnknown_83C65C8
+_0807B4CC:
+ ldr r0, _0807B4FC @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ movs r2, 0xFA
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807B4DE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x2
+ bls _0807B456
+ ldr r0, _0807B4FC @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807B500 @ =0x000006de
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807B4F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B4FC: .4byte gUnknown_83C2BBC
+_0807B500: .4byte 0x000006de
+ thumb_func_end sub_807B438
+
+ thumb_func_start sub_807B504
+sub_807B504: @ 807B504
+ push {r4,r5,lr}
+ ldr r0, _0807B550 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B554 @ =0x000006de
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807B548
+ movs r4, 0
+ movs r0, 0xFA
+ lsls r0, 1
+ adds r5, r1, r0
+_0807B51C:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807B52A
+ bl sub_8007280
+_0807B52A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _0807B51C
+ movs r0, 0x90
+ lsls r0, 5
+ bl sub_800874C
+ ldr r0, _0807B550 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807B554 @ =0x000006de
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807B548:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B550: .4byte gUnknown_83C2BBC
+_0807B554: .4byte 0x000006de
+ thumb_func_end sub_807B504
+
+ thumb_func_start sub_807B558
+sub_807B558: @ 807B558
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ movs r1, 0x1
+ ands r0, r1
+ strh r0, [r2, 0x2E]
+ cmp r0, 0
+ beq _0807B570
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x1
+ strh r0, [r2, 0x20]
+_0807B570:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B558
+
+ thumb_func_start sub_807B574
+sub_807B574: @ 807B574
+ ldr r0, _0807B598 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807B59C @ =0x000006cc
+ adds r3, r1, r0
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r3]
+ ldr r3, _0807B5A0 @ =0x000006d2
+ adds r0, r1, r3
+ strb r2, [r0]
+ subs r3, 0x11
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _0807B5A4 @ =0x000006c2
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_0807B598: .4byte gUnknown_83C2BBC
+_0807B59C: .4byte 0x000006cc
+_0807B5A0: .4byte 0x000006d2
+_0807B5A4: .4byte 0x000006c2
+ thumb_func_end sub_807B574
+
+ thumb_func_start sub_807B5A8
+sub_807B5A8: @ 807B5A8
+ push {r4,lr}
+ bl sub_807B574
+ ldr r0, _0807B5D0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B5D4 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807B5C8
+ adds r4, r1, r2
+_0807B5BE:
+ bl sub_807B5D8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807B5BE
+_0807B5C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B5D0: .4byte gUnknown_83C2BBC
+_0807B5D4: .4byte 0x000006d2
+ thumb_func_end sub_807B5A8
+
+ thumb_func_start sub_807B5D8
+sub_807B5D8: @ 807B5D8
+ push {lr}
+ ldr r1, _0807B5F4 @ =gUnknown_83C2BBC
+ ldr r0, [r1]
+ ldr r2, _0807B5F8 @ =0x000006cc
+ adds r0, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0807B6B4
+ lsls r0, 2
+ ldr r1, _0807B5FC @ =_0807B600
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807B5F4: .4byte gUnknown_83C2BBC
+_0807B5F8: .4byte 0x000006cc
+_0807B5FC: .4byte _0807B600
+ .align 2, 0
+_0807B600:
+ .4byte _0807B614
+ .4byte _0807B630
+ .4byte _0807B648
+ .4byte _0807B664
+ .4byte _0807B67C
+_0807B614:
+ ldr r1, [r2]
+ ldr r2, _0807B628 @ =0x000006c6
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807B6B8
+ ldr r0, _0807B62C @ =0x000006cc
+ adds r1, r0
+ b _0807B69C
+ .align 2, 0
+_0807B628: .4byte 0x000006c6
+_0807B62C: .4byte 0x000006cc
+_0807B630:
+ bl sub_807ABF4
+ ldr r0, _0807B640 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B644 @ =0x000006cc
+ adds r1, r2
+ b _0807B69C
+ .align 2, 0
+_0807B640: .4byte gUnknown_83C2BBC
+_0807B644: .4byte 0x000006cc
+_0807B648:
+ bl sub_807AC14
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807B6B8
+ ldr r0, _0807B65C @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807B660 @ =0x000006cc
+ adds r1, r0
+ b _0807B69C
+ .align 2, 0
+_0807B65C: .4byte gUnknown_83C2BBC
+_0807B660: .4byte 0x000006cc
+_0807B664:
+ bl sub_807AC60
+ ldr r0, _0807B674 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B678 @ =0x000006cc
+ adds r1, r2
+ b _0807B69C
+ .align 2, 0
+_0807B674: .4byte gUnknown_83C2BBC
+_0807B678: .4byte 0x000006cc
+_0807B67C:
+ bl sub_807AC98
+ ldr r0, _0807B6A4 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r1, _0807B6A8 @ =0x0000073c
+ adds r0, r2, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x6
+ bne _0807B6B8
+ ldr r0, _0807B6AC @ =0x000006d2
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _0807B6B0 @ =0x000006cc
+ adds r1, r2, r0
+_0807B69C:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0807B6B8
+ .align 2, 0
+_0807B6A4: .4byte gUnknown_83C2BBC
+_0807B6A8: .4byte 0x0000073c
+_0807B6AC: .4byte 0x000006d2
+_0807B6B0: .4byte 0x000006cc
+_0807B6B4:
+ bl sub_807AC98
+_0807B6B8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B5D8
+
+ thumb_func_start sub_807B6BC
+sub_807B6BC: @ 807B6BC
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_807B6BC
+
+ thumb_func_start sub_807B6C0
+sub_807B6C0: @ 807B6C0
+ push {lr}
+ ldr r0, _0807B6D0 @ =sub_807B6D4
+ movs r1, 0x50
+ bl sub_807741C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B6D0: .4byte sub_807B6D4
+ thumb_func_end sub_807B6C0
+
+ thumb_func_start sub_807B6D4
+sub_807B6D4: @ 807B6D4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0807B6F8 @ =gUnknown_3005090
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _0807B7C2
+ lsls r0, 2
+ ldr r1, _0807B6FC @ =_0807B700
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807B6F8: .4byte gUnknown_3005090
+_0807B6FC: .4byte _0807B700
+ .align 2, 0
+_0807B700:
+ .4byte _0807B714
+ .4byte _0807B740
+ .4byte _0807B768
+ .4byte _0807B798
+ .4byte _0807B7B8
+_0807B714:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0x48
+ bl sub_8000AC4
+ strh r0, [r4, 0xE]
+ ldr r1, _0807B764 @ =0x00003f3f
+ movs r0, 0x48
+ bl sub_8000A38
+ movs r0, 0x50
+ movs r1, 0x9E
+ bl sub_8000A38
+ movs r0, 0x54
+ movs r1, 0
+ bl sub_8000A38
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0807B740:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x3
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0807B752
+ movs r0, 0x10
+ strh r0, [r4, 0xA]
+_0807B752:
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x54
+ bl sub_8000A38
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ ble _0807B7C2
+ b _0807B7B0
+ .align 2, 0
+_0807B764: .4byte 0x00003f3f
+_0807B768:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _0807B7C2
+ strh r1, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0807B78E
+ strh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0807B78E:
+ ldrh r1, [r4, 0xA]
+ movs r0, 0x54
+ bl sub_8000A38
+ b _0807B7C2
+_0807B798:
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x54
+ movs r1, 0
+ bl sub_8000A38
+ ldrh r1, [r4, 0xE]
+ movs r0, 0x48
+ bl sub_8000A38
+_0807B7B0:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0807B7C2
+_0807B7B8:
+ bl sub_8069B34
+ adds r0, r5, 0
+ bl sub_8077508
+_0807B7C2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807B6D4
+
+ thumb_func_start sub_807B7C8
+sub_807B7C8: @ 807B7C8
+ push {r4,lr}
+ ldr r0, _0807B818 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B81C @ =0x000006cc
+ adds r0, r1, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r4, _0807B820 @ =0x000006d2
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r4, 0x4
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldr r0, _0807B824 @ =0x000006db
+ adds r2, r1, r0
+ movs r0, 0x8
+ strb r0, [r2]
+ ldr r2, _0807B828 @ =0x000006dc
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r4, 0x3
+ adds r2, r1, r4
+ movs r0, 0xA
+ strb r0, [r2]
+ ldr r0, _0807B82C @ =0x000006c1
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r2, _0807B830 @ =0x000006c2
+ adds r1, r2
+ movs r0, 0x14
+ strb r0, [r1]
+ movs r0, 0x4E
+ bl sub_807AFA8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B818: .4byte gUnknown_83C2BBC
+_0807B81C: .4byte 0x000006cc
+_0807B820: .4byte 0x000006d2
+_0807B824: .4byte 0x000006db
+_0807B828: .4byte 0x000006dc
+_0807B82C: .4byte 0x000006c1
+_0807B830: .4byte 0x000006c2
+ thumb_func_end sub_807B7C8
+
+ thumb_func_start sub_807B834
+sub_807B834: @ 807B834
+ push {r4,lr}
+ bl sub_807B7C8
+ ldr r0, _0807B85C @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807B860 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807B854
+ adds r4, r1, r2
+_0807B84A:
+ bl sub_807B864
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807B84A
+_0807B854:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B85C: .4byte gUnknown_83C2BBC
+_0807B860: .4byte 0x000006d2
+ thumb_func_end sub_807B834
+
+ thumb_func_start sub_807B864
+sub_807B864: @ 807B864
+ push {r4,r5,lr}
+ ldr r0, _0807B880 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807B884 @ =0x000006cc
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807B894
+ cmp r0, 0x1
+ bgt _0807B888
+ cmp r0, 0
+ beq _0807B88E
+ b _0807B8B8
+ .align 2, 0
+_0807B880: .4byte gUnknown_83C2BBC
+_0807B884: .4byte 0x000006cc
+_0807B888:
+ cmp r0, 0x2
+ beq _0807B8A0
+ b _0807B8B8
+_0807B88E:
+ bl sub_807BC08
+ b _0807B8B2
+_0807B894:
+ bl sub_807BC18
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807B8B8
+ b _0807B8B2
+_0807B8A0:
+ bl sub_807BD4C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807B8B8
+ ldr r0, _0807B8C0 @ =0x000006d2
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807B8B2:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807B8B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807B8C0: .4byte 0x000006d2
+ thumb_func_end sub_807B864
+
+ thumb_func_start sub_807B8C4
+sub_807B8C4: @ 807B8C4
+ push {r4,r5,lr}
+ ldr r0, _0807B8E0 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r1, _0807B8E4 @ =0x000006ce
+ adds r3, r2, r1
+ ldrh r1, [r3]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _0807B8E8
+ cmp r1, 0x1
+ beq _0807B91C
+ movs r0, 0
+ b _0807B94A
+ .align 2, 0
+_0807B8E0: .4byte gUnknown_83C2BBC
+_0807B8E4: .4byte 0x000006ce
+_0807B8E8:
+ ldr r5, _0807B908 @ =0x000006d1
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0807B8FA
+ cmp r0, 0x5
+ beq _0807B8FA
+ cmp r0, 0xD
+ bne _0807B910
+_0807B8FA:
+ ldr r0, [r4]
+ ldr r1, _0807B90C @ =0x000006ce
+ adds r0, r1
+ movs r1, 0xFF
+ strh r1, [r0]
+ movs r0, 0
+ b _0807B94A
+ .align 2, 0
+_0807B908: .4byte 0x000006d1
+_0807B90C: .4byte 0x000006ce
+_0807B910:
+ ldr r4, _0807B93C @ =0x000006d9
+ adds r0, r2, r4
+ strb r1, [r0]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_0807B91C:
+ bl sub_807BD4C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807B948
+ bl sub_807BDD8
+ ldr r0, _0807B940 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r5, _0807B944 @ =0x000006ce
+ adds r1, r5
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _0807B94A
+ .align 2, 0
+_0807B93C: .4byte 0x000006d9
+_0807B940: .4byte gUnknown_83C2BBC
+_0807B944: .4byte 0x000006ce
+_0807B948:
+ movs r0, 0x1
+_0807B94A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807B8C4
+
+ thumb_func_start sub_807B950
+sub_807B950: @ 807B950
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _0807B964
+ ldr r0, _0807BA08 @ =0x00000169
+ strh r0, [r7, 0x30]
+_0807B964:
+ movs r2, 0x30
+ ldrsh r1, [r7, r2]
+ ldr r0, _0807BA0C @ =0x41c64e6d
+ muls r0, r1
+ ldr r3, _0807BA10 @ =0x00003039
+ adds r0, r3
+ lsls r0, 1
+ lsrs r0, 17
+ movs r1, 0x96
+ lsls r1, 2
+ bl __umodsi3
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r7, 0x30]
+ ldr r1, _0807BA14 @ =gUnknown_83C66C4
+ ldr r0, _0807BA18 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r2, _0807BA1C @ =0x000006dc
+ adds r5, r2
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r6, [r0]
+ movs r3, 0x30
+ ldrsh r0, [r7, r3]
+ movs r1, 0x1E
+ bl __modsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r0, r4, 3
+ strh r0, [r7, 0x32]
+ movs r1, 0x30
+ ldrsh r0, [r7, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ lsls r4, 7
+ strh r4, [r7, 0x32]
+ asrs r0, 9
+ strh r0, [r7, 0x34]
+ ldr r2, _0807BA20 @ =gUnknown_83C66BC
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ muls r1, r6
+ subs r4, r1
+ strh r4, [r7, 0x32]
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r2, 0x2
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ muls r1, r6
+ subs r0, r1
+ strh r0, [r7, 0x34]
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_800838C
+ mov r3, r8
+ strh r3, [r7, 0x36]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ strh r6, [r7, 0x2E]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BA08: .4byte 0x00000169
+_0807BA0C: .4byte 0x41c64e6d
+_0807BA10: .4byte 0x00003039
+_0807BA14: .4byte gUnknown_83C66C4
+_0807BA18: .4byte gUnknown_83C2BBC
+_0807BA1C: .4byte 0x000006dc
+_0807BA20: .4byte gUnknown_83C66BC
+ thumb_func_end sub_807B950
+
+ thumb_func_start sub_807BA24
+sub_807BA24: @ 807BA24
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x36
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0807BB00
+ ldr r3, _0807BA98 @ =gUnknown_83C66BC
+ ldr r4, _0807BA9C @ =gUnknown_83C2BBC
+ ldr r2, [r4]
+ ldr r0, _0807BAA0 @ =0x000006dc
+ adds r2, r0
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ ldrh r1, [r0]
+ ldrh r0, [r5, 0x32]
+ adds r1, r0
+ strh r1, [r5, 0x32]
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r3, 0x2
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r2, [r5, 0x34]
+ adds r0, r2
+ strh r0, [r5, 0x34]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x20]
+ lsls r0, 16
+ asrs r2, r0, 20
+ strh r2, [r5, 0x22]
+ movs r3, 0x38
+ ldrsh r0, [r5, r3]
+ adds r3, r4, 0
+ cmp r0, 0
+ beq _0807BAA4
+ adds r0, r1, 0
+ adds r0, 0x8
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bhi _0807BAA4
+ adds r1, r2, 0
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ blt _0807BAA4
+ cmp r1, 0xB0
+ bgt _0807BAA4
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ b _0807BAAE
+ .align 2, 0
+_0807BA98: .4byte gUnknown_83C66BC
+_0807BA9C: .4byte gUnknown_83C2BBC
+_0807BAA0: .4byte 0x000006dc
+_0807BAA4:
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+_0807BAAE:
+ strb r1, [r0]
+ adds r4, r0, 0
+ ldrh r0, [r5, 0x2E]
+ subs r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807BB20
+ ldr r0, [r3]
+ ldr r1, _0807BAF4 @ =0x000006dc
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_800838C
+ movs r0, 0x1
+ strh r0, [r5, 0x36]
+ ldr r1, _0807BAF8 @ =gUnknown_2021BC8
+ ldrh r0, [r5, 0x20]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r5, 0x20]
+ ldr r1, _0807BAFC @ =gUnknown_2021BCA
+ ldrh r0, [r5, 0x22]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r5, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+ b _0807BB20
+ .align 2, 0
+_0807BAF4: .4byte 0x000006dc
+_0807BAF8: .4byte gUnknown_2021BC8
+_0807BAFC: .4byte gUnknown_2021BCA
+_0807BB00:
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0807BB20
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r5, 0
+ bl sub_807B950
+_0807BB20:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807BA24
+
+ thumb_func_start sub_807BB28
+sub_807BB28: @ 807BB28
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0807BB48
+ adds r0, r4, 0
+ bl sub_807B950
+ ldr r0, _0807BB44 @ =sub_807BA24
+ str r0, [r4, 0x1C]
+ b _0807BB4C
+ .align 2, 0
+_0807BB44: .4byte sub_807BA24
+_0807BB48:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x2E]
+_0807BB4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807BB28
+
+ thumb_func_start sub_807BB54
+sub_807BB54: @ 807BB54
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ lsls r5, r1, 16
+ lsrs r5, 16
+ ldr r2, _0807BBD8 @ =gUnknown_83C66C4
+ ldr r0, _0807BBDC @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807BBE0 @ =0x000006dc
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ mov r8, r1
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r4, [r0]
+ add r4, r8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0807BBE4 @ =0x0000ffff
+ cmp r6, r0
+ beq _0807BBB2
+ adds r5, r0, 0
+_0807BBA2:
+ adds r0, r7, 0
+ bl sub_807B950
+ subs r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, r5
+ bne _0807BBA2
+_0807BBB2:
+ cmp r4, r8
+ bcs _0807BBE8
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0807BBE4 @ =0x0000ffff
+ cmp r4, r0
+ beq _0807BBD4
+ adds r5, r0, 0
+_0807BBC4:
+ adds r0, r7, 0
+ bl sub_807BA24
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bne _0807BBC4
+_0807BBD4:
+ movs r0, 0
+ b _0807BBFC
+ .align 2, 0
+_0807BBD8: .4byte gUnknown_83C66C4
+_0807BBDC: .4byte gUnknown_83C2BBC
+_0807BBE0: .4byte 0x000006dc
+_0807BBE4: .4byte 0x0000ffff
+_0807BBE8:
+ mov r1, r8
+ subs r0, r4, r1
+ strh r0, [r7, 0x2E]
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+_0807BBFC:
+ strh r0, [r7, 0x3A]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807BB54
+
+ thumb_func_start sub_807BC08
+sub_807BC08: @ 807BC08
+ push {lr}
+ ldr r0, _0807BC14 @ =gUnknown_83C66CC
+ bl sub_80086DC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BC14: .4byte gUnknown_83C66CC
+ thumb_func_end sub_807BC08
+
+ thumb_func_start sub_807BC18
+sub_807BC18: @ 807BC18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0807BCC4 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r0, _0807BCC8 @ =0x000006da
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ cmp r0, 0x18
+ bne _0807BC32
+ b _0807BD38
+_0807BC32:
+ ldrb r7, [r2]
+ ldr r0, _0807BCCC @ =gUnknown_83C66A4
+ ldr r2, _0807BCD0 @ =gUnknown_83C6608
+ lsls r6, r7, 2
+ adds r2, r6, r2
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ movs r3, 0x4E
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _0807BCE0
+ ldr r3, _0807BCD4 @ =gUnknown_202063C
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strh r0, [r1, 0x38]
+ lsls r2, r7, 3
+ adds r0, r2, r7
+ lsls r0, 4
+ adds r0, r7
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0807BCD8 @ =0x00000257
+ mov r10, r6
+ mov r9, r3
+ mov r12, r4
+ mov r8, r2
+ cmp r0, r1
+ ble _0807BC96
+ adds r2, r1, 0
+_0807BC7E:
+ adds r0, r4, r5
+ lsls r0, 2
+ ldr r6, _0807BCD4 @ =gUnknown_202063C
+ adds r0, r6
+ ldr r3, _0807BCDC @ =0xfffffda8
+ ldrh r6, [r0, 0x30]
+ adds r1, r3, r6
+ strh r1, [r0, 0x30]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, r2
+ bgt _0807BC7E
+_0807BC96:
+ mov r0, r12
+ adds r4, r0, r5
+ lsls r4, 2
+ add r4, r9
+ adds r0, r4, 0
+ bl sub_807B950
+ mov r3, r8
+ adds r1, r3, r7
+ adds r0, r4, 0
+ bl sub_807BB54
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0807BCC4 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ add r0, r10
+ str r4, [r0]
+ b _0807BCE6
+ .align 2, 0
+_0807BCC4: .4byte gUnknown_83C2BBC
+_0807BCC8: .4byte 0x000006da
+_0807BCCC: .4byte gUnknown_83C66A4
+_0807BCD0: .4byte gUnknown_83C6608
+_0807BCD4: .4byte gUnknown_202063C
+_0807BCD8: .4byte 0x00000257
+_0807BCDC: .4byte 0xfffffda8
+_0807BCE0:
+ adds r1, r4, r6
+ movs r0, 0
+ str r0, [r1]
+_0807BCE6:
+ ldr r0, _0807BD1C @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r6, _0807BD20 @ =0x000006da
+ adds r1, r2, r6
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x18
+ bne _0807BD3C
+ movs r3, 0
+ adds r1, r2, 0
+ ldr r5, _0807BD24 @ =sub_807BA24
+ ldr r4, _0807BD28 @ =sub_807BB28
+_0807BD04:
+ lsls r0, r3, 2
+ adds r0, r1, r0
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _0807BD2E
+ movs r6, 0x3A
+ ldrsh r0, [r2, r6]
+ cmp r0, 0
+ bne _0807BD2C
+ str r5, [r2, 0x1C]
+ b _0807BD2E
+ .align 2, 0
+_0807BD1C: .4byte gUnknown_83C2BBC
+_0807BD20: .4byte 0x000006da
+_0807BD24: .4byte sub_807BA24
+_0807BD28: .4byte sub_807BB28
+_0807BD2C:
+ str r4, [r2, 0x1C]
+_0807BD2E:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x17
+ bls _0807BD04
+_0807BD38:
+ movs r0, 0
+ b _0807BD3E
+_0807BD3C:
+ movs r0, 0x1
+_0807BD3E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807BC18
+
+ thumb_func_start sub_807BD4C
+sub_807BD4C: @ 807BD4C
+ push {r4-r7,lr}
+ ldr r0, _0807BD68 @ =gUnknown_83C2BBC
+ ldr r3, [r0]
+ movs r0, 0xDB
+ lsls r0, 3
+ adds r4, r3, r0
+ ldr r1, _0807BD6C @ =0x000006d9
+ adds r5, r3, r1
+ ldrb r0, [r4]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _0807BD70
+ movs r0, 0
+ b _0807BDD2
+ .align 2, 0
+_0807BD68: .4byte gUnknown_83C2BBC
+_0807BD6C: .4byte 0x000006d9
+_0807BD70:
+ ldr r0, _0807BDA8 @ =0x000006d6
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r2]
+ ldr r7, _0807BDAC @ =0x000006db
+ adds r1, r3, r7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _0807BDD0
+ strh r6, [r2]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ ldrb r5, [r5]
+ cmp r1, r5
+ bcs _0807BDB0
+ adds r0, 0x1
+ strb r0, [r4]
+ lsls r0, r1, 2
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x1
+ strh r0, [r1, 0x38]
+ b _0807BDD0
+ .align 2, 0
+_0807BDA8: .4byte 0x000006d6
+_0807BDAC: .4byte 0x000006db
+_0807BDB0:
+ subs r0, 0x1
+ strb r0, [r4]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r0, [r0]
+ strh r6, [r0, 0x38]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+_0807BDD0:
+ movs r0, 0x1
+_0807BDD2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807BD4C
+
+ thumb_func_start sub_807BDD8
+sub_807BDD8: @ 807BDD8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _0807BE20 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r3, _0807BE24 @ =0x000006da
+ adds r1, r2, r3
+ adds r7, r0, 0
+ ldrb r1, [r1]
+ cmp r4, r1
+ bcs _0807BE0A
+ adds r5, r2, 0
+ adds r6, r5, r3
+_0807BDF0:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807BDFE
+ bl sub_8007280
+_0807BDFE:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r6]
+ cmp r4, r0
+ bcc _0807BDF0
+_0807BE0A:
+ ldr r0, [r7]
+ ldr r1, _0807BE24 @ =0x000006da
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0807BE28 @ =0x00001206
+ bl sub_800874C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BE20: .4byte gUnknown_83C2BBC
+_0807BE24: .4byte 0x000006da
+_0807BE28: .4byte 0x00001206
+ thumb_func_end sub_807BDD8
+
+ thumb_func_start sub_807BE2C
+sub_807BE2C: @ 807BE2C
+ push {r4,lr}
+ ldr r0, _0807BE68 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807BE6C @ =0x000006cc
+ adds r0, r1, r2
+ movs r2, 0
+ movs r3, 0
+ strh r3, [r0]
+ ldr r4, _0807BE70 @ =0x000006d2
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r0, _0807BE74 @ =0x000006c1
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ subs r4, 0x10
+ adds r2, r1, r4
+ movs r0, 0x14
+ strb r0, [r2]
+ ldr r0, _0807BE78 @ =0x000006e5
+ adds r2, r1, r0
+ movs r0, 0x10
+ strb r0, [r2]
+ movs r2, 0xDC
+ lsls r2, 3
+ adds r1, r2
+ strh r3, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BE68: .4byte gUnknown_83C2BBC
+_0807BE6C: .4byte 0x000006cc
+_0807BE70: .4byte 0x000006d2
+_0807BE74: .4byte 0x000006c1
+_0807BE78: .4byte 0x000006e5
+ thumb_func_end sub_807BE2C
+
+ thumb_func_start sub_807BE7C
+sub_807BE7C: @ 807BE7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl sub_807BE2C
+ ldr r2, _0807BEDC @ =gUnknown_83C2BBC
+ ldr r1, [r2]
+ ldr r3, _0807BEE0 @ =0x000006d2
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807BED2
+ mov r8, r2
+ adds r7, r1, r3
+_0807BE98:
+ bl sub_807BEE8
+ movs r4, 0
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r3, _0807BEE4 @ =0x000006e4
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcs _0807BECC
+ ldr r0, _0807BEDC @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ adds r6, r5, r3
+_0807BEB2:
+ lsls r1, r4, 2
+ adds r0, r5, 0
+ adds r0, 0x60
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_807C1AC
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r6]
+ cmp r4, r0
+ bcc _0807BEB2
+_0807BECC:
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _0807BE98
+_0807BED2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BEDC: .4byte gUnknown_83C2BBC
+_0807BEE0: .4byte 0x000006d2
+_0807BEE4: .4byte 0x000006e4
+ thumb_func_end sub_807BE7C
+
+ thumb_func_start sub_807BEE8
+sub_807BEE8: @ 807BEE8
+ push {r4,r5,lr}
+ ldr r0, _0807BF18 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807BF1C @ =0x000006cc
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0807BF10
+ bl sub_807BF88
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807BF10
+ ldr r0, _0807BF20 @ =0x000006d2
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807BF10:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807BF18: .4byte gUnknown_83C2BBC
+_0807BF1C: .4byte 0x000006cc
+_0807BF20: .4byte 0x000006d2
+ thumb_func_end sub_807BEE8
+
+ thumb_func_start sub_807BF24
+sub_807BF24: @ 807BF24
+ push {r4,lr}
+ ldr r0, _0807BF3C @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r0, _0807BF40 @ =0x000006ce
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ cmp r1, 0
+ beq _0807BF44
+ cmp r1, 0x1
+ beq _0807BF56
+ movs r0, 0
+ b _0807BF82
+ .align 2, 0
+_0807BF3C: .4byte gUnknown_83C2BBC
+_0807BF40: .4byte 0x000006ce
+_0807BF44:
+ ldr r4, _0807BF74 @ =0x000006e5
+ adds r0, r2, r4
+ strb r1, [r0]
+ subs r4, 0x5
+ adds r0, r2, r4
+ strh r1, [r0]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_0807BF56:
+ bl sub_807BF88
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807BF80
+ ldr r0, _0807BF78 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807BF7C @ =0x000006ce
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ b _0807BF82
+ .align 2, 0
+_0807BF74: .4byte 0x000006e5
+_0807BF78: .4byte gUnknown_83C2BBC
+_0807BF7C: .4byte 0x000006ce
+_0807BF80:
+ movs r0, 0x1
+_0807BF82:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807BF24
+
+ thumb_func_start sub_807BF88
+sub_807BF88: @ 807BF88
+ push {r4,lr}
+ ldr r0, _0807BFA4 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807BFA8 @ =0x000006e4
+ adds r3, r1, r0
+ ldr r4, _0807BFAC @ =0x000006e5
+ adds r2, r1, r4
+ ldrb r0, [r3]
+ ldrb r4, [r2]
+ cmp r0, r4
+ bne _0807BFB0
+ movs r0, 0
+ b _0807BFF2
+ .align 2, 0
+_0807BFA4: .4byte gUnknown_83C2BBC
+_0807BFA8: .4byte 0x000006e4
+_0807BFAC: .4byte 0x000006e5
+_0807BFB0:
+ movs r0, 0xDC
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x24
+ bls _0807BFDA
+ movs r0, 0
+ strh r0, [r1]
+ ldrb r0, [r3]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcs _0807BFD6
+ bl sub_807C004
+ b _0807BFDA
+_0807BFD6:
+ bl sub_807C070
+_0807BFDA:
+ ldr r0, _0807BFF8 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r2, _0807BFFC @ =0x000006e4
+ adds r1, r0, r2
+ ldr r4, _0807C000 @ =0x000006e5
+ adds r0, r4
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+_0807BFF2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807BFF8: .4byte gUnknown_83C2BBC
+_0807BFFC: .4byte 0x000006e4
+_0807C000: .4byte 0x000006e5
+ thumb_func_end sub_807BF88
+
+ thumb_func_start sub_807C004
+sub_807C004: @ 807C004
+ push {r4-r6,lr}
+ ldr r0, _0807C058 @ =gUnknown_83C6704
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4E
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0807C068
+ ldr r0, _0807C05C @ =gUnknown_202063C
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, _0807C060 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807C064 @ =0x000006e4
+ adds r6, r5, r0
+ ldrb r0, [r6]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ bl sub_807C0A4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ adds r1, r0, 0x1
+ strb r1, [r6]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r5, 0x60
+ adds r5, r0
+ str r4, [r5]
+ movs r0, 0x1
+ b _0807C06A
+ .align 2, 0
+_0807C058: .4byte gUnknown_83C6704
+_0807C05C: .4byte gUnknown_202063C
+_0807C060: .4byte gUnknown_83C2BBC
+_0807C064: .4byte 0x000006e4
+_0807C068:
+ movs r0, 0
+_0807C06A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807C004
+
+ thumb_func_start sub_807C070
+sub_807C070: @ 807C070
+ push {lr}
+ ldr r0, _0807C084 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807C088 @ =0x000006e4
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _0807C08C
+ movs r0, 0
+ b _0807C0A0
+ .align 2, 0
+_0807C084: .4byte gUnknown_83C2BBC
+_0807C088: .4byte 0x000006e4
+_0807C08C:
+ subs r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r1, 0x60
+ adds r1, r0
+ ldr r0, [r1]
+ bl sub_8007280
+ movs r0, 0x1
+_0807C0A0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807C070
+
+ thumb_func_start sub_807C0A4
+sub_807C0A4: @ 807C0A4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ bl sub_8044EC8
+ movs r1, 0x36
+ ldrsh r2, [r5, r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ movs r2, 0x7
+ ands r1, r2
+ lsls r4, r1, 4
+ subs r4, r1
+ lsls r4, 1
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1E
+ bl __umodsi3
+ adds r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r1, _0807C148 @ =gUnknown_2021BCA
+ adds r0, r5, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r2, 0x3
+ negs r2, r2
+ adds r1, r2, 0
+ subs r1, r0
+ movs r7, 0
+ strh r1, [r5, 0x22]
+ ldr r1, _0807C14C @ =gUnknown_2021BC8
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ subs r4, r0
+ strh r4, [r5, 0x20]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ lsls r0, 7
+ strh r0, [r5, 0x2E]
+ strh r7, [r5, 0x24]
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r0, 0
+ movs r4, 0x3
+ ands r4, r6
+ lsls r0, r4, 2
+ adds r0, r4
+ adds r0, 0x40
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x3C]
+ movs r1, 0x1
+ bics r1, r6
+ adds r0, r5, 0
+ bl sub_800838C
+ strh r7, [r5, 0x34]
+ movs r0, 0x1
+ cmp r4, 0
+ bne _0807C134
+ movs r0, 0x2
+_0807C134:
+ strh r0, [r5, 0x32]
+ movs r0, 0x1F
+ ands r0, r6
+ adds r0, 0xD2
+ strh r0, [r5, 0x3A]
+ strh r7, [r5, 0x38]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C148: .4byte gUnknown_2021BCA
+_0807C14C: .4byte gUnknown_2021BC8
+ thumb_func_end sub_807C0A4
+
+ thumb_func_start sub_807C150
+sub_807C150: @ 807C150
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807C19C @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807C1A0 @ =0x000006e2
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x12
+ bls _0807C196
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0807C1A4 @ =sub_807C1AC
+ str r0, [r3, 0x1C]
+ ldr r1, _0807C1A8 @ =gUnknown_2021BCA
+ adds r0, r3, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0xFA
+ subs r1, r0
+ movs r2, 0
+ strh r1, [r3, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r3, r1]
+ lsls r0, 7
+ strh r0, [r3, 0x2E]
+ strh r2, [r4]
+_0807C196:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C19C: .4byte gUnknown_83C2BBC
+_0807C1A0: .4byte 0x000006e2
+_0807C1A4: .4byte sub_807C1AC
+_0807C1A8: .4byte gUnknown_2021BCA
+ thumb_func_end sub_807C150
+
+ thumb_func_start sub_807C1AC
+sub_807C1AC: @ 807C1AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 23
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x32]
+ ldrh r2, [r4, 0x34]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ ldr r1, _0807C224 @ =gUnknown_825E074
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0807C1DE
+ adds r0, 0x3F
+_0807C1DE:
+ asrs r0, 6
+ strh r0, [r4, 0x24]
+ adds r0, r4, 0
+ adds r0, 0x28
+ movs r5, 0
+ ldrsb r5, [r0, r5]
+ ldrh r0, [r4, 0x20]
+ adds r0, r5
+ ldr r1, _0807C228 @ =gUnknown_2021BC8
+ ldrh r1, [r1]
+ adds r3, r1, r0
+ ldr r2, _0807C22C @ =0x000001ff
+ adds r0, r2, 0
+ ands r3, r0
+ adds r2, r3, 0
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0807C210
+ ldr r3, _0807C230 @ =0xffffff00
+ adds r0, r3, 0
+ orrs r2, r0
+ lsls r0, r2, 16
+ lsrs r3, r0, 16
+_0807C210:
+ lsls r0, r3, 16
+ asrs r0, 16
+ movs r2, 0x3
+ negs r2, r2
+ cmp r0, r2
+ bge _0807C234
+ adds r1, r5
+ movs r0, 0xF2
+ subs r0, r1
+ b _0807C23C
+ .align 2, 0
+_0807C224: .4byte gUnknown_825E074
+_0807C228: .4byte gUnknown_2021BC8
+_0807C22C: .4byte 0x000001ff
+_0807C230: .4byte 0xffffff00
+_0807C234:
+ cmp r0, 0xF2
+ ble _0807C23E
+ adds r0, r1, r5
+ subs r0, r2, r0
+_0807C23C:
+ strh r0, [r4, 0x20]
+_0807C23E:
+ adds r0, r4, 0
+ adds r0, 0x29
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r0, [r4, 0x22]
+ adds r0, r3
+ ldr r1, _0807C27C @ =gUnknown_2021BCA
+ ldrh r1, [r1]
+ adds r2, r1, r0
+ movs r0, 0xFF
+ ands r2, r0
+ adds r0, r2, 0
+ subs r0, 0xA4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bhi _0807C280
+ adds r1, r3
+ movs r0, 0xFA
+ subs r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ lsls r0, 7
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x38]
+ movs r0, 0xDC
+ strh r0, [r4, 0x3A]
+ b _0807C2AC
+ .align 2, 0
+_0807C27C: .4byte gUnknown_2021BCA
+_0807C280:
+ adds r0, r2, 0
+ subs r0, 0xF3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x6
+ bhi _0807C2AC
+ movs r1, 0
+ movs r0, 0xA3
+ strh r0, [r4, 0x22]
+ lsls r0, 7
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x38]
+ movs r0, 0xDC
+ strh r0, [r4, 0x3A]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0807C2E0 @ =sub_807C150
+ str r0, [r4, 0x1C]
+_0807C2AC:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x3A
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0807C2D8
+ adds r0, r4, 0
+ bl sub_807C0A4
+ movs r0, 0xFA
+ strh r0, [r4, 0x22]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0807C2E0 @ =sub_807C150
+ str r0, [r4, 0x1C]
+_0807C2D8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C2E0: .4byte sub_807C150
+ thumb_func_end sub_807C1AC
+
+ thumb_func_start sub_807C2E4
+sub_807C2E4: @ 807C2E4
+ push {r4,r5,lr}
+ ldr r0, _0807C33C @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C340 @ =0x000006cc
+ adds r0, r1, r2
+ movs r3, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r5, _0807C344 @ =0x000006d2
+ adds r4, r1, r5
+ strb r3, [r4]
+ adds r5, 0x4
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _0807C348 @ =0x000006db
+ adds r2, r1, r0
+ movs r0, 0x4
+ strb r0, [r2]
+ ldr r2, _0807C34C @ =0x000006dc
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r5, 0x3
+ adds r2, r1, r5
+ movs r0, 0x10
+ strb r0, [r2]
+ ldr r0, _0807C350 @ =0x000006c1
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ subs r5, 0x17
+ adds r2, r1, r5
+ movs r0, 0x14
+ strb r0, [r2]
+ strb r3, [r4]
+ ldr r0, _0807C354 @ =0x000006ed
+ adds r1, r0
+ strb r3, [r1]
+ movs r0, 0x4A
+ bl sub_807AFA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C33C: .4byte gUnknown_83C2BBC
+_0807C340: .4byte 0x000006cc
+_0807C344: .4byte 0x000006d2
+_0807C348: .4byte 0x000006db
+_0807C34C: .4byte 0x000006dc
+_0807C350: .4byte 0x000006c1
+_0807C354: .4byte 0x000006ed
+ thumb_func_end sub_807C2E4
+
+ thumb_func_start sub_807C358
+sub_807C358: @ 807C358
+ push {r4,lr}
+ bl sub_807C2E4
+ ldr r0, _0807C380 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C384 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C378
+ adds r4, r1, r2
+_0807C36E:
+ bl sub_807C424
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807C36E
+_0807C378:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C380: .4byte gUnknown_83C2BBC
+_0807C384: .4byte 0x000006d2
+ thumb_func_end sub_807C358
+
+ thumb_func_start sub_807C388
+sub_807C388: @ 807C388
+ push {r4,r5,lr}
+ ldr r0, _0807C3DC @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C3E0 @ =0x000006cc
+ adds r0, r1, r2
+ movs r4, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r5, _0807C3E4 @ =0x000006d2
+ adds r3, r1, r5
+ strb r4, [r3]
+ adds r5, 0x4
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _0807C3E8 @ =0x000006db
+ adds r2, r1, r0
+ movs r0, 0x4
+ strb r0, [r2]
+ adds r5, 0x6
+ adds r2, r1, r5
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r0, _0807C3EC @ =0x000006d9
+ adds r2, r1, r0
+ movs r0, 0x18
+ strb r0, [r2]
+ subs r5, 0x1B
+ adds r2, r1, r5
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r0, _0807C3F0 @ =0x000006c2
+ adds r1, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ strb r4, [r3]
+ movs r0, 0x4C
+ bl sub_807AFA8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C3DC: .4byte gUnknown_83C2BBC
+_0807C3E0: .4byte 0x000006cc
+_0807C3E4: .4byte 0x000006d2
+_0807C3E8: .4byte 0x000006db
+_0807C3EC: .4byte 0x000006d9
+_0807C3F0: .4byte 0x000006c2
+ thumb_func_end sub_807C388
+
+ thumb_func_start sub_807C3F4
+sub_807C3F4: @ 807C3F4
+ push {r4,lr}
+ bl sub_807C388
+ ldr r0, _0807C41C @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C420 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C414
+ adds r4, r1, r2
+_0807C40A:
+ bl sub_807C424
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807C40A
+_0807C414:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C41C: .4byte gUnknown_83C2BBC
+_0807C420: .4byte 0x000006d2
+ thumb_func_end sub_807C3F4
+
+ thumb_func_start sub_807C424
+sub_807C424: @ 807C424
+ push {r4,r5,lr}
+ bl sub_807C898
+ ldr r0, _0807C444 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807C448 @ =0x000006cc
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0xE
+ bls _0807C43A
+ b _0807C79A
+_0807C43A:
+ lsls r0, 2
+ ldr r1, _0807C44C @ =_0807C450
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0807C444: .4byte gUnknown_83C2BBC
+_0807C448: .4byte 0x000006cc
+_0807C44C: .4byte _0807C450
+ .align 2, 0
+_0807C450:
+ .4byte _0807C48C
+ .4byte _0807C4A8
+ .4byte _0807C4CC
+ .4byte _0807C4FC
+ .4byte _0807C520
+ .4byte _0807C550
+ .4byte _0807C580
+ .4byte _0807C5AC
+ .4byte _0807C5CA
+ .4byte _0807C628
+ .4byte _0807C6AC
+ .4byte _0807C6D4
+ .4byte _0807C704
+ .4byte _0807C748
+ .4byte _0807C77C
+_0807C48C:
+ bl sub_807BC08
+ ldr r0, _0807C4A0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C4A4 @ =0x000006cc
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807C798
+ .align 2, 0
+_0807C4A0: .4byte gUnknown_83C2BBC
+_0807C4A4: .4byte 0x000006cc
+_0807C4A8:
+ bl sub_807BC18
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C4B4
+ b _0807C79A
+_0807C4B4:
+ ldr r0, _0807C4C4 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r3, _0807C4C8 @ =0x000006cc
+ adds r1, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807C798
+ .align 2, 0
+_0807C4C4: .4byte gUnknown_83C2BBC
+_0807C4C8: .4byte 0x000006cc
+_0807C4CC:
+ bl sub_807BD4C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C4D8
+ b _0807C79A
+_0807C4D8:
+ ldr r0, _0807C4F0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807C4F4 @ =0x000006d2
+ adds r2, r1, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldr r2, _0807C4F8 @ =0x000006cc
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807C798
+ .align 2, 0
+_0807C4F0: .4byte gUnknown_83C2BBC
+_0807C4F4: .4byte 0x000006d2
+_0807C4F8: .4byte 0x000006cc
+_0807C4FC:
+ ldr r0, _0807C514 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r3, _0807C518 @ =0x000006c6
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C50C
+ b _0807C79A
+_0807C50C:
+ ldr r0, _0807C51C @ =0x000006cc
+ adds r1, r0
+ movs r0, 0x6
+ b _0807C798
+ .align 2, 0
+_0807C514: .4byte gUnknown_83C2BBC
+_0807C518: .4byte 0x000006c6
+_0807C51C: .4byte 0x000006cc
+_0807C520:
+ ldr r0, _0807C570 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r2, _0807C574 @ =0x000006ea
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r5, 0xB4
+ lsls r5, 1
+ adds r1, r5, 0
+ bl __umodsi3
+ adds r0, r5
+ ldr r3, _0807C578 @ =0x000006e6
+ adds r1, r4, r3
+ strh r0, [r1]
+ ldr r0, _0807C57C @ =0x000006cc
+ adds r4, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807C550:
+ ldr r0, _0807C570 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r3, _0807C578 @ =0x000006e6
+ adds r1, r2, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807C566
+ b _0807C79A
+_0807C566:
+ ldr r0, _0807C57C @ =0x000006cc
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807C798
+ .align 2, 0
+_0807C570: .4byte gUnknown_83C2BBC
+_0807C574: .4byte 0x000006ea
+_0807C578: .4byte 0x000006e6
+_0807C57C: .4byte 0x000006cc
+_0807C580:
+ ldr r0, _0807C5A0 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r1, _0807C5A4 @ =0x000006ea
+ adds r0, r4, r1
+ movs r5, 0x1
+ strb r5, [r0]
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ ands r0, r5
+ ldr r2, _0807C5A8 @ =0x000006eb
+ adds r1, r4, r2
+ strb r0, [r1]
+ b _0807C608
+ .align 2, 0
+_0807C5A0: .4byte gUnknown_83C2BBC
+_0807C5A4: .4byte 0x000006ea
+_0807C5A8: .4byte 0x000006eb
+_0807C5AC:
+ bl sub_8044EC8
+ ldr r1, _0807C614 @ =gUnknown_83C2BBC
+ ldr r2, [r1]
+ movs r1, 0x1
+ ands r1, r0
+ adds r1, 0x1
+ ldr r3, _0807C618 @ =0x000006ec
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r0, _0807C61C @ =0x000006cc
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_0807C5CA:
+ movs r0, 0x13
+ bl sub_807A790
+ ldr r0, _0807C614 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C620 @ =0x000006eb
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C5EE
+ ldr r3, _0807C618 @ =0x000006ec
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0807C5EE
+ movs r0, 0x14
+ bl sub_807C85C
+_0807C5EE:
+ bl sub_8044EC8
+ ldr r1, _0807C614 @ =gUnknown_83C2BBC
+ ldr r4, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x6
+ ldr r2, _0807C624 @ =0x000006e6
+ adds r1, r4, r2
+ strh r0, [r1]
+_0807C608:
+ ldr r3, _0807C61C @ =0x000006cc
+ adds r4, r3
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807C79A
+ .align 2, 0
+_0807C614: .4byte gUnknown_83C2BBC
+_0807C618: .4byte 0x000006ec
+_0807C61C: .4byte 0x000006cc
+_0807C620: .4byte 0x000006eb
+_0807C624: .4byte 0x000006e6
+_0807C628:
+ ldr r0, _0807C674 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r0, _0807C678 @ =0x000006e6
+ adds r5, r4, r0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0807C63E
+ b _0807C79A
+_0807C63E:
+ movs r0, 0x3
+ bl sub_807A790
+ ldr r2, _0807C67C @ =0x000006ea
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r3, _0807C680 @ =0x000006ec
+ adds r1, r4, r3
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807C688
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ adds r0, 0x3C
+ strh r0, [r5]
+ ldr r0, _0807C684 @ =0x000006cc
+ adds r1, r4, r0
+ movs r0, 0xA
+ b _0807C798
+ .align 2, 0
+_0807C674: .4byte gUnknown_83C2BBC
+_0807C678: .4byte 0x000006e6
+_0807C67C: .4byte 0x000006ea
+_0807C680: .4byte 0x000006ec
+_0807C684: .4byte 0x000006cc
+_0807C688:
+ ldr r1, _0807C698 @ =0x000006eb
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C6A0
+ ldr r2, _0807C69C @ =0x000006cc
+ adds r1, r4, r2
+ b _0807C796
+ .align 2, 0
+_0807C698: .4byte 0x000006eb
+_0807C69C: .4byte 0x000006cc
+_0807C6A0:
+ ldr r3, _0807C6A8 @ =0x000006cc
+ adds r1, r4, r3
+ movs r0, 0xB
+ b _0807C798
+ .align 2, 0
+_0807C6A8: .4byte 0x000006cc
+_0807C6AC:
+ ldr r0, _0807C6C8 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r0, _0807C6CC @ =0x000006e6
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807C79A
+ ldr r3, _0807C6D0 @ =0x000006cc
+ adds r1, r2, r3
+ movs r0, 0x8
+ b _0807C798
+ .align 2, 0
+_0807C6C8: .4byte gUnknown_83C2BBC
+_0807C6CC: .4byte 0x000006e6
+_0807C6D0: .4byte 0x000006cc
+_0807C6D4:
+ bl sub_8044EC8
+ ldr r1, _0807C6F8 @ =gUnknown_83C2BBC
+ ldr r2, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ adds r0, 0x3C
+ ldr r3, _0807C6FC @ =0x000006e6
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r0, _0807C700 @ =0x000006cc
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ b _0807C79A
+ .align 2, 0
+_0807C6F8: .4byte gUnknown_83C2BBC
+_0807C6FC: .4byte 0x000006e6
+_0807C700: .4byte 0x000006cc
+_0807C704:
+ ldr r0, _0807C73C @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r1, _0807C740 @ =0x000006e6
+ adds r4, r5, r1
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807C79A
+ movs r0, 0x64
+ bl sub_807C85C
+ movs r0, 0x13
+ bl sub_807A790
+ bl sub_8044EC8
+ movs r1, 0xF
+ ands r1, r0
+ adds r1, 0x1E
+ strh r1, [r4]
+ ldr r2, _0807C744 @ =0x000006cc
+ adds r1, r5, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807C798
+ .align 2, 0
+_0807C73C: .4byte gUnknown_83C2BBC
+_0807C740: .4byte 0x000006e6
+_0807C744: .4byte 0x000006cc
+_0807C748:
+ ldr r0, _0807C770 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r3, _0807C774 @ =0x000006e6
+ adds r1, r4, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0807C79A
+ movs r0, 0x13
+ movs r1, 0x3
+ movs r2, 0x5
+ bl sub_807A7C4
+ ldr r0, _0807C778 @ =0x000006cc
+ adds r1, r4, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ b _0807C798
+ .align 2, 0
+_0807C770: .4byte gUnknown_83C2BBC
+_0807C774: .4byte 0x000006e6
+_0807C778: .4byte 0x000006cc
+_0807C77C:
+ ldr r0, _0807C7A0 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r1, _0807C7A4 @ =0x000006c6
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0807C79A
+ ldr r3, _0807C7A8 @ =0x000006ea
+ adds r1, r2, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _0807C7AC @ =0x000006cc
+ adds r1, r2, r0
+_0807C796:
+ movs r0, 0x4
+_0807C798:
+ strh r0, [r1]
+_0807C79A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C7A0: .4byte gUnknown_83C2BBC
+_0807C7A4: .4byte 0x000006c6
+_0807C7A8: .4byte 0x000006ea
+_0807C7AC: .4byte 0x000006cc
+ thumb_func_end sub_807C424
+
+ thumb_func_start sub_807C7B0
+sub_807C7B0: @ 807C7B0
+ push {r4-r6,lr}
+ ldr r0, _0807C7CC @ =gUnknown_83C2BBC
+ ldr r6, [r0]
+ ldr r0, _0807C7D0 @ =0x000006ce
+ adds r5, r6, r0
+ ldrh r1, [r5]
+ cmp r1, 0x1
+ beq _0807C7E6
+ cmp r1, 0x1
+ bgt _0807C7D4
+ cmp r1, 0
+ beq _0807C7DA
+ b _0807C84C
+ .align 2, 0
+_0807C7CC: .4byte gUnknown_83C2BBC
+_0807C7D0: .4byte 0x000006ce
+_0807C7D4:
+ cmp r1, 0x2
+ beq _0807C830
+ b _0807C84C
+_0807C7DA:
+ ldr r2, _0807C820 @ =0x000006ea
+ adds r0, r6, r2
+ strb r1, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0807C7E6:
+ bl sub_807C424
+ ldr r0, _0807C824 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r1, _0807C820 @ =0x000006ea
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807C854
+ subs r1, 0x19
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0807C84C
+ cmp r0, 0x5
+ beq _0807C84C
+ cmp r0, 0xD
+ beq _0807C84C
+ ldr r0, _0807C828 @ =0x000006d9
+ adds r1, r2, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0807C82C @ =0x000006ce
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0807C854
+ .align 2, 0
+_0807C820: .4byte 0x000006ea
+_0807C824: .4byte gUnknown_83C2BBC
+_0807C828: .4byte 0x000006d9
+_0807C82C: .4byte 0x000006ce
+_0807C830:
+ bl sub_807BD4C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0807C854
+ bl sub_807BDD8
+ ldr r1, _0807C850 @ =0x000006ed
+ adds r0, r6, r1
+ strb r4, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0807C84C:
+ movs r0, 0
+ b _0807C856
+ .align 2, 0
+_0807C850: .4byte 0x000006ed
+_0807C854:
+ movs r0, 0x1
+_0807C856:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807C7B0
+
+ thumb_func_start sub_807C85C
+sub_807C85C: @ 807C85C
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0807C890 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r0, _0807C894 @ =0x000006ed
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0807C88A
+ bl sub_8044EC8
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r6, 0
+ bl __umodsi3
+ movs r2, 0xDD
+ lsls r2, 3
+ adds r1, r4, r2
+ strh r0, [r1]
+ movs r0, 0x1
+ strb r0, [r5]
+_0807C88A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C890: .4byte gUnknown_83C2BBC
+_0807C894: .4byte 0x000006ed
+ thumb_func_end sub_807C85C
+
+ thumb_func_start sub_807C898
+sub_807C898: @ 807C898
+ push {r4,lr}
+ ldr r0, _0807C8D0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C8D4 @ =0x000006ed
+ adds r0, r1, r2
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ bne _0807C8F8
+ movs r0, 0xDD
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _0807C8F4
+ bl sub_80723E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807C8F8
+ bl sub_8044EC8
+ ands r4, r0
+ cmp r4, 0
+ beq _0807C8D8
+ movs r0, 0x50
+ bl sub_80722CC
+ b _0807C8DE
+ .align 2, 0
+_0807C8D0: .4byte gUnknown_83C2BBC
+_0807C8D4: .4byte 0x000006ed
+_0807C8D8:
+ movs r0, 0x51
+ bl sub_80722CC
+_0807C8DE:
+ ldr r0, _0807C8EC @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807C8F0 @ =0x000006ed
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0807C8F8
+ .align 2, 0
+_0807C8EC: .4byte gUnknown_83C2BBC
+_0807C8F0: .4byte 0x000006ed
+_0807C8F4:
+ subs r0, 0x1
+ strh r0, [r1]
+_0807C8F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807C898
+
+ thumb_func_start sub_807C900
+sub_807C900: @ 807C900
+ push {lr}
+ ldr r0, _0807C94C @ =gUnknown_83C2BBC
+ ldr r3, [r0]
+ ldr r0, _0807C950 @ =0x000006cc
+ adds r1, r3, r0
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0807C954 @ =0x000006d2
+ adds r0, r3, r1
+ strb r2, [r0]
+ subs r1, 0x11
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r2, _0807C958 @ =0x000006c2
+ adds r1, r3, r2
+ movs r0, 0x14
+ strb r0, [r1]
+ ldr r1, _0807C95C @ =0x000006fb
+ adds r0, r3, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0807C948
+ adds r2, 0x2E
+ adds r0, r3, r2
+ strh r1, [r0]
+ adds r2, 0x2
+ adds r0, r3, r2
+ strh r1, [r0]
+ subs r2, 0x4
+ adds r0, r3, r2
+ strh r1, [r0]
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807ADB0
+_0807C948:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C94C: .4byte gUnknown_83C2BBC
+_0807C950: .4byte 0x000006cc
+_0807C954: .4byte 0x000006d2
+_0807C958: .4byte 0x000006c2
+_0807C95C: .4byte 0x000006fb
+ thumb_func_end sub_807C900
+
+ thumb_func_start sub_807C960
+sub_807C960: @ 807C960
+ push {r4,lr}
+ bl sub_807C900
+ ldr r0, _0807C988 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807C98C @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807C980
+ adds r4, r1, r2
+_0807C976:
+ bl sub_807C990
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807C976
+_0807C980:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807C988: .4byte gUnknown_83C2BBC
+_0807C98C: .4byte 0x000006d2
+ thumb_func_end sub_807C960
+
+ thumb_func_start sub_807C990
+sub_807C990: @ 807C990
+ push {r4-r6,lr}
+ ldr r0, _0807C9DC @ =gUnknown_83C2BBC
+ ldr r6, [r0]
+ ldr r0, _0807C9E0 @ =gUnknown_2021BC8
+ ldr r1, _0807C9E4 @ =0x000006f2
+ adds r2, r6, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ ldr r3, _0807C9E8 @ =0x000006ee
+ adds r1, r6, r3
+ strh r0, [r1]
+ movs r0, 0xDE
+ lsls r0, 3
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bls _0807C9CA
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_0807C9CA:
+ ldr r1, _0807C9EC @ =0x000006cc
+ adds r5, r6, r1
+ ldrh r4, [r5]
+ cmp r4, 0
+ beq _0807C9F0
+ cmp r4, 0x1
+ beq _0807CA30
+ b _0807CA46
+ .align 2, 0
+_0807C9DC: .4byte gUnknown_83C2BBC
+_0807C9E0: .4byte gUnknown_2021BC8
+_0807C9E4: .4byte 0x000006f2
+_0807C9E8: .4byte 0x000006ee
+_0807C9EC: .4byte 0x000006cc
+_0807C9F0:
+ bl sub_807CB4C
+ movs r3, 0xDA
+ lsls r3, 3
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0807CA0C
+ movs r0, 0xC
+ movs r1, 0x8
+ movs r2, 0x3
+ bl sub_807ADF0
+ b _0807CA16
+_0807CA0C:
+ movs r0, 0x4
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_807ADF0
+_0807CA16:
+ ldr r0, _0807CA28 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807CA2C @ =0x000006cc
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0807CA46
+ .align 2, 0
+_0807CA28: .4byte gUnknown_83C2BBC
+_0807CA2C: .4byte 0x000006cc
+_0807CA30:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CA46
+ ldr r1, _0807CA4C @ =0x000006d2
+ adds r0, r6, r1
+ strb r4, [r0]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0807CA46:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CA4C: .4byte 0x000006d2
+ thumb_func_end sub_807C990
+
+ thumb_func_start sub_807CA50
+sub_807CA50: @ 807CA50
+ push {r4,lr}
+ ldr r0, _0807CAA0 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r0, _0807CAA4 @ =gUnknown_2021BC8
+ ldr r1, _0807CAA8 @ =0x000006f2
+ adds r3, r2, r1
+ ldrh r0, [r0]
+ ldrh r1, [r3]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ ldr r4, _0807CAAC @ =0x000006ee
+ adds r1, r2, r4
+ strh r0, [r1]
+ movs r0, 0xDE
+ lsls r0, 3
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bls _0807CA8A
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+_0807CA8A:
+ ldr r1, _0807CAB0 @ =0x000006ce
+ adds r4, r2, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807CAC6
+ cmp r0, 0x1
+ bgt _0807CAB4
+ cmp r0, 0
+ beq _0807CABA
+ b _0807CADE
+ .align 2, 0
+_0807CAA0: .4byte gUnknown_83C2BBC
+_0807CAA4: .4byte gUnknown_2021BC8
+_0807CAA8: .4byte 0x000006f2
+_0807CAAC: .4byte 0x000006ee
+_0807CAB0: .4byte 0x000006ce
+_0807CAB4:
+ cmp r0, 0x2
+ beq _0807CAD2
+ b _0807CADE
+_0807CABA:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x3
+ bl sub_807ADF0
+ b _0807CAD6
+_0807CAC6:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CAE2
+ b _0807CAD6
+_0807CAD2:
+ bl sub_807CC08
+_0807CAD6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807CAE2
+_0807CADE:
+ movs r0, 0
+ b _0807CAE4
+_0807CAE2:
+ movs r0, 0x1
+_0807CAE4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807CA50
+
+ thumb_func_start sub_807CAEC
+sub_807CAEC: @ 807CAEC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807CB38 @ =gUnknown_2021BCA
+ ldrb r0, [r0]
+ strh r0, [r3, 0x26]
+ ldr r0, _0807CB3C @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807CB40 @ =0x000006ee
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807CB44 @ =0x010f0000
+ cmp r1, r0
+ ble _0807CB30
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x2E
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807CB48 @ =0x000001ff
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807CB30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CB38: .4byte gUnknown_2021BCA
+_0807CB3C: .4byte gUnknown_83C2BBC
+_0807CB40: .4byte 0x000006ee
+_0807CB44: .4byte 0x010f0000
+_0807CB48: .4byte 0x000001ff
+ thumb_func_end sub_807CAEC
+
+ thumb_func_start sub_807CB4C
+sub_807CB4C: @ 807CB4C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0807CBC0 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807CBC4 @ =0x000006fb
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807CBF6
+ ldr r0, _0807CBC8 @ =gUnknown_83C67A8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl sub_80086DC
+ movs r5, 0
+_0807CB70:
+ ldr r0, _0807CBCC @ =gUnknown_83C6790
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0807CBD4
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807CBD0 @ =gUnknown_202063C
+ adds r4, r0
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ lsrs r0, 10
+ adds r0, 0x20
+ strh r0, [r4, 0x20]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 10
+ adds r0, 0x20
+ strh r0, [r4, 0x22]
+ ldr r2, _0807CBC0 @ =gUnknown_83C2BBC
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ adds r0, 0xA0
+ adds r0, r1
+ str r4, [r0]
+ b _0807CBE2
+ .align 2, 0
+_0807CBC0: .4byte gUnknown_83C2BBC
+_0807CBC4: .4byte 0x000006fb
+_0807CBC8: .4byte gUnknown_83C67A8
+_0807CBCC: .4byte gUnknown_83C6790
+_0807CBD0: .4byte gUnknown_202063C
+_0807CBD4:
+ ldr r2, _0807CC00 @ =gUnknown_83C2BBC
+ ldr r1, [r2]
+ lsls r0, r5, 2
+ adds r1, 0xA0
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807CBE2:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x13
+ bls _0807CB70
+ ldr r0, [r2]
+ ldr r1, _0807CC04 @ =0x000006fb
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807CBF6:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CC00: .4byte gUnknown_83C2BBC
+_0807CC04: .4byte 0x000006fb
+ thumb_func_end sub_807CB4C
+
+ thumb_func_start sub_807CC08
+sub_807CC08: @ 807CC08
+ push {r4,r5,lr}
+ ldr r0, _0807CC50 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807CC54 @ =0x000006fb
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807CC48
+ movs r4, 0
+ adds r5, r1, 0
+ adds r5, 0xA0
+_0807CC1E:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807CC2C
+ bl sub_8007280
+_0807CC2C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807CC1E
+ ldr r0, _0807CC58 @ =0x00001201
+ bl sub_800874C
+ ldr r0, _0807CC50 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807CC54 @ =0x000006fb
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807CC48:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CC50: .4byte gUnknown_83C2BBC
+_0807CC54: .4byte 0x000006fb
+_0807CC58: .4byte 0x00001201
+ thumb_func_end sub_807CC08
+
+ thumb_func_start sub_807CC5C
+sub_807CC5C: @ 807CC5C
+ push {lr}
+ ldr r0, _0807CCA8 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807CCAC @ =0x000006cc
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r2, _0807CCB0 @ =0x000006d2
+ adds r0, r1, r2
+ strb r3, [r0]
+ subs r2, 0x11
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r3, _0807CCB4 @ =0x000006c2
+ adds r0, r1, r3
+ movs r2, 0x14
+ strb r2, [r0]
+ adds r3, 0x3C
+ adds r0, r1, r3
+ strh r2, [r0]
+ movs r0, 0xE0
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0807CCA4
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807ADB0
+ movs r1, 0xFD
+ lsls r1, 6
+ movs r0, 0x52
+ bl sub_8000A38
+_0807CCA4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CCA8: .4byte gUnknown_83C2BBC
+_0807CCAC: .4byte 0x000006cc
+_0807CCB0: .4byte 0x000006d2
+_0807CCB4: .4byte 0x000006c2
+ thumb_func_end sub_807CC5C
+
+ thumb_func_start sub_807CCB8
+sub_807CCB8: @ 807CCB8
+ push {r4,lr}
+ bl sub_807CC5C
+ ldr r0, _0807CCE0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807CCE4 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807CCD8
+ adds r4, r1, r2
+_0807CCCE:
+ bl sub_807CCE8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807CCCE
+_0807CCD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CCE0: .4byte gUnknown_83C2BBC
+_0807CCE4: .4byte 0x000006d2
+ thumb_func_end sub_807CCB8
+
+ thumb_func_start sub_807CCE8
+sub_807CCE8: @ 807CCE8
+ push {r4,r5,lr}
+ ldr r2, _0807CD2C @ =gUnknown_83C2BBC
+ ldr r1, [r2]
+ ldr r0, _0807CD30 @ =gUnknown_2021BC8
+ ldrh r0, [r0]
+ ldr r3, _0807CD34 @ =0x000001ff
+ ands r3, r0
+ ldr r0, _0807CD38 @ =0x000006fc
+ adds r1, r0
+ strh r3, [r1]
+ cmp r3, 0xEF
+ bls _0807CD14
+ adds r4, r1, 0
+ adds r1, r3, 0
+_0807CD04:
+ adds r3, r1, 0
+ subs r3, 0xF0
+ adds r1, r3, 0
+ lsls r0, r3, 16
+ lsrs r0, 16
+ cmp r0, 0xEF
+ bhi _0807CD04
+ strh r3, [r4]
+_0807CD14:
+ ldr r5, [r2]
+ ldr r1, _0807CD3C @ =0x000006cc
+ adds r4, r5, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807CD4C
+ cmp r0, 0x1
+ bgt _0807CD40
+ cmp r0, 0
+ beq _0807CD46
+ b _0807CD88
+ .align 2, 0
+_0807CD2C: .4byte gUnknown_83C2BBC
+_0807CD30: .4byte gUnknown_2021BC8
+_0807CD34: .4byte 0x000001ff
+_0807CD38: .4byte 0x000006fc
+_0807CD3C: .4byte 0x000006cc
+_0807CD40:
+ cmp r0, 0x2
+ beq _0807CD68
+ b _0807CD88
+_0807CD46:
+ bl sub_807CDFC
+ b _0807CD7A
+_0807CD4C:
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807CD5C
+ bl sub_807CE0C
+_0807CD5C:
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_807ADF0
+ b _0807CD7A
+_0807CD68:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CD8C
+ ldr r0, _0807CD84 @ =0x000006d2
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807CD7A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807CD8C
+ .align 2, 0
+_0807CD84: .4byte 0x000006d2
+_0807CD88:
+ bl sub_807AE34
+_0807CD8C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807CCE8
+
+ thumb_func_start sub_807CD94
+sub_807CD94: @ 807CD94
+ push {r4,lr}
+ ldr r0, _0807CDB0 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807CDB4 @ =0x000006ce
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807CDCA
+ cmp r0, 0x1
+ bgt _0807CDB8
+ cmp r0, 0
+ beq _0807CDBE
+ b _0807CDEE
+ .align 2, 0
+_0807CDB0: .4byte gUnknown_83C2BBC
+_0807CDB4: .4byte 0x000006ce
+_0807CDB8:
+ cmp r0, 0x2
+ beq _0807CDE0
+ b _0807CDEE
+_0807CDBE:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_807ADF0
+ b _0807CDD8
+_0807CDCA:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807CDF2
+ bl sub_807CEB4
+_0807CDD8:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807CDF2
+_0807CDE0:
+ movs r0, 0x52
+ movs r1, 0
+ bl sub_8000A38
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807CDEE:
+ movs r0, 0
+ b _0807CDF4
+_0807CDF2:
+ movs r0, 0x1
+_0807CDF4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807CD94
+
+ thumb_func_start sub_807CDFC
+sub_807CDFC: @ 807CDFC
+ push {lr}
+ ldr r0, _0807CE08 @ =gUnknown_83C67B0
+ bl sub_80086DC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CE08: .4byte gUnknown_83C67B0
+ thumb_func_end sub_807CDFC
+
+ thumb_func_start sub_807CE0C
+sub_807CE0C: @ 807CE0C
+ push {r4,r5,lr}
+ ldr r0, _0807CE78 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807CEA8
+ movs r5, 0
+_0807CE20:
+ ldr r0, _0807CE7C @ =gUnknown_83C67D0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x4E
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0807CE84
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807CE80 @ =gUnknown_202063C
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x34]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 6
+ adds r0, 0x20
+ strh r0, [r4, 0x2E]
+ ldr r2, _0807CE78 @ =gUnknown_83C2BBC
+ ldr r0, [r2]
+ lsls r1, r5, 2
+ adds r0, 0xF0
+ adds r0, r1
+ str r4, [r0]
+ b _0807CE92
+ .align 2, 0
+_0807CE78: .4byte gUnknown_83C2BBC
+_0807CE7C: .4byte gUnknown_83C67D0
+_0807CE80: .4byte gUnknown_202063C
+_0807CE84:
+ ldr r2, _0807CEB0 @ =gUnknown_83C2BBC
+ ldr r1, [r2]
+ lsls r0, r5, 2
+ adds r1, 0xF0
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807CE92:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x13
+ bls _0807CE20
+ ldr r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807CEA8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CEB0: .4byte gUnknown_83C2BBC
+ thumb_func_end sub_807CE0C
+
+ thumb_func_start sub_807CEB4
+sub_807CEB4: @ 807CEB4
+ push {r4,r5,lr}
+ ldr r0, _0807CF00 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807CEF8
+ movs r4, 0
+ adds r5, r1, 0
+ adds r5, 0xF0
+_0807CECC:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807CEDA
+ bl sub_8007280
+_0807CEDA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807CECC
+ ldr r0, _0807CF04 @ =0x00001202
+ bl sub_800874C
+ ldr r0, _0807CF00 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ movs r1, 0xE0
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807CEF8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CF00: .4byte gUnknown_83C2BBC
+_0807CF04: .4byte 0x00001202
+ thumb_func_end sub_807CEB4
+
+ thumb_func_start sub_807CF08
+sub_807CF08: @ 807CF08
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _0807CF24
+ movs r0, 0
+ strh r0, [r3, 0x30]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+_0807CF24:
+ ldr r1, _0807CF70 @ =gUnknown_2021BCA
+ ldrh r0, [r3, 0x2E]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r3, 0x22]
+ ldr r0, _0807CF74 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807CF78 @ =0x000006fc
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807CF7C @ =0x010f0000
+ cmp r1, r0
+ ble _0807CF68
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x32
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807CF80 @ =0x000001ff
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807CF68:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CF70: .4byte gUnknown_2021BCA
+_0807CF74: .4byte gUnknown_83C2BBC
+_0807CF78: .4byte 0x000006fc
+_0807CF7C: .4byte 0x010f0000
+_0807CF80: .4byte 0x000001ff
+ thumb_func_end sub_807CF08
+
+ thumb_func_start sub_807CF84
+sub_807CF84: @ 807CF84
+ push {r4,lr}
+ ldr r0, _0807CFF4 @ =gUnknown_83C2BBC
+ ldr r3, [r0]
+ ldr r1, _0807CFF8 @ =0x000006cc
+ adds r0, r3, r1
+ movs r1, 0
+ movs r2, 0
+ strh r2, [r0]
+ ldr r4, _0807CFFC @ =0x000006d2
+ adds r0, r3, r4
+ strb r1, [r0]
+ subs r4, 0x11
+ adds r0, r3, r4
+ strb r1, [r0]
+ ldr r0, _0807D000 @ =0x000006c2
+ adds r1, r3, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ movs r1, 0xDE
+ lsls r1, 3
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x31
+ adds r1, r3, r4
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, _0807D004 @ =0x00000724
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _0807CFEE
+ adds r4, 0x2A
+ adds r0, r3, r4
+ strh r2, [r0]
+ subs r1, 0x6
+ adds r0, r3, r1
+ strh r2, [r0]
+ adds r4, 0x4
+ adds r0, r3, r4
+ strh r2, [r0]
+ adds r1, 0x4
+ adds r0, r3, r1
+ strh r2, [r0]
+ subs r4, 0x8
+ adds r0, r3, r4
+ strh r2, [r0]
+ subs r1, 0x8
+ adds r0, r3, r1
+ strh r2, [r0]
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807ADB0
+_0807CFEE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807CFF4: .4byte gUnknown_83C2BBC
+_0807CFF8: .4byte 0x000006cc
+_0807CFFC: .4byte 0x000006d2
+_0807D000: .4byte 0x000006c2
+_0807D004: .4byte 0x00000724
+ thumb_func_end sub_807CF84
+
+ thumb_func_start sub_807D008
+sub_807D008: @ 807D008
+ push {r4,lr}
+ bl sub_807CF84
+ ldr r0, _0807D030 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D034 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D028
+ adds r4, r1, r2
+_0807D01E:
+ bl sub_807D038
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807D01E
+_0807D028:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D030: .4byte gUnknown_83C2BBC
+_0807D034: .4byte 0x000006d2
+ thumb_func_end sub_807D008
+
+ thumb_func_start sub_807D038
+sub_807D038: @ 807D038
+ push {r4,r5,lr}
+ bl sub_807D0FC
+ ldr r0, _0807D058 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807D05C @ =0x000006cc
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807D06C
+ cmp r0, 0x1
+ bgt _0807D060
+ cmp r0, 0
+ beq _0807D066
+ b _0807D090
+ .align 2, 0
+_0807D058: .4byte gUnknown_83C2BBC
+_0807D05C: .4byte 0x000006cc
+_0807D060:
+ cmp r0, 0x2
+ beq _0807D078
+ b _0807D090
+_0807D066:
+ bl sub_807D190
+ b _0807D08A
+_0807D06C:
+ movs r0, 0xC
+ movs r1, 0x8
+ movs r2, 0x8
+ bl sub_807ADF0
+ b _0807D08A
+_0807D078:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D090
+ ldr r0, _0807D098 @ =0x000006d2
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807D08A:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807D090:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D098: .4byte 0x000006d2
+ thumb_func_end sub_807D038
+
+ thumb_func_start sub_807D09C
+sub_807D09C: @ 807D09C
+ push {r4,lr}
+ bl sub_807D0FC
+ ldr r0, _0807D0BC @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D0C0 @ =0x000006ce
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807D0D6
+ cmp r0, 0x1
+ bgt _0807D0C4
+ cmp r0, 0
+ beq _0807D0CA
+ b _0807D0EE
+ .align 2, 0
+_0807D0BC: .4byte gUnknown_83C2BBC
+_0807D0C0: .4byte 0x000006ce
+_0807D0C4:
+ cmp r0, 0x2
+ beq _0807D0E2
+ b _0807D0EE
+_0807D0CA:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1
+ bl sub_807ADF0
+ b _0807D0E6
+_0807D0D6:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D0F2
+ b _0807D0E6
+_0807D0E2:
+ bl sub_807D248
+_0807D0E6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807D0F2
+_0807D0EE:
+ movs r0, 0
+ b _0807D0F4
+_0807D0F2:
+ movs r0, 0x1
+_0807D0F4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807D09C
+
+ thumb_func_start sub_807D0FC
+sub_807D0FC: @ 807D0FC
+ push {r4,r5,lr}
+ ldr r0, _0807D174 @ =gUnknown_83C2BBC
+ ldr r3, [r0]
+ ldr r0, _0807D178 @ =0x0000071c
+ adds r2, r3, r0
+ ldrh r0, [r2]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r2]
+ ldr r1, _0807D17C @ =0x0000ffff
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bls _0807D128
+ movs r0, 0xE4
+ lsls r0, 3
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ strh r5, [r2]
+_0807D128:
+ ldr r1, _0807D180 @ =0x0000071e
+ adds r2, r3, r1
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ ands r0, r4
+ cmp r0, 0x4
+ bls _0807D144
+ ldr r0, _0807D184 @ =0x00000722
+ adds r1, r3, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ strh r5, [r2]
+_0807D144:
+ ldr r0, _0807D188 @ =gUnknown_2021BC8
+ movs r2, 0xE4
+ lsls r2, 3
+ adds r1, r3, r2
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ subs r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ subs r2, 0x8
+ adds r1, r3, r2
+ strh r0, [r1]
+ ldr r1, _0807D18C @ =gUnknown_2021BCA
+ adds r2, 0xA
+ adds r0, r3, r2
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ subs r2, 0x8
+ adds r1, r3, r2
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D174: .4byte gUnknown_83C2BBC
+_0807D178: .4byte 0x0000071c
+_0807D17C: .4byte 0x0000ffff
+_0807D180: .4byte 0x0000071e
+_0807D184: .4byte 0x00000722
+_0807D188: .4byte gUnknown_2021BC8
+_0807D18C: .4byte gUnknown_2021BCA
+ thumb_func_end sub_807D0FC
+
+ thumb_func_start sub_807D190
+sub_807D190: @ 807D190
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _0807D1FC @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D200 @ =0x00000724
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D236
+ ldr r0, _0807D204 @ =gUnknown_83C67E8
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ mov r0, sp
+ bl sub_80086DC
+ movs r6, 0
+_0807D1B4:
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __udivsi3
+ adds r5, r0, 0
+ lsls r2, r5, 22
+ asrs r2, 16
+ ldr r0, _0807D208 @ =gUnknown_83C6804
+ movs r1, 0
+ movs r3, 0xFF
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0807D210
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0807D20C @ =gUnknown_202063C
+ adds r4, r0
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __umodsi3
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ ldr r2, _0807D1FC @ =gUnknown_83C2BBC
+ ldr r0, [r2]
+ lsls r1, r6, 2
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r0, r3
+ adds r0, r1
+ str r4, [r0]
+ b _0807D222
+ .align 2, 0
+_0807D1FC: .4byte gUnknown_83C2BBC
+_0807D200: .4byte 0x00000724
+_0807D204: .4byte gUnknown_83C67E8
+_0807D208: .4byte gUnknown_83C6804
+_0807D20C: .4byte gUnknown_202063C
+_0807D210:
+ ldr r2, _0807D240 @ =gUnknown_83C2BBC
+ ldr r1, [r2]
+ lsls r0, r6, 2
+ movs r3, 0xA0
+ lsls r3, 1
+ adds r1, r3
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807D222:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x13
+ bls _0807D1B4
+ ldr r0, [r2]
+ ldr r1, _0807D244 @ =0x00000724
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807D236:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D240: .4byte gUnknown_83C2BBC
+_0807D244: .4byte 0x00000724
+ thumb_func_end sub_807D190
+
+ thumb_func_start sub_807D248
+sub_807D248: @ 807D248
+ push {r4,r5,lr}
+ ldr r0, _0807D290 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D294 @ =0x00000724
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807D28A
+ movs r4, 0
+ movs r0, 0xA0
+ lsls r0, 1
+ adds r5, r1, r0
+_0807D260:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807D26E
+ bl sub_8007280
+_0807D26E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807D260
+ ldr r0, _0807D298 @ =0x00001203
+ bl sub_800874C
+ ldr r0, _0807D290 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D294 @ =0x00000724
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807D28A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D290: .4byte gUnknown_83C2BBC
+_0807D294: .4byte 0x00000724
+_0807D298: .4byte 0x00001203
+ thumb_func_end sub_807D248
+
+ thumb_func_start sub_807D29C
+sub_807D29C: @ 807D29C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807D2EC @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D2F0 @ =0x0000071a
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x26]
+ movs r4, 0xE3
+ lsls r4, 3
+ adds r2, r1, r4
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807D2F4 @ =0x010f0000
+ cmp r1, r0
+ ble _0807D2E4
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x2E
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807D2F8 @ =0x000001ff
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807D2E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D2EC: .4byte gUnknown_83C2BBC
+_0807D2F0: .4byte 0x0000071a
+_0807D2F4: .4byte 0x010f0000
+_0807D2F8: .4byte 0x000001ff
+ thumb_func_end sub_807D29C
+
+ thumb_func_start sub_807D2FC
+sub_807D2FC: @ 807D2FC
+ push {r4,lr}
+ ldr r0, _0807D360 @ =gUnknown_83C2BBC
+ ldr r3, [r0]
+ ldr r0, _0807D364 @ =0x000006cc
+ adds r1, r3, r0
+ movs r2, 0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0807D368 @ =0x000006d2
+ adds r0, r3, r1
+ strb r2, [r0]
+ ldr r4, _0807D36C @ =0x000006c1
+ adds r0, r3, r4
+ strb r2, [r0]
+ ldr r0, _0807D370 @ =0x000006c2
+ adds r1, r3, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ ldr r1, _0807D374 @ =0x00000716
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _0807D358
+ adds r4, 0x43
+ adds r1, r3, r4
+ adds r4, 0x4
+ adds r0, r3, r4
+ str r2, [r0]
+ str r2, [r1]
+ ldr r0, _0807D378 @ =0x00000712
+ adds r1, r3, r0
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r4, 0xC
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r2, [r1]
+ cmp r2, 0x5F
+ bls _0807D350
+ movs r0, 0x80
+ subs r0, r2
+ strh r0, [r1]
+_0807D350:
+ movs r0, 0
+ movs r1, 0x10
+ bl sub_807ADB0
+_0807D358:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D360: .4byte gUnknown_83C2BBC
+_0807D364: .4byte 0x000006cc
+_0807D368: .4byte 0x000006d2
+_0807D36C: .4byte 0x000006c1
+_0807D370: .4byte 0x000006c2
+_0807D374: .4byte 0x00000716
+_0807D378: .4byte 0x00000712
+ thumb_func_end sub_807D2FC
+
+ thumb_func_start sub_807D37C
+sub_807D37C: @ 807D37C
+ push {r4,lr}
+ bl sub_807D2FC
+ ldr r0, _0807D3A4 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D3A8 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D39C
+ adds r4, r1, r2
+_0807D392:
+ bl sub_807D3AC
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807D392
+_0807D39C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D3A4: .4byte gUnknown_83C2BBC
+_0807D3A8: .4byte 0x000006d2
+ thumb_func_end sub_807D37C
+
+ thumb_func_start sub_807D3AC
+sub_807D3AC: @ 807D3AC
+ push {r4,r5,lr}
+ bl sub_807D4C4
+ bl sub_807D48C
+ ldr r0, _0807D3DC @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807D3E0 @ =0x00000712
+ adds r1, r5, r0
+ ldrh r0, [r1]
+ cmp r0, 0x5F
+ bls _0807D3C8
+ movs r0, 0x20
+ strh r0, [r1]
+_0807D3C8:
+ ldr r0, _0807D3E4 @ =0x000006cc
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807D3F8
+ cmp r0, 0x1
+ bgt _0807D3E8
+ cmp r0, 0
+ beq _0807D3EE
+ b _0807D41C
+ .align 2, 0
+_0807D3DC: .4byte gUnknown_83C2BBC
+_0807D3E0: .4byte 0x00000712
+_0807D3E4: .4byte 0x000006cc
+_0807D3E8:
+ cmp r0, 0x2
+ beq _0807D404
+ b _0807D41C
+_0807D3EE:
+ bl sub_807D5D8
+ bl sub_807D698
+ b _0807D416
+_0807D3F8:
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0
+ bl sub_807ADF0
+ b _0807D416
+_0807D404:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D41C
+ ldr r0, _0807D424 @ =0x000006d2
+ adds r1, r5, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_0807D416:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0807D41C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D424: .4byte 0x000006d2
+ thumb_func_end sub_807D3AC
+
+ thumb_func_start sub_807D428
+sub_807D428: @ 807D428
+ push {r4,lr}
+ bl sub_807D4C4
+ bl sub_807D48C
+ ldr r0, _0807D44C @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D450 @ =0x000006ce
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x1
+ beq _0807D466
+ cmp r0, 0x1
+ bgt _0807D454
+ cmp r0, 0
+ beq _0807D45A
+ b _0807D47E
+ .align 2, 0
+_0807D44C: .4byte gUnknown_83C2BBC
+_0807D450: .4byte 0x000006ce
+_0807D454:
+ cmp r0, 0x2
+ beq _0807D472
+ b _0807D47E
+_0807D45A:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_807ADF0
+ b _0807D476
+_0807D466:
+ bl sub_807AE34
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D482
+ b _0807D476
+_0807D472:
+ bl sub_807D544
+_0807D476:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0807D482
+_0807D47E:
+ movs r0, 0
+ b _0807D484
+_0807D482:
+ movs r0, 0x1
+_0807D484:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807D428
+
+ thumb_func_start sub_807D48C
+sub_807D48C: @ 807D48C
+ push {lr}
+ ldr r0, _0807D4B8 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r0, _0807D4BC @ =0x00000714
+ adds r3, r2, r0
+ ldrh r0, [r3]
+ adds r1, r0, 0x1
+ strh r1, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bls _0807D4B2
+ ldr r1, _0807D4C0 @ =0x00000712
+ adds r0, r2, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strh r1, [r0]
+ strh r2, [r3]
+_0807D4B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D4B8: .4byte gUnknown_83C2BBC
+_0807D4BC: .4byte 0x00000714
+_0807D4C0: .4byte 0x00000712
+ thumb_func_end sub_807D48C
+
+ thumb_func_start sub_807D4C4
+sub_807D4C4: @ 807D4C4
+ push {r4-r6,lr}
+ ldr r0, _0807D528 @ =gUnknown_83C2BBC
+ ldr r2, [r0]
+ ldr r0, _0807D52C @ =0x00000704
+ adds r4, r2, r0
+ ldr r6, _0807D530 @ =gUnknown_825E074
+ ldr r1, _0807D534 @ =0x00000712
+ adds r5, r2, r1
+ ldrh r0, [r5]
+ lsls r0, 1
+ adds r0, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ ldr r0, [r4]
+ subs r0, r1
+ str r0, [r4]
+ movs r0, 0xE1
+ lsls r0, 3
+ adds r3, r2, r0
+ ldrh r0, [r5]
+ lsls r0, 1
+ adds r0, r6
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ ldr r0, [r3]
+ subs r0, r1
+ str r0, [r3]
+ ldr r1, _0807D538 @ =gUnknown_2021BC8
+ ldr r0, [r4]
+ lsrs r0, 8
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ ldr r4, _0807D53C @ =0x0000070e
+ adds r1, r2, r4
+ strh r0, [r1]
+ ldr r1, _0807D540 @ =gUnknown_2021BCA
+ ldr r0, [r3]
+ lsrs r0, 8
+ ldrh r1, [r1]
+ adds r0, r1
+ movs r5, 0xE2
+ lsls r5, 3
+ adds r2, r5
+ strh r0, [r2]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D528: .4byte gUnknown_83C2BBC
+_0807D52C: .4byte 0x00000704
+_0807D530: .4byte gUnknown_825E074
+_0807D534: .4byte 0x00000712
+_0807D538: .4byte gUnknown_2021BC8
+_0807D53C: .4byte 0x0000070e
+_0807D540: .4byte gUnknown_2021BCA
+ thumb_func_end sub_807D4C4
+
+ thumb_func_start sub_807D544
+sub_807D544: @ 807D544
+ push {r4,r5,lr}
+ ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D5CC @ =0x00000716
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807D586
+ movs r4, 0
+ movs r0, 0xC8
+ lsls r0, 1
+ adds r5, r1, r0
+_0807D55C:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807D56A
+ bl sub_8007280
+_0807D56A:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0807D55C
+ ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D5CC @ =0x00000716
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0807D5D0 @ =0x00001204
+ bl sub_800874C
+_0807D586:
+ ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D5D4 @ =0x00000717
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807D5C0
+ movs r4, 0
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r5, r1, r0
+_0807D59C:
+ lsls r0, r4, 2
+ adds r0, r5, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0807D5AA
+ bl sub_8007280
+_0807D5AA:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _0807D59C
+ ldr r0, _0807D5C8 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D5D4 @ =0x00000717
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_0807D5C0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D5C8: .4byte gUnknown_83C2BBC
+_0807D5CC: .4byte 0x00000716
+_0807D5D0: .4byte 0x00001204
+_0807D5D4: .4byte 0x00000717
+ thumb_func_end sub_807D544
+
+ thumb_func_start sub_807D5D8
+sub_807D5D8: @ 807D5D8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _0807D648 @ =gUnknown_83C2BBC
+ ldr r0, [r0]
+ ldr r1, _0807D64C @ =0x00000716
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D686
+ ldr r0, _0807D650 @ =gUnknown_83C6854
+ bl sub_80086DC
+ ldr r0, _0807D654 @ =gUnknown_83C2D20
+ bl sub_807ABC0
+ movs r7, 0
+_0807D5F8:
+ adds r0, r7, 0
+ movs r1, 0x5
+ bl __udivsi3
+ adds r6, r0, 0
+ lsls r2, r6, 22
+ asrs r2, 16
+ ldr r0, _0807D658 @ =gUnknown_83C683C
+ movs r1, 0
+ movs r3, 0x1
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0807D660
+ ldr r2, _0807D648 @ =gUnknown_83C2BBC
+ ldr r5, [r2]
+ lsls r0, r7, 2
+ movs r3, 0xC8
+ lsls r3, 1
+ adds r5, r3
+ adds r5, r0
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ ldr r0, _0807D65C @ =gUnknown_202063C
+ adds r4, r0
+ str r4, [r5]
+ adds r0, r7, 0
+ movs r1, 0x5
+ str r2, [sp]
+ bl __umodsi3
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5]
+ strh r6, [r0, 0x30]
+ ldr r2, [sp]
+ b _0807D672
+ .align 2, 0
+_0807D648: .4byte gUnknown_83C2BBC
+_0807D64C: .4byte 0x00000716
+_0807D650: .4byte gUnknown_83C6854
+_0807D654: .4byte gUnknown_83C2D20
+_0807D658: .4byte gUnknown_83C683C
+_0807D65C: .4byte gUnknown_202063C
+_0807D660:
+ ldr r2, _0807D690 @ =gUnknown_83C2BBC
+ ldr r1, [r2]
+ lsls r0, r7, 2
+ movs r3, 0xC8
+ lsls r3, 1
+ adds r1, r3
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_0807D672:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x13
+ bls _0807D5F8
+ ldr r0, [r2]
+ ldr r1, _0807D694 @ =0x00000716
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0807D686:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D690: .4byte gUnknown_83C2BBC
+_0807D694: .4byte 0x00000716
+ thumb_func_end sub_807D5D8
+
+ thumb_func_start sub_807D698
+sub_807D698: @ 807D698
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0807D740 @ =gUnknown_83C2BBC
+ ldr r0, [r4]
+ ldr r1, _0807D744 @ =0x00000717
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D784
+ movs r7, 0
+ mov r9, r4
+ movs r2, 0
+ mov r10, r2
+_0807D6B8:
+ lsls r0, r7, 1
+ mov r8, r0
+ adds r6, r0, r7
+ lsls r5, r6, 4
+ adds r1, r5, 0
+ adds r1, 0x18
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _0807D748 @ =gUnknown_83C683C
+ movs r2, 0xD0
+ movs r3, 0x1
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0807D75C
+ mov r2, r9
+ ldr r4, [r2]
+ lsls r0, r7, 2
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r4, r2
+ adds r4, r0
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r0, _0807D74C @ =gUnknown_202063C
+ adds r2, r0
+ str r2, [r4]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ ldr r1, [r4]
+ adds r0, r6, r5
+ strh r0, [r1, 0x30]
+ ldr r1, [r4]
+ movs r0, 0x8
+ strh r0, [r1, 0x2E]
+ ldr r0, [r4]
+ mov r1, r10
+ strh r1, [r0, 0x32]
+ ldr r1, [r4]
+ ldr r0, _0807D750 @ =0x00006730
+ strh r0, [r1, 0x36]
+ ldr r1, [r4]
+ ldr r0, _0807D754 @ =gUnknown_83C685C
+ add r0, r8
+ ldrh r0, [r0]
+ strh r0, [r1, 0x34]
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_800838C
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_80073F0
+ ldr r1, [r4]
+ ldr r0, _0807D758 @ =sub_807D7F8
+ str r0, [r1, 0x1C]
+ b _0807D76E
+ .align 2, 0
+_0807D740: .4byte gUnknown_83C2BBC
+_0807D744: .4byte 0x00000717
+_0807D748: .4byte gUnknown_83C683C
+_0807D74C: .4byte gUnknown_202063C
+_0807D750: .4byte 0x00006730
+_0807D754: .4byte gUnknown_83C685C
+_0807D758: .4byte sub_807D7F8
+_0807D75C:
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r7, 2
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r2
+ adds r0, r1
+ mov r1, r10
+ str r1, [r0]
+_0807D76E:
+ mov r2, r9
+ ldr r0, [r2]
+ ldr r1, _0807D794 @ =0x00000717
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x4
+ bls _0807D6B8
+_0807D784:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D794: .4byte 0x00000717
+ thumb_func_end sub_807D698
+
+ thumb_func_start sub_807D798
+sub_807D798: @ 807D798
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0807D7E8 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ movs r2, 0xE2
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x26]
+ ldr r4, _0807D7EC @ =0x0000070e
+ adds r2, r1, r4
+ ldrh r1, [r2]
+ adds r1, 0x20
+ movs r4, 0x2E
+ ldrsh r0, [r3, r4]
+ lsls r0, 6
+ adds r1, r0
+ strh r1, [r3, 0x20]
+ lsls r1, 16
+ ldr r0, _0807D7F0 @ =0x010f0000
+ cmp r1, r0
+ ble _0807D7E0
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r0, 0
+ ldrh r2, [r2]
+ adds r1, r2
+ movs r4, 0x2E
+ ldrsh r2, [r3, r4]
+ movs r0, 0x4
+ subs r0, r2
+ lsls r0, 6
+ subs r1, r0
+ ldr r0, _0807D7F4 @ =0x000001ff
+ ands r1, r0
+ strh r1, [r3, 0x20]
+_0807D7E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D7E8: .4byte gUnknown_83C2BBC
+_0807D7EC: .4byte 0x0000070e
+_0807D7F0: .4byte 0x010f0000
+_0807D7F4: .4byte 0x000001ff
+ thumb_func_end sub_807D798
+
+ thumb_func_start sub_807D7F8
+sub_807D7F8: @ 807D7F8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x34]
+ subs r0, 0x1
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0807D812
+ ldr r0, _0807D818 @ =sub_807D81C
+ str r0, [r2, 0x1C]
+_0807D812:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D818: .4byte sub_807D81C
+ thumb_func_end sub_807D7F8
+
+ thumb_func_start sub_807D81C
+sub_807D81C: @ 807D81C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x22]
+ subs r0, 0x1
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x30
+ negs r1, r1
+ cmp r0, r1
+ bge _0807D83A
+ movs r0, 0xD0
+ strh r0, [r5, 0x22]
+ movs r0, 0x4
+ strh r0, [r5, 0x2E]
+_0807D83A:
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ ldr r3, _0807D88C @ =gUnknown_825E074
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 1
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r2, r4, 0
+ muls r2, r0
+ adds r1, 0x40
+ lsls r1, 1
+ adds r1, r3
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ muls r0, r4
+ lsrs r2, 8
+ strh r2, [r5, 0x24]
+ lsrs r0, 8
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0807D886
+ movs r0, 0
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0807D886:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D88C: .4byte gUnknown_825E074
+ thumb_func_end sub_807D81C
+
+ thumb_func_start sub_807D890
+sub_807D890: @ 807D890
+ ldr r0, _0807D8B0 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807D8B4 @ =0x000006cc
+ adds r2, r1, r0
+ movs r0, 0
+ strh r0, [r2]
+ ldr r0, _0807D8B8 @ =0x000006c1
+ adds r2, r1, r0
+ movs r0, 0x3
+ strb r0, [r2]
+ ldr r0, _0807D8BC @ =0x000006c2
+ adds r1, r0
+ movs r0, 0x14
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0807D8B0: .4byte gUnknown_83C2BBC
+_0807D8B4: .4byte 0x000006cc
+_0807D8B8: .4byte 0x000006c1
+_0807D8BC: .4byte 0x000006c2
+ thumb_func_end sub_807D890
+
+ thumb_func_start sub_807D8C0
+sub_807D8C0: @ 807D8C0
+ push {lr}
+ bl sub_807D890
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807D8C0
+
+ thumb_func_start nullsub_49
+nullsub_49: @ 807D8CC
+ bx lr
+ thumb_func_end nullsub_49
+
+ thumb_func_start sub_807D8D0
+sub_807D8D0: @ 807D8D0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_807D8D0
+
+ thumb_func_start sub_807D8D4
+sub_807D8D4: @ 807D8D4
+ push {r4,r5,lr}
+ bl sub_807C900
+ ldr r0, _0807D914 @ =gUnknown_83C2BBC
+ ldr r4, [r0]
+ ldr r1, _0807D918 @ =0x0000072e
+ adds r0, r4, r1
+ ldrb r5, [r0]
+ cmp r5, 0
+ bne _0807D90C
+ ldr r0, _0807D91C @ =gUnknown_83C6870
+ bl sub_80086DC
+ movs r2, 0xE5
+ lsls r2, 3
+ adds r0, r4, r2
+ strh r5, [r0]
+ ldr r0, _0807D920 @ =gUnknown_83C6868
+ ldrb r1, [r0]
+ subs r2, 0x2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r1, _0807D924 @ =0x0000072a
+ adds r0, r4, r1
+ strh r5, [r0]
+ adds r2, 0x6
+ adds r0, r4, r2
+ strh r5, [r0]
+_0807D90C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D914: .4byte gUnknown_83C2BBC
+_0807D918: .4byte 0x0000072e
+_0807D91C: .4byte gUnknown_83C6870
+_0807D920: .4byte gUnknown_83C6868
+_0807D924: .4byte 0x0000072a
+ thumb_func_end sub_807D8D4
+
+ thumb_func_start sub_807D928
+sub_807D928: @ 807D928
+ push {r4,lr}
+ bl sub_807D8D4
+ ldr r0, _0807D950 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r2, _0807D954 @ =0x000006d2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807D948
+ adds r4, r1, r2
+_0807D93E:
+ bl sub_807D958
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0807D93E
+_0807D948:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D950: .4byte gUnknown_83C2BBC
+_0807D954: .4byte 0x000006d2
+ thumb_func_end sub_807D928
+
+ thumb_func_start sub_807D958
+sub_807D958: @ 807D958
+ push {r4-r7,lr}
+ bl sub_807C990
+ ldr r0, _0807D9B8 @ =gUnknown_83C2BBC
+ ldr r5, [r0]
+ ldr r0, _0807D9BC @ =0x00000726
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r4]
+ ldr r1, _0807D9C0 @ =0x0000ffff
+ adds r7, r1, 0
+ ldr r2, _0807D9C4 @ =gUnknown_83C6868
+ movs r1, 0xE5
+ lsls r1, 3
+ adds r3, r5, r1
+ ldrh r1, [r3]
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _0807D9B0
+ strh r6, [r4]
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ ands r0, r7
+ cmp r0, 0x7
+ bls _0807D998
+ strh r6, [r3]
+_0807D998:
+ ldr r0, _0807D9C8 @ =0x0000072a
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ bl sub_807D9E8
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ands r0, r7
+ cmp r0, 0xC
+ bls _0807D9B0
+ strh r6, [r4]
+_0807D9B0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807D9B8: .4byte gUnknown_83C2BBC
+_0807D9BC: .4byte 0x00000726
+_0807D9C0: .4byte 0x0000ffff
+_0807D9C4: .4byte gUnknown_83C6868
+_0807D9C8: .4byte 0x0000072a
+ thumb_func_end sub_807D958
+
+ thumb_func_start sub_807D9CC
+sub_807D9CC: @ 807D9CC
+ push {lr}
+ bl sub_807CA50
+ lsls r0, 24
+ cmp r0, 0
+ beq _0807D9DC
+ movs r0, 0x1
+ b _0807D9E2
+_0807D9DC:
+ bl sub_807DA70
+ movs r0, 0
+_0807D9E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807D9CC
+
+ thumb_func_start sub_807D9E8
+sub_807D9E8: @ 807D9E8
+ push {r4,lr}
+ lsls r0, 16
+ ldr r1, _0807DA58 @ =gUnknown_83C6878
+ lsrs r0, 14
+ adds r3, r0, r1
+ adds r1, 0x2
+ adds r0, r1
+ ldr r1, _0807DA5C @ =gUnknown_2021BCA
+ ldrh r2, [r0]
+ ldrh r0, [r1]
+ subs r2, r0
+ ldr r0, _0807DA60 @ =gUnknown_83C68BC
+ movs r4, 0
+ ldrsh r1, [r3, r4]
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0807DA50
+ ldr r0, _0807DA64 @ =gUnknown_202063C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r0, [r1, 0x30]
+ strh r0, [r1, 0x32]
+ ldr r0, _0807DA68 @ =gUnknown_83C2BBC
+ ldr r1, [r0]
+ ldr r0, _0807DA6C @ =0x0000072c
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_0807DA50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DA58: .4byte gUnknown_83C6878
+_0807DA5C: .4byte gUnknown_2021BCA
+_0807DA60: .4byte gUnknown_83C68BC
+_0807DA64: .4byte gUnknown_202063C
+_0807DA68: .4byte gUnknown_83C2BBC
+_0807DA6C: .4byte 0x0000072c
+ thumb_func_end sub_807D9E8
+
+ thumb_func_start sub_807DA70
+sub_807DA70: @ 807DA70
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0807DAA8 @ =gUnknown_202063C
+_0807DA76:
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r5, 0
+ adds r0, 0x14
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _0807DAAC @ =gUnknown_83C68BC
+ cmp r1, r0
+ bne _0807DA90
+ adds r0, r2, r5
+ bl sub_8007280
+_0807DA90:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3F
+ bls _0807DA76
+ ldr r0, _0807DAB0 @ =0x00001205
+ bl sub_800874C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807DAA8: .4byte gUnknown_202063C
+_0807DAAC: .4byte gUnknown_83C68BC
+_0807DAB0: .4byte 0x00001205
+ thumb_func_end sub_807DA70
+
+ thumb_func_start sub_807DAB4
+sub_807DAB4: @ 807DAB4
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ movs r2, 0
+ adds r0, 0x2
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0807DAF4
+ strh r2, [r1, 0x2E]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0807DAE6
+ ldrh r0, [r1, 0x24]
+ adds r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0807DAF4
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+ b _0807DAF4
+_0807DAE6:
+ ldrh r0, [r1, 0x24]
+ subs r0, 0x1
+ strh r0, [r1, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0807DAF4
+ strh r2, [r1, 0x30]
+_0807DAF4:
+ ldrh r0, [r1, 0x22]
+ subs r0, 0x3
+ strh r0, [r1, 0x22]
+ ldrh r0, [r1, 0x32]
+ adds r0, 0x1
+ strh r0, [r1, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x77
+ ble _0807DB0E
+ adds r0, r1, 0
+ bl sub_8007280
+_0807DB0E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_807DAB4
+
+ .align 2, 0 @ Don't pad with nop.