summaryrefslogtreecommitdiff
path: root/asm/egg_hatch.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/egg_hatch.s')
-rw-r--r--asm/egg_hatch.s1820
1 files changed, 1820 insertions, 0 deletions
diff --git a/asm/egg_hatch.s b/asm/egg_hatch.s
new file mode 100644
index 000000000..2e1a8341b
--- /dev/null
+++ b/asm/egg_hatch.s
@@ -0,0 +1,1820 @@
+ .include "asm/macros.inc"
+ .include "constants/constants.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8046BFC
+sub_8046BFC: @ 8046BFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x50
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r1, 0xB
+ bl sub_803FBE8
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x3C]
+ movs r4, 0
+ add r7, sp, 0x18
+ movs r0, 0x31
+ add r0, sp
+ mov r10, r0
+ mov r1, sp
+ adds r1, 0x32
+ str r1, [sp, 0x40]
+ mov r0, sp
+ adds r0, 0x34
+ str r0, [sp, 0x48]
+ add r1, sp, 0x30
+ mov r9, r1
+ subs r0, 0x1
+ str r0, [sp, 0x44]
+ mov r1, sp
+ adds r1, 0x38
+ str r1, [sp, 0x4C]
+_08046C3C:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl sub_803FBE8
+ lsls r1, r4, 1
+ add r1, sp
+ adds r1, 0x10
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08046C3C
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_803FBE8
+ mov r8, r0
+ movs r4, 0
+_08046C64:
+ adds r1, r4, 0
+ adds r1, 0x27
+ adds r0, r6, 0
+ bl sub_803FBE8
+ lsls r1, r4, 2
+ adds r1, r7, r1
+ str r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08046C64
+ adds r0, r6, 0
+ movs r1, 0x25
+ bl sub_803FBE8
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x8
+ bl sub_803FBE8
+ ldr r1, [sp, 0x40]
+ strb r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x22
+ bl sub_803FBE8
+ str r0, [sp, 0x38]
+ adds r0, r6, 0
+ movs r1, 0x50
+ bl sub_803FBE8
+ ldr r1, [sp, 0x48]
+ strb r0, [r1]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x3C]
+ movs r2, 0x5
+ movs r3, 0x20
+ bl sub_803DA54
+ movs r4, 0
+_08046CC8:
+ adds r1, r4, 0
+ adds r1, 0xD
+ lsls r0, r4, 1
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0x10
+ adds r0, r5, 0
+ bl sub_804037C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08046CC8
+ movs r4, 0
+_08046CE6:
+ adds r1, r4, 0
+ adds r1, 0x27
+ lsls r2, r4, 2
+ adds r2, r7, r2
+ adds r0, r5, 0
+ bl sub_804037C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08046CE6
+ movs r0, 0x2
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x3
+ mov r2, r9
+ bl sub_804037C
+ adds r0, r5, 0
+ movs r1, 0x25
+ mov r2, r10
+ bl sub_804037C
+ adds r0, r5, 0
+ movs r1, 0x8
+ ldr r2, [sp, 0x40]
+ bl sub_804037C
+ movs r0, 0x78
+ ldr r1, [sp, 0x44]
+ strb r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x44]
+ bl sub_804037C
+ adds r0, r5, 0
+ movs r1, 0x22
+ ldr r2, [sp, 0x4C]
+ bl sub_804037C
+ adds r0, r5, 0
+ movs r1, 0x50
+ ldr r2, [sp, 0x48]
+ bl sub_804037C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046BFC
+
+ thumb_func_start sub_8046D60
+sub_8046D60: @ 8046D60
+ push {r4,r5,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ add r4, sp, 0xC
+ movs r1, 0x46
+ strb r1, [r4]
+ movs r1, 0x64
+ adds r5, r0, 0
+ muls r5, r1
+ ldr r0, _08046E14 @ =gUnknown_2024284
+ adds r5, r0
+ ldr r1, _08046E18 @ =gUnknown_202402C
+ adds r0, r5, 0
+ bl sub_8046BFC
+ adds r0, r5, 0
+ movs r1, 0x2D
+ adds r2, r4, 0
+ bl sub_804037C
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl sub_803FBE8
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_8040FD0
+ adds r0, r5, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl sub_804037C
+ adds r0, r4, 0
+ bl sub_8043298
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8088E74
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8088E74
+ ldr r1, _08046E1C @ =gUnknown_2021CD0
+ adds r0, r5, 0
+ bl sub_80453C0
+ mov r2, sp
+ adds r2, 0xE
+ movs r0, 0x4
+ strh r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x26
+ bl sub_804037C
+ add r2, sp, 0x10
+ movs r0, 0
+ strh r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x24
+ bl sub_804037C
+ bl sub_8056260
+ mov r2, sp
+ adds r2, 0x12
+ strb r0, [r2]
+ adds r0, r5, 0
+ movs r1, 0x23
+ bl sub_804037C
+ adds r0, r5, 0
+ bl sub_80442D8
+ adds r0, r5, 0
+ bl sub_803E47C
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046E14: .4byte gUnknown_2024284
+_08046E18: .4byte gUnknown_202402C
+_08046E1C: .4byte gUnknown_2021CD0
+ thumb_func_end sub_8046D60
+
+ thumb_func_start sub_8046E20
+sub_8046E20: @ 8046E20
+ push {lr}
+ ldr r0, _08046E30 @ =gUnknown_20370C0
+ ldrb r0, [r0]
+ bl sub_8046D60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046E30: .4byte gUnknown_20370C0
+ thumb_func_end sub_8046E20
+
+ thumb_func_start sub_8046E34
+sub_8046E34: @ 8046E34
+ push {r4,r5,lr}
+ sub sp, 0x20
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x8C
+ muls r1, r2
+ adds r4, r0, r1
+ adds r0, r4, 0
+ mov r1, sp
+ bl sub_80453E0
+ adds r0, r4, 0
+ adds r0, 0x70
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08046EA0
+ adds r5, r4, 0
+ adds r5, 0x7C
+ mov r0, sp
+ adds r1, r5, 0
+ bl sub_8008E28
+ adds r4, 0x74
+ cmp r0, 0
+ bne _08046E74
+ ldr r0, _08046E90 @ =gUnknown_300500C
+ ldr r0, [r0]
+ adds r1, r4, 0
+ bl sub_8008E28
+ cmp r0, 0
+ beq _08046EA0
+_08046E74:
+ ldr r0, _08046E94 @ =gUnknown_2021CD0
+ mov r1, sp
+ bl sub_8008D84
+ ldr r0, _08046E98 @ =gUnknown_2021CF0
+ adds r1, r4, 0
+ bl sub_8008D84
+ ldr r0, _08046E9C @ =gUnknown_2021D04
+ adds r1, r5, 0
+ bl sub_8008D84
+ movs r0, 0x1
+ b _08046EA2
+ .align 2, 0
+_08046E90: .4byte gUnknown_300500C
+_08046E94: .4byte gUnknown_2021CD0
+_08046E98: .4byte gUnknown_2021CF0
+_08046E9C: .4byte gUnknown_2021D04
+_08046EA0:
+ movs r0, 0
+_08046EA2:
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046E34
+
+ thumb_func_start sub_8046EAC
+sub_8046EAC: @ 8046EAC
+ push {lr}
+ ldr r0, _08046EC8 @ =gUnknown_3005008
+ ldr r0, [r0]
+ movs r1, 0xBE
+ lsls r1, 6
+ adds r0, r1
+ ldr r1, _08046ECC @ =gUnknown_20370C0
+ ldrb r1, [r1]
+ bl sub_8046E34
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046EC8: .4byte gUnknown_3005008
+_08046ECC: .4byte gUnknown_20370C0
+ thumb_func_end sub_8046EAC
+
+ thumb_func_start sub_8046ED0
+sub_8046ED0: @ 8046ED0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ mov r8, r3
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r1, r2, 24
+ adds r2, r1, 0
+ movs r4, 0
+ movs r7, 0
+ movs r5, 0
+ cmp r3, 0
+ bne _08046EFE
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08046F18 @ =gUnknown_2024284
+ adds r5, r1, r0
+ movs r4, 0x1
+_08046EFE:
+ cmp r3, 0x1
+ bne _08046F0E
+ movs r0, 0x64
+ adds r1, r2, 0
+ muls r1, r0
+ ldr r0, _08046F18 @ =gUnknown_2024284
+ adds r5, r1, r0
+ movs r4, 0x3
+_08046F0E:
+ cmp r6, 0
+ beq _08046F1C
+ cmp r6, 0x1
+ beq _08046F6C
+ b _08046FA6
+ .align 2, 0
+_08046F18: .4byte gUnknown_2024284
+_08046F1C:
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl sub_803FBE8
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_803FBE8
+ adds r3, r0, 0
+ lsls r0, r4, 3
+ ldr r1, _08046F64 @ =gUnknown_82350AC
+ adds r0, r1
+ ldr r1, _08046F68 @ =gUnknown_202401C
+ ldr r2, [r1]
+ mov r6, r8
+ lsls r1, r6, 1
+ adds r1, 0x1
+ lsls r1, 2
+ adds r2, 0x4
+ adds r2, r1
+ ldr r1, [r2]
+ adds r2, r4, 0
+ bl sub_800ECC4
+ adds r0, r5, 0
+ bl sub_8044148
+ bl sub_800EC28
+ mov r0, r9
+ strh r4, [r0]
+ b _08046FA6
+ .align 2, 0
+_08046F64: .4byte gUnknown_82350AC
+_08046F68: .4byte gUnknown_202401C
+_08046F6C:
+ adds r0, r5, 0
+ bl sub_8044148
+ ldrh r0, [r0, 0x4]
+ adds r1, r4, 0
+ bl sub_803F7D4
+ ldr r0, _08046FB4 @ =gUnknown_20244DC
+ movs r1, 0x78
+ movs r2, 0x46
+ movs r3, 0x6
+ bl sub_8006F8C
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _08046FB8 @ =gUnknown_202063C
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r2, r1, r4
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r1, r4
+ ldr r0, _08046FBC @ =nullsub_8
+ str r0, [r1]
+_08046FA6:
+ adds r0, r7, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046FB4: .4byte gUnknown_20244DC
+_08046FB8: .4byte gUnknown_202063C
+_08046FBC: .4byte nullsub_8
+ thumb_func_end sub_8046ED0
+
+ thumb_func_start sub_8046FC0
+sub_8046FC0: @ 8046FC0
+ push {lr}
+ bl sub_8007320
+ bl sub_8007610
+ bl sub_8070474
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046FC0
+
+ thumb_func_start sub_8046FD4
+sub_8046FD4: @ 8046FD4
+ push {lr}
+ sub sp, 0x4
+ bl sub_8069940
+ ldr r0, _08047000 @ =sub_8047004
+ movs r1, 0xA
+ bl sub_807741C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+ bl sub_812B478
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047000: .4byte sub_8047004
+ thumb_func_end sub_8046FD4
+
+ thumb_func_start sub_8047004
+sub_8047004: @ 8047004
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08047034 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0804702C
+ bl sub_80563F0
+ ldr r0, _08047038 @ =sub_8047044
+ bl sub_8000544
+ ldr r1, _0804703C @ =gUnknown_3005020
+ ldr r0, _08047040 @ =sub_807DD24
+ str r0, [r1]
+ adds r0, r4, 0
+ bl sub_8077508
+_0804702C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047034: .4byte gUnknown_2037AB8
+_08047038: .4byte sub_8047044
+_0804703C: .4byte gUnknown_3005020
+_08047040: .4byte sub_807DD24
+ thumb_func_end sub_8047004
+
+ thumb_func_start sub_8047044
+sub_8047044: @ 8047044
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08047064 @ =gUnknown_30030F0
+ movs r1, 0x87
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08047058
+ b _0804727A
+_08047058:
+ lsls r0, 2
+ ldr r1, _08047068 @ =_0804706C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08047064: .4byte gUnknown_30030F0
+_08047068: .4byte _0804706C
+ .align 2, 0
+_0804706C:
+ .4byte _08047090
+ .4byte _0804715C
+ .4byte _08047174
+ .4byte _080471A8
+ .4byte _080471C8
+ .4byte _080471E0
+ .4byte _080471F8
+ .4byte _08047214
+ .4byte _0804726C
+_08047090:
+ movs r0, 0
+ movs r1, 0
+ bl sub_8000A38
+ ldr r4, _08047148 @ =gUnknown_3000E74
+ movs r0, 0x14
+ bl sub_8002B9C
+ str r0, [r4]
+ bl sub_80358D4
+ ldr r2, [r4]
+ ldr r0, _0804714C @ =gUnknown_20370C0
+ ldrh r0, [r0]
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ ldr r0, [r4]
+ strb r1, [r0, 0x7]
+ ldr r0, _08047150 @ =sub_8046FC0
+ bl sub_80006F4
+ bl sub_8071A68
+ ldr r1, _08047154 @ =gUnknown_20370C2
+ strh r0, [r1]
+ bl sub_80F6808
+ movs r0, 0
+ bl sub_8001618
+ ldr r1, _08047158 @ =gUnknown_826019C
+ movs r0, 0
+ movs r2, 0x2
+ bl sub_8001658
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001B90
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8001D08
+ movs r0, 0x1
+ movs r1, 0x7
+ movs r2, 0x2
+ bl sub_80019E4
+ movs r0, 0x80
+ lsls r0, 5
+ bl sub_8002B9C
+ adds r1, r0, 0
+ movs r0, 0x1
+ bl sub_8001FA0
+ movs r0, 0x80
+ lsls r0, 6
+ bl sub_8002B9C
+ adds r1, r0, 0
+ movs r0, 0
+ bl sub_8001FA0
+ bl sub_8002C28
+ bl sub_8070528
+ bl sub_80088F0
+ bl sub_8006B10
+ bl sub_80773BC
+ bl sub_8087E64
+ bl m4aSoundVSyncOn
+ b _0804724A
+ .align 2, 0
+_08047148: .4byte gUnknown_3000E74
+_0804714C: .4byte gUnknown_20370C0
+_08047150: .4byte sub_8046FC0
+_08047154: .4byte gUnknown_20370C2
+_08047158: .4byte gUnknown_826019C
+_0804715C:
+ ldr r0, _0804716C @ =gUnknown_82601A4
+ bl sub_8003B24
+ ldr r0, _08047170 @ =gUnknown_3000E74
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x8]
+ b _0804724A
+ .align 2, 0
+_0804716C: .4byte gUnknown_82601A4
+_08047170: .4byte gUnknown_3000E74
+_08047174:
+ ldr r1, _0804719C @ =gUnknown_8D00000
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80F696C
+ ldr r1, _080471A0 @ =gUnknown_8D0051C
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8002040
+ ldr r0, _080471A4 @ =gUnknown_8D004D8
+ movs r1, 0
+ movs r2, 0x20
+ bl sub_80703A8
+ b _0804724A
+ .align 2, 0
+_0804719C: .4byte gUnknown_8D00000
+_080471A0: .4byte gUnknown_8D0051C
+_080471A4: .4byte gUnknown_8D004D8
+_080471A8:
+ ldr r0, _080471BC @ =gUnknown_826011C
+ bl sub_80086DC
+ ldr r0, _080471C0 @ =gUnknown_8260124
+ bl sub_80086DC
+ ldr r0, _080471C4 @ =gUnknown_826012C
+ bl sub_8008928
+ b _0804724A
+ .align 2, 0
+_080471BC: .4byte gUnknown_826011C
+_080471C0: .4byte gUnknown_8260124
+_080471C4: .4byte gUnknown_826012C
+_080471C8:
+ movs r0, 0
+ bl sub_80020BC
+ ldr r0, _080471DC @ =gUnknown_3000E74
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ bl sub_8046D60
+ b _0804724A
+ .align 2, 0
+_080471DC: .4byte gUnknown_3000E74
+_080471E0:
+ ldr r0, _080471F4 @ =gUnknown_3000E74
+ ldr r3, [r0]
+ ldrb r2, [r3, 0x4]
+ adds r3, 0xC
+ movs r0, 0
+ movs r1, 0
+ bl sub_8046ED0
+ b _0804724A
+ .align 2, 0
+_080471F4: .4byte gUnknown_3000E74
+_080471F8:
+ ldr r4, _08047210 @ =gUnknown_3000E74
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x4]
+ adds r3, 0xC
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8046ED0
+ ldr r1, [r4]
+ strb r0, [r1, 0x1]
+ b _0804724A
+ .align 2, 0
+_08047210: .4byte gUnknown_3000E74
+_08047214:
+ movs r1, 0x82
+ lsls r1, 5
+ movs r0, 0
+ bl sub_8000A38
+ ldr r0, _0804725C @ =gUnknown_8EAEA20
+ movs r1, 0x10
+ movs r2, 0xA0
+ bl sub_80703EC
+ ldr r1, _08047260 @ =gUnknown_8EAEA80
+ movs r2, 0xA1
+ lsls r2, 5
+ movs r0, 0x1
+ movs r3, 0
+ bl sub_80017D0
+ ldr r1, _08047264 @ =gUnknown_826601C
+ movs r2, 0x80
+ lsls r2, 5
+ movs r0, 0x1
+ movs r3, 0
+ bl sub_8002040
+ movs r0, 0x1
+ bl sub_80020BC
+_0804724A:
+ ldr r1, _08047268 @ =gUnknown_30030F0
+ movs r0, 0x87
+ lsls r0, 3
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0804727A
+ .align 2, 0
+_0804725C: .4byte gUnknown_8EAEA20
+_08047260: .4byte gUnknown_8EAEA80
+_08047264: .4byte gUnknown_826601C
+_08047268: .4byte gUnknown_30030F0
+_0804726C:
+ ldr r0, _08047298 @ =sub_8047338
+ bl sub_8000544
+ ldr r0, _0804729C @ =gUnknown_3000E74
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x2]
+_0804727A:
+ bl sub_8077578
+ bl sub_8002DE8
+ bl sub_8006B5C
+ bl sub_8006BA8
+ bl sub_80704D0
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047298: .4byte sub_8047338
+_0804729C: .4byte gUnknown_3000E74
+ thumb_func_end sub_8047044
+
+ thumb_func_start sub_80472A0
+sub_80472A0: @ 80472A0
+ push {lr}
+ ldr r0, _080472D0 @ =gUnknown_20370C0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080472D4 @ =gUnknown_2024284
+ adds r0, r1
+ ldr r2, _080472D8 @ =gUnknown_2021D04
+ movs r1, 0x2
+ bl sub_804037C
+ bl sub_80359AC
+ ldr r0, _080472DC @ =gUnknown_3000E74
+ ldr r0, [r0]
+ bl sub_8002BC4
+ bl sub_812B484
+ ldr r0, _080472E0 @ =sub_80567DC
+ bl sub_8000544
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080472D0: .4byte gUnknown_20370C0
+_080472D4: .4byte gUnknown_2024284
+_080472D8: .4byte gUnknown_2021D04
+_080472DC: .4byte gUnknown_3000E74
+_080472E0: .4byte sub_80567DC
+ thumb_func_end sub_80472A0
+
+ thumb_func_start sub_80472E4
+sub_80472E4: @ 80472E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08047330 @ =gUnknown_3005090
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08047300
+ bl sub_8071A94
+_08047300:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _0804730E
+ ldr r0, _08047334 @ =0x00000107
+ bl sub_80722A0
+_0804730E:
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ ble _08047324
+ movs r0, 0x84
+ lsls r0, 1
+ bl sub_80722A0
+ adds r0, r5, 0
+ bl sub_8077508
+_08047324:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047330: .4byte gUnknown_3005090
+_08047334: .4byte 0x00000107
+ thumb_func_end sub_80472E4
+
+ thumb_func_start sub_8047338
+sub_8047338: @ 8047338
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0xC
+ ldr r1, _0804735C @ =gUnknown_3000E74
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x2]
+ adds r5, r1, 0
+ cmp r0, 0xC
+ bls _08047352
+ b _08047684
+_08047352:
+ lsls r0, 2
+ ldr r1, _08047360 @ =_08047364
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804735C: .4byte gUnknown_3000E74
+_08047360: .4byte _08047364
+ .align 2, 0
+_08047364:
+ .4byte _08047398
+ .4byte _080473E4
+ .4byte _0804740C
+ .4byte _08047444
+ .4byte _08047474
+ .4byte _08047482
+ .4byte _080474E8
+ .4byte _080474F6
+ .4byte _08047504
+ .4byte _08047548
+ .4byte _08047588
+ .4byte _08047634
+ .4byte _08047654
+_08047398:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+ ldr r0, _080473D8 @ =gUnknown_8260134
+ movs r1, 0x78
+ movs r2, 0x4B
+ movs r3, 0x5
+ bl sub_8006F8C
+ ldr r4, _080473DC @ =gUnknown_3000E74
+ ldr r1, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl sub_80019BC
+ movs r0, 0x1
+ bl sub_80019BC
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r0, _080473E0 @ =sub_80472E4
+ movs r1, 0x5
+ bl sub_807741C
+ b _08047684
+ .align 2, 0
+_080473D8: .4byte gUnknown_8260134
+_080473DC: .4byte gUnknown_3000E74
+_080473E0: .4byte sub_80472E4
+_080473E4:
+ ldr r0, _08047408 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080473F6
+ b _08047684
+_080473F6:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0
+ bl sub_800445C
+ ldr r0, [r5]
+ strb r4, [r0, 0x3]
+ ldr r1, [r5]
+ b _08047648
+ .align 2, 0
+_08047408: .4byte gUnknown_2037AB8
+_0804740C:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1E
+ bhi _0804741E
+ b _08047684
+_0804741E:
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r2, _0804743C @ =gUnknown_202063C
+ ldr r0, [r5]
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08047440 @ =sub_80476B0
+ str r1, [r0]
+ b _08047684
+ .align 2, 0
+_0804743C: .4byte gUnknown_202063C
+_08047440: .4byte sub_80476B0
+_08047444:
+ ldr r2, _0804746C @ =gUnknown_202063C
+ ldr r3, [r5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08047470 @ =nullsub_8
+ cmp r1, r0
+ beq _0804745E
+ b _08047684
+_0804745E:
+ ldrh r0, [r3, 0xC]
+ movs r1, 0
+ bl sub_8071DF0
+ ldr r1, [r5]
+ b _08047648
+ .align 2, 0
+_0804746C: .4byte gUnknown_202063C
+_08047470: .4byte nullsub_8
+_08047474:
+ bl sub_80721A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08047480
+ b _08047684
+_08047480:
+ b _08047644
+_08047482:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080474D4 @ =gUnknown_2024284
+ adds r0, r1
+ ldr r1, _080474D8 @ =gUnknown_2021CD0
+ bl sub_80453C0
+ ldr r4, _080474DC @ =gUnknown_2021D18
+ ldr r1, _080474E0 @ =gUnknown_841B6FD
+ adds r0, r4, 0
+ bl sub_8008FCC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0xFF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_8047A9C
+ ldr r0, _080474E4 @ =0x00000103
+ bl sub_8071C60
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ bl sub_8003FA0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x3
+ bl sub_8003F20
+ b _08047684
+ .align 2, 0
+_080474D4: .4byte gUnknown_2024284
+_080474D8: .4byte gUnknown_2021CD0
+_080474DC: .4byte gUnknown_2021D18
+_080474E0: .4byte gUnknown_841B6FD
+_080474E4: .4byte 0x00000103
+_080474E8:
+ bl sub_8071C9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080474F4
+ b _08047684
+_080474F4:
+ b _08047644
+_080474F6:
+ bl sub_8071C9C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08047502
+ b _08047684
+_08047502:
+ b _08047644
+_08047504:
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08047538 @ =gUnknown_2024284
+ adds r0, r1
+ ldr r1, _0804753C @ =gUnknown_2021CD0
+ bl sub_80453C0
+ ldr r4, _08047540 @ =gUnknown_2021D18
+ ldr r1, _08047544 @ =gUnknown_841B716
+ adds r0, r4, 0
+ bl sub_8008FCC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x1
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8047A9C
+ ldr r1, [r5]
+ b _08047648
+ .align 2, 0
+_08047538: .4byte gUnknown_2024284
+_0804753C: .4byte gUnknown_2021CD0
+_08047540: .4byte gUnknown_2021D18
+_08047544: .4byte gUnknown_841B716
+_08047548:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ bl sub_8002E64
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _0804755A
+ b _08047684
+_0804755A:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ movs r4, 0xA0
+ lsls r4, 1
+ adds r1, r4, 0
+ movs r2, 0xE0
+ bl sub_814FE40
+ ldr r0, _08047584 @ =gUnknown_82601B4
+ str r4, [sp]
+ movs r1, 0xE
+ str r1, [sp, 0x4]
+ str r6, [sp, 0x8]
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_810FF60
+ ldr r1, [r5]
+ b _08047648
+ .align 2, 0
+_08047584: .4byte gUnknown_82601B4
+_08047588:
+ bl sub_81100C8
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080475A8
+ cmp r1, 0
+ bgt _080475A2
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08047644
+ b _08047684
+_080475A2:
+ cmp r1, 0x1
+ beq _08047644
+ b _08047684
+_080475A8:
+ ldr r0, _08047624 @ =gUnknown_3000E74
+ mov r9, r0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _08047628 @ =gUnknown_2024284
+ adds r0, r6
+ ldr r1, _0804762C @ =gUnknown_2021D04
+ mov r10, r1
+ bl sub_80453C0
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl sub_803FBE8
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ bl sub_803F720
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0
+ movs r2, 0
+ bl sub_803FBE8
+ str r0, [sp]
+ ldr r0, _08047630 @ =sub_80472A0
+ str r0, [sp, 0x4]
+ movs r0, 0x3
+ mov r1, r10
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_809D954
+ b _08047684
+ .align 2, 0
+_08047624: .4byte gUnknown_3000E74
+_08047628: .4byte gUnknown_2024284
+_0804762C: .4byte gUnknown_2021D04
+_08047630: .4byte sub_80472A0
+_08047634:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+_08047644:
+ ldr r0, _08047650 @ =gUnknown_3000E74
+ ldr r1, [r0]
+_08047648:
+ ldrb r0, [r1, 0x2]
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ b _08047684
+ .align 2, 0
+_08047650: .4byte gUnknown_3000E74
+_08047654:
+ ldr r0, _080476A8 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08047684
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x8]
+ bl sub_8003E3C
+ movs r0, 0
+ bl sub_8001FD4
+ movs r0, 0x1
+ bl sub_8001FD4
+ ldr r0, [r5]
+ bl sub_8002BC4
+ ldr r0, _080476AC @ =sub_80567DC
+ bl sub_8000544
+ bl sub_812B484
+_08047684:
+ bl sub_8077578
+ bl sub_8002DE8
+ bl sub_8006B5C
+ bl sub_8006BA8
+ bl sub_80704D0
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080476A8: .4byte gUnknown_2037AB8
+_080476AC: .4byte sub_80567DC
+ thumb_func_end sub_8047338
+
+ thumb_func_start sub_80476B0
+sub_80476B0: @ 80476B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _080476D0
+ ldr r0, _080476CC @ =sub_8047708
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ b _08047700
+ .align 2, 0
+_080476CC: .4byte sub_8047708
+_080476D0:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl sub_8044E30
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08047700
+ movs r0, 0x17
+ bl sub_80722CC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_800838C
+ bl sub_80479C8
+_08047700:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80476B0
+
+ thumb_func_start sub_8047708
+sub_8047708: @ 8047708
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _08047764
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ ble _08047738
+ ldr r0, _08047734 @ =sub_804776C
+ str r0, [r4, 0x1C]
+ strh r1, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ b _08047764
+ .align 2, 0
+_08047734: .4byte sub_804776C
+_08047738:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl sub_8044E30
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08047764
+ movs r0, 0x17
+ bl sub_80722CC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_800838C
+_08047764:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8047708
+
+ thumb_func_start sub_804776C
+sub_804776C: @ 804776C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ ble _08047826
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x26
+ ble _080477E4
+ ldr r0, _080477D0 @ =sub_804782C
+ str r0, [r4, 0x1C]
+ strh r6, [r4, 0x2E]
+ ldr r5, _080477D4 @ =gUnknown_3000E74
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080477D8 @ =gUnknown_2024284
+ adds r0, r1
+ movs r1, 0xB
+ bl sub_803FBE8
+ lsls r0, 16
+ ldr r4, _080477DC @ =gUnknown_202063C
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ strh r6, [r1, 0x24]
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _080477E0 @ =gUnknown_82349CC
+ lsrs r0, 14
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x26]
+ b _08047826
+ .align 2, 0
+_080477D0: .4byte sub_804782C
+_080477D4: .4byte gUnknown_3000E74
+_080477D8: .4byte gUnknown_2024284
+_080477DC: .4byte gUnknown_202063C
+_080477E0: .4byte gUnknown_82349CC
+_080477E4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x14
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ bl sub_8044E30
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ bne _08047818
+ movs r0, 0x17
+ bl sub_80722CC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_800838C
+ bl sub_80479C8
+ bl sub_80479C8
+_08047818:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ bne _08047826
+ movs r0, 0x17
+ bl sub_80722CC
+_08047826:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804776C
+
+ thumb_func_start sub_804782C
+sub_804782C: @ 804782C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ ble _08047846
+ ldr r0, _0804784C @ =sub_8047850
+ str r0, [r1, 0x1C]
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_08047846:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804784C: .4byte sub_8047850
+ thumb_func_end sub_804782C
+
+ thumb_func_start sub_8047850
+sub_8047850: @ 8047850
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08047870
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, _080478C4 @ =0x0000ffff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl sub_8070588
+_08047870:
+ ldrh r0, [r5, 0x2E]
+ cmp r0, 0x3
+ bhi _0804788C
+ movs r4, 0
+_08047878:
+ bl sub_80479C8
+ lsls r0, r4, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r4, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08047878
+_0804788C:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ ldr r0, _080478C8 @ =gUnknown_2037AB8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080478BA
+ movs r0, 0x6A
+ bl sub_80722CC
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _080478CC @ =sub_80478D0
+ str r0, [r5, 0x1C]
+ strh r4, [r5, 0x2E]
+_080478BA:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080478C4: .4byte 0x0000ffff
+_080478C8: .4byte gUnknown_2037AB8
+_080478CC: .4byte sub_80478D0
+ thumb_func_end sub_8047850
+
+ thumb_func_start sub_80478D0
+sub_80478D0: @ 80478D0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0804790C
+ ldr r4, _08047960 @ =gUnknown_202063C
+ ldr r3, _08047964 @ =gUnknown_3000E74
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl sub_800843C
+_0804790C:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x8
+ bne _08047926
+ movs r1, 0x1
+ negs r1, r1
+ ldr r0, _08047968 @ =0x0000ffff
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl sub_8070588
+_08047926:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x9
+ bgt _08047944
+ ldr r2, _08047960 @ =gUnknown_202063C
+ ldr r0, _08047964 @ =gUnknown_3000E74
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x22]
+ subs r1, 0x1
+ strh r1, [r0, 0x22]
+_08047944:
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x28
+ ble _08047952
+ ldr r0, _0804796C @ =nullsub_8
+ str r0, [r5, 0x1C]
+_08047952:
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047960: .4byte gUnknown_202063C
+_08047964: .4byte gUnknown_3000E74
+_08047968: .4byte 0x0000ffff
+_0804796C: .4byte nullsub_8
+ thumb_func_end sub_80478D0
+
+ thumb_func_start sub_8047970
+sub_8047970: @ 8047970
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x36]
+ adds r0, r1
+ strh r0, [r2, 0x36]
+ ldrh r1, [r2, 0x32]
+ ldrh r3, [r2, 0x38]
+ adds r0, r1, r3
+ strh r0, [r2, 0x38]
+ movs r4, 0x36
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ bge _0804798E
+ adds r0, 0xFF
+_0804798E:
+ asrs r0, 8
+ strh r0, [r2, 0x24]
+ movs r3, 0x38
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _0804799C
+ adds r0, 0xFF
+_0804799C:
+ asrs r0, 8
+ strh r0, [r2, 0x26]
+ ldrh r0, [r2, 0x34]
+ adds r3, r1, r0
+ strh r3, [r2, 0x32]
+ movs r4, 0x22
+ ldrsh r1, [r2, r4]
+ movs r4, 0x26
+ ldrsh r0, [r2, r4]
+ adds r0, r1, r0
+ adds r1, 0x14
+ cmp r0, r1
+ ble _080479C2
+ lsls r0, r3, 16
+ cmp r0, 0
+ ble _080479C2
+ adds r0, r2, 0
+ bl sub_8007280
+_080479C2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8047970
+
+ thumb_func_start sub_80479C8
+sub_80479C8: @ 80479C8
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r2, _08047A14 @ =gUnknown_82601BC
+ ldr r0, _08047A18 @ =gUnknown_3000E74
+ ldr r6, [r0]
+ ldrb r3, [r6, 0x7]
+ lsls r0, r3, 2
+ adds r1, r0, r2
+ ldrh r5, [r1]
+ adds r2, 0x2
+ adds r0, r2
+ ldrh r4, [r0]
+ adds r3, 0x1
+ strb r3, [r6, 0x7]
+ bl sub_8044EC8
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x64
+ str r0, [sp]
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ movs r0, 0x78
+ movs r1, 0x3C
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_8047A1C
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047A14: .4byte gUnknown_82601BC
+_08047A18: .4byte gUnknown_3000E74
+ thumb_func_end sub_80479C8
+
+ thumb_func_start sub_8047A1C
+sub_8047A1C: @ 8047A1C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ mov r8, r3
+ ldr r0, [sp, 0x1C]
+ mov r9, r0
+ ldr r1, [sp, 0x20]
+ mov r10, r1
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r1, r9
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08047A94 @ =gUnknown_8260184
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x4
+ bl sub_8006F8C
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08047A98 @ =gUnknown_202063C
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r6, [r0, 0x30]
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ mov r1, r9
+ strh r1, [r0, 0x34]
+ mov r1, r10
+ bl sub_800838C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047A94: .4byte gUnknown_8260184
+_08047A98: .4byte gUnknown_202063C
+ thumb_func_end sub_8047A1C
+
+ thumb_func_start sub_8047A9C
+sub_8047A9C: @ 8047A9C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x18
+ adds r5, r0, 0
+ mov r8, r1
+ adds r6, r2, 0
+ ldr r4, [sp, 0x2C]
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xFF
+ str r3, [sp, 0x14]
+ bl sub_800445C
+ ldr r2, _08047B08 @ =gUnknown_3000E74
+ ldr r1, [r2]
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ ldr r1, [r2]
+ movs r0, 0x5
+ strb r0, [r1, 0xF]
+ ldr r1, [r2]
+ movs r0, 0x6
+ strb r0, [r1, 0x10]
+ movs r0, 0x1
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ ldr r0, [r2]
+ adds r0, 0xE
+ str r0, [sp, 0x8]
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp, 0xC]
+ mov r0, r8
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r6, 0
+ ldr r3, [sp, 0x14]
+ bl sub_812E5A4
+ add sp, 0x18
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047B08: .4byte gUnknown_3000E74
+ thumb_func_end sub_8047A9C
+
+ .align 2, 0 @ Don't pad with nop.