summaryrefslogtreecommitdiff
path: root/asm/intro.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/intro.s
first commit
Diffstat (limited to 'asm/intro.s')
-rw-r--r--asm/intro.s4841
1 files changed, 4841 insertions, 0 deletions
diff --git a/asm/intro.s b/asm/intro.s
new file mode 100644
index 000000000..e1b2fd4b7
--- /dev/null
+++ b/asm/intro.s
@@ -0,0 +1,4841 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_80EC5A4
+sub_80EC5A4: @ 80EC5A4
+ push {lr}
+ bl sub_8007320
+ bl sub_8007610
+ bl sub_8070474
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EC5A4
+
+ thumb_func_start sub_80EC5B8
+sub_80EC5B8: @ 80EC5B8
+ push {lr}
+ bl sub_80704D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC5CA
+ ldr r0, _080EC5D0 @ =sub_80EC870
+ bl sub_8000544
+_080EC5CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC5D0: .4byte sub_80EC870
+ thumb_func_end sub_80EC5B8
+
+ thumb_func_start sub_80EC5D4
+sub_80EC5D4: @ 80EC5D4
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _080EC610 @ =gUnknown_8402280
+ movs r6, 0xC0
+ lsls r6, 19
+ adds r3, r6
+ adds r1, r3, 0
+ bl LZ77UnCompVram
+ ldr r0, _080EC614 @ =gUnknown_84024E4
+ adds r4, r6
+ adds r1, r4, 0
+ bl LZ77UnCompVram
+ ldr r0, _080EC618 @ =gUnknown_8402260
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC610: .4byte gUnknown_8402280
+_080EC614: .4byte gUnknown_84024E4
+_080EC618: .4byte gUnknown_8402260
+ thumb_func_end sub_80EC5D4
+
+ thumb_func_start sub_80EC61C
+sub_80EC61C: @ 80EC61C
+ push {lr}
+ ldr r0, _080EC628 @ =gUnknown_203AAD4
+ bl GameCubeMultiBoot_HandleSerialInterrupt
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC628: .4byte gUnknown_203AAD4
+ thumb_func_end sub_80EC61C
+
+ thumb_func_start sub_80EC62C
+sub_80EC62C: @ 80EC62C
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r0, _080EC64C @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ cmp r4, 0x8C
+ bne _080EC640
+ b _080EC778
+_080EC640:
+ cmp r4, 0x8C
+ bgt _080EC650
+ cmp r4, 0
+ beq _080EC65E
+ b _080EC732
+ .align 2, 0
+_080EC64C: .4byte gUnknown_30030F0
+_080EC650:
+ cmp r4, 0x8D
+ bne _080EC656
+ b _080EC7A4
+_080EC656:
+ cmp r4, 0x8E
+ bne _080EC65C
+ b _080EC808
+_080EC65C:
+ b _080EC732
+_080EC65E:
+ movs r0, 0
+ bl sub_80006F4
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x52
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x54
+ movs r1, 0
+ bl sub_8000A38
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r2, _080EC74C @ =0x00007fff
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x12
+ movs r1, 0
+ bl sub_8000A38
+ add r0, sp, 0x4
+ strh r4, [r0]
+ ldr r1, _080EC750 @ =0x040000d4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080EC754 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080EC758 @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, _080EC75C @ =0x05000002
+ str r0, [r1, 0x4]
+ ldr r0, _080EC760 @ =0x810001ff
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8070528
+ movs r1, 0xE0
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0
+ bl sub_80EC5D4
+ bl sub_8087E64
+ bl sub_80773BC
+ bl sub_8006B10
+ bl sub_80088F0
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _080EC764 @ =0x0000ffff
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ movs r1, 0xE0
+ lsls r1, 3
+ movs r0, 0x8
+ bl sub_8000A38
+ movs r0, 0x1
+ bl sub_8000B68
+ ldr r0, _080EC768 @ =sub_80EC5A4
+ bl sub_80006F4
+ movs r1, 0xA0
+ lsls r1, 1
+ movs r0, 0
+ bl sub_8000A38
+ ldr r0, _080EC76C @ =sub_80EC61C
+ bl sub_8000718
+ ldr r0, _080EC770 @ =gUnknown_203AAD4
+ bl GameCubeMultiBoot_Init
+_080EC732:
+ bl sub_80704D0
+ ldr r0, _080EC774 @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _080EC770 @ =gUnknown_203AAD4
+ bl GameCubeMultiBoot_Main
+ b _080EC812
+ .align 2, 0
+_080EC74C: .4byte 0x00007fff
+_080EC750: .4byte 0x040000d4
+_080EC754: .4byte 0x8100c000
+_080EC758: .4byte 0x85000100
+_080EC75C: .4byte 0x05000002
+_080EC760: .4byte 0x810001ff
+_080EC764: .4byte 0x0000ffff
+_080EC768: .4byte sub_80EC5A4
+_080EC76C: .4byte sub_80EC61C
+_080EC770: .4byte gUnknown_203AAD4
+_080EC774: .4byte gUnknown_30030F0
+_080EC778:
+ ldr r4, _080EC7A0 @ =gUnknown_203AAD4
+ adds r0, r4, 0
+ bl GameCubeMultiBoot_Main
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x1
+ beq _080EC812
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _080EC812
+ .align 2, 0
+_080EC7A0: .4byte gUnknown_203AAD4
+_080EC7A4:
+ bl sub_80704D0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC812
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r5, _080EC7E4 @ =gUnknown_203AAD4
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _080EC7F4
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x2
+ bne _080EC7FE
+ ldr r6, _080EC7E8 @ =0x020000ac
+ ldr r4, [r6]
+ ldr r0, _080EC7EC @ =0x65366347
+ cmp r4, r0
+ bne _080EC7DC
+ ldr r0, _080EC7F0 @ =gMultiBootProgram_PokemonColosseum_Start
+ movs r1, 0x80
+ lsls r1, 18
+ movs r2, 0xA0
+ lsls r2, 9
+ bl CpuSet
+ str r4, [r6]
+_080EC7DC:
+ adds r0, r5, 0
+ bl GameCubeMultiBoot_ExecuteProgram
+ b _080EC7FE
+ .align 2, 0
+_080EC7E4: .4byte gUnknown_203AAD4
+_080EC7E8: .4byte 0x020000ac
+_080EC7EC: .4byte 0x65366347
+_080EC7F0: .4byte gMultiBootProgram_PokemonColosseum_Start
+_080EC7F4:
+ bl GameCubeMultiBoot_Quit
+ ldr r0, _080EC804 @ =sub_800B798
+ bl sub_8000718
+_080EC7FE:
+ movs r0, 0
+ b _080EC814
+ .align 2, 0
+_080EC804: .4byte sub_800B798
+_080EC808:
+ bl sub_800B388
+ ldr r0, _080EC81C @ =sub_80EC5B8
+ bl sub_8000544
+_080EC812:
+ movs r0, 0x1
+_080EC814:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EC81C: .4byte sub_80EC5B8
+ thumb_func_end sub_80EC62C
+
+ thumb_func_start sub_80EC820
+sub_80EC820: @ 80EC820
+ push {lr}
+ bl sub_80EC62C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC858
+ bl sub_8054A28
+ bl sub_80D9750
+ movs r0, 0
+ bl sub_80DA4FC
+ ldr r0, _080EC85C @ =gUnknown_30053A0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080EC846
+ cmp r0, 0x2
+ bne _080EC84A
+_080EC846:
+ bl sub_8054A18
+_080EC84A:
+ ldr r0, _080EC860 @ =gUnknown_300500C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x15]
+ lsls r0, 31
+ lsrs r0, 31
+ bl SetPokemonCryStereo
+_080EC858:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC85C: .4byte gUnknown_30053A0
+_080EC860: .4byte gUnknown_300500C
+ thumb_func_end sub_80EC820
+
+ thumb_func_start sub_80EC864
+sub_80EC864: @ 80EC864
+ push {lr}
+ bl sub_80EC62C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EC864
+
+ thumb_func_start sub_80EC870
+sub_80EC870: @ 80EC870
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r0, _080EC88C @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r4, [r0]
+ cmp r4, 0x1
+ beq _080EC944
+ cmp r4, 0x1
+ bgt _080EC890
+ cmp r4, 0
+ beq _080EC8A0
+ b _080EC894
+ .align 2, 0
+_080EC88C: .4byte gUnknown_30030F0
+_080EC890:
+ cmp r4, 0x2
+ beq _080EC988
+_080EC894:
+ ldr r0, _080EC928 @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_080EC8A0:
+ movs r0, 0
+ bl sub_80006F4
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ ldr r0, _080EC92C @ =gHeap
+ movs r1, 0xE0
+ lsls r1, 9
+ bl sub_8002B80
+ bl sub_80773BC
+ bl sub_8006B10
+ bl sub_8070528
+ bl sub_80F6808
+ bl sub_80ECA00
+ add r1, sp, 0x4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _080EC930 @ =0x040000d4
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080EC934 @ =0x8100c000
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080EC938 @ =0x85000100
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r2, [r0]
+ str r0, [r1]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _080EC93C @ =0x81000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0x80
+ lsls r2, 3
+ movs r0, 0
+ movs r1, 0
+ bl sub_8070424
+ movs r0, 0
+ bl sub_8001618
+ ldr r1, _080EC940 @ =gUnknown_840BB80
+ movs r0, 0
+ movs r2, 0x2
+ bl sub_8001658
+ b _080EC9B8
+ .align 2, 0
+_080EC928: .4byte gUnknown_30030F0
+_080EC92C: .4byte gHeap
+_080EC930: .4byte 0x040000d4
+_080EC934: .4byte 0x8100c000
+_080EC938: .4byte 0x85000100
+_080EC93C: .4byte 0x81000200
+_080EC940: .4byte gUnknown_840BB80
+_080EC944:
+ ldr r0, _080EC978 @ =gUnknown_8402630
+ movs r1, 0
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r1, _080EC97C @ =gUnknown_8402650
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080EC980 @ =gUnknown_8402668
+ str r4, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r0, _080EC984 @ =gUnknown_840270C
+ movs r1, 0xD0
+ movs r2, 0x20
+ bl sub_80703EC
+ b _080EC9B8
+ .align 2, 0
+_080EC978: .4byte gUnknown_8402630
+_080EC97C: .4byte gUnknown_8402650
+_080EC980: .4byte gUnknown_8402668
+_080EC984: .4byte gUnknown_840270C
+_080EC988:
+ bl sub_80F682C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EC9C6
+ bl sub_80ECA70
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl sub_80714D4
+ ldr r0, _080EC9B0 @ =sub_80EC9D4
+ bl sub_8000544
+ ldr r0, _080EC9B4 @ =sub_80EC9EC
+ bl sub_80006F4
+ b _080EC9C6
+ .align 2, 0
+_080EC9B0: .4byte sub_80EC9D4
+_080EC9B4: .4byte sub_80EC9EC
+_080EC9B8:
+ ldr r1, _080EC9D0 @ =gUnknown_30030F0
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_080EC9C6:
+ add sp, 0xC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EC9D0: .4byte gUnknown_30030F0
+ thumb_func_end sub_80EC870
+
+ thumb_func_start sub_80EC9D4
+sub_80EC9D4: @ 80EC9D4
+ push {lr}
+ bl sub_8077578
+ bl sub_8006B5C
+ bl sub_8006BA8
+ bl sub_80704D0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EC9D4
+
+ thumb_func_start sub_80EC9EC
+sub_80EC9EC: @ 80EC9EC
+ push {lr}
+ bl sub_8007320
+ bl sub_8007610
+ bl sub_8070474
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EC9EC
+
+ thumb_func_start sub_80ECA00
+sub_80ECA00: @ 80ECA00
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x52
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x54
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x10
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x12
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x14
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x16
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x18
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x1A
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x1C
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x1E
+ movs r1, 0
+ bl sub_8000A38
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl sub_8000AF4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ECA00
+
+ thumb_func_start sub_80ECA70
+sub_80ECA70: @ 80ECA70
+ push {r4,lr}
+ ldr r0, _080ECA9C @ =0x000028bc
+ bl sub_8002B9C
+ adds r4, r0, 0
+ ldr r1, _080ECAA0 @ =sub_80ECAF0
+ bl sub_80ECAA8
+ ldr r0, _080ECAA4 @ =sub_80ECAB0
+ movs r1, 0x3
+ bl sub_807741C
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x5]
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_80776E8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECA9C: .4byte 0x000028bc
+_080ECAA0: .4byte sub_80ECAF0
+_080ECAA4: .4byte sub_80ECAB0
+ thumb_func_end sub_80ECA70
+
+ thumb_func_start sub_80ECAA8
+sub_80ECAA8: @ 80ECAA8
+ str r1, [r0]
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_80ECAA8
+
+ thumb_func_start sub_80ECAB0
+sub_80ECAB0: @ 80ECAB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8077720
+ adds r4, r0, 0
+ ldr r0, _080ECAE8 @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xD
+ ands r0, r1
+ cmp r0, 0
+ beq _080ECAD8
+ ldr r0, [r4]
+ ldr r1, _080ECAEC @ =sub_80EDBE8
+ cmp r0, r1
+ beq _080ECAD8
+ adds r0, r4, 0
+ bl sub_80ECAA8
+_080ECAD8:
+ ldr r1, [r4]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECAE8: .4byte gUnknown_30030F0
+_080ECAEC: .4byte sub_80EDBE8
+ thumb_func_end sub_80ECAB0
+
+ thumb_func_start sub_80ECAF0
+sub_80ECAF0: @ 80ECAF0
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0
+ beq _080ECB02
+ cmp r0, 0x1
+ beq _080ECB78
+ b _080ECB8A
+_080ECB02:
+ ldr r0, _080ECB68 @ =gUnknown_840BBA8
+ bl sub_8003B24
+ ldr r0, _080ECB6C @ =gUnknown_840272C
+ ldr r1, _080ECB70 @ =0x0000043c
+ adds r4, r5, r1
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r0, _080ECB74 @ =gUnknown_84028F8
+ adds r1, r5, 0
+ adds r1, 0x3C
+ bl LZ77UnCompWram
+ movs r0, 0x20
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ movs r0, 0x11
+ str r0, [sp, 0x8]
+ movs r0, 0x2
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002554
+ movs r0, 0
+ movs r1, 0
+ bl sub_800445C
+ movs r0, 0x90
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x28
+ bl sub_80041B8
+ movs r0, 0
+ bl sub_8003FA0
+ movs r0, 0
+ movs r1, 0x3
+ bl sub_8003F20
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _080ECB8A
+ .align 2, 0
+_080ECB68: .4byte gUnknown_840BBA8
+_080ECB6C: .4byte gUnknown_840272C
+_080ECB70: .4byte 0x0000043c
+_080ECB74: .4byte gUnknown_84028F8
+_080ECB78:
+ bl sub_8001960
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECB8A
+ ldr r1, _080ECB94 @ =sub_80ECB98
+ adds r0, r5, 0
+ bl sub_80ECAA8
+_080ECB8A:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECB94: .4byte sub_80ECB98
+ thumb_func_end sub_80ECAF0
+
+ thumb_func_start sub_80ECB98
+sub_80ECB98: @ 80ECB98
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrb r5, [r4, 0x4]
+ cmp r5, 0x1
+ beq _080ECBE2
+ cmp r5, 0x1
+ bgt _080ECBAC
+ cmp r5, 0
+ beq _080ECBB2
+ b _080ECC32
+_080ECBAC:
+ cmp r5, 0x2
+ beq _080ECBFC
+ b _080ECC32
+_080ECBB2:
+ movs r1, 0x80
+ lsls r1, 7
+ movs r0, 0
+ bl sub_8000AF4
+ movs r1, 0xFC
+ lsls r1, 6
+ movs r0, 0x48
+ bl sub_8000A38
+ movs r0, 0x4A
+ movs r1, 0
+ bl sub_8000A38
+ movs r0, 0x42
+ movs r1, 0xF0
+ bl sub_8000A38
+ movs r0, 0x46
+ movs r1, 0
+ bl sub_8000A38
+ strh r5, [r4, 0x12]
+ b _080ECBF4
+_080ECBE2:
+ movs r0, 0x3
+ bl sub_80019BC
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ movs r2, 0
+ bl sub_80714D4
+_080ECBF4:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080ECC32
+_080ECBFC:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x8
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2F
+ bls _080ECC0E
+ movs r0, 0x30
+ strh r0, [r4, 0x12]
+_080ECC0E:
+ ldrh r0, [r4, 0x12]
+ movs r1, 0x50
+ subs r1, r0
+ lsls r1, 8
+ adds r0, 0x50
+ orrs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r0, 0x46
+ bl sub_8000A38
+ ldrh r0, [r4, 0x12]
+ cmp r0, 0x30
+ bne _080ECC32
+ ldr r1, _080ECC38 @ =sub_80ECC3C
+ adds r0, r4, 0
+ bl sub_80ECAA8
+_080ECC32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECC38: .4byte sub_80ECC3C
+ thumb_func_end sub_80ECB98
+
+ thumb_func_start sub_80ECC3C
+sub_80ECC3C: @ 80ECC3C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrb r5, [r4, 0x4]
+ cmp r5, 0x1
+ beq _080ECC68
+ cmp r5, 0x1
+ bgt _080ECC50
+ cmp r5, 0
+ beq _080ECC56
+ b _080ECC9C
+_080ECC50:
+ cmp r5, 0x2
+ beq _080ECC86
+ b _080ECC9C
+_080ECC56:
+ ldr r0, _080ECC64 @ =0x00000141
+ bl sub_80722CC
+ bl sub_80EDC40
+ strh r5, [r4, 0x12]
+ b _080ECC7E
+ .align 2, 0
+_080ECC64: .4byte 0x00000141
+_080ECC68:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bne _080ECC9C
+ bl sub_80EDDF0
+ movs r0, 0
+ strh r0, [r4, 0x12]
+_080ECC7E:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080ECC9C
+_080ECC86:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5A
+ bne _080ECC9C
+ ldr r1, _080ECCA4 @ =sub_80ECCA8
+ adds r0, r4, 0
+ bl sub_80ECAA8
+_080ECC9C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECCA4: .4byte sub_80ECCA8
+ thumb_func_end sub_80ECC3C
+
+ thumb_func_start sub_80ECCA8
+sub_80ECCA8: @ 80ECCA8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0x5
+ bhi _080ECD54
+ lsls r0, 2
+ ldr r1, _080ECCC0 @ =_080ECCC4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECCC0: .4byte _080ECCC4
+ .align 2, 0
+_080ECCC4:
+ .4byte _080ECCDC
+ .4byte _080ECCE6
+ .4byte _080ECCF6
+ .4byte _080ECD18
+ .4byte _080ECD20
+ .4byte _080ECD3E
+_080ECCDC:
+ bl sub_80EDED8
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ b _080ECD36
+_080ECCE6:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x27
+ bls _080ECD54
+ b _080ECD36
+_080ECCF6:
+ ldr r1, _080ECD14 @ =0x00003f44
+ movs r0, 0x50
+ bl sub_8000A38
+ movs r0, 0x30
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0x10
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_812E944
+ b _080ECD36
+ .align 2, 0
+_080ECD14: .4byte 0x00003f44
+_080ECD18:
+ movs r0, 0x2
+ bl sub_80019BC
+ b _080ECD36
+_080ECD20:
+ bl sub_812E9E4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _080ECD54
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ strh r5, [r4, 0x12]
+_080ECD36:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080ECD54
+_080ECD3E:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x32
+ bls _080ECD54
+ ldr r1, _080ECD5C @ =sub_80ECD60
+ adds r0, r4, 0
+ bl sub_80ECAA8
+_080ECD54:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECD5C: .4byte sub_80ECD60
+ thumb_func_end sub_80ECCA8
+
+ thumb_func_start sub_80ECD60
+sub_80ECD60: @ 80ECD60
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ ldrb r0, [r6, 0x4]
+ cmp r0, 0x7
+ bls _080ECD6E
+ b _080ECE96
+_080ECD6E:
+ lsls r0, 2
+ ldr r1, _080ECD78 @ =_080ECD7C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECD78: .4byte _080ECD7C
+ .align 2, 0
+_080ECD7C:
+ .4byte _080ECD9C
+ .4byte _080ECDC4
+ .4byte _080ECDCC
+ .4byte _080ECE10
+ .4byte _080ECE26
+ .4byte _080ECE52
+ .4byte _080ECE64
+ .4byte _080ECE78
+_080ECD9C:
+ ldr r1, _080ECDC0 @ =0x00003f50
+ movs r0, 0x50
+ bl sub_8000A38
+ movs r5, 0x10
+ str r5, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_812E944
+ strh r4, [r6, 0x8]
+ strh r5, [r6, 0xA]
+ strh r4, [r6, 0x12]
+ b _080ECE70
+ .align 2, 0
+_080ECDC0: .4byte 0x00003f50
+_080ECDC4:
+ bl sub_80EDF68
+ str r0, [r6, 0x14]
+ b _080ECE70
+_080ECDCC:
+ bl sub_812E9E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECE96
+ adds r1, r6, 0
+ adds r1, 0x3C
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r2, 0x38
+ movs r3, 0x6
+ bl sub_80041B8
+ ldr r0, _080ECE0C @ =0x0000043c
+ adds r1, r6, r0
+ movs r0, 0x90
+ str r0, [sp]
+ movs r0, 0x10
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x28
+ bl sub_80041B8
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_8003F20
+ b _080ECE70
+ .align 2, 0
+_080ECE0C: .4byte 0x0000043c
+_080ECE10:
+ bl sub_8001960
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080ECE96
+ ldr r0, [r6, 0x14]
+ bl sub_8007280
+ strh r4, [r6, 0x12]
+ b _080ECE70
+_080ECE26:
+ ldrh r0, [r6, 0x12]
+ adds r0, 0x1
+ strh r0, [r6, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5A
+ bls _080ECE96
+ movs r0, 0x50
+ movs r1, 0x4
+ bl sub_8000AF4
+ movs r0, 0x14
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_812E944
+ b _080ECE70
+_080ECE52:
+ bl sub_812E9E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ECE96
+ movs r0, 0x2
+ bl sub_80019D0
+ b _080ECE70
+_080ECE64:
+ bl sub_8006B10
+ bl sub_80088F0
+ movs r0, 0
+ strh r0, [r6, 0x12]
+_080ECE70:
+ ldrb r0, [r6, 0x4]
+ adds r0, 0x1
+ strb r0, [r6, 0x4]
+ b _080ECE96
+_080ECE78:
+ ldrh r0, [r6, 0x12]
+ adds r0, 0x1
+ strh r0, [r6, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x14
+ bls _080ECE96
+ movs r0, 0x50
+ movs r1, 0
+ bl sub_8000A38
+ ldr r1, _080ECEA0 @ =sub_80ECEA4
+ adds r0, r6, 0
+ bl sub_80ECAA8
+_080ECE96:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ECEA0: .4byte sub_80ECEA4
+ thumb_func_end sub_80ECD60
+
+ thumb_func_start sub_80ECEA4
+sub_80ECEA4: @ 80ECEA4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0x5
+ bls _080ECEB2
+ b _080ED094
+_080ECEB2:
+ lsls r0, 2
+ ldr r1, _080ECEBC @ =_080ECEC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ECEBC: .4byte _080ECEC0
+ .align 2, 0
+_080ECEC0:
+ .4byte _080ECED8
+ .4byte _080ECF64
+ .4byte _080ECFA4
+ .4byte _080ECFD8
+ .4byte _080ED000
+ .4byte _080ED064
+_080ECED8:
+ movs r0, 0
+ bl sub_80006F4
+ ldr r0, _080ECF48 @ =gUnknown_8402D34
+ movs r1, 0x10
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r0, _080ECF4C @ =gUnknown_84048CC
+ movs r1, 0x20
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r2, _080ECF50 @ =0x00007fff
+ movs r0, 0x6
+ movs r1, 0x10
+ bl sub_80714D4
+ ldr r1, _080ECF54 @ =gUnknown_840BB88
+ movs r0, 0
+ movs r2, 0x2
+ bl sub_8001658
+ ldr r1, _080ECF58 @ =gUnknown_84048EC
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ECF5C @ =gUnknown_8404F7C
+ movs r0, 0x1
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ movs r0, 0x1
+ bl sub_80019BC
+ movs r0, 0
+ bl sub_80019D0
+ movs r0, 0x2
+ bl sub_80019D0
+ movs r0, 0x3
+ bl sub_80019D0
+ bl sub_80EEBE4
+ ldr r0, _080ECF60 @ =sub_80EC9EC
+ bl sub_80006F4
+ b _080ECFF0
+ .align 2, 0
+_080ECF48: .4byte gUnknown_8402D34
+_080ECF4C: .4byte gUnknown_84048CC
+_080ECF50: .4byte 0x00007fff
+_080ECF54: .4byte gUnknown_840BB88
+_080ECF58: .4byte gUnknown_84048EC
+_080ECF5C: .4byte gUnknown_8404F7C
+_080ECF60: .4byte sub_80EC9EC
+_080ECF64:
+ bl sub_80F682C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080ECF72
+ b _080ED094
+_080ECF72:
+ ldr r1, _080ECF9C @ =gUnknown_8402D54
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ECFA0 @ =gUnknown_8403FE8
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ bl sub_80F6C14
+ movs r0, 0x1
+ bl sub_80019BC
+ b _080ECFF0
+ .align 2, 0
+_080ECF9C: .4byte gUnknown_8402D54
+_080ECFA0: .4byte gUnknown_8403FE8
+_080ECFA4:
+ bl sub_80F682C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED094
+ movs r0, 0
+ bl sub_80019BC
+ ldr r0, _080ECFD0 @ =sub_80ED0AC
+ movs r1, 0
+ bl sub_807741C
+ movs r1, 0x2
+ negs r1, r1
+ ldr r0, _080ECFD4 @ =0x00007fff
+ str r0, [sp]
+ movs r0, 0x6
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ b _080ECFF0
+ .align 2, 0
+_080ECFD0: .4byte sub_80ED0AC
+_080ECFD4: .4byte 0x00007fff
+_080ECFD8:
+ ldr r0, _080ECFF8 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080ED094
+ ldr r0, _080ECFFC @ =0x00000115
+ bl m4aSongNumStart
+ strh r4, [r5, 0x12]
+_080ECFF0:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _080ED094
+ .align 2, 0
+_080ECFF8: .4byte gUnknown_2037AB8
+_080ECFFC: .4byte 0x00000115
+_080ED000:
+ ldrh r0, [r5, 0x12]
+ adds r0, 0x1
+ strh r0, [r5, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x14
+ bne _080ED01A
+ ldr r0, _080ED054 @ =sub_80ED140
+ movs r1, 0
+ bl sub_807741C
+ bl sub_80ED118
+_080ED01A:
+ ldrh r0, [r5, 0x12]
+ cmp r0, 0x1D
+ bls _080ED094
+ movs r0, 0x2
+ negs r0, r0
+ ldr r2, _080ED058 @ =0x00007fff
+ movs r1, 0x10
+ bl sub_80714D4
+ ldr r0, _080ED05C @ =sub_80ED0AC
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ ldr r0, _080ED054 @ =sub_80ED140
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ ldr r1, _080ED060 @ =sub_80ED188
+ adds r0, r5, 0
+ bl sub_80ECAA8
+ b _080ED094
+ .align 2, 0
+_080ED054: .4byte sub_80ED140
+_080ED058: .4byte 0x00007fff
+_080ED05C: .4byte sub_80ED0AC
+_080ED060: .4byte sub_80ED188
+_080ED064:
+ ldr r0, _080ED09C @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080ED094
+ ldr r0, _080ED0A0 @ =sub_80ED0AC
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ ldr r0, _080ED0A4 @ =sub_80ED140
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ ldr r1, _080ED0A8 @ =sub_80ED188
+ adds r0, r5, 0
+ bl sub_80ECAA8
+_080ED094:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED09C: .4byte gUnknown_2037AB8
+_080ED0A0: .4byte sub_80ED0AC
+_080ED0A4: .4byte sub_80ED140
+_080ED0A8: .4byte sub_80ED188
+ thumb_func_end sub_80ECEA4
+
+ thumb_func_start sub_80ED0AC
+sub_80ED0AC: @ 80ED0AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080ED114 @ =gUnknown_3005098
+ adds r4, r1, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ ble _080ED0EC
+ movs r1, 0
+ strh r1, [r4]
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _080ED0DE
+ strh r1, [r4, 0x2]
+_080ED0DE:
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ lsls r1, 15
+ movs r0, 0
+ movs r2, 0
+ bl sub_8001D08
+_080ED0EC:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080ED10C
+ movs r1, 0x90
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r4, 0x6]
+ adds r0, r1
+ strh r0, [r4, 0x6]
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ movs r2, 0x2
+ bl sub_8001D08
+_080ED10C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED114: .4byte gUnknown_3005098
+ thumb_func_end sub_80ED0AC
+
+ thumb_func_start sub_80ED118
+sub_80ED118: @ 80ED118
+ push {lr}
+ ldr r0, _080ED138 @ =sub_80ED0AC
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ED13C @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED138: .4byte sub_80ED0AC
+_080ED13C: .4byte gUnknown_3005090
+ thumb_func_end sub_80ED118
+
+ thumb_func_start sub_80ED140
+sub_80ED140: @ 80ED140
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080ED184 @ =gUnknown_3005098
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080ED17E
+ movs r0, 0
+ strh r0, [r1]
+ ldrh r2, [r1, 0x2]
+ movs r3, 0x2
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1
+ bgt _080ED170
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x2]
+_080ED170:
+ movs r0, 0x2
+ ldrsh r1, [r1, r0]
+ lsls r1, 15
+ movs r0, 0x1
+ movs r2, 0
+ bl sub_8001D08
+_080ED17E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED184: .4byte gUnknown_3005098
+ thumb_func_end sub_80ED140
+
+ thumb_func_start sub_80ED188
+sub_80ED188: @ 80ED188
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ ldrb r0, [r7, 0x4]
+ cmp r0, 0x6
+ bls _080ED19A
+ b _080ED3F6
+_080ED19A:
+ lsls r0, 2
+ ldr r1, _080ED1A4 @ =_080ED1A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED1A4: .4byte _080ED1A8
+ .align 2, 0
+_080ED1A8:
+ .4byte _080ED1C4
+ .4byte _080ED214
+ .4byte _080ED32C
+ .4byte _080ED350
+ .4byte _080ED360
+ .4byte _080ED3BC
+ .4byte _080ED3D2
+_080ED1C4:
+ movs r0, 0x2
+ negs r0, r0
+ ldr r2, _080ED204 @ =0x00007fff
+ movs r1, 0x10
+ bl sub_80714D4
+ ldr r1, _080ED208 @ =gUnknown_840BB90
+ movs r0, 0
+ movs r2, 0x4
+ bl sub_8001658
+ ldr r1, _080ED20C @ =gUnknown_8405414
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED210 @ =gUnknown_8405890
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ movs r0, 0x3
+ bl sub_80019BC
+ b _080ED3CA
+ .align 2, 0
+_080ED204: .4byte 0x00007fff
+_080ED208: .4byte gUnknown_840BB90
+_080ED20C: .4byte gUnknown_8405414
+_080ED210: .4byte gUnknown_8405890
+_080ED214:
+ bl sub_80F682C
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _080ED222
+ b _080ED3F6
+_080ED222:
+ movs r0, 0
+ bl sub_80006F4
+ ldr r0, _080ED2FC @ =gUnknown_84053B4
+ movs r1, 0x10
+ movs r2, 0x60
+ bl sub_80703EC
+ ldr r0, _080ED300 @ =gUnknown_8405DA4
+ movs r1, 0x50
+ movs r2, 0x20
+ bl sub_80703EC
+ ldr r0, _080ED304 @ =gUnknown_8406634
+ movs r1, 0x60
+ movs r2, 0x20
+ bl sub_80703EC
+ movs r5, 0x2
+ negs r5, r5
+ ldr r0, _080ED308 @ =0x00007fff
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0x10
+ mov r2, r8
+ bl sub_80714D4
+ ldr r1, _080ED30C @ =gUnknown_8405B28
+ str r6, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED310 @ =gUnknown_8405CDC
+ movs r4, 0x1
+ str r4, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED314 @ =gUnknown_8406654
+ str r6, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED318 @ =gUnknown_84071D0
+ str r4, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED31C @ =gUnknown_8405DC4
+ str r6, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED320 @ =gUnknown_840644C
+ str r4, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ bl sub_80F6C14
+ movs r0, 0
+ bl sub_80019BC
+ movs r0, 0x1
+ bl sub_80019D0
+ movs r0, 0x2
+ bl sub_80019D0
+ movs r1, 0xE7
+ lsls r1, 9
+ movs r0, 0x2
+ movs r2, 0
+ bl sub_8001D08
+ movs r1, 0xA0
+ lsls r1, 6
+ movs r0, 0x1
+ movs r2, 0
+ bl sub_8001D08
+ ldr r0, _080ED324 @ =sub_80ED40C
+ movs r1, 0
+ bl sub_807741C
+ adds r0, r7, 0
+ bl sub_80ED444
+ adds r0, r5, 0
+ movs r1, 0x10
+ mov r2, r8
+ bl sub_80714D4
+ ldr r0, _080ED328 @ =sub_80EC9EC
+ bl sub_80006F4
+ b _080ED3CA
+ .align 2, 0
+_080ED2FC: .4byte gUnknown_84053B4
+_080ED300: .4byte gUnknown_8405DA4
+_080ED304: .4byte gUnknown_8406634
+_080ED308: .4byte 0x00007fff
+_080ED30C: .4byte gUnknown_8405B28
+_080ED310: .4byte gUnknown_8405CDC
+_080ED314: .4byte gUnknown_8406654
+_080ED318: .4byte gUnknown_84071D0
+_080ED31C: .4byte gUnknown_8405DC4
+_080ED320: .4byte gUnknown_840644C
+_080ED324: .4byte sub_80ED40C
+_080ED328: .4byte sub_80EC9EC
+_080ED32C:
+ bl sub_80F682C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED3F6
+ movs r1, 0x2
+ negs r1, r1
+ ldr r0, _080ED34C @ =0x00007fff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ b _080ED3CA
+ .align 2, 0
+_080ED34C: .4byte 0x00007fff
+_080ED350:
+ ldr r0, _080ED35C @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ b _080ED3C0
+ .align 2, 0
+_080ED35C: .4byte gUnknown_2037AB8
+_080ED360:
+ ldrh r0, [r7, 0x12]
+ adds r0, 0x1
+ strh r0, [r7, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3B
+ bls _080ED3F6
+ movs r0, 0
+ strh r0, [r7, 0x12]
+ ldr r0, _080ED3B4 @ =sub_80ED40C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ adds r0, r7, 0
+ bl sub_80ED4A0
+ ldr r0, _080ED3B8 @ =sub_80ED428
+ movs r1, 0
+ bl sub_807741C
+ movs r1, 0x80
+ lsls r1, 9
+ movs r0, 0x3
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0
+ bl sub_80019D0
+ movs r0, 0x3
+ bl sub_80019BC
+ movs r0, 0x1
+ bl sub_80019BC
+ movs r0, 0x2
+ bl sub_80019BC
+ b _080ED3CA
+ .align 2, 0
+_080ED3B4: .4byte sub_80ED40C
+_080ED3B8: .4byte sub_80ED428
+_080ED3BC:
+ bl sub_8001960
+_080ED3C0:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080ED3F6
+ strh r0, [r7, 0x12]
+_080ED3CA:
+ ldrb r0, [r7, 0x4]
+ adds r0, 0x1
+ strb r0, [r7, 0x4]
+ b _080ED3F6
+_080ED3D2:
+ ldrh r0, [r7, 0x12]
+ adds r0, 0x1
+ strh r0, [r7, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3B
+ bls _080ED3F6
+ ldr r0, _080ED404 @ =sub_80ED428
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8077508
+ ldr r1, _080ED408 @ =sub_80ED4C0
+ adds r0, r7, 0
+ bl sub_80ECAA8
+_080ED3F6:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED404: .4byte sub_80ED428
+_080ED408: .4byte sub_80ED4C0
+ thumb_func_end sub_80ED188
+
+ thumb_func_start sub_80ED40C
+sub_80ED40C: @ 80ED40C
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0xE0
+ movs r2, 0x2
+ bl sub_8001B90
+ movs r1, 0x88
+ lsls r1, 1
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8001B90
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED40C
+
+ thumb_func_start sub_80ED428
+sub_80ED428: @ 80ED428
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0x20
+ movs r2, 0x1
+ bl sub_8001D08
+ movs r0, 0x1
+ movs r1, 0x24
+ movs r2, 0x2
+ bl sub_8001D08
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED428
+
+ thumb_func_start sub_80ED444
+sub_80ED444: @ 80ED444
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ str r0, [r4, 0x1C]
+ str r0, [r4, 0x20]
+ ldr r0, _080ED494 @ =gUnknown_840BDA8
+ movs r1, 0xA8
+ movs r2, 0x50
+ movs r3, 0xB
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080ED46E
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080ED498 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r4, 0x20]
+_080ED46E:
+ ldr r0, _080ED49C @ =gUnknown_840BDC0
+ movs r1, 0x48
+ movs r2, 0x50
+ movs r3, 0xC
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080ED48E
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080ED498 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r4, 0x1C]
+_080ED48E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED494: .4byte gUnknown_840BDA8
+_080ED498: .4byte gUnknown_202063C
+_080ED49C: .4byte gUnknown_840BDC0
+ thumb_func_end sub_80ED444
+
+ thumb_func_start sub_80ED4A0
+sub_80ED4A0: @ 80ED4A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x1C]
+ cmp r0, 0
+ beq _080ED4AE
+ bl sub_8007280
+_080ED4AE:
+ ldr r0, [r4, 0x20]
+ cmp r0, 0
+ beq _080ED4B8
+ bl sub_8007280
+_080ED4B8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED4A0
+
+ thumb_func_start sub_80ED4C0
+sub_80ED4C0: @ 80ED4C0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrb r4, [r5, 0x4]
+ cmp r4, 0x1
+ beq _080ED59C
+ cmp r4, 0x1
+ bgt _080ED4D6
+ cmp r4, 0
+ beq _080ED4E4
+ b _080ED68A
+_080ED4D6:
+ cmp r4, 0x2
+ bne _080ED4DC
+ b _080ED5FC
+_080ED4DC:
+ cmp r4, 0x3
+ bne _080ED4E2
+ b _080ED658
+_080ED4E2:
+ b _080ED68A
+_080ED4E4:
+ ldr r0, _080ED584 @ =gUnknown_8407430
+ movs r1, 0x10
+ movs r2, 0x40
+ bl sub_80703EC
+ ldr r0, _080ED588 @ =gUnknown_8405DA4
+ movs r1, 0x50
+ movs r2, 0x20
+ bl sub_80703EC
+ movs r0, 0x2
+ negs r0, r0
+ ldr r2, _080ED58C @ =0x00007fff
+ movs r1, 0x10
+ bl sub_80714D4
+ ldr r1, _080ED590 @ =gUnknown_840BBA0
+ movs r0, 0
+ movs r2, 0x2
+ bl sub_8001658
+ ldr r1, _080ED594 @ =gUnknown_8407470
+ str r4, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED598 @ =gUnknown_8407A50
+ movs r0, 0x1
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ movs r0, 0x1
+ bl sub_80019BC
+ movs r0, 0
+ bl sub_80019D0
+ movs r0, 0x2
+ bl sub_80019D0
+ movs r0, 0x3
+ bl sub_80019D0
+ bl sub_80F6C14
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl sub_8000AF4
+ movs r0, 0x48
+ movs r1, 0x12
+ bl sub_8000AF4
+ movs r0, 0x48
+ movs r1, 0x1
+ bl sub_8000B14
+ movs r0, 0x4A
+ movs r1, 0
+ bl sub_8000AF4
+ movs r1, 0x82
+ lsls r1, 6
+ movs r0, 0x44
+ bl sub_8000A38
+ movs r0, 0x40
+ movs r1, 0x78
+ bl sub_8000A38
+ b _080ED68A
+ .align 2, 0
+_080ED584: .4byte gUnknown_8407430
+_080ED588: .4byte gUnknown_8405DA4
+_080ED58C: .4byte 0x00007fff
+_080ED590: .4byte gUnknown_840BBA0
+_080ED594: .4byte gUnknown_8407470
+_080ED598: .4byte gUnknown_8407A50
+_080ED59C:
+ bl sub_80F682C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080ED68A
+ ldr r1, _080ED5EC @ =gUnknown_8407B9C
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED5F0 @ =gUnknown_8408D98
+ str r4, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F6878
+ ldr r1, _080ED5F4 @ =gUnknown_203AB00
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r1, _080ED5F8 @ =gUnknown_203AB02
+ movs r0, 0x34
+ strh r0, [r1]
+ movs r1, 0xC0
+ lsls r1, 5
+ movs r0, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r1, 0xF8
+ lsls r1, 9
+ movs r0, 0
+ movs r2, 0
+ bl sub_8001D08
+ b _080ED642
+ .align 2, 0
+_080ED5EC: .4byte gUnknown_8407B9C
+_080ED5F0: .4byte gUnknown_8408D98
+_080ED5F4: .4byte gUnknown_203AB00
+_080ED5F8: .4byte gUnknown_203AB02
+_080ED5FC:
+ bl sub_80F682C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080ED68A
+ movs r0, 0x2
+ negs r0, r0
+ ldr r2, _080ED64C @ =0x00007fff
+ movs r1, 0
+ bl sub_80714D4
+ movs r0, 0
+ bl sub_80019BC
+ ldr r0, _080ED650 @ =sub_80ED714
+ movs r1, 0
+ bl sub_807741C
+ adds r0, r5, 0
+ bl sub_80EE4F8
+ ldr r0, [r5, 0x18]
+ movs r1, 0
+ movs r2, 0xB4
+ movs r3, 0x34
+ bl sub_80EE528
+ ldr r0, _080ED654 @ =sub_80EE200
+ movs r1, 0
+ bl sub_807741C
+ bl sub_80ED6D8
+ strh r4, [r5, 0x12]
+_080ED642:
+ ldrb r0, [r5, 0x4]
+ adds r0, 0x1
+ strb r0, [r5, 0x4]
+ b _080ED68A
+ .align 2, 0
+_080ED64C: .4byte 0x00007fff
+_080ED650: .4byte sub_80ED714
+_080ED654: .4byte sub_80EE200
+_080ED658:
+ ldrh r0, [r5, 0x12]
+ adds r0, 0x1
+ strh r0, [r5, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bne _080ED66C
+ adds r0, r5, 0
+ bl sub_80ED7D4
+_080ED66C:
+ adds r0, r5, 0
+ bl sub_80EE5C8
+ cmp r0, 0
+ bne _080ED68A
+ ldr r0, _080ED694 @ =sub_80EE200
+ bl sub_8077650
+ lsls r0, 24
+ cmp r0, 0
+ bne _080ED68A
+ ldr r1, _080ED698 @ =sub_80ED898
+ adds r0, r5, 0
+ bl sub_80ECAA8
+_080ED68A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED694: .4byte sub_80EE200
+_080ED698: .4byte sub_80ED898
+ thumb_func_end sub_80ED4C0
+
+ thumb_func_start sub_80ED69C
+sub_80ED69C: @ 80ED69C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ED6C4 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _080ED6C8
+ movs r1, 0x80
+ lsls r1, 3
+ movs r0, 0x1
+ movs r2, 0x2
+ bl sub_8001B90
+ b _080ED6D2
+ .align 2, 0
+_080ED6C4: .4byte gUnknown_3005090
+_080ED6C8:
+ movs r0, 0x1
+ movs r1, 0x20
+ movs r2, 0x2
+ bl sub_8001B90
+_080ED6D2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED69C
+
+ thumb_func_start sub_80ED6D8
+sub_80ED6D8: @ 80ED6D8
+ push {lr}
+ ldr r0, _080ED6E8 @ =sub_80ED69C
+ movs r1, 0
+ bl sub_807741C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED6E8: .4byte sub_80ED69C
+ thumb_func_end sub_80ED6D8
+
+ thumb_func_start sub_80ED6EC
+sub_80ED6EC: @ 80ED6EC
+ push {lr}
+ ldr r0, _080ED70C @ =sub_80ED69C
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ED710 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED70C: .4byte sub_80ED69C
+_080ED710: .4byte gUnknown_3005090
+ thumb_func_end sub_80ED6EC
+
+ thumb_func_start sub_80ED714
+sub_80ED714: @ 80ED714
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080ED75C @ =gUnknown_3005098
+ adds r2, r1, r0
+ movs r0, 0
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ bne _080ED758
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _080ED758
+ strh r1, [r2, 0x2]
+ ldrh r0, [r2, 0x4]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r2, 0x4]
+ movs r0, 0x4
+ ldrsh r1, [r2, r0]
+ lsls r1, 15
+ movs r0, 0xF8
+ lsls r0, 9
+ adds r1, r0
+ movs r0, 0
+ movs r2, 0
+ bl sub_8001D08
+_080ED758:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED75C: .4byte gUnknown_3005098
+ thumb_func_end sub_80ED714
+
+ thumb_func_start sub_80ED760
+sub_80ED760: @ 80ED760
+ push {lr}
+ ldr r0, _080ED780 @ =sub_80ED714
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ED784 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED780: .4byte sub_80ED714
+_080ED784: .4byte gUnknown_3005090
+ thumb_func_end sub_80ED760
+
+ thumb_func_start sub_80ED788
+sub_80ED788: @ 80ED788
+ push {lr}
+ ldr r0, _080ED7A8 @ =sub_80ED714
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ED7AC @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080ED7A8: .4byte sub_80ED714
+_080ED7AC: .4byte gUnknown_3005090
+ thumb_func_end sub_80ED788
+
+ thumb_func_start sub_80ED7B0
+sub_80ED7B0: @ 80ED7B0
+ push {lr}
+ ldr r0, _080ED7CC @ =sub_80ED714
+ bl sub_8077688
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080ED7D0 @ =gUnknown_3005090
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0xC]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080ED7CC: .4byte sub_80ED714
+_080ED7D0: .4byte gUnknown_3005090
+ thumb_func_end sub_80ED7B0
+
+ thumb_func_start sub_80ED7D4
+sub_80ED7D4: @ 80ED7D4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080ED800 @ =gUnknown_840BDFC
+ movs r1, 0x94
+ lsls r1, 1
+ movs r2, 0x70
+ movs r3, 0x7
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080ED80C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080ED804 @ =gUnknown_202063C
+ adds r0, r1
+ str r0, [r4, 0x24]
+ ldr r1, _080ED808 @ =sub_80ED818
+ str r1, [r0, 0x1C]
+ b _080ED810
+ .align 2, 0
+_080ED800: .4byte gUnknown_840BDFC
+_080ED804: .4byte gUnknown_202063C
+_080ED808: .4byte sub_80ED818
+_080ED80C:
+ movs r0, 0
+ str r0, [r4, 0x24]
+_080ED810:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED7D4
+
+ thumb_func_start sub_80ED818
+sub_80ED818: @ 80ED818
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r2, 0
+ adds r4, 0x2E
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _080ED848
+ cmp r0, 0x1
+ bgt _080ED832
+ cmp r0, 0
+ beq _080ED838
+ b _080ED892
+_080ED832:
+ cmp r0, 0x2
+ beq _080ED866
+ b _080ED892
+_080ED838:
+ ldrh r0, [r2, 0x20]
+ lsls r0, 5
+ strh r0, [r4, 0x2]
+ movs r0, 0xA0
+ strh r0, [r4, 0x4]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_080ED848:
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r4, 0x4]
+ subs r0, r1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r2, 0x20]
+ cmp r0, 0x34
+ bgt _080ED892
+ bl sub_80ED6EC
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _080ED892
+_080ED866:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x20
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r2, 0x20]
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bgt _080ED892
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ adds r0, r2, 0
+ bl sub_8007280
+_080ED892:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80ED818
+
+ thumb_func_start sub_80ED898
+sub_80ED898: @ 80ED898
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0xF
+ bls _080ED8A6
+ b _080EDA98
+_080ED8A6:
+ lsls r0, 2
+ ldr r1, _080ED8B0 @ =_080ED8B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080ED8B0: .4byte _080ED8B4
+ .align 2, 0
+_080ED8B4:
+ .4byte _080ED8F4
+ .4byte _080ED8F8
+ .4byte _080ED910
+ .4byte _080ED918
+ .4byte _080ED936
+ .4byte _080ED946
+ .4byte _080ED95E
+ .4byte _080ED97C
+ .4byte _080ED998
+ .4byte _080ED9A0
+ .4byte _080ED9BA
+ .4byte _080ED9D2
+ .4byte _080ED9DC
+ .4byte _080EDA1C
+ .4byte _080EDA5C
+ .4byte _080EDA7C
+_080ED8F4:
+ movs r0, 0
+ b _080EDA6C
+_080ED8F8:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bhi _080ED908
+ b _080EDAC4
+_080ED908:
+ adds r0, r4, 0
+ bl sub_80EE5E4
+ b _080EDA6E
+_080ED910:
+ adds r0, r4, 0
+ bl sub_80EE850
+ b _080EDA64
+_080ED918:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1E
+ bhi _080ED928
+ b _080EDAC4
+_080ED928:
+ bl sub_80ED760
+ adds r0, r4, 0
+ bl sub_80EDF94
+ movs r0, 0
+ b _080EDA6C
+_080ED936:
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ bne _080ED93E
+ b _080EDAC4
+_080ED93E:
+ adds r0, r4, 0
+ bl sub_80EE6A4
+ b _080EDA6E
+_080ED946:
+ adds r0, r4, 0
+ bl sub_80EE850
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080ED956
+ b _080EDAC4
+_080ED956:
+ bl sub_80ED788
+ strh r5, [r4, 0x12]
+ b _080EDA6E
+_080ED95E:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bhi _080ED96E
+ b _080EDAC4
+_080ED96E:
+ ldr r0, [r4, 0x18]
+ movs r1, 0x8
+ movs r2, 0xC
+ movs r3, 0x5
+ bl sub_80EE970
+ b _080EDA6E
+_080ED97C:
+ adds r0, r4, 0
+ bl sub_80EE850
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED98A
+ b _080EDAC4
+_080ED98A:
+ ldr r0, [r4, 0x18]
+ movs r1, 0x8
+ movs r2, 0xC
+ movs r3, 0x5
+ bl sub_80EE970
+ b _080EDA6E
+_080ED998:
+ adds r0, r4, 0
+ bl sub_80EE850
+ b _080EDA64
+_080ED9A0:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x14
+ bhi _080ED9B0
+ b _080EDAC4
+_080ED9B0:
+ adds r0, r4, 0
+ bl sub_80EEA94
+ movs r0, 0
+ b _080EDA6C
+_080ED9BA:
+ bl sub_80ED7B0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080ED9C6
+ b _080EDAC4
+_080ED9C6:
+ bl sub_80ED760
+ adds r0, r4, 0
+ bl sub_80EDAF0
+ b _080EDA6E
+_080ED9D2:
+ movs r0, 0
+ bl sub_80019D0
+ movs r0, 0
+ b _080EDA6C
+_080ED9DC:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x30
+ bne _080ED9FA
+ ldr r0, _080EDA18 @ =0x00007fff
+ str r0, [sp]
+ movs r0, 0x6
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+_080ED9FA:
+ ldrh r0, [r4, 0x12]
+ cmp r0, 0x78
+ bls _080EDAC4
+ adds r0, r4, 0
+ bl sub_80EDB70
+ adds r0, r4, 0
+ bl sub_80EDBAC
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ movs r0, 0
+ b _080EDAC2
+ .align 2, 0
+_080EDA18: .4byte 0x00007fff
+_080EDA1C:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _080EDAC4
+ add r1, sp, 0x4
+ ldr r2, _080EDA50 @ =0x00007fff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _080EDA54 @ =gUnknown_2037218
+ ldr r2, _080EDA58 @ =0x01000020
+ add r0, sp, 0x4
+ bl CpuSet
+ movs r1, 0x2
+ negs r1, r1
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ b _080EDA6E
+ .align 2, 0
+_080EDA50: .4byte 0x00007fff
+_080EDA54: .4byte gUnknown_2037218
+_080EDA58: .4byte 0x01000020
+_080EDA5C:
+ ldr r0, _080EDA78 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+_080EDA64:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080EDAC4
+_080EDA6C:
+ strh r0, [r4, 0x12]
+_080EDA6E:
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080EDAC4
+ .align 2, 0
+_080EDA78: .4byte gUnknown_2037AB8
+_080EDA7C:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3C
+ bls _080EDAC4
+ ldr r1, _080EDA94 @ =sub_80EDBE8
+ adds r0, r4, 0
+ bl sub_80ECAA8
+ b _080EDAC4
+ .align 2, 0
+_080EDA94: .4byte sub_80EDBE8
+_080EDA98:
+ ldr r0, _080EDACC @ =gUnknown_30030F0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EDAC4
+ ldr r0, _080EDAD0 @ =0xffff0064
+ ldr r2, _080EDAD4 @ =0x00007fff
+ movs r1, 0
+ bl sub_80714D4
+ ldr r1, [r4, 0x18]
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ ldr r1, [r4, 0x18]
+ movs r0, 0xB4
+ strh r0, [r1, 0x20]
+ movs r0, 0x1
+ strb r0, [r4, 0x4]
+ movs r0, 0x1E
+_080EDAC2:
+ strh r0, [r4, 0x12]
+_080EDAC4:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDACC: .4byte gUnknown_30030F0
+_080EDAD0: .4byte 0xffff0064
+_080EDAD4: .4byte 0x00007fff
+ thumb_func_end sub_80ED898
+
+ thumb_func_start sub_80EDAD8
+sub_80EDAD8: @ 80EDAD8
+ push {lr}
+ ldrb r3, [r0, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r0, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ bl sub_80073F0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EDAD8
+
+ thumb_func_start sub_80EDAF0
+sub_80EDAF0: @ 80EDAF0
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+_080EDAF6:
+ movs r6, 0x1
+ ands r6, r5
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 20
+ lsrs r2, r5, 31
+ adds r2, r5, r2
+ asrs r2, 1
+ lsls r2, 22
+ movs r0, 0xC4
+ lsls r0, 14
+ adds r1, r0
+ asrs r1, 16
+ movs r0, 0x90
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ ldr r0, _080EDB68 @ =gUnknown_840BE4C
+ movs r3, 0x8
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080EDB5C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EDB6C @ =gUnknown_202063C
+ adds r4, r0, r1
+ lsls r1, r5, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_800838C
+ lsls r1, r5, 2
+ adds r0, r7, 0
+ adds r0, 0x28
+ adds r2, r0, r1
+ str r4, [r2]
+ cmp r6, 0
+ beq _080EDB56
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3F
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+_080EDB56:
+ ldr r0, [r2]
+ bl sub_80EDAD8
+_080EDB5C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080EDAF6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDB68: .4byte gUnknown_840BE4C
+_080EDB6C: .4byte gUnknown_202063C
+ thumb_func_end sub_80EDAF0
+
+ thumb_func_start sub_80EDB70
+sub_80EDB70: @ 80EDB70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, [r4, 0x18]
+ ldrh r0, [r1, 0x24]
+ ldrh r2, [r1, 0x20]
+ adds r0, r2
+ strh r0, [r1, 0x20]
+ ldr r1, [r4, 0x18]
+ ldrh r0, [r1, 0x26]
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ strh r0, [r1, 0x22]
+ ldr r0, [r4, 0x18]
+ movs r1, 0
+ movs r2, 0x2A
+ bl sub_8007FFC
+ ldr r0, [r4, 0x18]
+ ldr r1, _080EDBA4 @ =nullsub_8
+ str r1, [r0, 0x1C]
+ movs r1, 0x1
+ bl sub_800843C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDBA4: .4byte nullsub_8
+ thumb_func_end sub_80EDB70
+
+ thumb_func_start nullsub_83
+nullsub_83: @ 80EDBA8
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_80EDBAC
+sub_80EDBAC: @ 80EDBAC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r6, 0
+ ldr r5, _080EDBE0 @ =gUnknown_840BBB8
+_080EDBB4:
+ lsls r0, r6, 2
+ adds r4, r7, 0
+ adds r4, 0x28
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ bl sub_800843C
+ ldr r0, [r4]
+ ldr r1, _080EDBE4 @ =nullsub_83
+ str r1, [r0, 0x1C]
+ ldrb r1, [r5]
+ ldrb r2, [r5, 0x1]
+ bl sub_8007FFC
+ adds r5, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080EDBB4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDBE0: .4byte gUnknown_840BBB8
+_080EDBE4: .4byte nullsub_83
+ thumb_func_end sub_80EDBAC
+
+ thumb_func_start sub_80EDBE8
+sub_80EDBE8: @ 80EDBE8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _080EDBF8
+ cmp r0, 0x1
+ beq _080EDC0C
+ b _080EDC34
+_080EDBF8:
+ movs r2, 0x80
+ lsls r2, 3
+ movs r0, 0
+ movs r1, 0
+ bl sub_8070424
+ ldrb r0, [r4, 0x4]
+ adds r0, 0x1
+ strb r0, [r4, 0x4]
+ b _080EDC34
+_080EDC0C:
+ bl sub_80F682C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080EDC34
+ ldrb r0, [r4, 0x5]
+ bl sub_8077508
+ adds r0, r4, 0
+ bl sub_8002BC4
+ movs r0, 0x2
+ bl sub_8000B94
+ movs r0, 0
+ bl sub_8000700
+ ldr r0, _080EDC3C @ =sub_8078914
+ bl sub_8000544
+_080EDC34:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDC3C: .4byte sub_8078914
+ thumb_func_end sub_80EDBE8
+
+ thumb_func_start sub_80EDC40
+sub_80EDC40: @ 80EDC40
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r4, _080EDCE4 @ =gUnknown_840BBC0
+_080EDC46:
+ adds r0, r4, 0
+ bl sub_800EBCC
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x4
+ bls _080EDC46
+ ldr r0, _080EDCE8 @ =gUnknown_840BBE8
+ bl sub_8008974
+ ldr r6, _080EDCEC @ =gUnknown_203AB0E
+ movs r0, 0x60
+ strh r0, [r6]
+ ldr r5, _080EDCF0 @ =gUnknown_203AB10
+ movs r0, 0x10
+ strh r0, [r5]
+ ldr r1, _080EDCF4 @ =gUnknown_203AB12
+ movs r0, 0x7
+ strh r0, [r1]
+ ldr r0, _080EDCF8 @ =gUnknown_203AB14
+ movs r2, 0x5
+ strh r2, [r0]
+ ldr r1, _080EDCFC @ =gUnknown_203AB16
+ movs r0, 0x8
+ strh r0, [r1]
+ ldr r1, _080EDD00 @ =gUnknown_203AB18
+ movs r0, 0x5A
+ strh r0, [r1]
+ ldr r1, _080EDD04 @ =gUnknown_203AB1A
+ movs r0, 0x78
+ strh r0, [r1]
+ ldr r0, _080EDD08 @ =gUnknown_203AB1E
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _080EDD0C @ =gUnknown_203AB20
+ strh r1, [r0]
+ ldr r0, _080EDD10 @ =gUnknown_203AB22
+ strh r2, [r0]
+ ldr r0, _080EDD14 @ =gUnknown_203AB24
+ strh r2, [r0]
+ ldr r4, _080EDD18 @ =gUnknown_203AB28
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _080EDCA2
+ ldr r0, _080EDD1C @ =0x151b9245
+ str r0, [r4]
+_080EDCA2:
+ ldr r0, _080EDD20 @ =gUnknown_840BC6C
+ movs r1, 0xF8
+ movs r2, 0x37
+ movs r3, 0
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080EDCDE
+ ldr r0, _080EDD24 @ =gUnknown_202063C
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r2, r3, r0
+ movs r1, 0xF8
+ lsls r1, 4
+ strh r1, [r2, 0x2E]
+ movs r1, 0xDC
+ lsls r1, 2
+ strh r1, [r2, 0x30]
+ ldrh r1, [r6]
+ strh r1, [r2, 0x32]
+ ldrh r1, [r5]
+ strh r1, [r2, 0x34]
+ adds r0, r3
+ adds r0, 0x3A
+ ldr r1, [r4]
+ bl sub_8044F34
+_080EDCDE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDCE4: .4byte gUnknown_840BBC0
+_080EDCE8: .4byte gUnknown_840BBE8
+_080EDCEC: .4byte gUnknown_203AB0E
+_080EDCF0: .4byte gUnknown_203AB10
+_080EDCF4: .4byte gUnknown_203AB12
+_080EDCF8: .4byte gUnknown_203AB14
+_080EDCFC: .4byte gUnknown_203AB16
+_080EDD00: .4byte gUnknown_203AB18
+_080EDD04: .4byte gUnknown_203AB1A
+_080EDD08: .4byte gUnknown_203AB1E
+_080EDD0C: .4byte gUnknown_203AB20
+_080EDD10: .4byte gUnknown_203AB22
+_080EDD14: .4byte gUnknown_203AB24
+_080EDD18: .4byte gUnknown_203AB28
+_080EDD1C: .4byte 0x151b9245
+_080EDD20: .4byte gUnknown_840BC6C
+_080EDD24: .4byte gUnknown_202063C
+ thumb_func_end sub_80EDC40
+
+ thumb_func_start sub_80EDD28
+sub_80EDD28: @ 80EDD28
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r3, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r0, _080EDDCC @ =gUnknown_203AB12
+ ldrh r0, [r0]
+ ands r2, r0
+ adds r2, 0x2
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldr r1, _080EDDD0 @ =gUnknown_203AB2C
+ ldrh r0, [r1]
+ adds r2, r0, 0
+ adds r0, r2, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080EDD5C
+ movs r6, 0x3
+ negs r6, r6
+ adds r0, r6, 0
+ strh r0, [r1]
+_080EDD5C:
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r0, r4, 16
+ asrs r7, r0, 16
+ adds r1, r7
+ lsls r0, r3, 16
+ asrs r0, 16
+ lsls r2, 16
+ asrs r6, r2, 16
+ adds r0, r6
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ ldr r0, _080EDDD4 @ =0xffff0000
+ adds r1, r0
+ lsrs r1, 16
+ cmp r1, 0xEE
+ bhi _080EDDC6
+ ldr r0, _080EDDD8 @ =gUnknown_840BC84
+ lsls r1, r3, 16
+ asrs r5, r1, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _080EDDC6
+ ldr r0, _080EDDDC @ =gUnknown_202063C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080EDDE0 @ =gUnknown_203AB22
+ ldrh r0, [r0]
+ lsls r4, r0
+ strh r4, [r1, 0x2E]
+ ldr r2, _080EDDE4 @ =gUnknown_203AB24
+ adds r0, r5, 0
+ ldrh r2, [r2]
+ lsls r0, r2
+ strh r0, [r1, 0x30]
+ ldr r0, _080EDDE8 @ =gUnknown_203AB1E
+ ldrh r0, [r0]
+ muls r0, r7
+ strh r0, [r1, 0x32]
+ ldr r0, _080EDDEC @ =gUnknown_203AB20
+ ldrh r0, [r0]
+ muls r0, r6
+ strh r0, [r1, 0x34]
+_080EDDC6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDDCC: .4byte gUnknown_203AB12
+_080EDDD0: .4byte gUnknown_203AB2C
+_080EDDD4: .4byte 0xffff0000
+_080EDDD8: .4byte gUnknown_840BC84
+_080EDDDC: .4byte gUnknown_202063C
+_080EDDE0: .4byte gUnknown_203AB22
+_080EDDE4: .4byte gUnknown_203AB24
+_080EDDE8: .4byte gUnknown_203AB1E
+_080EDDEC: .4byte gUnknown_203AB20
+ thumb_func_end sub_80EDD28
+
+ thumb_func_start sub_80EDDF0
+sub_80EDDF0: @ 80EDDF0
+ push {lr}
+ ldr r0, _080EDE00 @ =sub_80EDE04
+ movs r1, 0x1
+ bl sub_807741C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDE00: .4byte sub_80EDE04
+ thumb_func_end sub_80EDDF0
+
+ thumb_func_start sub_80EDE04
+sub_80EDE04: @ 80EDE04
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ ldr r1, _080EDEB0 @ =gUnknown_3005098
+ adds r0, r1
+ mov r8, r0
+ ldrh r1, [r0, 0x4]
+ adds r1, 0x1
+ strh r1, [r0, 0x4]
+ ldrh r0, [r0, 0x6]
+ adds r0, 0x1
+ mov r2, r8
+ strh r0, [r2, 0x6]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x6
+ ble _080EDECA
+ movs r0, 0
+ strh r0, [r2, 0x4]
+ ldrb r6, [r2]
+ ldr r0, _080EDEB4 @ =gUnknown_840BC84
+ ldr r1, _080EDEB8 @ =gUnknown_840BC08
+ lsls r6, 2
+ adds r6, r1
+ movs r3, 0
+ ldrsh r1, [r6, r3]
+ movs r3, 0x2
+ ldrsh r2, [r6, r3]
+ movs r3, 0x2
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _080EDEBC @ =gUnknown_202063C
+ adds r7, r4, r5
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_800838C
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _080EDEC0 @ =sub_80EE40C
+ str r0, [r4]
+ ldrh r0, [r6, 0x2]
+ lsls r0, 4
+ strh r0, [r7, 0x30]
+ movs r0, 0x78
+ strh r0, [r7, 0x32]
+ mov r1, r8
+ ldrh r0, [r1, 0x2]
+ strh r0, [r7, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080EDE88
+ movs r0, 0x1
+ strh r0, [r7, 0x34]
+_080EDE88:
+ mov r2, r8
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _080EDECA
+ ldrh r0, [r2, 0x2]
+ adds r0, 0x1
+ strh r0, [r2, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080EDEC4
+ mov r0, r9
+ bl sub_8077508
+ b _080EDECA
+ .align 2, 0
+_080EDEB0: .4byte gUnknown_3005098
+_080EDEB4: .4byte gUnknown_840BC84
+_080EDEB8: .4byte gUnknown_840BC08
+_080EDEBC: .4byte gUnknown_202063C
+_080EDEC0: .4byte sub_80EE40C
+_080EDEC4:
+ movs r0, 0
+ mov r3, r8
+ strh r0, [r3]
+_080EDECA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EDE04
+
+ thumb_func_start sub_80EDED8
+sub_80EDED8: @ 80EDED8
+ push {lr}
+ ldr r0, _080EDEE8 @ =sub_80EDEEC
+ movs r1, 0x2
+ bl sub_807741C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDEE8: .4byte sub_80EDEEC
+ thumb_func_end sub_80EDED8
+
+ thumb_func_start sub_80EDEEC
+sub_80EDEEC: @ 80EDEEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _080EDF5C @ =gUnknown_3005098
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080EDF44
+ ldrh r1, [r4, 0x2]
+ ldrb r2, [r4, 0x2]
+ adds r0, r1, 0x4
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _080EDF1A
+ subs r0, r1, 0x5
+ strh r0, [r4, 0x2]
+_080EDF1A:
+ ldr r0, _080EDF60 @ =gUnknown_840BCBC
+ ldr r1, _080EDF64 @ =gUnknown_840BC08
+ lsls r2, 2
+ adds r2, r1
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ movs r3, 0x3
+ bl sub_8006F8C
+ ldrh r0, [r4, 0x4]
+ adds r0, 0x1
+ strh r0, [r4, 0x4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080EDF44
+ adds r0, r5, 0
+ bl sub_8077508
+_080EDF44:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _080EDF56
+ movs r0, 0
+ strh r0, [r4]
+_080EDF56:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDF5C: .4byte gUnknown_3005098
+_080EDF60: .4byte gUnknown_840BCBC
+_080EDF64: .4byte gUnknown_840BC08
+ thumb_func_end sub_80EDEEC
+
+ thumb_func_start sub_80EDF68
+sub_80EDF68: @ 80EDF68
+ push {lr}
+ ldr r0, _080EDF8C @ =gUnknown_840BCDC
+ movs r1, 0x78
+ movs r2, 0x46
+ movs r3, 0x4
+ bl sub_8006F8C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080EDF90 @ =gUnknown_202063C
+ adds r0, r1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EDF8C: .4byte gUnknown_840BCDC
+_080EDF90: .4byte gUnknown_202063C
+ thumb_func_end sub_80EDF68
+
+ thumb_func_start sub_80EDF94
+sub_80EDF94: @ 80EDF94
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strb r0, [r4, 0x6]
+ ldr r0, _080EDFD0 @ =sub_80EE024
+ movs r1, 0x4
+ bl sub_807741C
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0x5
+ adds r2, r4, 0
+ bl sub_80776E8
+ ldr r0, _080EDFD4 @ =gUnknown_3005090
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x40
+ strh r0, [r4, 0xE]
+ movs r0, 0
+ bl sub_8001CCC
+ strh r0, [r4, 0x10]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EDFD0: .4byte sub_80EE024
+_080EDFD4: .4byte gUnknown_3005090
+ thumb_func_end sub_80EDF94
+
+ thumb_func_start sub_80EDFD8
+sub_80EDFD8: @ 80EDFD8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ lsls r4, 15
+ movs r0, 0xF8
+ lsls r0, 9
+ adds r4, r0
+ movs r0, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0
+ mov r1, r8
+ movs r2, 0
+ bl sub_8001B90
+ lsls r5, 8
+ movs r0, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_8001B90
+ lsls r6, 8
+ movs r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ bl sub_8001D08
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EDFD8
+
+ thumb_func_start sub_80EE024
+sub_80EE024: @ 80EE024
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _080EE048 @ =gUnknown_3005098
+ adds r5, r0, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x5
+ bhi _080EE11C
+ lsls r0, 2
+ ldr r1, _080EE04C @ =_080EE050
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080EE048: .4byte gUnknown_3005098
+_080EE04C: .4byte _080EE050
+ .align 2, 0
+_080EE050:
+ .4byte _080EE068
+ .4byte _080EE07A
+ .4byte _080EE094
+ .4byte _080EE0BC
+ .4byte _080EE0EE
+ .4byte _080EE114
+_080EE068:
+ movs r0, 0x2
+ strh r0, [r5, 0xE]
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ movs r0, 0x6
+ strh r0, [r5, 0x10]
+ movs r0, 0x20
+ strh r0, [r5, 0x12]
+ b _080EE10C
+_080EE07A:
+ ldrh r0, [r5, 0x6]
+ subs r0, 0x2
+ strh r0, [r5, 0x6]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x1
+ strh r0, [r5, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080EE11C
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ b _080EE10C
+_080EE094:
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x1
+ strh r0, [r5, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _080EE0AE
+ adds r0, r2, 0
+ movs r1, 0x5
+ bl sub_8077720
+ movs r1, 0x1
+ strb r1, [r0, 0x6]
+_080EE0AE:
+ movs r2, 0x2
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xF
+ ble _080EE11C
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ b _080EE10C
+_080EE0BC:
+ ldrh r0, [r5, 0x6]
+ adds r0, 0x8
+ strh r0, [r5, 0x6]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x1
+ strh r0, [r5, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _080EE0E0
+ bl sub_80EE160
+ movs r0, 0x20
+ strh r0, [r5, 0x10]
+ movs r0, 0x30
+ strh r0, [r5, 0x12]
+ movs r0, 0x3
+ strh r0, [r5, 0xE]
+_080EE0E0:
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ cmp r0, 0x7
+ ble _080EE11C
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ b _080EE10C
+_080EE0EE:
+ ldrh r0, [r5, 0x6]
+ subs r0, 0x8
+ strh r0, [r5, 0x6]
+ ldrh r0, [r5, 0x2]
+ adds r0, 0x1
+ strh r0, [r5, 0x2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _080EE11C
+ movs r1, 0
+ strh r1, [r5, 0xE]
+ movs r0, 0x40
+ strh r0, [r5, 0x6]
+ strh r1, [r5, 0x2]
+_080EE10C:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ b _080EE11C
+_080EE114:
+ adds r0, r2, 0
+ bl sub_8077508
+ b _080EE156
+_080EE11C:
+ movs r4, 0x6
+ ldrsh r3, [r5, r4]
+ ldr r4, _080EE15C @ =gUnknown_825E074
+ adds r0, r3, 0
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x12
+ ldrsh r0, [r5, r2]
+ muls r1, r0
+ asrs r1, 8
+ negs r1, r1
+ movs r0, 0x10
+ ldrsh r2, [r5, r0]
+ lsls r3, 1
+ adds r3, r4
+ movs r4, 0
+ ldrsh r0, [r3, r4]
+ muls r0, r2
+ asrs r0, 8
+ subs r2, r0
+ movs r3, 0xE
+ ldrsh r0, [r5, r3]
+ movs r4, 0x8
+ ldrsh r3, [r5, r4]
+ bl sub_80EDFD8
+_080EE156:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE15C: .4byte gUnknown_825E074
+ thumb_func_end sub_80EE024
+
+ thumb_func_start sub_80EE160
+sub_80EE160: @ 80EE160
+ push {r4,lr}
+ ldr r4, _080EE1BC @ =gUnknown_840BE8C
+ adds r0, r4, 0
+ movs r1, 0x84
+ movs r2, 0x4E
+ movs r3, 0x6
+ bl sub_8006F8C
+ adds r0, r4, 0
+ movs r1, 0x84
+ movs r2, 0x76
+ movs r3, 0x6
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080EE1B4
+ ldr r0, _080EE1C0 @ =gUnknown_202063C
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r2, [r4, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ ands r1, r0
+ movs r0, 0x80
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ adds r0, r4, 0
+ bl sub_80EDAD8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_800838C
+_080EE1B4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE1BC: .4byte gUnknown_840BE8C
+_080EE1C0: .4byte gUnknown_202063C
+ thumb_func_end sub_80EE160
+
+ thumb_func_start sub_80EE1C4
+sub_80EE1C4: @ 80EE1C4
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE1FA
+ adds r0, r3, 0
+ bl sub_8007280
+_080EE1FA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE1C4
+
+ thumb_func_start sub_80EE200
+sub_80EE200: @ 80EE200
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080EE220 @ =gUnknown_3005098
+ adds r1, r0, r1
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080EE224
+ cmp r0, 0x1
+ beq _080EE232
+ b _080EE28A
+ .align 2, 0
+_080EE220: .4byte gUnknown_3005098
+_080EE224:
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r3, 0
+ strh r0, [r1, 0x2]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_080EE232:
+ ldrh r0, [r1, 0x4]
+ adds r0, 0x1
+ strh r0, [r1, 0x4]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080EE250
+ ldrh r2, [r1, 0x2]
+ movs r3, 0x2
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x10
+ ble _080EE250
+ adds r0, r2, 0
+ subs r0, 0x10
+ strh r0, [r1, 0x2]
+_080EE250:
+ movs r0, 0x2
+ ldrsh r1, [r1, r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8001B90
+ ldr r5, _080EE290 @ =gUnknown_203AB30
+ str r0, [r5]
+ ldr r1, _080EE294 @ =0x00007fff
+ cmp r0, r1
+ bls _080EE270
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ bl sub_8000B14
+_080EE270:
+ ldr r1, [r5]
+ ldr r0, _080EE298 @ =0x0000eeff
+ cmp r1, r0
+ bls _080EE28A
+ movs r1, 0xEF
+ lsls r1, 8
+ movs r0, 0
+ movs r2, 0
+ bl sub_8001B90
+ adds r0, r4, 0
+ bl sub_8077508
+_080EE28A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE290: .4byte gUnknown_203AB30
+_080EE294: .4byte 0x00007fff
+_080EE298: .4byte 0x0000eeff
+ thumb_func_end sub_80EE200
+
+ thumb_func_start sub_80EE29C
+sub_80EE29C: @ 80EE29C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r2, [r5, 0x2E]
+ ldrh r0, [r5, 0x32]
+ subs r2, r0
+ strh r2, [r5, 0x2E]
+ ldrh r1, [r5, 0x34]
+ ldrh r0, [r5, 0x30]
+ adds r1, r0
+ strh r1, [r5, 0x30]
+ ldrh r0, [r5, 0x36]
+ adds r0, 0x30
+ strh r0, [r5, 0x36]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r5, 0x20]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x22]
+ ldr r1, _080EE340 @ =gUnknown_825E074
+ lsls r0, 16
+ asrs r0, 20
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x38]
+ adds r0, 0x1
+ strh r0, [r5, 0x38]
+ movs r1, 0x38
+ ldrsh r0, [r5, r1]
+ ldr r1, _080EE344 @ =gUnknown_203AB16
+ ldrh r1, [r1]
+ bl __modsi3
+ cmp r0, 0
+ beq _080EE324
+ adds r4, r5, 0
+ adds r4, 0x3A
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_8044F3C
+ ldr r1, [sp]
+ ldr r0, _080EE348 @ =0x41c64e6d
+ muls r1, r0
+ ldr r3, _080EE34C @ =0x00006073
+ adds r1, r3
+ str r1, [sp]
+ adds r0, r4, 0
+ bl sub_8044F34
+ ldr r2, [sp]
+ lsrs r2, 16
+ str r2, [sp]
+ movs r1, 0x20
+ ldrsh r0, [r5, r1]
+ ldrh r1, [r5, 0x26]
+ ldrh r3, [r5, 0x22]
+ adds r1, r3
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80EDD28
+_080EE324:
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bge _080EE336
+ adds r0, r5, 0
+ bl sub_8007280
+_080EE336:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE340: .4byte gUnknown_825E074
+_080EE344: .4byte gUnknown_203AB16
+_080EE348: .4byte 0x41c64e6d
+_080EE34C: .4byte 0x00006073
+ thumb_func_end sub_80EE29C
+
+ thumb_func_start sub_80EE350
+sub_80EE350: @ 80EE350
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r2, [r4, 0x34]
+ ldrh r1, [r4, 0x30]
+ adds r0, r2, r1
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x1
+ strh r1, [r4, 0x36]
+ ldrh r0, [r4, 0x38]
+ adds r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x2E]
+ ldr r1, _080EE3F8 @ =gUnknown_203AB22
+ ldrh r1, [r1]
+ asrs r0, r1
+ strh r0, [r4, 0x20]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldr r1, _080EE3FC @ =gUnknown_203AB24
+ ldrh r1, [r1]
+ asrs r0, r1
+ strh r0, [r4, 0x22]
+ ldr r1, _080EE400 @ =gUnknown_203AB1C
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _080EE3A4
+ lsls r0, r2, 16
+ cmp r0, 0
+ bge _080EE3A4
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r1]
+ asrs r0, r1
+ strh r0, [r4, 0x26]
+_080EE3A4:
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ ldr r0, _080EE404 @ =gUnknown_203AB18
+ ldrh r0, [r0]
+ cmp r1, r0
+ ble _080EE3DC
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsrs r1, r2, 2
+ movs r0, 0x1
+ eors r1, r0
+ ands r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ ldr r0, _080EE408 @ =gUnknown_203AB1A
+ ldrh r0, [r0]
+ cmp r1, r0
+ ble _080EE3DC
+ adds r0, r4, 0
+ bl sub_8007280
+_080EE3DC:
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ bls _080EE3F0
+ adds r0, r4, 0
+ bl sub_8007280
+_080EE3F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE3F8: .4byte gUnknown_203AB22
+_080EE3FC: .4byte gUnknown_203AB24
+_080EE400: .4byte gUnknown_203AB1C
+_080EE404: .4byte gUnknown_203AB18
+_080EE408: .4byte gUnknown_203AB1A
+ thumb_func_end sub_80EE350
+
+ thumb_func_start sub_80EE40C
+sub_80EE40C: @ 80EE40C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _080EE490
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x22]
+ cmp r0, 0x56
+ ble _080EE438
+ movs r0, 0x4A
+ strh r0, [r4, 0x22]
+ movs r0, 0x94
+ lsls r0, 3
+ strh r0, [r4, 0x30]
+_080EE438:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE4D4
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _080EE46C
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0
+ adds r1, 0x1A
+ strh r1, [r4, 0x20]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xBC
+ ble _080EE486
+ movs r2, 0xBC
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r0, 0x1
+ b _080EE484
+_080EE46C:
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0
+ subs r1, 0x1A
+ strh r1, [r4, 0x20]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bgt _080EE486
+ movs r0, 0x68
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ movs r0, 0
+_080EE484:
+ strh r0, [r4, 0x2E]
+_080EE486:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_800838C
+ b _080EE4D4
+_080EE490:
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _080EE49E
+ adds r0, r4, 0
+ bl sub_8007280
+_080EE49E:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE4B4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_800838C
+_080EE4B4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x4
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _080EE4D4
+ adds r0, r4, 0
+ bl sub_8007280
+_080EE4D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE40C
+
+ thumb_func_start sub_80EE4DC
+sub_80EE4DC: @ 80EE4DC
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE4F2
+ adds r0, r2, 0
+ bl sub_8007280
+_080EE4F2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE4DC
+
+ thumb_func_start sub_80EE4F8
+sub_80EE4F8: @ 80EE4F8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _080EE520 @ =gUnknown_840BD88
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x9
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _080EE524 @ =gUnknown_202063C
+ adds r1, r0
+ str r1, [r4, 0x18]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE520: .4byte gUnknown_840BD88
+_080EE524: .4byte gUnknown_202063C
+ thumb_func_end sub_80EE4F8
+
+ thumb_func_start sub_80EE528
+sub_80EE528: @ 80EE528
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r4, r0, 0
+ adds r0, r2, 0
+ adds r5, r3, 0
+ lsls r1, 16
+ lsls r0, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsrs r2, r1, 16
+ mov r9, r2
+ asrs r1, 16
+ lsls r2, r1, 4
+ movs r3, 0
+ mov r8, r3
+ strh r2, [r4, 0x2E]
+ lsrs r6, r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 4
+ adds r1, r5, 0
+ bl __divsi3
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ strh r6, [r4, 0x34]
+ mov r0, r8
+ strh r0, [r4, 0x36]
+ mov r2, r9
+ strh r2, [r4, 0x20]
+ movs r0, 0x64
+ strh r0, [r4, 0x22]
+ ldr r0, _080EE57C @ =sub_80EE580
+ str r0, [r4, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE57C: .4byte sub_80EE580
+ thumb_func_end sub_80EE528
+
+ thumb_func_start sub_80EE580
+sub_80EE580: @ 80EE580
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x36]
+ adds r0, 0x1
+ strh r0, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ ble _080EE5A0
+ ldrh r1, [r2, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ ble _080EE5A0
+ subs r0, r1, 0x1
+ strh r0, [r2, 0x30]
+_080EE5A0:
+ ldrh r0, [r2, 0x30]
+ ldrh r4, [r2, 0x2E]
+ adds r0, r4
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x20]
+ ldrh r3, [r2, 0x34]
+ movs r4, 0x34
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ blt _080EE5BE
+ strh r3, [r2, 0x20]
+ ldr r0, _080EE5C4 @ =nullsub_8
+ str r0, [r2, 0x1C]
+_080EE5BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE5C4: .4byte nullsub_8
+ thumb_func_end sub_80EE580
+
+ thumb_func_start sub_80EE5C8
+sub_80EE5C8: @ 80EE5C8
+ push {lr}
+ movs r2, 0
+ ldr r0, [r0, 0x18]
+ ldr r1, [r0, 0x1C]
+ ldr r0, _080EE5E0 @ =sub_80EE580
+ cmp r1, r0
+ bne _080EE5D8
+ movs r2, 0x1
+_080EE5D8:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080EE5E0: .4byte sub_80EE580
+ thumb_func_end sub_80EE5C8
+
+ thumb_func_start sub_80EE5E4
+sub_80EE5E4: @ 80EE5E4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x18]
+ movs r1, 0x2
+ bl sub_800838C
+ ldr r0, [r4, 0x18]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r0, [r4, 0x18]
+ strh r1, [r0, 0x30]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x3
+ strh r0, [r1, 0x26]
+ ldr r1, [r4, 0x18]
+ ldr r0, _080EE60C @ =sub_80EE610
+ str r0, [r1, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE60C: .4byte sub_80EE610
+ thumb_func_end sub_80EE5E4
+
+ thumb_func_start sub_80EE610
+sub_80EE610: @ 80EE610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080EE646
+ cmp r5, 0x1
+ bgt _080EE626
+ cmp r5, 0
+ beq _080EE62C
+ b _080EE69A
+_080EE626:
+ cmp r5, 0x2
+ beq _080EE65C
+ b _080EE69A
+_080EE62C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _080EE69A
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_800838C
+ strh r5, [r4, 0x26]
+ b _080EE654
+_080EE646:
+ movs r0, 0x21
+ movs r1, 0x3F
+ movs r2, 0x1
+ bl sub_8071E60
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080EE654:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080EE69A
+_080EE65C:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080EE67C
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ movs r1, 0
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _080EE67A
+ movs r1, 0x1
+_080EE67A:
+ strh r1, [r4, 0x26]
+_080EE67C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x30
+ ble _080EE69A
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_800838C
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r0, _080EE6A0 @ =nullsub_8
+ str r0, [r4, 0x1C]
+_080EE69A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE6A0: .4byte nullsub_8
+ thumb_func_end sub_80EE610
+
+ thumb_func_start sub_80EE6A4
+sub_80EE6A4: @ 80EE6A4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _080EE6F0 @ =gUnknown_203AB0A
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _080EE6F4 @ =gUnknown_203AB04
+ movs r0, 0x3
+ strh r0, [r1]
+ ldr r1, _080EE6F8 @ =gUnknown_203AB08
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _080EE6FC @ =gUnknown_203AB06
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, [r4, 0x18]
+ movs r1, 0x2
+ bl sub_800838C
+ ldr r0, [r4, 0x18]
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r0, [r4, 0x18]
+ strh r1, [r0, 0x30]
+ ldr r0, [r4, 0x18]
+ strh r1, [r0, 0x32]
+ ldr r0, [r4, 0x18]
+ strh r1, [r0, 0x34]
+ ldr r0, [r4, 0x18]
+ strh r1, [r0, 0x36]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x28
+ strh r0, [r1, 0x3C]
+ ldr r1, [r4, 0x18]
+ ldr r0, _080EE700 @ =sub_80EE704
+ str r0, [r1, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE6F0: .4byte gUnknown_203AB0A
+_080EE6F4: .4byte gUnknown_203AB04
+_080EE6F8: .4byte gUnknown_203AB08
+_080EE6FC: .4byte gUnknown_203AB06
+_080EE700: .4byte sub_80EE704
+ thumb_func_end sub_80EE6A4
+
+ thumb_func_start sub_80EE704
+sub_80EE704: @ 80EE704
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080EE740
+ cmp r0, 0x1
+ bgt _080EE71A
+ cmp r0, 0
+ beq _080EE726
+ b _080EE846
+_080EE71A:
+ cmp r0, 0x2
+ beq _080EE7C4
+ cmp r0, 0x3
+ bne _080EE724
+ b _080EE824
+_080EE724:
+ b _080EE846
+_080EE726:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _080EE736
+ b _080EE846
+_080EE736:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_800838C
+ b _080EE818
+_080EE740:
+ ldrh r2, [r4, 0x3C]
+ ldrh r3, [r4, 0x32]
+ adds r1, r2, r3
+ movs r5, 0
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x8
+ strh r0, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x24]
+ ldr r1, _080EE7B0 @ =gUnknown_825E074
+ movs r3, 0x34
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r0, _080EE7B4 @ =gUnknown_203AB04
+ ldrh r0, [r0]
+ muls r0, r1
+ ldr r1, _080EE7B8 @ =gUnknown_203AB08
+ ldrh r1, [r1]
+ asrs r0, r1
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ ldr r0, _080EE7BC @ =gUnknown_203AB06
+ ldrh r0, [r0]
+ cmp r1, r0
+ ble _080EE78C
+ strh r5, [r4, 0x38]
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x3C]
+_080EE78C:
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _080EE846
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_800838C
+ strh r5, [r4, 0x30]
+ ldr r0, _080EE7C0 @ =0x00004757
+ strh r0, [r4, 0x3A]
+ movs r0, 0x1C
+ strh r0, [r4, 0x3C]
+ b _080EE818
+ .align 2, 0
+_080EE7B0: .4byte gUnknown_825E074
+_080EE7B4: .4byte gUnknown_203AB04
+_080EE7B8: .4byte gUnknown_203AB08
+_080EE7BC: .4byte gUnknown_203AB06
+_080EE7C0: .4byte 0x00004757
+_080EE7C4:
+ ldrh r0, [r4, 0x3C]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r1, r0, 20
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _080EE804
+ ldrh r0, [r4, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ movs r3, 0x3A
+ ldrsh r2, [r4, r3]
+ bl sub_80EE864
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ ldr r0, _080EE820 @ =0x41c64e6d
+ muls r0, r1
+ strh r0, [r4, 0x3A]
+_080EE804:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC
+ ble _080EE846
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_800838C
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_080EE818:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080EE846
+ .align 2, 0
+_080EE820: .4byte 0x41c64e6d
+_080EE824:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _080EE846
+ ldr r0, _080EE84C @ =gUnknown_203AB0A
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x24]
+ negs r2, r2
+ lsls r2, 16
+ asrs r2, 16
+ adds r0, r4, 0
+ movs r3, 0x4
+ bl sub_80EE970
+_080EE846:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE84C: .4byte gUnknown_203AB0A
+ thumb_func_end sub_80EE704
+
+ thumb_func_start sub_80EE850
+sub_80EE850: @ 80EE850
+ ldr r0, [r0, 0x18]
+ ldr r1, [r0, 0x1C]
+ ldr r0, _080EE860 @ =nullsub_8
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ bx lr
+ .align 2, 0
+_080EE860: .4byte nullsub_8
+ thumb_func_end sub_80EE850
+
+ thumb_func_start sub_80EE864
+sub_80EE864: @ 80EE864
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r2, 16
+ lsrs r5, r2, 16
+ movs r6, 0
+ lsls r0, 16
+ ldr r2, _080EE8D4 @ =0xffea0000
+ adds r2, r0
+ mov r8, r2
+ lsls r1, 16
+ movs r0, 0xC0
+ lsls r0, 13
+ adds r7, r1, r0
+_080EE880:
+ ldr r0, _080EE8D8 @ =gUnknown_840BEC4
+ mov r2, r8
+ asrs r1, r2, 16
+ asrs r2, r7, 16
+ movs r3, 0xA
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _080EE8C4
+ ldr r0, _080EE8DC @ =gUnknown_202063C
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ lsls r5, 16
+ asrs r5, 16
+ adds r0, r5, 0
+ movs r1, 0xD
+ bl __modsi3
+ adds r0, 0x8
+ strh r0, [r4, 0x34]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl __modsi3
+ strh r0, [r4, 0x36]
+ strh r6, [r4, 0x3C]
+ ldr r0, _080EE8E0 @ =0x41c64e6d
+ muls r0, r5
+ lsls r0, 16
+ lsrs r5, r0, 16
+_080EE8C4:
+ adds r6, 0x1
+ cmp r6, 0x1
+ ble _080EE880
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE8D4: .4byte 0xffea0000
+_080EE8D8: .4byte gUnknown_840BEC4
+_080EE8DC: .4byte gUnknown_202063C
+_080EE8E0: .4byte 0x41c64e6d
+ thumb_func_end sub_80EE864
+
+ thumb_func_start sub_80EE8E4
+sub_80EE8E4: @ 80EE8E4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r5, 0
+ adds r4, 0x2E
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _080EE8FA
+ cmp r0, 0x1
+ beq _080EE90C
+ b _080EE93E
+_080EE8FA:
+ ldrh r0, [r5, 0x20]
+ lsls r0, 4
+ strh r0, [r4, 0x2]
+ ldrh r0, [r5, 0x22]
+ lsls r0, 4
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_080EE90C:
+ ldrh r1, [r4, 0x2]
+ ldrh r0, [r4, 0x6]
+ subs r1, r0
+ strh r1, [r4, 0x2]
+ ldrh r0, [r4, 0x8]
+ ldrh r2, [r4, 0x4]
+ adds r0, r2
+ strh r0, [r4, 0x4]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r5, 0x20]
+ ldrh r0, [r4, 0x4]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r5, 0x22]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080EE93E
+ adds r0, r5, 0
+ bl sub_8007280
+_080EE93E:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _080EE96A
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ adds r3, r5, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_080EE96A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80EE8E4
+
+ thumb_func_start sub_80EE970
+sub_80EE970: @ 80EE970
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ adds r6, r3, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 24
+ lsrs r6, 24
+ movs r1, 0
+ mov r8, r1
+ mov r1, r8
+ strh r1, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ ldrh r1, [r4, 0x24]
+ lsls r1, 4
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 12
+ adds r1, r5, 0
+ bl __divsi3
+ strh r0, [r4, 0x34]
+ mov r0, r8
+ strh r0, [r4, 0x36]
+ movs r0, 0x80
+ lsls r0, 4
+ adds r1, r5, 0
+ bl __divsi3
+ strh r0, [r4, 0x38]
+ mov r1, r8
+ strh r1, [r4, 0x3A]
+ strh r6, [r4, 0x3C]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_800838C
+ ldr r0, _080EE9D0 @ =sub_80EE9D4
+ str r0, [r4, 0x1C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EE9D0: .4byte sub_80EE9D4
+ thumb_func_end sub_80EE970
+
+ thumb_func_start sub_80EE9D4
+sub_80EE9D4: @ 80EE9D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _080EEA08
+ cmp r5, 0x1
+ bgt _080EE9EA
+ cmp r5, 0
+ beq _080EE9F0
+ b _080EEA88
+_080EE9EA:
+ cmp r5, 0x2
+ beq _080EEA6E
+ b _080EEA88
+_080EE9F0:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080EEA88
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_800838C
+ b _080EEA64
+_080EEA08:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r5, r0, 16
+ cmp r5, 0
+ beq _080EEA4C
+ ldrh r1, [r4, 0x34]
+ ldrh r2, [r4, 0x32]
+ adds r1, r2
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x38]
+ ldrh r2, [r4, 0x36]
+ adds r0, r2
+ strh r0, [r4, 0x36]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r4, 0x24]
+ ldr r1, _080EEA48 @ =gUnknown_825E074
+ lsls r0, 16
+ asrs r0, 20
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ asrs r0, r1
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ b _080EEA88
+ .align 2, 0
+_080EEA48: .4byte gUnknown_825E074
+_080EEA4C:
+ ldrh r0, [r4, 0x32]
+ lsrs r0, 4
+ strh r0, [r4, 0x24]
+ strh r5, [r4, 0x26]
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_800838C
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ beq _080EEA84
+_080EEA64:
+ strh r5, [r4, 0x3A]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080EEA88
+_080EEA6E:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _080EEA88
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_800838C
+_080EEA84:
+ ldr r0, _080EEA90 @ =nullsub_8
+ str r0, [r4, 0x1C]
+_080EEA88:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEA90: .4byte nullsub_8
+ thumb_func_end sub_80EE9D4
+
+ thumb_func_start sub_80EEA94
+sub_80EEA94: @ 80EEA94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x18]
+ movs r2, 0
+ strh r2, [r0, 0x2E]
+ ldr r0, [r4, 0x18]
+ strh r2, [r0, 0x30]
+ ldr r0, [r4, 0x18]
+ strh r2, [r0, 0x32]
+ ldr r0, [r4, 0x18]
+ strh r2, [r0, 0x34]
+ ldr r0, [r4, 0x18]
+ strh r2, [r0, 0x36]
+ ldr r0, [r4, 0x18]
+ strh r2, [r0, 0x38]
+ ldr r1, [r4, 0x18]
+ ldrh r0, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r0, r3
+ strh r0, [r1, 0x20]
+ ldr r0, [r4, 0x18]
+ strh r2, [r0, 0x24]
+ ldr r1, _080EEAF4 @ =gUnknown_203AB0C
+ movs r0, 0x24
+ strh r0, [r1]
+ ldr r1, _080EEAF8 @ =gUnknown_203AB06
+ movs r0, 0x28
+ strh r0, [r1]
+ ldr r1, _080EEAFC @ =gUnknown_203AB04
+ movs r0, 0x3
+ strh r0, [r1]
+ ldr r1, _080EEB00 @ =gUnknown_203AB08
+ movs r0, 0x4
+ strh r0, [r1]
+ ldr r1, [r4, 0x18]
+ movs r0, 0x24
+ strh r0, [r1, 0x3C]
+ ldr r0, [r4, 0x18]
+ movs r1, 0x2
+ bl sub_800838C
+ ldr r1, [r4, 0x18]
+ ldr r0, _080EEB04 @ =sub_80EEB08
+ str r0, [r1, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEAF4: .4byte gUnknown_203AB0C
+_080EEAF8: .4byte gUnknown_203AB06
+_080EEAFC: .4byte gUnknown_203AB04
+_080EEB00: .4byte gUnknown_203AB08
+_080EEB04: .4byte sub_80EEB08
+ thumb_func_end sub_80EEA94
+
+ thumb_func_start sub_80EEB08
+sub_80EEB08: @ 80EEB08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _080EEB58
+ cmp r0, 0x1
+ bgt _080EEB1E
+ cmp r0, 0
+ beq _080EEB24
+ b _080EEBCE
+_080EEB1E:
+ cmp r0, 0x2
+ beq _080EEB84
+ b _080EEBCE
+_080EEB24:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEB4A
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ ands r0, r1
+ cmp r0, 0
+ beq _080EEB44
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x1
+ b _080EEB48
+_080EEB44:
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+_080EEB48:
+ strh r0, [r4, 0x24]
+_080EEB4A:
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x11
+ ble _080EEBCE
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ b _080EEB78
+_080EEB58:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _080EEB80 @ =gUnknown_203AB06
+ ldrh r1, [r1]
+ cmp r0, r1
+ blt _080EEBCE
+ adds r0, r4, 0
+ movs r1, 0x4
+ bl sub_800838C
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x32]
+_080EEB78:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _080EEBCE
+ .align 2, 0
+_080EEB80: .4byte gUnknown_203AB06
+_080EEB84:
+ ldrh r2, [r4, 0x3C]
+ ldrh r1, [r4, 0x30]
+ adds r0, r2, r1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ negs r1, r0
+ strh r1, [r4, 0x24]
+ ldr r1, _080EEBD4 @ =gUnknown_825E074
+ lsls r0, 1
+ adds r0, r1
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ ldr r0, _080EEBD8 @ =gUnknown_203AB04
+ ldrh r0, [r0]
+ muls r0, r1
+ ldr r1, _080EEBDC @ =gUnknown_203AB08
+ ldrh r1, [r1]
+ asrs r0, r1
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _080EEBC0
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x3C]
+_080EEBC0:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 20
+ cmp r0, 0x3F
+ ble _080EEBCE
+ ldr r0, _080EEBE0 @ =nullsub_8
+ str r0, [r4, 0x1C]
+_080EEBCE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEBD4: .4byte gUnknown_825E074
+_080EEBD8: .4byte gUnknown_203AB04
+_080EEBDC: .4byte gUnknown_203AB08
+_080EEBE0: .4byte nullsub_8
+ thumb_func_end sub_80EEB08
+
+ thumb_func_start sub_80EEBE4
+sub_80EEBE4: @ 80EEBE4
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _080EEC04 @ =gUnknown_840BEDC
+_080EEBEA:
+ adds r0, r4, 0
+ bl sub_800EBCC
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, 0x6
+ bls _080EEBEA
+ ldr r0, _080EEC08 @ =gUnknown_840BF14
+ bl sub_8008974
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080EEC04: .4byte gUnknown_840BEDC
+_080EEC08: .4byte gUnknown_840BF14
+ thumb_func_end sub_80EEBE4
+
+ .align 2, 0 @ Don't pad with nop.