summaryrefslogtreecommitdiff
path: root/asm/battle_transition.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/battle_transition.s
first commit
Diffstat (limited to 'asm/battle_transition.s')
-rw-r--r--asm/battle_transition.s7480
1 files changed, 7480 insertions, 0 deletions
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
new file mode 100644
index 000000000..e1efd07cb
--- /dev/null
+++ b/asm/battle_transition.s
@@ -0,0 +1,7480 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80D08B8
+sub_80D08B8: @ 80D08B8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _080D08DC @ =gUnknown_2039A2C
+ movs r0, 0x3C
+ bl sub_8002BB0
+ str r0, [r5]
+ ldr r1, _080D08E0 @ =gUnknown_30030F0
+ ldr r0, _080D08E4 @ =sub_80565A8
+ str r0, [r1, 0x4]
+ adds r0, r4, 0
+ bl sub_80D0948
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D08DC: .4byte gUnknown_2039A2C
+_080D08E0: .4byte gUnknown_30030F0
+_080D08E4: .4byte sub_80565A8
+ thumb_func_end sub_80D08B8
+
+ thumb_func_start sub_80D08E8
+sub_80D08E8: @ 80D08E8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80D0948
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D08E8
+
+ thumb_func_start sub_80D08F8
+sub_80D08F8: @ 80D08F8
+ push {r4,r5,lr}
+ ldr r0, _080D091C @ =sub_80D0978
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _080D0920 @ =gUnknown_3005090
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080D0924
+ movs r0, 0
+ b _080D093C
+ .align 2, 0
+_080D091C: .4byte sub_80D0978
+_080D0920: .4byte gUnknown_3005090
+_080D0924:
+ bl sub_80D3DD0
+ ldr r4, _080D0944 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ bl sub_8002BC4
+ movs r0, 0
+ str r0, [r4]
+ adds r0, r5, 0
+ bl sub_8077508
+ movs r0, 0x1
+_080D093C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0944: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D08F8
+
+ thumb_func_start sub_80D0948
+sub_80D0948: @ 80D0948
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _080D0970 @ =sub_80D0978
+ movs r1, 0x2
+ bl sub_807741C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D0974 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0970: .4byte sub_80D0978
+_080D0974: .4byte gUnknown_3005090
+ thumb_func_end sub_80D0948
+
+ thumb_func_start sub_80D0978
+sub_80D0978: @ 80D0978
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D09A8 @ =gUnknown_83FA3B0
+ ldr r2, _080D09AC @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D098A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D098A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D09A8: .4byte gUnknown_83FA3B0
+_080D09AC: .4byte gUnknown_3005090
+ thumb_func_end sub_80D0978
+
+ thumb_func_start sub_80D09B0
+sub_80D09B0: @ 80D09B0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807B05C
+ ldr r0, _080D09DC @ =gUnknown_20375F8
+ ldr r1, _080D09E0 @ =gUnknown_20371F8
+ ldr r2, _080D09E4 @ =0x04000100
+ bl CpuSet
+ ldr r1, _080D09E8 @ =gUnknown_83FA320
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080D09EC
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _080D09FA
+ .align 2, 0
+_080D09DC: .4byte gUnknown_20375F8
+_080D09E0: .4byte gUnknown_20371F8
+_080D09E4: .4byte 0x04000100
+_080D09E8: .4byte gUnknown_83FA320
+_080D09EC:
+ movs r1, 0x4
+ bl sub_807741C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+_080D09FA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D09B0
+
+ thumb_func_start sub_80D0A00
+sub_80D0A00: @ 80D0A00
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D0A20 @ =gUnknown_83FA320
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080D0A24
+ movs r0, 0
+ b _080D0A2C
+ .align 2, 0
+_080D0A20: .4byte gUnknown_83FA320
+_080D0A24:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+_080D0A2C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0A00
+
+ thumb_func_start sub_80D0A34
+sub_80D0A34: @ 80D0A34
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D0A58 @ =gUnknown_83FA368
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl sub_807741C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0A58: .4byte gUnknown_83FA368
+ thumb_func_end sub_80D0A34
+
+ thumb_func_start sub_80D0A5C
+sub_80D0A5C: @ 80D0A5C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _080D0A88 @ =gUnknown_83FA368
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080D0A80
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+_080D0A80:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0A88: .4byte gUnknown_83FA368
+ thumb_func_end sub_80D0A5C
+
+ thumb_func_start sub_80D0A8C
+sub_80D0A8C: @ 80D0A8C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _080D0AC0 @ =gUnknown_3005090
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _080D0AC4
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl sub_80D3C40
+ b _080D0AD4
+ .align 2, 0
+_080D0AC0: .4byte gUnknown_3005090
+_080D0AC4:
+ bl sub_80D3CA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D0AD4
+ adds r0, r4, 0
+ bl sub_8077508
+_080D0AD4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D0A8C
+
+ thumb_func_start sub_80D0ADC
+sub_80D0ADC: @ 80D0ADC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D0B0C @ =gUnknown_83FA3C0
+ ldr r2, _080D0B10 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D0AEE:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0AEE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0B0C: .4byte gUnknown_83FA3C0
+_080D0B10: .4byte gUnknown_3005090
+ thumb_func_end sub_80D0ADC
+
+ thumb_func_start sub_80D0B14
+sub_80D0B14: @ 80D0B14
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x4C
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0xA
+ movs r1, 0x40
+ bl sub_8000AF4
+ movs r0, 0xC
+ movs r1, 0x40
+ bl sub_8000AF4
+ movs r0, 0xE
+ movs r1, 0x40
+ bl sub_8000AF4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0B14
+
+ thumb_func_start sub_80D0B48
+sub_80D0B48: @ 80D0B48
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ cmp r2, 0
+ beq _080D0B5E
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _080D0B9E
+_080D0B5E:
+ movs r0, 0x2
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _080D0B80
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+_080D0B80:
+ ldrh r1, [r4, 0xC]
+ movs r0, 0xF
+ ands r0, r1
+ lsls r1, r0, 4
+ orrs r1, r0
+ movs r0, 0x4C
+ bl sub_8000A38
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xE
+ ble _080D0B9E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D0B9E:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D0B48
+
+ thumb_func_start sub_80D0BA8
+sub_80D0BA8: @ 80D0BA8
+ push {lr}
+ ldr r0, _080D0BCC @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080D0BC4
+ ldr r0, _080D0BD0 @ =sub_80D0ADC
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D0BC4:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0BCC: .4byte gUnknown_2037AB8
+_080D0BD0: .4byte sub_80D0ADC
+ thumb_func_end sub_80D0BA8
+
+ thumb_func_start sub_80D0BD4
+sub_80D0BD4: @ 80D0BD4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D0C04 @ =gUnknown_83FA3CC
+ ldr r2, _080D0C08 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D0BE6:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0BE6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0C04: .4byte gUnknown_83FA3CC
+_080D0C08: .4byte gUnknown_3005090
+ thumb_func_end sub_80D0BD4
+
+ thumb_func_start sub_80D0C0C
+sub_80D0C0C: @ 80D0C0C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ ldr r0, _080D0C68 @ =gUnknown_2038E80
+ ldr r1, _080D0C6C @ =gUnknown_2039A2C
+ ldr r1, [r1]
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ str r4, [sp]
+ movs r2, 0xA0
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_80D3E74
+ ldr r0, _080D0C70 @ =sub_80D0CF0
+ bl sub_80006F4
+ ldr r0, _080D0C74 @ =sub_80D0D28
+ bl sub_8000700
+ movs r0, 0x3
+ bl sub_8000B68
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0C68: .4byte gUnknown_2038E80
+_080D0C6C: .4byte gUnknown_2039A2C
+_080D0C70: .4byte sub_80D0CF0
+_080D0C74: .4byte sub_80D0D28
+ thumb_func_end sub_80D0C0C
+
+ thumb_func_start sub_80D0C78
+sub_80D0C78: @ 80D0C78
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _080D0CE0 @ =gUnknown_2039A2C
+ ldr r2, [r4]
+ ldrb r1, [r2]
+ movs r1, 0
+ strb r1, [r2]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x4
+ strh r1, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ adds r1, 0x8
+ strh r1, [r0, 0xC]
+ ldr r3, _080D0CE4 @ =gUnknown_2038700
+ ldr r1, [r4]
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ movs r5, 0xA
+ ldrsh r2, [r0, r5]
+ movs r5, 0xC
+ ldrsh r0, [r0, r5]
+ str r0, [sp]
+ movs r0, 0xA0
+ str r0, [sp, 0x4]
+ adds r0, r3, 0
+ movs r3, 0x2
+ bl sub_80D3E74
+ ldr r0, _080D0CE8 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080D0CCA
+ ldr r0, _080D0CEC @ =sub_80D0BD4
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D0CCA:
+ ldr r0, [r4]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0CE0: .4byte gUnknown_2039A2C
+_080D0CE4: .4byte gUnknown_2038700
+_080D0CE8: .4byte gUnknown_2037AB8
+_080D0CEC: .4byte sub_80D0BD4
+ thumb_func_end sub_80D0C78
+
+ thumb_func_start sub_80D0CF0
+sub_80D0CF0: @ 80D0CF0
+ push {lr}
+ bl sub_80D3DF4
+ ldr r0, _080D0D18 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D0D14
+ ldr r1, _080D0D1C @ =0x040000d4
+ ldr r0, _080D0D20 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D0D24 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D0D14:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0D18: .4byte gUnknown_2039A2C
+_080D0D1C: .4byte 0x040000d4
+_080D0D20: .4byte gUnknown_2038700
+_080D0D24: .4byte 0x800000a0
+ thumb_func_end sub_80D0CF0
+
+ thumb_func_start sub_80D0D28
+sub_80D0D28: @ 80D0D28
+ ldr r1, _080D0D48 @ =gUnknown_2038700
+ ldr r0, _080D0D4C @ =0x04000006
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _080D0D50 @ =0x04000014
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080D0D48: .4byte gUnknown_2038700
+_080D0D4C: .4byte 0x04000006
+_080D0D50: .4byte 0x04000014
+ thumb_func_end sub_80D0D28
+
+ thumb_func_start sub_80D0D54
+sub_80D0D54: @ 80D0D54
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D0D84 @ =gUnknown_83FA3D4
+ ldr r2, _080D0D88 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D0D66:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0D66
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0D84: .4byte gUnknown_83FA3D4
+_080D0D88: .4byte gUnknown_3005090
+ thumb_func_end sub_80D0D54
+
+ thumb_func_start sub_80D0D8C
+sub_80D0D8C: @ 80D0D8C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ ldr r0, _080D0DE0 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldr r0, _080D0DE4 @ =gUnknown_2038E80
+ movs r2, 0x16
+ ldrsh r1, [r1, r2]
+ movs r2, 0xA0
+ lsls r2, 1
+ bl memset
+ ldr r0, _080D0DE8 @ =sub_80D0E80
+ bl sub_80006F4
+ ldr r0, _080D0DEC @ =sub_80D0EB8
+ bl sub_8000700
+ movs r0, 0x3
+ bl sub_8000B68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0DE0: .4byte gUnknown_2039A2C
+_080D0DE4: .4byte gUnknown_2038E80
+_080D0DE8: .4byte sub_80D0E80
+_080D0DEC: .4byte sub_80D0EB8
+ thumb_func_end sub_80D0D8C
+
+ thumb_func_start sub_80D0DF0
+sub_80D0DF0: @ 80D0DF0
+ push {r4-r7,lr}
+ ldr r1, _080D0E70 @ =gUnknown_2039A2C
+ ldr r2, [r1]
+ ldrb r1, [r2]
+ movs r1, 0
+ strb r1, [r2]
+ ldrh r4, [r0, 0xA]
+ ldrh r2, [r0, 0xC]
+ lsls r3, r2, 16
+ asrs r3, 24
+ movs r5, 0x84
+ lsls r5, 5
+ adds r1, r4, r5
+ strh r1, [r0, 0xA]
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r2, r1
+ strh r2, [r0, 0xC]
+ movs r5, 0
+ lsls r7, r3, 16
+_080D0E18:
+ lsrs r0, r4, 8
+ asrs r1, r7, 16
+ bl sub_8044E30
+ ldr r1, _080D0E74 @ =gUnknown_2038700
+ lsls r2, r5, 1
+ adds r2, r1
+ ldr r6, _080D0E70 @ =gUnknown_2039A2C
+ ldr r1, [r6]
+ ldrh r1, [r1, 0x16]
+ adds r0, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x84
+ lsls r1, 5
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x9F
+ bls _080D0E18
+ ldr r0, _080D0E78 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080D0E5E
+ ldr r0, _080D0E7C @ =sub_80D0D54
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D0E5E:
+ ldr r0, [r6]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0E70: .4byte gUnknown_2039A2C
+_080D0E74: .4byte gUnknown_2038700
+_080D0E78: .4byte gUnknown_2037AB8
+_080D0E7C: .4byte sub_80D0D54
+ thumb_func_end sub_80D0DF0
+
+ thumb_func_start sub_80D0E80
+sub_80D0E80: @ 80D0E80
+ push {lr}
+ bl sub_80D3DF4
+ ldr r0, _080D0EA8 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D0EA4
+ ldr r1, _080D0EAC @ =0x040000d4
+ ldr r0, _080D0EB0 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D0EB4 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D0EA4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0EA8: .4byte gUnknown_2039A2C
+_080D0EAC: .4byte 0x040000d4
+_080D0EB0: .4byte gUnknown_2038700
+_080D0EB4: .4byte 0x800000a0
+ thumb_func_end sub_80D0E80
+
+ thumb_func_start sub_80D0EB8
+sub_80D0EB8: @ 80D0EB8
+ ldr r1, _080D0ED8 @ =gUnknown_2038700
+ ldr r0, _080D0EDC @ =0x04000006
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _080D0EE0 @ =0x04000016
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080D0ED8: .4byte gUnknown_2038700
+_080D0EDC: .4byte 0x04000006
+_080D0EE0: .4byte 0x04000016
+ thumb_func_end sub_80D0EB8
+
+ thumb_func_start sub_80D0EE4
+sub_80D0EE4: @ 80D0EE4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D0F14 @ =gUnknown_83FA3DC
+ ldr r2, _080D0F18 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D0EF6:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D0EF6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D0F14: .4byte gUnknown_83FA3DC
+_080D0F18: .4byte gUnknown_3005090
+ thumb_func_end sub_80D0EE4
+
+ thumb_func_start sub_80D0F1C
+sub_80D0F1C: @ 80D0F1C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ movs r1, 0
+ movs r0, 0x10
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ strh r1, [r4, 0x10]
+ movs r0, 0x80
+ lsls r0, 7
+ strh r0, [r4, 0x12]
+ ldr r0, _080D0FB8 @ =gUnknown_2039A2C
+ ldr r2, [r0]
+ movs r0, 0x3F
+ strh r0, [r2, 0x2]
+ strh r1, [r2, 0x4]
+ movs r0, 0xF0
+ strh r0, [r2, 0x6]
+ movs r0, 0xA0
+ strh r0, [r2, 0x8]
+ ldr r0, _080D0FBC @ =0x00003f41
+ strh r0, [r2, 0xE]
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ ldrh r1, [r4, 0xC]
+ orrs r0, r1
+ strh r0, [r2, 0x10]
+ movs r1, 0
+ add r5, sp, 0x4
+ add r6, sp, 0x8
+ ldr r3, _080D0FC0 @ =gUnknown_2038E80
+ movs r2, 0xF0
+_080D0F64:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _080D0F64
+ ldr r0, _080D0FC4 @ =sub_80D1370
+ bl sub_80006F4
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80D3E28
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [sp, 0x4]
+ ldr r2, _080D0FC8 @ =0x01000400
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _080D0FCC @ =gUnknown_83F87A0
+ ldr r1, [sp, 0x8]
+ movs r2, 0xB0
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _080D0FD0 @ =gUnknown_83FA638
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D0FB8: .4byte gUnknown_2039A2C
+_080D0FBC: .4byte 0x00003f41
+_080D0FC0: .4byte gUnknown_2038E80
+_080D0FC4: .4byte sub_80D1370
+_080D0FC8: .4byte 0x01000400
+_080D0FCC: .4byte gUnknown_83F87A0
+_080D0FD0: .4byte gUnknown_83FA638
+ thumb_func_end sub_80D0F1C
+
+ thumb_func_start sub_80D0FD4
+sub_80D0FD4: @ 80D0FD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldr r5, _080D105C @ =gUnknown_83FA784
+ add r1, sp, 0xC
+ add r0, sp, 0x8
+ bl sub_80D3E28
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ mov r9, r0
+ ldr r6, _080D1060 @ =gUnknown_2038700
+ mov r8, r6
+ movs r0, 0xF0
+ lsls r0, 8
+ mov r12, r0
+_080D0FFA:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_080D1000:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r0, [r5]
+ mov r6, r12
+ orrs r0, r6
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r5, 0x2
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1D
+ ble _080D1000
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D0FFA
+ movs r6, 0x10
+ ldrsh r2, [r7, r6]
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ str r0, [sp]
+ movs r0, 0xA0
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_80D3E74
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ movs r0, 0x1
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D105C: .4byte gUnknown_83FA784
+_080D1060: .4byte gUnknown_2038700
+ thumb_func_end sub_80D0FD4
+
+ thumb_func_start sub_80D1064
+sub_80D1064: @ 80D1064
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ ldr r2, _080D10EC @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r1, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _080D108A
+ subs r0, r1, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D1094
+_080D108A:
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+_080D1094:
+ ldr r2, [r4]
+ ldrh r0, [r3, 0xA]
+ lsls r0, 8
+ ldrh r1, [r3, 0xC]
+ orrs r0, r1
+ strh r0, [r2, 0x10]
+ movs r5, 0xC
+ ldrsh r0, [r3, r5]
+ cmp r0, 0xF
+ ble _080D10AE
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_080D10AE:
+ ldrh r0, [r3, 0x10]
+ adds r0, 0xC
+ strh r0, [r3, 0x10]
+ ldr r0, _080D10F0 @ =0xfffffe80
+ adds r1, r0, 0
+ ldrh r5, [r3, 0x12]
+ adds r1, r5
+ strh r1, [r3, 0x12]
+ ldr r0, _080D10F4 @ =gUnknown_2038700
+ movs r5, 0x10
+ ldrsh r2, [r3, r5]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r1, 0xA0
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_80D3E74
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D10EC: .4byte gUnknown_2039A2C
+_080D10F0: .4byte 0xfffffe80
+_080D10F4: .4byte gUnknown_2038700
+ thumb_func_end sub_80D1064
+
+ thumb_func_start sub_80D10F8
+sub_80D10F8: @ 80D10F8
+ push {r4,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ ldr r2, _080D1158 @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r1, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _080D111C
+ subs r0, r1, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D1126
+_080D111C:
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_080D1126:
+ ldr r2, [r2]
+ ldrh r0, [r3, 0xA]
+ lsls r0, 8
+ ldrh r1, [r3, 0xC]
+ orrs r0, r1
+ strh r0, [r2, 0x10]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _080D1140
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_080D1140:
+ ldrh r1, [r3, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ ble _080D1160
+ ldrh r0, [r3, 0x10]
+ adds r0, 0xC
+ strh r0, [r3, 0x10]
+ ldr r4, _080D115C @ =0xfffffe80
+ adds r0, r1, r4
+ b _080D1162
+ .align 2, 0
+_080D1158: .4byte gUnknown_2039A2C
+_080D115C: .4byte 0xfffffe80
+_080D1160:
+ movs r0, 0
+_080D1162:
+ strh r0, [r3, 0x12]
+ ldr r0, _080D1194 @ =gUnknown_2038700
+ movs r1, 0x10
+ ldrsh r2, [r3, r1]
+ ldrh r1, [r3, 0x12]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r1, 0xA0
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_80D3E74
+ ldr r0, _080D1198 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1194: .4byte gUnknown_2038700
+_080D1198: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D10F8
+
+ thumb_func_start sub_80D119C
+sub_80D119C: @ 80D119C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, _080D11C4 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ movs r2, 0
+ strb r2, [r0]
+ ldrh r1, [r4, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ ble _080D11CC
+ ldrh r0, [r4, 0x10]
+ adds r0, 0xC
+ strh r0, [r4, 0x10]
+ ldr r2, _080D11C8 @ =0xfffffe80
+ adds r0, r1, r2
+ strh r0, [r4, 0x12]
+ b _080D11CE
+ .align 2, 0
+_080D11C4: .4byte gUnknown_2039A2C
+_080D11C8: .4byte 0xfffffe80
+_080D11CC:
+ strh r2, [r4, 0x12]
+_080D11CE:
+ ldr r0, _080D1218 @ =gUnknown_2038700
+ movs r3, 0x10
+ ldrsh r2, [r4, r3]
+ ldrh r1, [r4, 0x12]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r5, 0xA0
+ str r5, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_80D3E74
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _080D1202
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xC]
+ strh r1, [r4, 0xE]
+_080D1202:
+ ldr r0, _080D121C @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1218: .4byte gUnknown_2038700
+_080D121C: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D119C
+
+ thumb_func_start sub_80D1220
+sub_80D1220: @ 80D1220
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D12C4 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrb r1, [r0]
+ movs r3, 0
+ strb r3, [r0]
+ ldrh r2, [r4, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ ldr r0, _080D12C8 @ =0x000007ff
+ cmp r1, r0
+ bgt _080D1242
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r2, r1
+ strh r0, [r4, 0xC]
+_080D1242:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D125E
+ ldrh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 24
+ subs r0, r1, r0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D125E
+ strh r3, [r4, 0xA]
+_080D125E:
+ ldr r0, _080D12CC @ =gUnknown_2038700
+ movs r1, 0xA
+ ldrsh r3, [r4, r1]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_80D3EF0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D129A
+ ldr r1, _080D12D0 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D12D4 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D12D8 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3E60
+ ldr r0, _080D12DC @ =sub_80D0EE4
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D129A:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080D12AE
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ ldr r0, _080D12E0 @ =sub_80D139C
+ bl sub_80006F4
+_080D12AE:
+ ldr r0, _080D12C4 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D12C4: .4byte gUnknown_2039A2C
+_080D12C8: .4byte 0x000007ff
+_080D12CC: .4byte gUnknown_2038700
+_080D12D0: .4byte 0x040000b0
+_080D12D4: .4byte 0x0000c5ff
+_080D12D8: .4byte 0x00007fff
+_080D12DC: .4byte sub_80D0EE4
+_080D12E0: .4byte sub_80D139C
+ thumb_func_end sub_80D1220
+
+ thumb_func_start sub_80D12E4
+sub_80D12E4: @ 80D12E4
+ push {r4,lr}
+ ldr r1, _080D1354 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D1358 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D135C @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3DF4
+ ldr r4, _080D1360 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D131C
+ ldr r1, _080D1364 @ =0x040000d4
+ ldr r0, _080D1368 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D136C @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D131C:
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x50
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x10]
+ movs r0, 0x52
+ bl sub_8000A38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1354: .4byte 0x040000b0
+_080D1358: .4byte 0x0000c5ff
+_080D135C: .4byte 0x00007fff
+_080D1360: .4byte gUnknown_2039A2C
+_080D1364: .4byte 0x040000d4
+_080D1368: .4byte gUnknown_2038700
+_080D136C: .4byte 0x800000a0
+ thumb_func_end sub_80D12E4
+
+ thumb_func_start sub_80D1370
+sub_80D1370: @ 80D1370
+ push {lr}
+ bl sub_80D12E4
+ ldr r1, _080D138C @ =0x040000b0
+ ldr r0, _080D1390 @ =gUnknown_2038E80
+ str r0, [r1]
+ ldr r0, _080D1394 @ =0x04000010
+ str r0, [r1, 0x4]
+ ldr r0, _080D1398 @ =0xa2400001
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D138C: .4byte 0x040000b0
+_080D1390: .4byte gUnknown_2038E80
+_080D1394: .4byte 0x04000010
+_080D1398: .4byte 0xa2400001
+ thumb_func_end sub_80D1370
+
+ thumb_func_start sub_80D139C
+sub_80D139C: @ 80D139C
+ push {lr}
+ bl sub_80D12E4
+ ldr r1, _080D13B8 @ =0x040000b0
+ ldr r0, _080D13BC @ =gUnknown_2038E80
+ str r0, [r1]
+ ldr r0, _080D13C0 @ =0x04000040
+ str r0, [r1, 0x4]
+ ldr r0, _080D13C4 @ =0xa2400001
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D13B8: .4byte 0x040000b0
+_080D13BC: .4byte gUnknown_2038E80
+_080D13C0: .4byte 0x04000040
+_080D13C4: .4byte 0xa2400001
+ thumb_func_end sub_80D139C
+
+ thumb_func_start sub_80D13C8
+sub_80D13C8: @ 80D13C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D13F8 @ =gUnknown_83FA3F4
+ ldr r2, _080D13FC @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D13DA:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D13DA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D13F8: .4byte gUnknown_83FA3F4
+_080D13FC: .4byte gUnknown_3005090
+ thumb_func_end sub_80D13C8
+
+ thumb_func_start sub_80D1400
+sub_80D1400: @ 80D1400
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r0, sp, 0x4
+ add r1, sp, 0x8
+ bl sub_80D3E28
+ ldr r0, _080D1440 @ =gUnknown_83F8D20
+ ldr r1, [sp, 0x8]
+ movs r2, 0x20
+ bl CpuSet
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, _080D1444 @ =0x05000200
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _080D1448 @ =gUnknown_83FA638
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1440: .4byte gUnknown_83F8D20
+_080D1444: .4byte 0x05000200
+_080D1448: .4byte gUnknown_83FA638
+ thumb_func_end sub_80D1400
+
+ thumb_func_start sub_80D144C
+sub_80D144C: @ 80D144C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldr r1, _080D14CC @ =gUnknown_83FA400
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0x4
+ ldr r1, _080D14D0 @ =gUnknown_83FA404
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ bl sub_8044EC8
+ movs r5, 0x1
+ ands r5, r0
+ movs r1, 0
+ mov r8, r4
+ ldr r6, _080D14D4 @ =gUnknown_20386E0
+_080D147A:
+ lsls r5, 16
+ asrs r5, 16
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r6]
+ lsls r4, r1, 16
+ asrs r4, 16
+ lsls r0, r4, 5
+ adds r0, 0x10
+ str r0, [r6, 0x4]
+ str r5, [r6, 0x8]
+ lsls r0, r4, 1
+ add r0, r8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ str r0, [r6, 0xC]
+ movs r0, 0x2D
+ bl sub_8083444
+ adds r4, 0x1
+ lsls r4, 16
+ movs r0, 0x1
+ eors r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsrs r1, r4, 16
+ asrs r4, 16
+ cmp r4, 0x4
+ ble _080D147A
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D14CC: .4byte gUnknown_83FA400
+_080D14D0: .4byte gUnknown_83FA404
+_080D14D4: .4byte gUnknown_20386E0
+ thumb_func_end sub_80D144C
+
+ thumb_func_start sub_80D14D8
+sub_80D14D8: @ 80D14D8
+ push {lr}
+ movs r0, 0x2D
+ bl sub_808382C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D14F8
+ bl sub_80D3E60
+ ldr r0, _080D1500 @ =sub_80D13C8
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D14F8:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1500: .4byte sub_80D13C8
+ thumb_func_end sub_80D14D8
+
+ thumb_func_start sub_80D1504
+sub_80D1504: @ 80D1504
+ push {r4,r5,lr}
+ ldr r0, _080D1560 @ =gUnknown_83FA5CC
+ ldr r5, _080D1564 @ =gUnknown_20386E0
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r3, 0x4
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl sub_8006FE0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080D1568 @ =gUnknown_202063C
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5, 0xC]
+ strh r0, [r4, 0x30]
+ ldr r0, _080D156C @ =0x0000ffff
+ strh r0, [r4, 0x32]
+ adds r0, r4, 0
+ bl sub_800860C
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl sub_800843C
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1560: .4byte gUnknown_83FA5CC
+_080D1564: .4byte gUnknown_20386E0
+_080D1568: .4byte gUnknown_202063C
+_080D156C: .4byte 0x0000ffff
+ thumb_func_end sub_80D1504
+
+ thumb_func_start sub_80D1570
+sub_80D1570: @ 80D1570
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _080D1590 @ =gUnknown_83FA40E
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D1594
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _080D162A
+ .align 2, 0
+_080D1590: .4byte gUnknown_83FA40E
+_080D1594:
+ ldrh r0, [r4, 0x20]
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r0, 0xF0
+ bhi _080D1606
+ asrs r0, r1, 19
+ lsls r0, 16
+ ldrh r1, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsrs r1, r0, 16
+ asrs r5, r0, 16
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r5, r0
+ beq _080D1606
+ strh r1, [r4, 0x32]
+ movs r0, 0x8
+ bl sub_8000AC4
+ lsls r0, 16
+ lsrs r0, 24
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ lsls r2, r6, 16
+ asrs r2, 16
+ subs r1, r2, 0x2
+ lsls r1, 5
+ adds r1, r5
+ lsls r1, 1
+ adds r1, r0
+ ldr r6, _080D1634 @ =0x0000f001
+ adds r3, r6, 0
+ strh r3, [r1]
+ subs r1, r2, 0x1
+ lsls r1, 5
+ adds r1, r5
+ lsls r1, 1
+ adds r1, r0
+ strh r3, [r1]
+ lsls r1, r2, 5
+ adds r1, r5
+ lsls r1, 1
+ adds r1, r0
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 5
+ adds r2, r5
+ lsls r2, 1
+ adds r2, r0
+ strh r3, [r2]
+_080D1606:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bls _080D162A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl sub_80836D8
+_080D162A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1634: .4byte 0x0000f001
+ thumb_func_end sub_80D1570
+
+ thumb_func_start sub_80D1638
+sub_80D1638: @ 80D1638
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D1668 @ =gUnknown_83FA414
+ ldr r2, _080D166C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D164A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D164A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1668: .4byte gUnknown_83FA414
+_080D166C: .4byte gUnknown_3005090
+ thumb_func_end sub_80D1638
+
+ thumb_func_start sub_80D1670
+sub_80D1670: @ 80D1670
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ ldr r0, _080D16C4 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r0, 0
+ strh r0, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ ldr r0, _080D16C8 @ =0x0000f0f1
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _080D16CC @ =gUnknown_2038E80
+ ldr r2, _080D16D0 @ =0x0000f3f4
+_080D1696:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _080D1696
+ ldr r0, _080D16D4 @ =sub_80D1ABC
+ bl sub_80006F4
+ ldr r0, _080D16C4 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r0, 0x78
+ strh r0, [r1, 0x2C]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D16C4: .4byte gUnknown_2039A2C
+_080D16C8: .4byte 0x0000f0f1
+_080D16CC: .4byte gUnknown_2038E80
+_080D16D0: .4byte 0x0000f3f4
+_080D16D4: .4byte sub_80D1ABC
+ thumb_func_end sub_80D1670
+
+ thumb_func_start sub_80D16D8
+sub_80D16D8: @ 80D16D8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r2, _080D1760 @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x24
+ movs r2, 0x2C
+ ldrsh r3, [r1, r2]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_80D4088
+ ldr r5, _080D1764 @ =gUnknown_2038700
+_080D1708:
+ ldr r4, _080D1760 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ movs r7, 0x2A
+ ldrsh r3, [r0, r7]
+ lsls r3, 1
+ adds r3, r5
+ ldrh r1, [r0, 0x28]
+ adds r1, 0x1
+ movs r7, 0xF0
+ lsls r7, 7
+ adds r2, r7, 0
+ orrs r1, r2
+ strh r1, [r3]
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_80D4104
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1708
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x2C]
+ adds r0, 0x20
+ strh r0, [r1, 0x2C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xEF
+ ble _080D174C
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_080D174C:
+ ldr r0, [r4]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1760: .4byte gUnknown_2039A2C
+_080D1764: .4byte gUnknown_2038700
+ thumb_func_end sub_80D16D8
+
+ thumb_func_start sub_80D1768
+sub_80D1768: @ 80D1768
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ mov r8, r0
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _080D17EC @ =gUnknown_2039A2C
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x24
+ movs r2, 0x2E
+ ldrsh r1, [r1, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0xF0
+ bl sub_80D4088
+ mov r9, r4
+ mov r7, r9
+ add r5, sp, 0xC
+_080D17A6:
+ movs r1, 0x78
+ ldr r3, [r7]
+ ldrh r0, [r3, 0x28]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r2, 0x2E
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x4F
+ ble _080D17BE
+ ldrh r1, [r3, 0x28]
+ movs r4, 0xF0
+_080D17BE:
+ ldr r6, _080D17F0 @ =gUnknown_2038700
+ movs r0, 0x2A
+ ldrsh r2, [r3, r0]
+ lsls r2, 1
+ adds r2, r6
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ orrs r4, r1
+ strh r4, [r2]
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080D17F4
+ adds r0, r3, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_80D4104
+ strb r0, [r5]
+ b _080D17A6
+ .align 2, 0
+_080D17EC: .4byte gUnknown_2039A2C
+_080D17F0: .4byte gUnknown_2038700
+_080D17F4:
+ ldr r1, [r7]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x10
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0x9F
+ ble _080D1812
+ movs r0, 0xF0
+ strh r0, [r1, 0x2C]
+ mov r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080D183A
+_080D1812:
+ movs r3, 0x2A
+ ldrsh r0, [r1, r3]
+ cmp r0, r2
+ bge _080D183A
+ adds r3, r4, 0
+ ldr r5, _080D1858 @ =gUnknown_2039A2C
+_080D181E:
+ ldr r2, [r5]
+ ldrh r0, [r2, 0x2A]
+ adds r0, 0x1
+ strh r0, [r2, 0x2A]
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r6
+ strh r3, [r0]
+ movs r4, 0x2A
+ ldrsh r1, [r2, r4]
+ movs r4, 0x2E
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ blt _080D181E
+_080D183A:
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1858: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D1768
+
+ thumb_func_start sub_80D185C
+sub_80D185C: @ 80D185C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r2, _080D18DC @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, [r2]
+ adds r0, r1, 0
+ adds r0, 0x24
+ movs r2, 0x2C
+ ldrsh r3, [r1, r2]
+ movs r1, 0xA0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_80D4088
+ ldr r5, _080D18E0 @ =gUnknown_2038700
+_080D188A:
+ ldr r4, _080D18DC @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ movs r1, 0x2A
+ ldrsh r3, [r0, r1]
+ lsls r3, 1
+ adds r3, r5
+ ldrh r1, [r0, 0x28]
+ lsls r1, 8
+ movs r2, 0xF0
+ orrs r1, r2
+ strh r1, [r3]
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_80D4104
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D188A
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x2C]
+ subs r0, 0x20
+ strh r0, [r1, 0x2C]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _080D18C8
+ movs r0, 0xA0
+ strh r0, [r1, 0x2E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_080D18C8:
+ ldr r0, [r4]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D18DC: .4byte gUnknown_2039A2C
+_080D18E0: .4byte gUnknown_2038700
+ thumb_func_end sub_80D185C
+
+ thumb_func_start sub_80D18E4
+sub_80D18E4: @ 80D18E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r9, r0
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _080D196C @ =gUnknown_2039A2C
+ ldr r1, [r4]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x24
+ movs r2, 0x2E
+ ldrsh r1, [r1, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl sub_80D4088
+ ldr r7, _080D1970 @ =gUnknown_2038700
+ mov r10, r7
+ ldr r0, _080D196C @ =gUnknown_2039A2C
+ mov r8, r0
+ add r6, sp, 0xC
+_080D1928:
+ mov r1, r8
+ ldr r4, [r1]
+ movs r2, 0x2A
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ mov r7, r10
+ adds r5, r0, r7
+ ldrb r1, [r5]
+ ldrh r2, [r4, 0x28]
+ adds r3, r2, 0
+ movs r7, 0x2E
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x50
+ bgt _080D1948
+ movs r2, 0x78
+ adds r1, r3, 0
+_080D1948:
+ lsls r0, r2, 16
+ asrs r0, 8
+ lsls r1, 16
+ asrs r1, 16
+ orrs r1, r0
+ movs r7, 0
+ strh r1, [r5]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _080D1974
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_80D4104
+ strb r0, [r6]
+ b _080D1928
+ .align 2, 0
+_080D196C: .4byte gUnknown_2039A2C
+_080D1970: .4byte gUnknown_2038700
+_080D1974:
+ mov r0, r8
+ ldr r2, [r0]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x10
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r3, r0, 16
+ cmp r3, 0
+ bgt _080D1992
+ strh r7, [r2, 0x2C]
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _080D19BC
+_080D1992:
+ movs r4, 0x2A
+ ldrsh r0, [r2, r4]
+ cmp r0, r3
+ ble _080D19BC
+ ldr r6, _080D19DC @ =gUnknown_2038700
+ adds r3, r1, 0
+ ldr r5, _080D19E0 @ =gUnknown_2039A2C
+_080D19A0:
+ ldr r2, [r5]
+ ldrh r0, [r2, 0x2A]
+ subs r0, 0x1
+ strh r0, [r2, 0x2A]
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r6
+ strh r3, [r0]
+ movs r7, 0x2A
+ ldrsh r1, [r2, r7]
+ movs r4, 0x2E
+ ldrsh r0, [r2, r4]
+ cmp r1, r0
+ bgt _080D19A0
+_080D19BC:
+ ldr r7, _080D19E0 @ =gUnknown_2039A2C
+ ldr r0, [r7]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D19DC: .4byte gUnknown_2038700
+_080D19E0: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D18E4
+
+ thumb_func_start sub_80D19E4
+sub_80D19E4: @ 80D19E4
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r0, 0
+ ldr r1, _080D1A74 @ =gUnknown_2039A2C
+ ldr r0, [r1]
+ ldrb r2, [r0]
+ movs r2, 0
+ strb r2, [r0]
+ ldr r1, [r1]
+ adds r0, r1, 0
+ adds r0, 0x24
+ movs r4, 0x2C
+ ldrsh r3, [r1, r4]
+ str r2, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_80D4088
+ ldr r6, _080D1A78 @ =gUnknown_2038700
+_080D1A10:
+ movs r2, 0x78
+ ldr r5, _080D1A74 @ =gUnknown_2039A2C
+ ldr r3, [r5]
+ ldrh r4, [r3, 0x28]
+ movs r1, 0x28
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x77
+ ble _080D1A24
+ movs r2, 0
+ movs r4, 0xF0
+_080D1A24:
+ movs r0, 0x2A
+ ldrsh r1, [r3, r0]
+ lsls r1, 1
+ adds r1, r6
+ lsls r2, 8
+ lsls r0, r4, 16
+ asrs r0, 16
+ orrs r0, r2
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_80D4104
+ lsls r0, 24
+ cmp r0, 0
+ beq _080D1A10
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x2C]
+ adds r1, 0x20
+ strh r1, [r0, 0x2C]
+ movs r1, 0x28
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x78
+ ble _080D1A5E
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+_080D1A5E:
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1A74: .4byte gUnknown_2039A2C
+_080D1A78: .4byte gUnknown_2038700
+ thumb_func_end sub_80D19E4
+
+ thumb_func_start sub_80D1A7C
+sub_80D1A7C: @ 80D1A7C
+ push {lr}
+ ldr r1, _080D1AAC @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D1AB0 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D1AB4 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3E60
+ ldr r0, _080D1AB8 @ =sub_80D1638
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1AAC: .4byte 0x040000b0
+_080D1AB0: .4byte 0x0000c5ff
+_080D1AB4: .4byte 0x00007fff
+_080D1AB8: .4byte sub_80D1638
+ thumb_func_end sub_80D1A7C
+
+ thumb_func_start sub_80D1ABC
+sub_80D1ABC: @ 80D1ABC
+ push {r4,r5,lr}
+ ldr r5, _080D1B34 @ =0x040000b0
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D1B38 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D1B3C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0xA]
+ bl sub_80D3DF4
+ ldr r4, _080D1B40 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D1AF4
+ ldr r1, _080D1B44 @ =0x040000d4
+ ldr r0, _080D1B48 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D1B4C @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D1AF4:
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r4, _080D1B48 @ =gUnknown_2038700
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0x40
+ bl sub_8000A38
+ str r4, [r5]
+ ldr r0, _080D1B50 @ =0x04000040
+ str r0, [r5, 0x4]
+ ldr r0, _080D1B54 @ =0xa2400001
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1B34: .4byte 0x040000b0
+_080D1B38: .4byte 0x0000c5ff
+_080D1B3C: .4byte 0x00007fff
+_080D1B40: .4byte gUnknown_2039A2C
+_080D1B44: .4byte 0x040000d4
+_080D1B48: .4byte gUnknown_2038700
+_080D1B4C: .4byte 0x800000a0
+_080D1B50: .4byte 0x04000040
+_080D1B54: .4byte 0xa2400001
+ thumb_func_end sub_80D1ABC
+
+ thumb_func_start sub_80D1B58
+sub_80D1B58: @ 80D1B58
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D1B88 @ =gUnknown_83FA430
+ ldr r2, _080D1B8C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D1B6A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1B6A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1B88: .4byte gUnknown_83FA430
+_080D1B8C: .4byte gUnknown_3005090
+ thumb_func_end sub_80D1B58
+
+ thumb_func_start sub_80D1B90
+sub_80D1B90: @ 80D1B90
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ movs r2, 0
+ ldr r4, _080D1BD8 @ =gUnknown_2038E80
+ ldr r3, _080D1BDC @ =gUnknown_2039A2C
+_080D1BA2:
+ lsls r1, r2, 1
+ adds r1, r4
+ ldr r0, [r3]
+ ldrh r0, [r0, 0x16]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9F
+ bls _080D1BA2
+ ldr r0, _080D1BE0 @ =sub_80D1CC8
+ bl sub_80006F4
+ ldr r0, _080D1BE4 @ =sub_80D1D00
+ bl sub_8000700
+ movs r0, 0x2
+ bl sub_8000B68
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1BD8: .4byte gUnknown_2038E80
+_080D1BDC: .4byte gUnknown_2039A2C
+_080D1BE0: .4byte sub_80D1CC8
+_080D1BE4: .4byte sub_80D1D00
+ thumb_func_end sub_80D1B90
+
+ thumb_func_start sub_80D1BE8
+sub_80D1BE8: @ 80D1BE8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _080D1CB4 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r2, [r6, 0xC]
+ lsls r1, r2, 16
+ asrs r0, r1, 24
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r4, [r6, 0xA]
+ movs r0, 0xC0
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x80
+ lsls r5, 3
+ adds r0, r4, r5
+ strh r0, [r6, 0xA]
+ ldr r0, _080D1CB8 @ =0x1fff0000
+ cmp r1, r0
+ bgt _080D1C24
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r2, r1
+ strh r0, [r6, 0xC]
+_080D1C24:
+ movs r5, 0
+ lsls r7, r3, 16
+_080D1C28:
+ lsrs r0, r4, 8
+ asrs r1, r7, 16
+ bl sub_8044E30
+ ldr r1, _080D1CBC @ =gUnknown_2038700
+ lsls r2, r5, 1
+ adds r2, r1
+ ldr r1, _080D1CB4 @ =gUnknown_2039A2C
+ ldr r1, [r1]
+ ldrh r1, [r1, 0x16]
+ adds r0, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x9F
+ bls _080D1C28
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ bne _080D1C78
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x8
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl sub_8070588
+_080D1C78:
+ movs r5, 0x10
+ ldrsh r0, [r6, r5]
+ cmp r0, 0
+ beq _080D1C9A
+ ldr r0, _080D1CC0 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080D1C9A
+ ldr r0, _080D1CC4 @ =sub_80D1B58
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D1C9A:
+ ldr r0, _080D1CB4 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1CB4: .4byte gUnknown_2039A2C
+_080D1CB8: .4byte 0x1fff0000
+_080D1CBC: .4byte gUnknown_2038700
+_080D1CC0: .4byte gUnknown_2037AB8
+_080D1CC4: .4byte sub_80D1B58
+ thumb_func_end sub_80D1BE8
+
+ thumb_func_start sub_80D1CC8
+sub_80D1CC8: @ 80D1CC8
+ push {lr}
+ bl sub_80D3DF4
+ ldr r0, _080D1CF0 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D1CEC
+ ldr r1, _080D1CF4 @ =0x040000d4
+ ldr r0, _080D1CF8 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D1CFC @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D1CEC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1CF0: .4byte gUnknown_2039A2C
+_080D1CF4: .4byte 0x040000d4
+_080D1CF8: .4byte gUnknown_2038700
+_080D1CFC: .4byte 0x800000a0
+ thumb_func_end sub_80D1CC8
+
+ thumb_func_start sub_80D1D00
+sub_80D1D00: @ 80D1D00
+ ldr r1, _080D1D20 @ =gUnknown_2038700
+ ldr r0, _080D1D24 @ =0x04000006
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _080D1D28 @ =0x04000016
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080D1D20: .4byte gUnknown_2038700
+_080D1D24: .4byte 0x04000006
+_080D1D28: .4byte 0x04000016
+ thumb_func_end sub_80D1D00
+
+ thumb_func_start sub_80D1D2C
+sub_80D1D2C: @ 80D1D2C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D1D5C @ =gUnknown_83FA438
+ ldr r2, _080D1D60 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D1D3E:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1D3E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1D5C: .4byte gUnknown_83FA438
+_080D1D60: .4byte gUnknown_3005090
+ thumb_func_end sub_80D1D2C
+
+ thumb_func_start sub_80D1D64
+sub_80D1D64: @ 80D1D64
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ ldr r0, _080D1DB0 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xF0
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _080D1DB4 @ =gUnknown_2038E80
+ movs r2, 0xF2
+_080D1D8A:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9F
+ bls _080D1D8A
+ ldr r0, _080D1DB8 @ =sub_80D1E98
+ bl sub_80006F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1DB0: .4byte gUnknown_2039A2C
+_080D1DB4: .4byte gUnknown_2038E80
+_080D1DB8: .4byte sub_80D1E98
+ thumb_func_end sub_80D1D64
+
+ thumb_func_start sub_80D1DBC
+sub_80D1DBC: @ 80D1DBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldr r0, _080D1E50 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _080D1E54 @ =gUnknown_2038700
+ ldrh r0, [r4, 0xC]
+ ldrb r5, [r4, 0xC]
+ adds r0, 0x10
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x8
+ strh r0, [r4, 0xA]
+ movs r6, 0
+ movs r0, 0x1
+ mov r8, r0
+_080D1DE4:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl sub_8044E30
+ ldrh r1, [r4, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _080D1DFA
+ movs r1, 0
+_080D1DFA:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _080D1E04
+ movs r1, 0xF0
+_080D1E04:
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r1, r0, 8
+ movs r2, 0xF1
+ orrs r1, r2
+ strh r1, [r7]
+ cmp r0, 0xEF
+ bgt _080D1E18
+ movs r0, 0
+ mov r8, r0
+_080D1E18:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, 0x2
+ cmp r6, 0x9F
+ bls _080D1DE4
+ mov r1, r8
+ cmp r1, 0
+ beq _080D1E36
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D1E36:
+ ldr r0, _080D1E50 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1E50: .4byte gUnknown_2039A2C
+_080D1E54: .4byte gUnknown_2038700
+ thumb_func_end sub_80D1DBC
+
+ thumb_func_start sub_80D1E58
+sub_80D1E58: @ 80D1E58
+ push {lr}
+ ldr r1, _080D1E88 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D1E8C @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D1E90 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3E60
+ ldr r0, _080D1E94 @ =sub_80D1D2C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D1E88: .4byte 0x040000b0
+_080D1E8C: .4byte 0x0000c5ff
+_080D1E90: .4byte 0x00007fff
+_080D1E94: .4byte sub_80D1D2C
+ thumb_func_end sub_80D1E58
+
+ thumb_func_start sub_80D1E98
+sub_80D1E98: @ 80D1E98
+ push {r4,r5,lr}
+ ldr r4, _080D1F04 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _080D1F08 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _080D1F0C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_80D3DF4
+ ldr r5, _080D1F10 @ =gUnknown_2039A2C
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D1ED0
+ ldr r1, _080D1F14 @ =0x040000d4
+ ldr r0, _080D1F18 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D1F1C @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D1ED0:
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r0, _080D1F20 @ =gUnknown_2038E80
+ str r0, [r4]
+ ldr r0, _080D1F24 @ =0x04000040
+ str r0, [r4, 0x4]
+ ldr r0, _080D1F28 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F04: .4byte 0x040000b0
+_080D1F08: .4byte 0x0000c5ff
+_080D1F0C: .4byte 0x00007fff
+_080D1F10: .4byte gUnknown_2039A2C
+_080D1F14: .4byte 0x040000d4
+_080D1F18: .4byte gUnknown_2038700
+_080D1F1C: .4byte 0x800000a0
+_080D1F20: .4byte gUnknown_2038E80
+_080D1F24: .4byte 0x04000040
+_080D1F28: .4byte 0xa2400001
+ thumb_func_end sub_80D1E98
+
+ thumb_func_start sub_80D1F2C
+sub_80D1F2C: @ 80D1F2C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D1F5C @ =gUnknown_83FA464
+ ldr r2, _080D1F60 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D1F3E:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D1F3E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D1F5C: .4byte gUnknown_83FA464
+_080D1F60: .4byte gUnknown_3005090
+ thumb_func_end sub_80D1F2C
+
+ thumb_func_start sub_80D1F64
+sub_80D1F64: @ 80D1F64
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0xA0
+ lsls r1, 17
+ ldr r4, _080D1FD8 @ =gUnknown_2038E80
+ ldr r3, _080D1FDC @ =0x000003bf
+ movs r2, 0x78
+_080D1F8E:
+ asrs r0, r1, 16
+ lsls r1, r0, 1
+ adds r1, r4
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r1, r0, 16
+ asrs r0, r1, 16
+ cmp r0, r3
+ ble _080D1F8E
+ lsls r0, r5, 16
+ movs r1, 0
+ mov r9, r1
+ str r0, [sp, 0xC]
+ cmp r0, 0
+ bgt _080D1FAE
+ b _080D221A
+_080D1FAE:
+ mov r3, r10
+ lsrs r2, r3, 3
+ ldr r4, [sp]
+ adds r0, r2, r4
+ lsls r0, 16
+ lsrs r3, r0, 16
+ mov r0, r10
+ adds r0, 0x1
+ asrs r1, r0, 3
+ str r0, [sp, 0x8]
+ cmp r2, r1
+ beq _080D1FE0
+ lsls r1, r3, 16
+ movs r6, 0x80
+ lsls r6, 9
+ adds r0, r1, r6
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r1, 0
+ b _080D1FE6
+ .align 2, 0
+_080D1FD8: .4byte gUnknown_2038E80
+_080D1FDC: .4byte 0x000003bf
+_080D1FE0:
+ lsls r0, r3, 16
+ lsrs r1, r0, 16
+ mov r8, r1
+_080D1FE6:
+ asrs r4, r0, 16
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_8044E30
+ movs r5, 0x50
+ subs r0, r5, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r0, r10
+ adds r1, r4, 0
+ str r2, [sp, 0x10]
+ bl sub_8044E4C
+ adds r0, 0x78
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r6, [sp, 0x8]
+ mov r3, r8
+ lsls r4, r3, 16
+ asrs r4, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8044E30
+ subs r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8044E4C
+ adds r0, 0x78
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _080D203E
+ lsls r0, r5, 16
+ cmp r0, 0
+ bge _080D203E
+ b _080D21F8
+_080D203E:
+ cmp r1, 0x9F
+ ble _080D204C
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _080D204C
+ b _080D21F8
+_080D204C:
+ cmp r1, 0
+ bge _080D2052
+ movs r2, 0
+_080D2052:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _080D205C
+ movs r2, 0x9F
+_080D205C:
+ lsls r0, r7, 16
+ cmp r0, 0
+ bge _080D2064
+ movs r7, 0
+_080D2064:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D206E
+ movs r7, 0xFF
+_080D206E:
+ lsls r0, r5, 16
+ cmp r0, 0
+ bge _080D2076
+ movs r5, 0
+_080D2076:
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _080D2080
+ movs r5, 0x9F
+_080D2080:
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080D2088
+ movs r3, 0
+_080D2088:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D2092
+ movs r3, 0xFF
+_080D2092:
+ lsls r0, r5, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r2, r1, 16
+ subs r0, r2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r10
+ subs r0, 0x40
+ lsls r0, 24
+ adds r6, r1, 0
+ cmp r0, 0
+ blt _080D2158
+ movs r4, 0xA0
+ lsls r4, 1
+ adds r0, r2, r4
+ lsls r0, 1
+ ldr r1, _080D20E8 @ =gUnknown_2038E80
+ adds r0, r1
+ strh r7, [r0]
+ lsls r0, r5, 16
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _080D20C4
+ b _080D21F8
+_080D20C4:
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r2, r1, 16
+ subs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bge _080D20EC
+ cmp r2, 0x1
+ ble _080D20EC
+ subs r0, r2, 0x1
+ b _080D20FC
+ .align 2, 0
+_080D20E8: .4byte gUnknown_2038E80
+_080D20EC:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D2100
+ asrs r0, r1, 16
+ cmp r0, 0xFE
+ bgt _080D2100
+ adds r0, 0x1
+_080D20FC:
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080D2100:
+ adds r0, r4, 0
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _080D212C
+ asrs r2, r6, 16
+ ldr r3, _080D2128 @ =gUnknown_2038E80
+_080D210C:
+ asrs r1, r0, 16
+ adds r0, r2, r1
+ movs r4, 0xA0
+ lsls r4, 1
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r3
+ strh r7, [r0]
+ adds r1, 0x1
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _080D210C
+ b _080D21F8
+ .align 2, 0
+_080D2128: .4byte gUnknown_2038E80
+_080D212C:
+ cmp r1, 0
+ ble _080D21F8
+ asrs r2, r6, 16
+ ldr r3, _080D2154 @ =gUnknown_2038E80
+_080D2134:
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r0, r2, r1
+ movs r6, 0xA0
+ lsls r6, 1
+ adds r0, r6
+ lsls r0, 1
+ adds r0, r3
+ strh r7, [r0]
+ subs r1, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r1, 0
+ bgt _080D2134
+ b _080D21F8
+ .align 2, 0
+_080D2154: .4byte gUnknown_2038E80
+_080D2158:
+ movs r1, 0xF0
+ lsls r1, 1
+ adds r0, r2, r1
+ lsls r0, 1
+ ldr r2, _080D2190 @ =gUnknown_2038E80
+ adds r0, r2
+ strh r7, [r0]
+ lsls r0, r5, 16
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _080D21F8
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r1, r7, 16
+ asrs r2, r1, 16
+ subs r0, r2
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bge _080D2194
+ cmp r2, 0x1
+ ble _080D2194
+ subs r0, r2, 0x1
+ b _080D21A4
+ .align 2, 0
+_080D2190: .4byte gUnknown_2038E80
+_080D2194:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080D21A8
+ asrs r0, r1, 16
+ cmp r0, 0xFE
+ bgt _080D21A8
+ adds r0, 0x1
+_080D21A4:
+ lsls r0, 16
+ lsrs r7, r0, 16
+_080D21A8:
+ adds r0, r4, 0
+ asrs r1, r0, 16
+ cmp r1, 0
+ bge _080D21D4
+ asrs r2, r6, 16
+ ldr r3, _080D21D0 @ =gUnknown_2038E80
+_080D21B4:
+ asrs r1, r0, 16
+ adds r0, r2, r1
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r3
+ strh r7, [r0]
+ adds r1, 0x1
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _080D21B4
+ b _080D21F8
+ .align 2, 0
+_080D21D0: .4byte gUnknown_2038E80
+_080D21D4:
+ cmp r1, 0
+ ble _080D21F8
+ asrs r2, r6, 16
+ ldr r3, _080D2270 @ =gUnknown_2038E80
+_080D21DC:
+ lsls r1, r5, 16
+ asrs r1, 16
+ adds r0, r2, r1
+ movs r6, 0xF0
+ lsls r6, 1
+ adds r0, r6
+ lsls r0, 1
+ adds r0, r3
+ strh r7, [r0]
+ subs r1, 0x1
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r1, 0
+ bgt _080D21DC
+_080D21F8:
+ mov r1, r9
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ ldr r3, [sp, 0x8]
+ lsls r1, r3, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsrs r4, r0, 16
+ mov r9, r4
+ asrs r0, 16
+ ldr r6, [sp, 0xC]
+ asrs r1, r6, 12
+ cmp r0, r1
+ bge _080D221A
+ b _080D1FAE
+_080D221A:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _080D222C
+ movs r0, 0xC0
+ lsls r0, 10
+ ldr r1, [sp, 0xC]
+ ands r0, r1
+ cmp r0, 0
+ bne _080D2274
+_080D222C:
+ movs r2, 0
+ mov r9, r2
+ ldr r4, _080D2270 @ =gUnknown_2038E80
+ movs r5, 0xA0
+ lsls r5, 1
+_080D2236:
+ mov r3, r9
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldr r6, [sp, 0x4]
+ adds r3, r6
+ lsls r3, 1
+ adds r3, r4
+ adds r0, r1, r5
+ lsls r0, 1
+ adds r0, r4
+ ldrh r2, [r0]
+ lsls r2, 8
+ movs r6, 0xF0
+ lsls r6, 1
+ adds r0, r1, r6
+ lsls r0, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ orrs r2, r0
+ strh r2, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ mov r9, r0
+ asrs r1, 16
+ cmp r1, 0x9F
+ ble _080D2236
+ b _080D251C
+ .align 2, 0
+_080D2270: .4byte gUnknown_2038E80
+_080D2274:
+ ldr r1, [sp, 0xC]
+ asrs r4, r1, 16
+ lsls r0, r4, 20
+ asrs r0, 16
+ lsls r5, r4, 1
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8044E30
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r4, 0
+ bge _080D2298
+ adds r4, 0x3
+_080D2298:
+ asrs r0, r4, 2
+ cmp r0, 0x1
+ beq _080D234C
+ cmp r0, 0x1
+ bgt _080D22A8
+ cmp r0, 0
+ beq _080D22B6
+ b _080D24DA
+_080D22A8:
+ cmp r0, 0x2
+ bne _080D22AE
+ b _080D23CC
+_080D22AE:
+ cmp r0, 0x3
+ bne _080D22B4
+ b _080D2466
+_080D22B4:
+ b _080D24DA
+_080D22B6:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x50
+ ble _080D22C0
+ movs r2, 0x50
+_080D22C0:
+ mov r9, r2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bgt _080D22CA
+ b _080D24DA
+_080D22CA:
+ ldr r0, _080D2320 @ =gUnknown_83FA444
+ adds r0, r5, r0
+ movs r3, 0
+ ldrsh r4, [r0, r3]
+ ldr r6, _080D2324 @ =gUnknown_2038E80
+_080D22D4:
+ ldr r0, _080D2328 @ =gUnknown_2039A2C
+ ldr r5, [r0]
+ asrs r2, r1, 16
+ adds r0, r2, 0
+ muls r0, r4
+ asrs r0, 8
+ adds r0, 0x78
+ lsls r1, r0, 16
+ lsrs r7, r1, 16
+ strh r0, [r5, 0x28]
+ lsls r1, r7, 16
+ lsrs r0, r1, 16
+ cmp r0, 0xFF
+ bhi _080D2334
+ movs r3, 0xC8
+ lsls r3, 1
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r5, 0x14]
+ adds r0, r3, 0
+ subs r0, r2
+ lsls r0, 1
+ adds r3, r0, r6
+ ldrh r0, [r3]
+ strh r0, [r5, 0x38]
+ movs r0, 0x8C
+ lsls r0, 2
+ subs r0, r2
+ lsls r0, 1
+ adds r2, r0, r6
+ ldrh r0, [r2]
+ asrs r1, 16
+ cmp r0, r1
+ bge _080D232C
+ movs r0, 0x78
+ strh r0, [r2]
+ b _080D2334
+ .align 2, 0
+_080D2320: .4byte gUnknown_83FA444
+_080D2324: .4byte gUnknown_2038E80
+_080D2328: .4byte gUnknown_2039A2C
+_080D232C:
+ ldrh r0, [r3]
+ cmp r0, r1
+ bge _080D2334
+ strh r7, [r3]
+_080D2334:
+ mov r1, r9
+ lsls r0, r1, 16
+ ldr r2, _080D2348 @ =0xffff0000
+ adds r0, r2
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, r0, 16
+ cmp r1, 0
+ bgt _080D22D4
+ b _080D24DA
+ .align 2, 0
+_080D2348: .4byte 0xffff0000
+_080D234C:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x50
+ ble _080D2356
+ movs r2, 0x50
+_080D2356:
+ mov r9, r2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bgt _080D2360
+ b _080D24DA
+_080D2360:
+ ldr r0, _080D23BC @ =gUnknown_83FA444
+ adds r0, r5, r0
+ movs r3, 0
+ ldrsh r4, [r0, r3]
+ ldr r6, _080D23C0 @ =gUnknown_2038E80
+_080D236A:
+ ldr r0, _080D23C4 @ =gUnknown_2039A2C
+ ldr r3, [r0]
+ asrs r2, r1, 16
+ adds r0, r2, 0
+ muls r0, r4
+ asrs r0, 8
+ adds r0, 0x78
+ lsls r1, r0, 16
+ lsrs r7, r1, 16
+ strh r0, [r3, 0x28]
+ lsls r5, r7, 16
+ lsrs r0, r5, 16
+ cmp r0, 0xFF
+ bhi _080D23A6
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r1, 0
+ subs r0, r2
+ strh r0, [r3, 0x14]
+ adds r0, r1, 0
+ subs r0, r2
+ lsls r0, 1
+ adds r2, r0, r6
+ ldrh r0, [r2]
+ strh r0, [r3, 0x38]
+ ldrh r1, [r2]
+ asrs r0, r5, 16
+ cmp r1, r0
+ bge _080D23A6
+ strh r7, [r2]
+_080D23A6:
+ mov r2, r9
+ lsls r0, r2, 16
+ ldr r3, _080D23C8 @ =0xffff0000
+ adds r0, r3
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, r0, 16
+ cmp r1, 0
+ bgt _080D236A
+ b _080D24DA
+ .align 2, 0
+_080D23BC: .4byte gUnknown_83FA444
+_080D23C0: .4byte gUnknown_2038E80
+_080D23C4: .4byte gUnknown_2039A2C
+_080D23C8: .4byte 0xffff0000
+_080D23CC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r1, 0x4F
+ negs r1, r1
+ cmp r0, r1
+ bge _080D23DA
+ ldr r2, _080D2438 @ =0x0000ffb1
+_080D23DA:
+ mov r9, r2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bgt _080D24DA
+ ldr r0, _080D243C @ =gUnknown_83FA444
+ adds r0, r5, r0
+ movs r6, 0
+ ldrsh r4, [r0, r6]
+ ldr r6, _080D2440 @ =gUnknown_2038E80
+_080D23EC:
+ ldr r0, _080D2444 @ =gUnknown_2039A2C
+ ldr r5, [r0]
+ asrs r2, r1, 16
+ adds r0, r2, 0
+ muls r0, r4
+ asrs r0, 8
+ adds r0, 0x78
+ lsls r1, r0, 16
+ lsrs r7, r1, 16
+ strh r0, [r5, 0x28]
+ lsls r1, r7, 16
+ lsrs r0, r1, 16
+ cmp r0, 0xFF
+ bhi _080D2450
+ movs r3, 0x8C
+ lsls r3, 2
+ adds r0, r3, 0
+ subs r0, r2
+ strh r0, [r5, 0x14]
+ adds r0, r3, 0
+ subs r0, r2
+ lsls r0, 1
+ adds r3, r0, r6
+ ldrh r0, [r3]
+ strh r0, [r5, 0x38]
+ movs r0, 0xC8
+ lsls r0, 1
+ subs r0, r2
+ lsls r0, 1
+ adds r2, r0, r6
+ ldrh r0, [r2]
+ asrs r1, 16
+ cmp r0, r1
+ blt _080D2448
+ movs r0, 0x78
+ strh r0, [r2]
+ b _080D2450
+ .align 2, 0
+_080D2438: .4byte 0x0000ffb1
+_080D243C: .4byte gUnknown_83FA444
+_080D2440: .4byte gUnknown_2038E80
+_080D2444: .4byte gUnknown_2039A2C
+_080D2448:
+ ldrh r0, [r3]
+ cmp r0, r1
+ ble _080D2450
+ strh r7, [r3]
+_080D2450:
+ mov r1, r9
+ lsls r0, r1, 16
+ movs r2, 0x80
+ lsls r2, 9
+ adds r0, r2
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, r0, 16
+ cmp r1, 0
+ ble _080D23EC
+ b _080D24DA
+_080D2466:
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r1, 0x4F
+ negs r1, r1
+ cmp r0, r1
+ bge _080D2474
+ ldr r2, _080D252C @ =0x0000ffb1
+_080D2474:
+ mov r9, r2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bgt _080D24DA
+ ldr r0, _080D2530 @ =gUnknown_83FA444
+ adds r0, r5, r0
+ movs r3, 0
+ ldrsh r4, [r0, r3]
+ ldr r6, _080D2534 @ =gUnknown_2039A2C
+ mov r8, r6
+ ldr r6, _080D2538 @ =gUnknown_2038E80
+_080D248A:
+ mov r0, r8
+ ldr r3, [r0]
+ asrs r2, r1, 16
+ adds r0, r2, 0
+ muls r0, r4
+ asrs r0, 8
+ adds r0, 0x78
+ lsls r1, r0, 16
+ lsrs r7, r1, 16
+ strh r0, [r3, 0x28]
+ lsls r5, r7, 16
+ lsrs r0, r5, 16
+ cmp r0, 0xFF
+ bhi _080D24C6
+ movs r1, 0x8C
+ lsls r1, 2
+ adds r0, r1, 0
+ subs r0, r2
+ strh r0, [r3, 0x14]
+ adds r0, r1, 0
+ subs r0, r2
+ lsls r0, 1
+ adds r2, r0, r6
+ ldrh r0, [r2]
+ strh r0, [r3, 0x38]
+ ldrh r1, [r2]
+ asrs r0, r5, 16
+ cmp r1, r0
+ ble _080D24C6
+ strh r7, [r2]
+_080D24C6:
+ mov r2, r9
+ lsls r0, r2, 16
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r3
+ lsrs r0, 16
+ mov r9, r0
+ lsls r1, r0, 16
+ cmp r1, 0
+ ble _080D248A
+_080D24DA:
+ movs r4, 0
+ mov r9, r4
+ ldr r4, _080D2538 @ =gUnknown_2038E80
+ movs r5, 0xA0
+ lsls r5, 1
+_080D24E4:
+ mov r6, r9
+ lsls r1, r6, 16
+ asrs r1, 16
+ lsls r3, r1, 1
+ ldr r0, [sp, 0x4]
+ adds r3, r0
+ lsls r3, 1
+ adds r3, r4
+ adds r0, r1, r5
+ lsls r0, 1
+ adds r0, r4
+ ldrh r2, [r0]
+ lsls r2, 8
+ movs r6, 0xF0
+ lsls r6, 1
+ adds r0, r1, r6
+ lsls r0, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ orrs r2, r0
+ strh r2, [r3]
+ adds r1, 0x1
+ lsls r1, 16
+ lsrs r0, r1, 16
+ mov r9, r0
+ asrs r1, 16
+ cmp r1, 0x9F
+ ble _080D24E4
+_080D251C:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D252C: .4byte 0x0000ffb1
+_080D2530: .4byte gUnknown_83FA444
+_080D2534: .4byte gUnknown_2039A2C
+_080D2538: .4byte gUnknown_2038E80
+ thumb_func_end sub_80D1F64
+
+ thumb_func_start sub_80D253C
+sub_80D253C: @ 80D253C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ ldr r0, _080D25A0 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r4, 0
+ strh r4, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ ldr r0, _080D25A4 @ =0x00007878
+ strh r0, [r1, 0x6]
+ ldr r0, _080D25A8 @ =0x00003070
+ strh r0, [r1, 0x8]
+ ldr r0, _080D25AC @ =0x00001090
+ strh r0, [r1, 0xC]
+ strh r4, [r1, 0x20]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_80D1F64
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80D1F64
+ ldr r1, _080D25B0 @ =0x040000d4
+ ldr r0, _080D25B4 @ =gUnknown_2038E80
+ str r0, [r1]
+ ldr r2, _080D25B8 @ =0xfffff880
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D25BC @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r0, _080D25C0 @ =sub_80D2698
+ bl sub_80006F4
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ strh r4, [r5, 0xA]
+ strh r4, [r5, 0xC]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D25A0: .4byte gUnknown_2039A2C
+_080D25A4: .4byte 0x00007878
+_080D25A8: .4byte 0x00003070
+_080D25AC: .4byte 0x00001090
+_080D25B0: .4byte 0x040000d4
+_080D25B4: .4byte gUnknown_2038E80
+_080D25B8: .4byte 0xfffff880
+_080D25BC: .4byte 0x80000140
+_080D25C0: .4byte sub_80D2698
+ thumb_func_end sub_80D253C
+
+ thumb_func_start sub_80D25C4
+sub_80D25C4: @ 80D25C4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r2, 0x1
+ bl sub_80D1F64
+ ldr r5, _080D2694 @ =gUnknown_2039A2C
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ movs r2, 0x1
+ mov r8, r2
+ ldrb r2, [r1]
+ movs r7, 0
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x11
+ bne _080D2686
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_80D1F64
+ ldrh r1, [r4, 0xC]
+ movs r6, 0x30
+ subs r0, r6, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r0, 0
+ bge _080D2618
+ movs r3, 0
+_080D2618:
+ adds r0, r1, 0
+ adds r0, 0x70
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D2628
+ movs r2, 0xFF
+_080D2628:
+ ldr r0, [r5]
+ orrs r2, r3
+ strh r2, [r0, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x20
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_80D1F64
+ ldrh r1, [r4, 0xC]
+ subs r0, r6, r1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r0, 0
+ bge _080D2652
+ movs r3, 0
+_080D2652:
+ adds r0, r1, 0
+ adds r0, 0x70
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _080D2662
+ movs r2, 0xFF
+_080D2662:
+ ldr r1, [r5]
+ orrs r2, r3
+ strh r2, [r1, 0xC]
+ ldrb r0, [r1]
+ mov r2, r8
+ orrs r0, r2
+ ldrb r2, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9F
+ ble _080D2686
+ ldr r1, [r5]
+ movs r0, 0x1
+ strh r0, [r1, 0x20]
+ bl sub_80D3E60
+_080D2686:
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2694: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D25C4
+
+ thumb_func_start sub_80D2698
+sub_80D2698: @ 80D2698
+ push {r4-r6,lr}
+ ldr r5, _080D26D0 @ =0x040000b0
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D26D4 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D26D8 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0xA]
+ bl sub_80D3DF4
+ ldr r4, _080D26DC @ =gUnknown_2039A2C
+ ldr r2, [r4]
+ movs r0, 0x20
+ ldrsh r3, [r2, r0]
+ cmp r3, 0
+ beq _080D26E4
+ ldr r0, _080D26E0 @ =sub_80D1F2C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ b _080D2746
+ .align 2, 0
+_080D26D0: .4byte 0x040000b0
+_080D26D4: .4byte 0x0000c5ff
+_080D26D8: .4byte 0x00007fff
+_080D26DC: .4byte gUnknown_2039A2C
+_080D26E0: .4byte sub_80D1F2C
+_080D26E4:
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080D2700
+ ldr r1, _080D274C @ =0x040000d4
+ ldr r0, _080D2750 @ =gUnknown_2038E80
+ str r0, [r1]
+ ldr r6, _080D2754 @ =0xfffff880
+ adds r0, r6
+ str r0, [r1, 0x4]
+ ldr r0, _080D2758 @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrb r0, [r2]
+ strb r3, [r2]
+_080D2700:
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xC]
+ movs r0, 0x46
+ bl sub_8000A38
+ ldr r4, _080D275C @ =gUnknown_2038700
+ ldrh r1, [r4]
+ movs r0, 0x40
+ bl sub_8000A38
+ ldrh r1, [r4, 0x2]
+ movs r0, 0x42
+ bl sub_8000A38
+ str r4, [r5]
+ ldr r0, _080D2760 @ =0x04000040
+ str r0, [r5, 0x4]
+ ldr r0, _080D2764 @ =0xa6400001
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+_080D2746:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D274C: .4byte 0x040000d4
+_080D2750: .4byte gUnknown_2038E80
+_080D2754: .4byte 0xfffff880
+_080D2758: .4byte 0x80000140
+_080D275C: .4byte gUnknown_2038700
+_080D2760: .4byte 0x04000040
+_080D2764: .4byte 0xa6400001
+ thumb_func_end sub_80D2698
+
+ thumb_func_start sub_80D2768
+sub_80D2768: @ 80D2768
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D2784 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ bl sub_80D2808
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2784: .4byte gUnknown_3005090
+ thumb_func_end sub_80D2768
+
+ thumb_func_start sub_80D2788
+sub_80D2788: @ 80D2788
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D27A4 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1
+ strh r2, [r1, 0x26]
+ bl sub_80D2808
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D27A4: .4byte gUnknown_3005090
+ thumb_func_end sub_80D2788
+
+ thumb_func_start sub_80D27A8
+sub_80D27A8: @ 80D27A8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D27C4 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x2
+ strh r2, [r1, 0x26]
+ bl sub_80D2808
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D27C4: .4byte gUnknown_3005090
+ thumb_func_end sub_80D27A8
+
+ thumb_func_start sub_80D27C8
+sub_80D27C8: @ 80D27C8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D27E4 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x3
+ strh r2, [r1, 0x26]
+ bl sub_80D2808
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D27E4: .4byte gUnknown_3005090
+ thumb_func_end sub_80D27C8
+
+ thumb_func_start sub_80D27E8
+sub_80D27E8: @ 80D27E8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D2804 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x4
+ strh r2, [r1, 0x26]
+ bl sub_80D2808
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2804: .4byte gUnknown_3005090
+ thumb_func_end sub_80D27E8
+
+ thumb_func_start sub_80D2808
+sub_80D2808: @ 80D2808
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D2838 @ =gUnknown_83FA46C
+ ldr r2, _080D283C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D281A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D281A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2838: .4byte gUnknown_83FA46C
+_080D283C: .4byte gUnknown_3005090
+ thumb_func_end sub_80D2808
+
+ thumb_func_start sub_80D2840
+sub_80D2840: @ 80D2840
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ adds r0, r4, 0
+ bl sub_80D2EA4
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r0, 0xEF
+ strh r0, [r4, 0xE]
+ ldr r0, _080D2898 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ movs r0, 0x3E
+ strh r0, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _080D289C @ =gUnknown_2038E80
+ ldr r2, _080D28A0 @ =0x0000f0f1
+_080D2874:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9F
+ bls _080D2874
+ ldr r0, _080D28A4 @ =sub_80D2D50
+ bl sub_80006F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2898: .4byte gUnknown_2039A2C
+_080D289C: .4byte gUnknown_2038E80
+_080D28A0: .4byte 0x0000f0f1
+_080D28A4: .4byte sub_80D2D50
+ thumb_func_end sub_80D2840
+
+ thumb_func_start sub_80D28A8
+sub_80D28A8: @ 80D28A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ ldr r6, _080D2950 @ =gUnknown_83FAC34
+ add r1, sp, 0x4
+ mov r0, sp
+ bl sub_80D3E28
+ ldr r0, _080D2954 @ =gUnknown_83F8F60
+ ldr r1, [sp, 0x4]
+ movs r2, 0xF0
+ bl CpuSet
+ ldr r1, _080D2958 @ =gUnknown_83FA740
+ mov r2, r8
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r1, _080D295C @ =gUnknown_83FA754
+ ldr r0, _080D2960 @ =gUnknown_300500C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xFA
+ movs r2, 0xC
+ bl sub_80703EC
+ movs r1, 0
+ ldr r5, [sp]
+ movs r0, 0xF0
+ lsls r0, 8
+ adds r7, r0, 0
+_080D28FC:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_080D2902:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r6]
+ orrs r0, r7
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r6, 0x2
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1F
+ ble _080D2902
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _080D28FC
+ movs r0, 0x2
+ bl sub_8000B68
+ ldr r0, _080D2964 @ =sub_80D2E6C
+ bl sub_8000700
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2950: .4byte gUnknown_83FAC34
+_080D2954: .4byte gUnknown_83F8F60
+_080D2958: .4byte gUnknown_83FA740
+_080D295C: .4byte gUnknown_83FA754
+_080D2960: .4byte gUnknown_300500C
+_080D2964: .4byte sub_80D2E6C
+ thumb_func_end sub_80D28A8
+
+ thumb_func_start sub_80D2968
+sub_80D2968: @ 80D2968
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _080D2A4C @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _080D2A50 @ =gUnknown_2038700
+ ldrh r0, [r4, 0xA]
+ ldrb r5, [r4, 0xA]
+ adds r0, 0x10
+ strh r0, [r4, 0xA]
+ movs r6, 0
+_080D2982:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl sub_8044E30
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _080D2998
+ movs r2, 0x1
+_080D2998:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _080D29A2
+ movs r2, 0xF0
+_080D29A2:
+ strh r2, [r7]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, 0x2
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r6, 0x4F
+ bls _080D2982
+ cmp r6, 0x9F
+ bhi _080D29FA
+_080D29BC:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl sub_8044E30
+ ldrh r1, [r4, 0xE]
+ subs r1, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _080D29D2
+ movs r2, 0
+_080D29D2:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xEF
+ ble _080D29DC
+ movs r2, 0xEF
+_080D29DC:
+ lsls r0, r2, 16
+ asrs r0, 8
+ movs r1, 0xF0
+ orrs r0, r1
+ strh r0, [r7]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, 0x2
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r6, 0x9F
+ bls _080D29BC
+_080D29FA:
+ ldrh r1, [r4, 0xC]
+ adds r1, 0x8
+ strh r1, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x8
+ strh r0, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _080D2A12
+ movs r0, 0xF0
+ strh r0, [r4, 0xC]
+_080D2A12:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _080D2A1E
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_080D2A1E:
+ ldr r0, [r4, 0xC]
+ cmp r0, 0xF0
+ bne _080D2A2A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D2A2A:
+ ldr r0, _080D2A4C @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2A4C: .4byte gUnknown_2039A2C
+_080D2A50: .4byte gUnknown_2038700
+ thumb_func_end sub_80D2968
+
+ thumb_func_start sub_80D2A54
+sub_80D2A54: @ 80D2A54
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _080D2AC8 @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080D2ACC @ =gUnknown_2038700
+ adds r5, r2, 0
+ movs r2, 0xF0
+_080D2A68:
+ strh r2, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, 0x2
+ cmp r0, 0x9F
+ bls _080D2A68
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ strh r1, [r4, 0xE]
+ ldr r1, [r5]
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl sub_80D3120
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl sub_80D3120
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ bl sub_80D3138
+ movs r0, 0x61
+ bl sub_80722CC
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2AC8: .4byte gUnknown_2039A2C
+_080D2ACC: .4byte gUnknown_2038700
+ thumb_func_end sub_80D2A54
+
+ thumb_func_start sub_80D2AD0
+sub_80D2AD0: @ 80D2AD0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080D2B08 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ bl sub_80D3154
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D2B00
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ bl sub_80D3138
+_080D2B00:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2B08: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D2AD0
+
+ thumb_func_start sub_80D2B0C
+sub_80D2B0C: @ 80D2B0C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r7, _080D2BAC @ =gUnknown_2039A2C
+ ldr r1, [r7]
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ movs r2, 0
+ mov r8, r2
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ bl sub_80D3154
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D2BA0
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_80006F4
+ ldr r1, _080D2BB0 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D2BB4 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D2BB8 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r4, _080D2BBC @ =gUnknown_2038700
+ movs r5, 0xA0
+ lsls r5, 1
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r4, r2
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r0, 0x40
+ movs r1, 0xF0
+ bl sub_8000A38
+ movs r0, 0x54
+ movs r1, 0
+ bl sub_8000A38
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ mov r0, r8
+ strh r0, [r6, 0xE]
+ strh r0, [r6, 0x10]
+ ldr r1, [r7]
+ movs r0, 0xBF
+ strh r0, [r1, 0xE]
+ ldr r0, _080D2BC0 @ =sub_80D2DEC
+ bl sub_80006F4
+_080D2BA0:
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2BAC: .4byte gUnknown_2039A2C
+_080D2BB0: .4byte 0x040000b0
+_080D2BB4: .4byte 0x0000c5ff
+_080D2BB8: .4byte 0x00007fff
+_080D2BBC: .4byte gUnknown_2038700
+_080D2BC0: .4byte sub_80D2DEC
+ thumb_func_end sub_80D2B0C
+
+ thumb_func_start sub_80D2BC4
+sub_80D2BC4: @ 80D2BC4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r2, _080D2C84 @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ movs r6, 0x1
+ ldr r1, [r2]
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ ldrh r1, [r4, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ mov r12, r2
+ cmp r0, 0x4F
+ bgt _080D2BF2
+ adds r0, r1, 0x2
+ strh r0, [r4, 0x10]
+_080D2BF2:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _080D2BFE
+ movs r0, 0x50
+ strh r0, [r4, 0x10]
+_080D2BFE:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ movs r1, 0x1
+ ands r0, r1
+ ldrh r3, [r4, 0x10]
+ cmp r0, 0
+ beq _080D2C60
+ movs r2, 0
+ lsls r0, r3, 16
+ movs r6, 0
+ cmp r0, 0
+ blt _080D2C60
+ movs r7, 0x50
+ ldr r5, _080D2C88 @ =gUnknown_2038700
+_080D2C1C:
+ lsls r0, r2, 16
+ asrs r3, r0, 16
+ subs r1, r7, r3
+ adds r0, r3, 0
+ adds r0, 0x50
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ asrs r1, 15
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, 0xF
+ bhi _080D2C3C
+ movs r6, 0x1
+ adds r0, 0x1
+ strh r0, [r1]
+_080D2C3C:
+ lsls r0, r2, 16
+ asrs r0, 15
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0xF
+ bhi _080D2C4E
+ movs r6, 0x1
+ adds r0, 0x1
+ strh r0, [r1]
+_080D2C4E:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ asrs r0, 16
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ ldrh r3, [r4, 0x10]
+ cmp r0, r1
+ ble _080D2C1C
+_080D2C60:
+ cmp r3, 0x50
+ bne _080D2C6E
+ cmp r6, 0
+ bne _080D2C6E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D2C6E:
+ mov r1, r12
+ ldr r0, [r1]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2C84: .4byte gUnknown_2039A2C
+_080D2C88: .4byte gUnknown_2038700
+ thumb_func_end sub_80D2BC4
+
+ thumb_func_start sub_80D2C8C
+sub_80D2C8C: @ 80D2C8C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _080D2CBC @ =gUnknown_2039A2C
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ movs r6, 0
+ strb r6, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _080D2CC0 @ =0x00007fff
+ movs r1, 0x10
+ bl sub_80714D4
+ ldr r1, [r5]
+ movs r0, 0xFF
+ strh r0, [r1, 0xE]
+ strh r6, [r4, 0xE]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2CBC: .4byte gUnknown_2039A2C
+_080D2CC0: .4byte 0x00007fff
+ thumb_func_end sub_80D2C8C
+
+ thumb_func_start sub_80D2CC4
+sub_80D2CC4: @ 80D2CC4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D2D08 @ =gUnknown_2039A2C
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ ldr r0, _080D2D0C @ =gUnknown_2038700
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA0
+ lsls r2, 1
+ bl memset
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ ble _080D2CF4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D2CF4:
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2D08: .4byte gUnknown_2039A2C
+_080D2D0C: .4byte gUnknown_2038700
+ thumb_func_end sub_80D2CC4
+
+ thumb_func_start sub_80D2D10
+sub_80D2D10: @ 80D2D10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080D2D44 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D2D48 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D2D4C @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3E60
+ ldr r0, [r4]
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D2D44: .4byte 0x040000b0
+_080D2D48: .4byte 0x0000c5ff
+_080D2D4C: .4byte 0x00007fff
+ thumb_func_end sub_80D2D10
+
+ thumb_func_start sub_80D2D50
+sub_80D2D50: @ 80D2D50
+ push {r4,r5,lr}
+ ldr r4, _080D2DC4 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _080D2DC8 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _080D2DCC @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_80D3DF4
+ ldr r5, _080D2DD0 @ =gUnknown_2039A2C
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D2D88
+ ldr r1, _080D2DD4 @ =0x040000d4
+ ldr r0, _080D2DD8 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D2DDC @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D2D88:
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x1C]
+ movs r0, 0x12
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r5]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r0, _080D2DE0 @ =gUnknown_2038E80
+ str r0, [r4]
+ ldr r0, _080D2DE4 @ =0x04000040
+ str r0, [r4, 0x4]
+ ldr r0, _080D2DE8 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2DC4: .4byte 0x040000b0
+_080D2DC8: .4byte 0x0000c5ff
+_080D2DCC: .4byte 0x00007fff
+_080D2DD0: .4byte gUnknown_2039A2C
+_080D2DD4: .4byte 0x040000d4
+_080D2DD8: .4byte gUnknown_2038700
+_080D2DDC: .4byte 0x800000a0
+_080D2DE0: .4byte gUnknown_2038E80
+_080D2DE4: .4byte 0x04000040
+_080D2DE8: .4byte 0xa2400001
+ thumb_func_end sub_80D2D50
+
+ thumb_func_start sub_80D2DEC
+sub_80D2DEC: @ 80D2DEC
+ push {r4,lr}
+ ldr r4, _080D2E44 @ =0x040000b0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _080D2E48 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _080D2E4C @ =0x00007fff
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_80D3DF4
+ ldr r2, _080D2E50 @ =gUnknown_2039A2C
+ ldr r0, [r2]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D2E24
+ ldr r1, _080D2E54 @ =0x040000d4
+ ldr r0, _080D2E58 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _080D2E5C @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D2E24:
+ ldr r0, [r2]
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x50
+ bl sub_8000A38
+ ldr r0, _080D2E60 @ =gUnknown_2038E80
+ str r0, [r4]
+ ldr r0, _080D2E64 @ =0x04000054
+ str r0, [r4, 0x4]
+ ldr r0, _080D2E68 @ =0xa2400001
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2E44: .4byte 0x040000b0
+_080D2E48: .4byte 0x0000c5ff
+_080D2E4C: .4byte 0x00007fff
+_080D2E50: .4byte gUnknown_2039A2C
+_080D2E54: .4byte 0x040000d4
+_080D2E58: .4byte gUnknown_2038700
+_080D2E5C: .4byte 0x800000a0
+_080D2E60: .4byte gUnknown_2038E80
+_080D2E64: .4byte 0x04000054
+_080D2E68: .4byte 0xa2400001
+ thumb_func_end sub_80D2DEC
+
+ thumb_func_start sub_80D2E6C
+sub_80D2E6C: @ 80D2E6C
+ push {lr}
+ ldr r0, _080D2E80 @ =0x04000006
+ ldrh r0, [r0]
+ cmp r0, 0x4F
+ bhi _080D2E8C
+ ldr r1, _080D2E84 @ =0x04000010
+ ldr r0, _080D2E88 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x18]
+ b _080D2E94
+ .align 2, 0
+_080D2E80: .4byte 0x04000006
+_080D2E84: .4byte 0x04000010
+_080D2E88: .4byte gUnknown_2039A2C
+_080D2E8C:
+ ldr r1, _080D2E9C @ =0x04000010
+ ldr r0, _080D2EA0 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+_080D2E94:
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2E9C: .4byte 0x04000010
+_080D2EA0: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D2E6C
+
+ thumb_func_start sub_80D2EA4
+sub_80D2EA4: @ 80D2EA4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r6, _080D2FF8 @ =gUnknown_3003E58
+ movs r0, 0xA
+ strb r0, [r6]
+ ldr r0, _080D2FFC @ =gUnknown_83FA494
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ mov r9, r1
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r2, _080D3000 @ =gUnknown_83FA4AE
+ lsls r1, 2
+ mov r9, r1
+ adds r1, r2
+ ldrh r1, [r1]
+ subs r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, 0x2
+ add r2, r9
+ ldrh r2, [r2]
+ adds r2, 0x2A
+ lsls r2, 16
+ asrs r2, 16
+ ldr r5, _080D3004 @ =gUnknown_201C000
+ str r5, [sp]
+ movs r3, 0
+ bl sub_8083858
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _080D3008 @ =gUnknown_300500C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ bl sub_810C374
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x88
+ lsls r1, 1
+ str r5, [sp]
+ movs r2, 0x6A
+ movs r3, 0
+ bl sub_8083858
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r0, 0xC
+ strb r0, [r6]
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r1, _080D300C @ =gUnknown_202063C
+ adds r5, r1
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r1
+ ldr r0, _080D3010 @ =sub_80D301C
+ str r0, [r5, 0x1C]
+ str r0, [r6, 0x1C]
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ ldrb r0, [r6, 0x1]
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ bl sub_8008594
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1F
+ mov r8, r3
+ mov r4, r8
+ ands r0, r4
+ lsls r0, 1
+ ldrb r2, [r5, 0x3]
+ movs r4, 0x3F
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ bl sub_8008594
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 1
+ ldrb r1, [r6, 0x3]
+ ands r4, r1
+ orrs r4, r0
+ strb r4, [r6, 0x3]
+ ldrb r2, [r5, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldrb r0, [r6, 0x1]
+ ands r1, r0
+ orrs r1, r2
+ strb r1, [r6, 0x1]
+ ldrb r0, [r5, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrb r0, [r6, 0x3]
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl sub_80073F0
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl sub_80073F0
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r2, _080D3014 @ =gUnknown_83FA49A
+ mov r3, r9
+ adds r1, r3, r2
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ adds r2, 0x2
+ add r9, r2
+ mov r3, r9
+ movs r4, 0
+ ldrsh r2, [r3, r4]
+ movs r3, 0
+ bl sub_800865C
+ ldrb r0, [r6, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, _080D3018 @ =0xfffffe00
+ movs r2, 0x80
+ lsls r2, 2
+ movs r3, 0
+ bl sub_800865C
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D2FF8: .4byte gUnknown_3003E58
+_080D2FFC: .4byte gUnknown_83FA494
+_080D3000: .4byte gUnknown_83FA4AE
+_080D3004: .4byte gUnknown_201C000
+_080D3008: .4byte gUnknown_300500C
+_080D300C: .4byte gUnknown_202063C
+_080D3010: .4byte sub_80D301C
+_080D3014: .4byte gUnknown_83FA49A
+_080D3018: .4byte 0xfffffe00
+ thumb_func_end sub_80D2EA4
+
+ thumb_func_start sub_80D301C
+sub_80D301C: @ 80D301C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _080D3040 @ =gUnknown_83FA4C4
+_080D3022:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D3022
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3040: .4byte gUnknown_83FA4C4
+ thumb_func_end sub_80D301C
+
+ thumb_func_start sub_80D3044
+sub_80D3044: @ 80D3044
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_80D3044
+
+ thumb_func_start sub_80D3048
+sub_80D3048: @ 80D3048
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r1, _080D308C @ =gUnknown_83FA4E0
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0x4
+ ldr r1, _080D3090 @ =gUnknown_83FA4E4
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r5, 0x32]
+ movs r0, 0x1
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D308C: .4byte gUnknown_83FA4E0
+_080D3090: .4byte gUnknown_83FA4E4
+ thumb_func_end sub_80D3048
+
+ thumb_func_start sub_80D3094
+sub_80D3094: @ 80D3094
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ ldrh r3, [r1, 0x20]
+ adds r2, r0, r3
+ strh r2, [r1, 0x20]
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _080D30B2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x84
+ bgt _080D30C0
+ b _080D30BA
+_080D30B2:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x67
+ ble _080D30C0
+_080D30BA:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+_080D30C0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D3094
+
+ thumb_func_start sub_80D30C8
+sub_80D30C8: @ 80D30C8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ adds r1, r3, r0
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080D30EE
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ negs r0, r3
+ strh r0, [r2, 0x32]
+ movs r0, 0x1
+ strh r0, [r2, 0x3A]
+_080D30EE:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D30C8
+
+ thumb_func_start sub_80D30F4
+sub_80D30F4: @ 80D30F4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x20]
+ adds r1, r0
+ strh r1, [r2, 0x20]
+ adds r1, 0x1F
+ lsls r1, 16
+ movs r0, 0x97
+ lsls r0, 17
+ cmp r1, r0
+ bls _080D3118
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080D3118:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D30F4
+
+ thumb_func_start sub_80D3120
+sub_80D3120: @ 80D3120
+ ldr r3, _080D3134 @ =gUnknown_202063C
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ strh r1, [r2, 0x3C]
+ bx lr
+ .align 2, 0
+_080D3134: .4byte gUnknown_202063C
+ thumb_func_end sub_80D3120
+
+ thumb_func_start sub_80D3138
+sub_80D3138: @ 80D3138
+ ldr r2, _080D3150 @ =gUnknown_202063C
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ bx lr
+ .align 2, 0
+_080D3150: .4byte gUnknown_202063C
+ thumb_func_end sub_80D3138
+
+ thumb_func_start sub_80D3154
+sub_80D3154: @ 80D3154
+ ldr r2, _080D3168 @ =gUnknown_202063C
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x3A
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_080D3168: .4byte gUnknown_202063C
+ thumb_func_end sub_80D3154
+
+ thumb_func_start sub_80D316C
+sub_80D316C: @ 80D316C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D319C @ =gUnknown_83FA4E8
+ ldr r2, _080D31A0 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D317E:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D317E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D319C: .4byte gUnknown_83FA4E8
+_080D31A0: .4byte gUnknown_3005090
+ thumb_func_end sub_80D316C
+
+ thumb_func_start sub_80D31A4
+sub_80D31A4: @ 80D31A4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ movs r3, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0xC]
+ movs r0, 0x1
+ strh r0, [r5, 0xE]
+ ldr r2, _080D3210 @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r3, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ ldr r4, _080D3214 @ =gUnknown_2038E80
+ adds r6, r2, 0
+ movs r2, 0xF0
+_080D31D0:
+ lsls r1, r3, 1
+ adds r1, r4
+ ldr r0, [r6]
+ ldrh r0, [r0, 0x14]
+ strh r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0xA0
+ lsls r0, 1
+ adds r0, r4
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9F
+ bls _080D31D0
+ movs r0, 0x2
+ bl sub_8000B68
+ ldr r0, _080D3218 @ =sub_80D332C
+ bl sub_80006F4
+ ldr r0, _080D321C @ =sub_80D33C0
+ bl sub_8000700
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3210: .4byte gUnknown_2039A2C
+_080D3214: .4byte gUnknown_2038E80
+_080D3218: .4byte sub_80D332C
+_080D321C: .4byte sub_80D33C0
+ thumb_func_end sub_80D31A4
+
+ thumb_func_start sub_80D3220
+sub_80D3220: @ 80D3220
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r3, r0, 0
+ ldr r2, _080D329C @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0xA]
+ adds r0, r1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r2
+ cmp r0, 0xF0
+ ble _080D324C
+ movs r0, 0xF0
+ strh r0, [r3, 0xA]
+_080D324C:
+ ldrh r4, [r3, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r3, r0]
+ ldr r0, _080D32A0 @ =0x00000fff
+ ldrh r2, [r3, 0xE]
+ cmp r1, r0
+ bgt _080D325E
+ adds r0, r4, r2
+ strh r0, [r3, 0xC]
+_080D325E:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ bgt _080D326A
+ lsls r0, r2, 1
+ strh r0, [r3, 0xE]
+_080D326A:
+ movs r5, 0
+ ldr r7, _080D32A4 @ =gUnknown_2038700
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r1, r7
+ mov r12, r1
+ mov r6, r8
+_080D3278:
+ lsls r0, r5, 1
+ adds r2, r0, r7
+ mov r1, r12
+ adds r4, r0, r1
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _080D32A8
+ ldr r1, [r6]
+ ldrh r0, [r3, 0xA]
+ ldrh r1, [r1, 0x14]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r1, [r3, 0xA]
+ movs r0, 0xF0
+ subs r0, r1
+ b _080D32BA
+ .align 2, 0
+_080D329C: .4byte gUnknown_2039A2C
+_080D32A0: .4byte 0x00000fff
+_080D32A4: .4byte gUnknown_2038700
+_080D32A8:
+ ldr r0, [r6]
+ ldrh r0, [r0, 0x14]
+ ldrh r1, [r3, 0xA]
+ subs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0xA]
+ lsls r0, 8
+ movs r1, 0xF1
+ orrs r0, r1
+_080D32BA:
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9F
+ bls _080D3278
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xEF
+ ble _080D32D4
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_080D32D4:
+ mov r1, r8
+ ldr r0, [r1]
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D3220
+
+ thumb_func_start sub_80D32EC
+sub_80D32EC: @ 80D32EC
+ push {lr}
+ ldr r1, _080D331C @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D3320 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D3324 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3E60
+ ldr r0, _080D3328 @ =sub_80D316C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D331C: .4byte 0x040000b0
+_080D3320: .4byte 0x0000c5ff
+_080D3324: .4byte 0x00007fff
+_080D3328: .4byte sub_80D316C
+ thumb_func_end sub_80D32EC
+
+ thumb_func_start sub_80D332C
+sub_80D332C: @ 80D332C
+ push {r4,r5,lr}
+ ldr r5, _080D3398 @ =0x040000b0
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D339C @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D33A0 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0xA]
+ bl sub_80D3DF4
+ ldr r4, _080D33A4 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D3382
+ ldr r1, _080D33A8 @ =0x040000d4
+ ldr r0, _080D33AC @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D33B0 @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D3382:
+ ldr r0, _080D33B4 @ =gUnknown_2038FC0
+ str r0, [r5]
+ ldr r0, _080D33B8 @ =0x04000040
+ str r0, [r5, 0x4]
+ ldr r0, _080D33BC @ =0xa2400001
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3398: .4byte 0x040000b0
+_080D339C: .4byte 0x0000c5ff
+_080D33A0: .4byte 0x00007fff
+_080D33A4: .4byte gUnknown_2039A2C
+_080D33A8: .4byte 0x040000d4
+_080D33AC: .4byte gUnknown_2038700
+_080D33B0: .4byte 0x80000140
+_080D33B4: .4byte gUnknown_2038FC0
+_080D33B8: .4byte 0x04000040
+_080D33BC: .4byte 0xa2400001
+ thumb_func_end sub_80D332C
+
+ thumb_func_start sub_80D33C0
+sub_80D33C0: @ 80D33C0
+ ldr r1, _080D33E0 @ =gUnknown_2038700
+ ldr r0, _080D33E4 @ =0x04000006
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _080D33E8 @ =0x04000014
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_080D33E0: .4byte gUnknown_2038700
+_080D33E4: .4byte 0x04000006
+_080D33E8: .4byte 0x04000014
+ thumb_func_end sub_80D33C0
+
+ thumb_func_start sub_80D33EC
+sub_80D33EC: @ 80D33EC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D341C @ =gUnknown_83FA4F4
+ ldr r2, _080D3420 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D33FE:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D33FE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D341C: .4byte gUnknown_83FA4F4
+_080D3420: .4byte gUnknown_3005090
+ thumb_func_end sub_80D33EC
+
+ thumb_func_start sub_80D3424
+sub_80D3424: @ 80D3424
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ ldr r0, _080D348C @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0xBF
+ strh r0, [r1, 0xE]
+ strh r2, [r1, 0x12]
+ movs r0, 0x1E
+ strh r0, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r2, _080D3490 @ =gUnknown_2038E80
+ movs r4, 0
+ movs r3, 0xF0
+_080D3450:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r4, [r0]
+ adds r0, r1, 0
+ adds r0, 0xA0
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _080D3450
+ movs r0, 0x2
+ bl sub_8000B68
+ ldr r0, _080D3494 @ =sub_80D36E0
+ bl sub_8000700
+ ldr r0, _080D3498 @ =sub_80D35F4
+ bl sub_80006F4
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D348C: .4byte gUnknown_2039A2C
+_080D3490: .4byte gUnknown_2038E80
+_080D3494: .4byte sub_80D36E0
+_080D3498: .4byte sub_80D35F4
+ thumb_func_end sub_80D3424
+
+ thumb_func_start sub_80D349C
+sub_80D349C: @ 80D349C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r1, _080D3504 @ =gUnknown_83FA508
+ mov r0, sp
+ movs r2, 0xC
+ bl memcpy
+ movs r5, 0
+ movs r4, 0
+_080D34B0:
+ ldr r0, _080D3508 @ =sub_80D3720
+ bl sub_800704C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080D350C @ =gUnknown_202063C
+ adds r2, r1, r0
+ movs r0, 0xF0
+ strh r0, [r2, 0x20]
+ strh r4, [r2, 0x22]
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2, 0x38]
+ adds r1, 0x1
+ lsls r1, 16
+ lsls r0, r4, 16
+ movs r3, 0xD8
+ lsls r3, 13
+ adds r0, r3
+ lsrs r4, r0, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ ble _080D34B0
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3504: .4byte gUnknown_83FA508
+_080D3508: .4byte sub_80D3720
+_080D350C: .4byte gUnknown_202063C
+ thumb_func_end sub_80D349C
+
+ thumb_func_start sub_80D3510
+sub_80D3510: @ 80D3510
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _080D3544 @ =gUnknown_2039A2C
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0x20
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x5
+ ble _080D353A
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _080D3548 @ =0x00007fff
+ movs r1, 0x10
+ bl sub_80714D4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_080D353A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3544: .4byte gUnknown_2039A2C
+_080D3548: .4byte 0x00007fff
+ thumb_func_end sub_80D3510
+
+ thumb_func_start sub_80D354C
+sub_80D354C: @ 80D354C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r5, _080D35A0 @ =gUnknown_2039A2C
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ movs r4, 0
+ strb r4, [r0]
+ ldr r1, _080D35A4 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D35A8 @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D35AC @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ movs r0, 0
+ bl sub_80006F4
+ movs r0, 0
+ bl sub_8000700
+ ldr r1, [r5]
+ movs r0, 0xF0
+ strh r0, [r1, 0x6]
+ strh r4, [r1, 0x12]
+ movs r0, 0xFF
+ strh r0, [r1, 0xE]
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r4, [r1, 0x20]
+ ldr r0, _080D35B0 @ =sub_80D3690
+ bl sub_80006F4
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D35A0: .4byte gUnknown_2039A2C
+_080D35A4: .4byte 0x040000b0
+_080D35A8: .4byte 0x0000c5ff
+_080D35AC: .4byte 0x00007fff
+_080D35B0: .4byte sub_80D3690
+ thumb_func_end sub_80D354C
+
+ thumb_func_start sub_80D35B4
+sub_80D35B4: @ 80D35B4
+ push {lr}
+ ldr r0, _080D35EC @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bls _080D35E6
+ bl sub_80D3E60
+ ldr r0, _080D35F0 @ =sub_80D33EC
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D35E6:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D35EC: .4byte gUnknown_2039A2C
+_080D35F0: .4byte sub_80D33EC
+ thumb_func_end sub_80D35B4
+
+ thumb_func_start sub_80D35F4
+sub_80D35F4: @ 80D35F4
+ push {r4,r5,lr}
+ ldr r5, _080D3668 @ =0x040000b0
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D366C @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D3670 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0xA]
+ bl sub_80D3DF4
+ ldr r4, _080D3674 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x50
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x6]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D3654
+ ldr r1, _080D3678 @ =0x040000d4
+ ldr r0, _080D367C @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D3680 @ =0x80000140
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D3654:
+ ldr r0, _080D3684 @ =gUnknown_2038FC0
+ str r0, [r5]
+ ldr r0, _080D3688 @ =0x04000040
+ str r0, [r5, 0x4]
+ ldr r0, _080D368C @ =0xa2400001
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3668: .4byte 0x040000b0
+_080D366C: .4byte 0x0000c5ff
+_080D3670: .4byte 0x00007fff
+_080D3674: .4byte gUnknown_2039A2C
+_080D3678: .4byte 0x040000d4
+_080D367C: .4byte gUnknown_2038700
+_080D3680: .4byte 0x80000140
+_080D3684: .4byte gUnknown_2038FC0
+_080D3688: .4byte 0x04000040
+_080D368C: .4byte 0xa2400001
+ thumb_func_end sub_80D35F4
+
+ thumb_func_start sub_80D3690
+sub_80D3690: @ 80D3690
+ push {r4,lr}
+ bl sub_80D3DF4
+ ldr r4, _080D36DC @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x12]
+ movs r0, 0x54
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0xE]
+ movs r0, 0x50
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x6]
+ movs r0, 0x40
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D36DC: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D3690
+
+ thumb_func_start sub_80D36E0
+sub_80D36E0: @ 80D36E0
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ ldr r0, _080D3714 @ =0x04000006
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r0, 0xE3
+ bne _080D36F8
+ movs r0, 0
+ strh r0, [r1]
+_080D36F8:
+ ldr r2, _080D3718 @ =0x04000054
+ ldr r1, _080D371C @ =gUnknown_2038700
+ mov r0, sp
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r1, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3714: .4byte 0x04000006
+_080D3718: .4byte 0x04000054
+_080D371C: .4byte gUnknown_2038700
+ thumb_func_end sub_80D36E0
+
+ thumb_func_start sub_80D3720
+sub_80D3720: @ 80D3720
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080D374C
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x38]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080D380A
+ ldr r0, _080D3748 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1]
+ b _080D380A
+ .align 2, 0
+_080D3748: .4byte gUnknown_2039A2C
+_080D374C:
+ movs r2, 0x22
+ ldrsh r0, [r3, r2]
+ lsls r0, 1
+ ldr r1, _080D3810 @ =gUnknown_2038700
+ adds r7, r0, r1
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r1, r2
+ adds r6, r0, r1
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ movs r5, 0x1B
+ cmp r0, 0
+ beq _080D376A
+ movs r5, 0x19
+_080D376A:
+ movs r4, 0
+ cmp r4, r5
+ bcs _080D3790
+_080D3770:
+ lsls r1, r4, 1
+ adds r2, r1, r7
+ ldrh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r3, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r5
+ bcc _080D3770
+_080D3790:
+ movs r2, 0x20
+ ldrsh r0, [r3, r2]
+ ldrh r2, [r3, 0x20]
+ cmp r0, 0
+ bne _080D37AA
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _080D37AA
+ movs r0, 0x1
+ strh r0, [r3, 0x30]
+_080D37AA:
+ adds r1, r2, 0
+ subs r1, 0x18
+ strh r1, [r3, 0x20]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0xC0
+ strh r0, [r3, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ bge _080D37C0
+ movs r0, 0
+ strh r0, [r3, 0x20]
+_080D37C0:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 5
+ cmp r0, r1
+ ble _080D37CE
+ strh r1, [r3, 0x2E]
+_080D37CE:
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _080D37E0
+ ldr r0, _080D3814 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1]
+_080D37E0:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _080D380A
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ ldr r1, _080D3814 @ =gUnknown_2039A2C
+ cmp r0, 0
+ beq _080D37FC
+ ldr r0, [r1]
+ movs r2, 0x20
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x4
+ ble _080D380A
+_080D37FC:
+ ldr r1, [r1]
+ ldrh r0, [r1, 0x20]
+ adds r0, 0x1
+ strh r0, [r1, 0x20]
+ adds r0, r3, 0
+ bl sub_8007280
+_080D380A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3810: .4byte gUnknown_2038700
+_080D3814: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D3720
+
+ thumb_func_start sub_80D3818
+sub_80D3818: @ 80D3818
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D3848 @ =gUnknown_83FA514
+ ldr r2, _080D384C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D382A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D382A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3848: .4byte gUnknown_83FA514
+_080D384C: .4byte gUnknown_3005090
+ thumb_func_end sub_80D3818
+
+ thumb_func_start sub_80D3850
+sub_80D3850: @ 80D3850
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r0, sp, 0x4
+ add r1, sp, 0x8
+ bl sub_80D3E28
+ ldr r0, _080D3898 @ =gUnknown_83FA140
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ bl CpuSet
+ mov r1, sp
+ movs r2, 0xF0
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [sp, 0x4]
+ ldr r2, _080D389C @ =0x01000400
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _080D38A0 @ =gUnknown_83FA638
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3898: .4byte gUnknown_83FA140
+_080D389C: .4byte 0x01000400
+_080D38A0: .4byte gUnknown_83FA638
+ thumb_func_end sub_80D3850
+
+ thumb_func_start sub_80D38A4
+sub_80D38A4: @ 80D38A4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080D38E6
+ mov r0, sp
+ bl sub_80D3E08
+ movs r0, 0x3
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 5
+ ldr r1, _080D38F8 @ =gUnknown_83FA140
+ adds r0, r1
+ ldr r1, [sp]
+ movs r2, 0x10
+ bl CpuSet
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ ble _080D38E6
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x10
+ strh r0, [r4, 0xA]
+_080D38E6:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D38F8: .4byte gUnknown_83FA140
+ thumb_func_end sub_80D38A4
+
+ thumb_func_start sub_80D38FC
+sub_80D38FC: @ 80D38FC
+ push {lr}
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ lsls r1, 16
+ cmp r1, 0
+ bne _080D391C
+ bl sub_80D3E60
+ ldr r0, _080D3924 @ =sub_80D3818
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+_080D391C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3924: .4byte sub_80D3818
+ thumb_func_end sub_80D38FC
+
+ thumb_func_start sub_80D3928
+sub_80D3928: @ 80D3928
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D3958 @ =gUnknown_83FA520
+ ldr r2, _080D395C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D393A:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D393A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3958: .4byte gUnknown_83FA520
+_080D395C: .4byte gUnknown_3005090
+ thumb_func_end sub_80D3928
+
+ thumb_func_start sub_80D3960
+sub_80D3960: @ 80D3960
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_80D3DD0
+ bl sub_8087EA4
+ ldr r0, _080D39B8 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r2, _080D39BC @ =gUnknown_2038700
+ movs r3, 0xF0
+ adds r4, r2, 0
+_080D3984:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _080D3984
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r1, r4, r0
+ adds r0, r4, 0
+ movs r2, 0xA0
+ bl CpuSet
+ ldr r0, _080D39C0 @ =sub_80D3BA4
+ bl sub_80006F4
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D39B8: .4byte gUnknown_2039A2C
+_080D39BC: .4byte gUnknown_2038700
+_080D39C0: .4byte sub_80D3BA4
+ thumb_func_end sub_80D3960
+
+ thumb_func_start sub_80D39C4
+sub_80D39C4: @ 80D39C4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ mov r8, r0
+ ldr r0, _080D3A38 @ =gUnknown_2039A2C
+ ldr r0, [r0]
+ adds r0, 0x24
+ ldr r6, _080D3A3C @ =gUnknown_83FA534
+ mov r2, r8
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 1
+ adds r1, r4, r6
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r2, r6, 0x2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r3, r6, 0x4
+ adds r3, r4, r3
+ movs r5, 0
+ ldrsh r3, [r3, r5]
+ adds r5, r6, 0x6
+ adds r4, r5
+ movs r5, 0
+ ldrsh r4, [r4, r5]
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_80D4088
+ mov r0, r8
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r6, 0x8
+ adds r0, r6
+ ldrh r0, [r0]
+ mov r3, r8
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r0, 0x1
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3A38: .4byte gUnknown_2039A2C
+_080D3A3C: .4byte gUnknown_83FA534
+ thumb_func_end sub_80D39C4
+
+ thumb_func_start sub_80D3A40
+sub_80D3A40: @ 80D3A40
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ ldr r0, _080D3A90 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ mov r8, r0
+ movs r7, 0
+ ldr r0, _080D3A94 @ =gUnknown_2038700
+ mov r9, r0
+_080D3A5C:
+ ldr r1, _080D3A94 @ =gUnknown_2038700
+ ldr r0, _080D3A90 @ =gUnknown_2039A2C
+ ldr r2, [r0]
+ movs r3, 0x2A
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r3, r0, 8
+ movs r5, 0xFF
+ ands r5, r0
+ movs r4, 0xC
+ ldrsh r0, [r6, r4]
+ cmp r0, 0
+ bne _080D3A98
+ movs r1, 0x28
+ ldrsh r0, [r2, r1]
+ cmp r3, r0
+ bge _080D3A84
+ ldrh r3, [r2, 0x28]
+_080D3A84:
+ lsls r0, r3, 16
+ lsls r1, r5, 16
+ cmp r0, r1
+ ble _080D3AB0
+ lsrs r3, r1, 16
+ b _080D3AB0
+ .align 2, 0
+_080D3A90: .4byte gUnknown_2039A2C
+_080D3A94: .4byte gUnknown_2038700
+_080D3A98:
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r4, 0x28
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ ble _080D3AA6
+ ldrh r5, [r2, 0x28]
+_080D3AA6:
+ lsls r0, r5, 16
+ lsls r1, r3, 16
+ cmp r0, r1
+ bgt _080D3AB0
+ lsrs r5, r1, 16
+_080D3AB0:
+ ldr r0, _080D3AD4 @ =gUnknown_2039A2C
+ ldr r4, [r0]
+ movs r0, 0x2A
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ add r2, r9
+ lsls r1, r3, 16
+ asrs r1, 8
+ lsls r0, r5, 16
+ asrs r0, 16
+ orrs r0, r1
+ strh r0, [r2]
+ cmp r7, 0
+ beq _080D3AD8
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _080D3AFC
+ .align 2, 0
+_080D3AD4: .4byte gUnknown_2039A2C
+_080D3AD8:
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_80D4104
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r1, r8
+ lsls r0, r1, 16
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r3
+ lsrs r4, r0, 16
+ mov r8, r4
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080D3A5C
+_080D3AFC:
+ ldr r0, _080D3B18 @ =gUnknown_2039A2C
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3B18: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D3A40
+
+ thumb_func_start sub_80D3B1C
+sub_80D3B1C: @ 80D3B1C
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080D3B68
+ ldr r1, _080D3B58 @ =0x040000b0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D3B5C @ =0x0000c5ff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _080D3B60 @ =0x00007fff
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_80D3E60
+ ldr r0, _080D3B64 @ =sub_80D3928
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ movs r0, 0
+ b _080D3B80
+ .align 2, 0
+_080D3B58: .4byte 0x040000b0
+_080D3B5C: .4byte 0x0000c5ff
+_080D3B60: .4byte 0x00007fff
+_080D3B64: .4byte sub_80D3928
+_080D3B68:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _080D3B84 @ =gUnknown_83FA57A
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ movs r0, 0x1
+_080D3B80:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3B84: .4byte gUnknown_83FA57A
+ thumb_func_end sub_80D3B1C
+
+ thumb_func_start sub_80D3B88
+sub_80D3B88: @ 80D3B88
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xE]
+ subs r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080D3B9C
+ movs r0, 0
+ b _080D3BA0
+_080D3B9C:
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_080D3BA0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D3B88
+
+ thumb_func_start sub_80D3BA4
+sub_80D3BA4: @ 80D3BA4
+ push {r4,r5,lr}
+ ldr r5, _080D3C1C @ =0x040000b0
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D3C20 @ =0x0000c5ff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r1, [r5, 0xA]
+ ldr r0, _080D3C24 @ =0x00007fff
+ ands r0, r1
+ strh r0, [r5, 0xA]
+ ldrh r0, [r5, 0xA]
+ bl sub_80D3DF4
+ ldr r4, _080D3C28 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080D3BDC
+ ldr r1, _080D3C2C @ =0x040000d4
+ ldr r0, _080D3C30 @ =gUnknown_2038700
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _080D3C34 @ =0x800000a0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_080D3BDC:
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x2]
+ movs r0, 0x48
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x4A
+ bl sub_8000A38
+ ldr r0, [r4]
+ ldrh r1, [r0, 0x8]
+ movs r0, 0x44
+ bl sub_8000A38
+ ldr r4, _080D3C30 @ =gUnknown_2038700
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0x40
+ bl sub_8000A38
+ str r4, [r5]
+ ldr r0, _080D3C38 @ =0x04000040
+ str r0, [r5, 0x4]
+ ldr r0, _080D3C3C @ =0xa2400001
+ str r0, [r5, 0x8]
+ ldr r0, [r5, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3C1C: .4byte 0x040000b0
+_080D3C20: .4byte 0x0000c5ff
+_080D3C24: .4byte 0x00007fff
+_080D3C28: .4byte gUnknown_2039A2C
+_080D3C2C: .4byte 0x040000d4
+_080D3C30: .4byte gUnknown_2038700
+_080D3C34: .4byte 0x800000a0
+_080D3C38: .4byte 0x04000040
+_080D3C3C: .4byte 0xa2400001
+ thumb_func_end sub_80D3BA4
+
+ thumb_func_start sub_80D3C40
+sub_80D3C40: @ 80D3C40
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x18]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _080D3C9C @ =sub_80D3CC4
+ movs r1, 0x3
+ str r3, [sp]
+ bl sub_807741C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080D3CA0 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, r8
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r5, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ ldr r3, [sp]
+ strh r3, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3C9C: .4byte sub_80D3CC4
+_080D3CA0: .4byte gUnknown_3005090
+ thumb_func_end sub_80D3C40
+
+ thumb_func_start sub_80D3CA4
+sub_80D3CA4: @ 80D3CA4
+ push {lr}
+ ldr r0, _080D3CB8 @ =sub_80D3CC4
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080D3CBC
+ movs r0, 0
+ b _080D3CBE
+ .align 2, 0
+_080D3CB8: .4byte sub_80D3CC4
+_080D3CBC:
+ movs r0, 0x1
+_080D3CBE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D3CA4
+
+ thumb_func_start sub_80D3CC4
+sub_80D3CC4: @ 80D3CC4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _080D3CF4 @ =gUnknown_83FA588
+ ldr r2, _080D3CF8 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_080D3CD6:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ cmp r0, 0
+ bne _080D3CD6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3CF4: .4byte gUnknown_83FA588
+_080D3CF8: .4byte gUnknown_3005090
+ thumb_func_end sub_80D3CC4
+
+ thumb_func_start sub_80D3CFC
+sub_80D3CFC: @ 80D3CFC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D3D14
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D3D38
+_080D3D14:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080D3D2C
+ movs r0, 0x10
+ strh r0, [r4, 0x16]
+_080D3D2C:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, _080D3D54 @ =0x00002d6b
+ bl sub_80714D4
+_080D3D38:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ ble _080D3D4A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+_080D3D4A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080D3D54: .4byte 0x00002d6b
+ thumb_func_end sub_80D3CFC
+
+ thumb_func_start sub_80D3D58
+sub_80D3D58: @ 80D3D58
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080D3D70
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D3D92
+_080D3D70:
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080D3D86
+ movs r0, 0
+ strh r0, [r4, 0x16]
+_080D3D86:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, _080D3DB8 @ =0x00002d6b
+ bl sub_80714D4
+_080D3D92:
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _080D3DC6
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080D3DC0
+ ldr r0, _080D3DBC @ =sub_80D3CC4
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ b _080D3DC6
+ .align 2, 0
+_080D3DB8: .4byte 0x00002d6b
+_080D3DBC: .4byte sub_80D3CC4
+_080D3DC0:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ strh r1, [r4, 0x8]
+_080D3DC6:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D3D58
+
+ thumb_func_start sub_80D3DD0
+sub_80D3DD0: @ 80D3DD0
+ push {r4,lr}
+ ldr r4, _080D3DF0 @ =gUnknown_2039A2C
+ ldr r0, [r4]
+ movs r1, 0
+ movs r2, 0x3C
+ bl memset
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0x14
+ adds r1, 0x16
+ bl sub_805A658
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3DF0: .4byte gUnknown_2039A2C
+ thumb_func_end sub_80D3DD0
+
+ thumb_func_start sub_80D3DF4
+sub_80D3DF4: @ 80D3DF4
+ push {lr}
+ bl sub_8007320
+ bl sub_8007610
+ bl sub_8070474
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3DF4
+
+ thumb_func_start sub_80D3E08
+sub_80D3E08: @ 80D3E08
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x8
+ bl sub_8000AC4
+ lsls r0, 16
+ lsrs r0, 18
+ lsls r0, 30
+ lsrs r0, 16
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3E08
+
+ thumb_func_start sub_80D3E28
+sub_80D3E28: @ 80D3E28
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0x8
+ bl sub_8000AC4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 24
+ movs r0, 0x1F
+ ands r4, r0
+ movs r0, 0x8
+ bl sub_8000AC4
+ lsls r0, 16
+ lsrs r0, 18
+ lsls r4, 11
+ lsls r0, 30
+ lsrs r0, 16
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r4, r1
+ str r4, [r5]
+ adds r0, r1
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3E28
+
+ thumb_func_start sub_80D3E60
+sub_80D3E60: @ 80D3E60
+ push {lr}
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_80714D4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D3E60
+
+ thumb_func_start sub_80D3E74
+sub_80D3E74: @ 80D3E74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ ldr r0, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsls r4, 16
+ movs r6, 0
+ lsrs r5, r4, 16
+ cmp r4, 0
+ ble _080D3EDC
+ lsls r0, r7, 16
+ asrs r0, 16
+ mov r9, r0
+ lsls r1, 16
+ mov r8, r1
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+_080D3EAC:
+ lsls r4, r2, 16
+ asrs r4, 16
+ movs r0, 0xFF
+ ands r0, r4
+ mov r2, r8
+ asrs r1, r2, 16
+ bl sub_8044E30
+ lsls r1, r6, 1
+ add r1, r10
+ add r0, r9
+ strh r0, [r1]
+ lsls r1, r5, 16
+ ldr r0, _080D3EEC @ =0xffff0000
+ adds r1, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r7
+ lsls r4, 16
+ lsrs r2, r4, 16
+ lsrs r5, r1, 16
+ cmp r1, 0
+ bgt _080D3EAC
+_080D3EDC:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D3EEC: .4byte 0xffff0000
+ thumb_func_end sub_80D3E74
+
+ thumb_func_start sub_80D3EF0
+sub_80D3EF0: @ 80D3EF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ adds r5, r2, 0
+ adds r4, r3, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r2, 0xA0
+ lsls r2, 1
+ movs r1, 0xA
+ bl memset
+ movs r1, 0
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp, 0x4]
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp, 0x8]
+_080D3F28:
+ lsls r5, r1, 16
+ asrs r0, r5, 16
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ bl sub_8044E30
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r10
+ ldr r1, [sp, 0x4]
+ bl sub_8044E4C
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, 16
+ asrs r4, 16
+ subs r2, r1, r4
+ lsls r2, 16
+ adds r1, r4
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, [sp, 0x8]
+ subs r1, r3, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r1, r2, 16
+ str r5, [sp, 0x10]
+ cmp r2, 0
+ bge _080D3F74
+ movs r1, 0
+_080D3F74:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _080D3F7E
+ movs r6, 0xF0
+_080D3F7E:
+ lsls r0, r7, 16
+ cmp r0, 0
+ bge _080D3F86
+ movs r7, 0
+_080D3F86:
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _080D3F94
+ movs r3, 0x9F
+ mov r8, r3
+_080D3F94:
+ lsls r0, r1, 24
+ lsrs r0, 16
+ orrs r6, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r0, r4, 15
+ add r0, r9
+ strh r6, [r0]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl sub_8044E4C
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, [sp, 0x8]
+ subs r1, r2, r0
+ lsls r1, 16
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsrs r3, r1, 16
+ cmp r1, 0
+ bge _080D3FD6
+ movs r3, 0
+_080D3FD6:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _080D3FE0
+ movs r2, 0x9F
+_080D3FE0:
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ adds r3, r0, 0
+ lsls r5, r2, 16
+ ldr r0, [sp, 0xC]
+ cmp r0, r1
+ ble _080D4004
+ adds r2, r1, 0
+_080D3FF0:
+ lsls r1, r7, 16
+ ldr r0, _080D4084 @ =0xffff0000
+ adds r1, r0
+ asrs r0, r1, 15
+ add r0, r9
+ strh r6, [r0]
+ lsrs r7, r1, 16
+ asrs r1, 16
+ cmp r1, r2
+ bgt _080D3FF0
+_080D4004:
+ lsls r1, r7, 16
+ asrs r0, r3, 16
+ cmp r1, r3
+ bge _080D4022
+ adds r2, r0, 0
+_080D400E:
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r1, r3
+ asrs r1, r0, 15
+ add r1, r9
+ strh r6, [r1]
+ adds r1, r0, 0
+ asrs r0, r1, 16
+ cmp r0, r2
+ blt _080D400E
+_080D4022:
+ asrs r0, r5, 16
+ cmp r4, r5
+ ble _080D4040
+ adds r1, r0, 0
+_080D402A:
+ ldr r2, _080D4084 @ =0xffff0000
+ adds r0, r4, r2
+ lsrs r3, r0, 16
+ mov r8, r3
+ asrs r0, 15
+ add r0, r9
+ strh r6, [r0]
+ lsls r4, r3, 16
+ asrs r0, r4, 16
+ cmp r0, r1
+ bgt _080D402A
+_080D4040:
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r0, r5, 16
+ cmp r4, r5
+ bge _080D4060
+ adds r2, r0, 0
+_080D404C:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ asrs r1, r0, 15
+ add r1, r9
+ strh r6, [r1]
+ adds r4, r0, 0
+ asrs r0, r4, 16
+ cmp r0, r2
+ blt _080D404C
+_080D4060:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ bgt _080D4072
+ b _080D3F28
+_080D4072:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080D4084: .4byte 0xffff0000
+ thumb_func_end sub_80D3EF0
+
+ thumb_func_start sub_80D4088
+sub_80D4088: @ 80D4088
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r5, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ strh r1, [r6]
+ strh r2, [r6, 0x2]
+ strh r1, [r6, 0x4]
+ strh r2, [r6, 0x6]
+ strh r3, [r6, 0x8]
+ strh r7, [r6, 0xA]
+ strh r5, [r6, 0xC]
+ strh r4, [r6, 0xE]
+ lsls r3, 16
+ asrs r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ subs r3, r1
+ strh r3, [r6, 0x10]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _080D40DA
+ negs r0, r3
+ strh r0, [r6, 0x10]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0xC]
+_080D40DA:
+ lsls r0, r7, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r1, 16
+ subs r1, r0, r1
+ strh r1, [r6, 0x12]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _080D40F8
+ negs r0, r1
+ strh r0, [r6, 0x12]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0xE]
+_080D40F8:
+ movs r0, 0
+ strh r0, [r6, 0x14]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80D4088
+
+ thumb_func_start sub_80D4104
+sub_80D4104: @ 80D4104
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldrh r0, [r3, 0x10]
+ mov r8, r0
+ movs r1, 0x10
+ ldrsh r6, [r3, r1]
+ ldrh r2, [r3, 0x12]
+ mov r12, r2
+ movs r4, 0x12
+ ldrsh r5, [r3, r4]
+ cmp r6, r5
+ ble _080D4154
+ ldrh r0, [r3, 0xC]
+ ldrh r2, [r3, 0x4]
+ adds r1, r0, r2
+ strh r1, [r3, 0x4]
+ ldrh r2, [r3, 0x14]
+ add r2, r12
+ strh r2, [r3, 0x14]
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r0, 0
+ ldrh r7, [r3, 0xE]
+ cmp r1, r6
+ ble _080D417A
+ ldrh r1, [r3, 0x6]
+ adds r0, r7, r1
+ strh r0, [r3, 0x6]
+ mov r1, r8
+ b _080D4176
+_080D4154:
+ ldrh r0, [r3, 0xE]
+ ldrh r2, [r3, 0x6]
+ adds r1, r0, r2
+ strh r1, [r3, 0x6]
+ ldrh r2, [r3, 0x14]
+ add r2, r8
+ strh r2, [r3, 0x14]
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r4, [r3, 0xC]
+ adds r7, r0, 0
+ cmp r1, r5
+ ble _080D417A
+ ldrh r1, [r3, 0x4]
+ adds r0, r4, r1
+ strh r0, [r3, 0x4]
+ mov r1, r12
+_080D4176:
+ subs r0, r2, r1
+ strh r0, [r3, 0x14]
+_080D417A:
+ movs r5, 0
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ ble _080D4192
+ movs r4, 0x4
+ ldrsh r1, [r3, r4]
+ movs r4, 0x8
+ ldrsh r0, [r3, r4]
+ ldrh r4, [r3, 0x8]
+ cmp r1, r0
+ bge _080D41A4
+_080D4192:
+ cmp r2, 0
+ bge _080D41B2
+ movs r0, 0x4
+ ldrsh r1, [r3, r0]
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ ldrh r4, [r3, 0x8]
+ cmp r1, r0
+ bgt _080D41B2
+_080D41A4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r9
+ cmp r0, 0
+ beq _080D41B2
+ strh r4, [r3, 0x4]
+_080D41B2:
+ lsls r0, r7, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ ble _080D41C8
+ movs r4, 0x6
+ ldrsh r1, [r3, r4]
+ movs r4, 0xA
+ ldrsh r0, [r3, r4]
+ ldrh r4, [r3, 0xA]
+ cmp r1, r0
+ bge _080D41DA
+_080D41C8:
+ cmp r2, 0
+ bge _080D41E8
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r2, 0xA
+ ldrsh r0, [r3, r2]
+ ldrh r4, [r3, 0xA]
+ cmp r1, r0
+ bgt _080D41E8
+_080D41DA:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r10
+ cmp r0, 0
+ beq _080D41E8
+ strh r4, [r3, 0x6]
+_080D41E8:
+ cmp r5, 0x2
+ beq _080D41F0
+ movs r0, 0
+ b _080D41F2
+_080D41F0:
+ movs r0, 0x1
+_080D41F2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80D4104
+
+ .align 2, 0 @ Don't pad with nop.