summaryrefslogtreecommitdiff
path: root/asm/save.s
diff options
context:
space:
mode:
authorsceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-11 19:17:54 -0800
committersceptillion <33798691+sceptillion@users.noreply.github.com>2017-12-11 19:17:54 -0800
commit501b32cb5947d5dce445946162b1d090ba6f14ab (patch)
treec6e8b0d48c4ba4dcccb0af3d84b083bbfe0b1b27 /asm/save.s
parentae6d7f251ec0c6757fa3b41d50f6a58f8f2dd48c (diff)
split save.s
Diffstat (limited to 'asm/save.s')
-rw-r--r--asm/save.s1813
1 files changed, 1813 insertions, 0 deletions
diff --git a/asm/save.s b/asm/save.s
new file mode 100644
index 0000000..f88c219
--- /dev/null
+++ b/asm/save.s
@@ -0,0 +1,1813 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8011C1C
+sub_8011C1C:
+ ldr r0, _08011C24
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08011C24: .4byte gUnknown_203B17C
+ thumb_func_end sub_8011C1C
+
+ thumb_func_start sub_8011C28
+sub_8011C28:
+ ldr r1, _08011C30
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08011C30: .4byte gUnknown_203B17C
+ thumb_func_end sub_8011C28
+
+ thumb_func_start sub_8011C34
+sub_8011C34:
+ ldr r0, _08011C3C
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08011C3C: .4byte gUnknown_202DE28
+ thumb_func_end sub_8011C34
+
+ thumb_func_start sub_8011C40
+sub_8011C40:
+ ldr r1, _08011C48
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08011C48: .4byte gUnknown_202DE28
+ thumb_func_end sub_8011C40
+
+ thumb_func_start sub_8011C4C
+sub_8011C4C:
+ ldr r0, _08011C54
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+_08011C54: .4byte gUnknown_203B180
+ thumb_func_end sub_8011C4C
+
+ thumb_func_start sub_8011C58
+sub_8011C58:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ lsrs r1, 2
+ cmp r1, 0x1
+ ble _08011C72
+ adds r3, r4, 0x4
+ subs r1, 0x1
+_08011C68:
+ ldm r3!, {r0}
+ adds r2, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08011C68
+_08011C72:
+ str r2, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8011C58
+
+ thumb_func_start sub_8011C7C
+sub_8011C7C:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ lsrs r1, 2
+ cmp r1, 0x1
+ ble _08011C96
+ adds r3, r4, 0x4
+ subs r1, 0x1
+_08011C8C:
+ ldm r3!, {r0}
+ adds r2, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08011C8C
+_08011C96:
+ ldr r0, [r4]
+ cmp r0, r2
+ bne _08011CA0
+ movs r0, 0
+ b _08011CA2
+_08011CA0:
+ movs r0, 0x1
+_08011CA2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8011C7C
+
+ thumb_func_start sub_8011CA8
+sub_8011CA8:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldr r0, _08011CCC
+ ldr r0, [r0]
+ ldr r0, _08011CD0
+ adds r1, r2, r0
+ cmp r1, 0
+ bge _08011CBE
+ ldr r0, _08011CD4
+ adds r1, r2, r0
+_08011CBE:
+ asrs r1, 12
+ ldr r0, [r3]
+ adds r0, r1
+ str r0, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011CCC: .4byte gUnknown_203B184
+_08011CD0: .4byte 0x00000fff
+_08011CD4: .4byte 0x00001ffe
+ thumb_func_end sub_8011CA8
+
+ thumb_func_start sub_8011CD8
+sub_8011CD8:
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ ldr r6, [r0]
+ adds r1, r4, 0
+ bl sub_8011CA8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8011C58
+ ldr r0, _08011D04
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011D08
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl WriteFlashData
+ adds r1, r0, 0
+ b _08011D28
+ .align 2, 0
+_08011D04: .4byte gUnknown_203B184
+_08011D08:
+ bl sub_800DAB8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011D38
+ lsls r0, r6, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_800DAB4
+ lsls r0, 24
+ movs r1, 0
+ cmp r0, 0
+ bne _08011D28
+ movs r1, 0x3
+_08011D28:
+ cmp r1, 0x4
+ bne _08011D30
+ movs r0, 0x1
+ b _08011D3A
+_08011D30:
+ cmp r1, 0
+ bne _08011D38
+ movs r0, 0
+ b _08011D3A
+_08011D38:
+ movs r0, 0x2
+_08011D3A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8011CD8
+
+ thumb_func_start sub_8011D40
+sub_8011D40:
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ ldr r6, [r0]
+ adds r1, r4, 0
+ bl sub_8011CA8
+ ldr r0, _08011D64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011D68
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl ReadFlashData
+ adds r1, r0, 0
+ b _08011D86
+ .align 2, 0
+_08011D64: .4byte gUnknown_203B184
+_08011D68:
+ bl sub_800DAB8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011D8A
+ lsls r0, r6, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_800DAB0
+ lsls r0, 24
+ movs r1, 0
+ cmp r0, 0
+ beq _08011D8A
+_08011D86:
+ cmp r1, 0
+ beq _08011D8E
+_08011D8A:
+ movs r0, 0x1
+ b _08011DA2
+_08011D8E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8011C7C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08011DA0
+ movs r0, 0
+ b _08011DA2
+_08011DA0:
+ movs r0, 0x2
+_08011DA2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8011D40
+
+ thumb_func_start sub_8011DA8
+sub_8011DA8:
+ movs r0, 0x1
+ bx lr
+ thumb_func_end sub_8011DA8
+
+ thumb_func_start sub_8011DAC
+sub_8011DAC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r0, _08011DE4
+ mov r8, r0
+ movs r1, 0x5
+ bl MemoryAlloc
+ adds r5, r0, 0
+ movs r1, 0x89
+ lsls r1, 3
+ adds r4, r5, r1
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8011D40
+ adds r7, r0, 0
+ cmp r7, 0
+ beq _08011DE8
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_8011D40
+ adds r7, r0, 0
+ b _08011DF0
+ .align 2, 0
+_08011DE4: .4byte 0x000057d4
+_08011DE8:
+ adds r0, r6, 0
+ mov r1, r8
+ bl sub_8011CA8
+_08011DF0:
+ cmp r7, 0
+ beq _08011DF6
+ b _08011F6E
+_08011DF6:
+ ldr r2, _08011E38
+ adds r0, r5, r2
+ ldr r1, [r0]
+ ldr r0, _08011E3C
+ cmp r1, r0
+ beq _08011E04
+ movs r7, 0x4
+_08011E04:
+ cmp r7, 0
+ beq _08011E0A
+ b _08011F6E
+_08011E0A:
+ ldr r0, _08011E40
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08011E48
+ ldr r1, _08011E44
+ adds r0, r5, r1
+ ldr r0, [r0]
+ bl sub_8011C28
+ movs r2, 0x83
+ lsls r2, 3
+ adds r0, r5, r2
+ ldr r0, [r0]
+ bl sub_8011C40
+ movs r1, 0x84
+ lsls r1, 3
+ adds r0, r5, r1
+ ldr r0, [r0]
+ bl SetRngState
+ b _08011E60
+ .align 2, 0
+_08011E38: .4byte 0x00000414
+_08011E3C: .4byte 0x05071412
+_08011E40: .4byte gUnknown_203B184
+_08011E44: .4byte 0x0000041c
+_08011E48:
+ ldr r2, _08011E80
+ adds r0, r5, r2
+ ldr r0, [r0]
+ str r0, [r1, 0x54]
+ subs r2, 0x4
+ adds r0, r5, r2
+ ldr r0, [r0]
+ str r0, [r1, 0x50]
+ adds r2, 0x8
+ adds r0, r5, r2
+ ldr r0, [r0]
+ str r0, [r1, 0x58]
+_08011E60:
+ cmp r7, 0
+ beq _08011E66
+ b _08011F6E
+_08011E66:
+ ldr r0, _08011E84
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011E88
+ adds r0, r5, 0x4
+ bl sub_8002718
+ lsls r0, 24
+ cmp r0, 0
+ bne _08011E94
+ movs r7, 0x4
+ b _08011F6E
+ .align 2, 0
+_08011E80: .4byte 0x0000041c
+_08011E84: .4byte gUnknown_203B184
+_08011E88:
+ ldr r0, [r0, 0x4C]
+ adds r1, r5, 0x4
+ movs r2, 0x80
+ lsls r2, 3
+ bl MemoryCopy8
+_08011E94:
+ cmp r7, 0
+ bne _08011F6E
+ ldr r6, _08011F80
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_808EE9C
+ adds r1, r0, 0
+ ldr r2, _08011F84
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011EB0
+ movs r7, 0x3
+_08011EB0:
+ adds r4, r6
+ movs r6, 0x96
+ lsls r6, 2
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_808F2B0
+ adds r1, r0, 0
+ movs r2, 0x85
+ lsls r2, 3
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011ECE
+ movs r7, 0x3
+_08011ECE:
+ adds r4, r6
+ movs r6, 0xEC
+ lsls r6, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8091D14
+ adds r1, r0, 0
+ movs r2, 0x86
+ lsls r2, 3
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011EEC
+ movs r7, 0x3
+_08011EEC:
+ adds r4, r6
+ adds r0, r4, 0
+ movs r1, 0x10
+ bl sub_809222C
+ adds r1, r0, 0
+ ldr r2, _08011F88
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011F04
+ movs r7, 0x3
+_08011F04:
+ adds r4, 0x10
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl sub_80927F4
+ adds r1, r0, 0
+ movs r2, 0x87
+ lsls r2, 3
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011F1E
+ movs r7, 0x3
+_08011F1E:
+ adds r4, 0x8
+ movs r6, 0x80
+ lsls r6, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8097D98
+ adds r1, r0, 0
+ ldr r2, _08011F8C
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011F3A
+ movs r7, 0x3
+_08011F3A:
+ adds r4, r6
+ ldr r6, _08011F90
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_80954CC
+ adds r1, r0, 0
+ movs r2, 0x88
+ lsls r2, 3
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011F56
+ movs r7, 0x3
+_08011F56:
+ adds r4, r6
+ ldr r1, _08011F94
+ adds r0, r4, 0
+ bl sub_8096FA0
+ adds r1, r0, 0
+ ldr r2, _08011F98
+ adds r0, r5, r2
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _08011F6E
+ movs r7, 0x3
+_08011F6E:
+ adds r0, r5, 0
+ bl MemoryFree
+ adds r0, r7, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08011F80: .4byte 0x00004650
+_08011F84: .4byte 0x00000424
+_08011F88: .4byte 0x00000434
+_08011F8C: .4byte 0x0000043c
+_08011F90: .4byte 0x00000594
+_08011F94: .4byte 0x00000221
+_08011F98: .4byte 0x00000444
+ thumb_func_end sub_8011DAC
+
+ thumb_func_start sub_8011F9C
+sub_8011F9C:
+ push {lr}
+ bl sub_8011D40
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8011F9C
+
+ thumb_func_start sub_8011FA8
+sub_8011FA8:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl MemoryAlloc
+ adds r5, r0, 0
+ movs r0, 0x1F
+ str r0, [sp]
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8011D40
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _08011FD8
+ ldr r1, [r5, 0x14]
+ ldr r0, _08011FF0
+ cmp r1, r0
+ beq _08011FD8
+ movs r2, 0x4
+_08011FD8:
+ ldr r4, _08011FF4
+ cmp r2, 0
+ bne _08011FE0
+ ldr r4, [r5, 0x18]
+_08011FE0:
+ adds r0, r5, 0
+ bl MemoryFree
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08011FF0: .4byte 0x05071412
+_08011FF4: .4byte 0x000f1209
+ thumb_func_end sub_8011FA8
+
+ thumb_func_start sub_8011FF8
+sub_8011FF8:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl MemoryAlloc
+ adds r5, r0, 0
+ movs r0, 0x1F
+ str r0, [sp]
+ movs r6, 0
+ mov r0, sp
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8011D40
+ cmp r0, 0
+ bne _08012028
+ ldr r1, [r5, 0x14]
+ ldr r0, _08012038
+ cmp r1, r0
+ bne _08012028
+ movs r6, 0x1
+_08012028:
+ adds r0, r5, 0
+ bl MemoryFree
+ adds r0, r6, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08012038: .4byte 0x05071412
+ thumb_func_end sub_8011FF8
+
+ thumb_func_start sub_801203C
+sub_801203C:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ ldr r0, _08012078
+ movs r1, 0x5
+ bl MemoryAlloc
+ adds r6, r0, 0
+ movs r0, 0x89
+ lsls r0, 3
+ adds r5, r6, r0
+ ldr r0, _0801207C
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _08012084
+ ldr r1, _08012080
+ adds r0, r6, r1
+ str r4, [r0]
+ bl sub_8011C34
+ movs r2, 0x83
+ lsls r2, 3
+ adds r1, r6, r2
+ str r0, [r1]
+ bl GetRngState
+ movs r2, 0x84
+ lsls r2, 3
+ adds r1, r6, r2
+ b _0801209E
+ .align 2, 0
+_08012078: .4byte 0x000057d4
+_0801207C: .4byte gUnknown_203B184
+_08012080: .4byte 0x0000041c
+_08012084:
+ ldr r0, _080120C8
+ adds r1, r6, r0
+ ldr r0, [r2, 0x54]
+ str r0, [r1]
+ movs r0, 0x83
+ lsls r0, 3
+ adds r1, r6, r0
+ ldr r0, [r2, 0x50]
+ str r0, [r1]
+ movs r0, 0x84
+ lsls r0, 3
+ adds r1, r6, r0
+ ldr r0, [r2, 0x58]
+_0801209E:
+ str r0, [r1]
+ ldr r2, _080120CC
+ adds r1, r6, r2
+ ldr r0, _080120D0
+ str r0, [r1]
+ bl sub_8011C4C
+ adds r1, r0, 0
+ ldr r2, _080120D4
+ adds r0, r6, r2
+ movs r2, 0x10
+ bl strncpy
+ ldr r0, _080120D8
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _080120DC
+ adds r0, r6, 0x4
+ bl sub_8002700
+ b _080120E8
+ .align 2, 0
+_080120C8: .4byte 0x0000041c
+_080120CC: .4byte 0x00000414
+_080120D0: .4byte 0x05071412
+_080120D4: .4byte 0x00000404
+_080120D8: .4byte gUnknown_203B184
+_080120DC:
+ adds r0, r6, 0x4
+ ldr r1, [r1, 0x4C]
+ movs r2, 0x80
+ lsls r2, 3
+ bl MemoryCopy8
+_080120E8:
+ ldr r4, _080121A4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_808ED78
+ ldr r2, _080121A8
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, r4
+ movs r4, 0x96
+ lsls r4, 2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_808F154
+ movs r2, 0x85
+ lsls r2, 3
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, r4
+ subs r4, 0x80
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8091C68
+ movs r2, 0x86
+ lsls r2, 3
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, r4
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl sub_80921C4
+ ldr r2, _080121AC
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, 0x10
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl sub_80927A8
+ movs r2, 0x87
+ lsls r2, 3
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, 0x8
+ subs r4, 0xD8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8097D60
+ ldr r2, _080121B0
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, r4
+ ldr r4, _080121B4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8095624
+ movs r2, 0x88
+ lsls r2, 3
+ adds r1, r6, r2
+ str r0, [r1]
+ adds r5, r4
+ ldr r1, _080121B8
+ adds r0, r5, 0
+ bl sub_80970D8
+ ldr r2, _080121BC
+ adds r1, r6, r2
+ str r0, [r1]
+ ldr r4, _080121C0
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_8011CD8
+ adds r5, r0, 0
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_8011CD8
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl MemoryFree
+ cmp r5, 0
+ beq _080121C4
+ adds r0, r5, 0
+ b _080121CE
+ .align 2, 0
+_080121A4: .4byte 0x00004650
+_080121A8: .4byte 0x00000424
+_080121AC: .4byte 0x00000434
+_080121B0: .4byte 0x0000043c
+_080121B4: .4byte 0x00000594
+_080121B8: .4byte 0x00000221
+_080121BC: .4byte 0x00000444
+_080121C0: .4byte 0x000057d4
+_080121C4:
+ cmp r4, 0
+ bne _080121CC
+ movs r0, 0
+ b _080121CE
+_080121CC:
+ adds r0, r4, 0
+_080121CE:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801203C
+
+ thumb_func_start sub_80121D4
+sub_80121D4:
+ push {lr}
+ bl sub_8011CD8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80121D4
+
+ thumb_func_start sub_80121E0
+sub_80121E0:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r6, 0x80
+ lsls r6, 4
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl MemoryAlloc
+ adds r4, r0, 0
+ movs r0, 0x1F
+ str r0, [sp]
+ str r5, [r4, 0x18]
+ bl sub_809769C
+ ldr r0, [r0]
+ str r0, [r4, 0x1C]
+ ldr r0, _0801223C
+ str r0, [r4, 0x14]
+ bl sub_8011C4C
+ adds r1, r0, 0
+ adds r0, r4, 0x4
+ movs r2, 0x10
+ bl strncpy
+ adds r0, r4, 0
+ adds r0, 0x20
+ movs r1, 0
+ bl sub_80958E4
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_8011CD8
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl MemoryFree
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801223C: .4byte 0x05071412
+ thumb_func_end sub_80121E0
+
+ thumb_func_start sub_8012240
+sub_8012240:
+ push {r4,r5,lr}
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl MemoryAlloc
+ adds r5, r0, 0
+ movs r1, 0xFF
+ movs r2, 0x4
+ bl MemoryFill8
+ bl sub_8011830
+ movs r0, 0x1F
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl WriteFlashData
+ adds r4, r0, 0
+ bl sub_8011854
+ adds r0, r5, 0
+ bl MemoryFree
+ cmp r4, 0
+ bne _0801227A
+ movs r0, 0
+ b _0801227C
+_0801227A:
+ movs r0, 0x2
+_0801227C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8012240
+
+ thumb_func_start sub_8012284
+sub_8012284:
+ push {lr}
+ bl sub_80122D0
+ bl sub_80122F4
+ bl sub_8012300
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8012284
+
+ thumb_func_start sub_8012298
+sub_8012298:
+ push {lr}
+ bl sub_80976A8
+ bl sub_80122A8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8012298
+
+ thumb_func_start sub_80122A8
+sub_80122A8:
+ push {lr}
+ bl sub_80122D0
+ bl sub_80122F4
+ bl sub_8012300
+ bl sub_8012240
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80122A8
+
+ thumb_func_start nullsub_33
+nullsub_33:
+ bx lr
+ thumb_func_end nullsub_33
+
+ thumb_func_start sub_80122C4
+sub_80122C4:
+ push {lr}
+ bl sub_80122A8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80122C4
+
+ thumb_func_start sub_80122D0
+sub_80122D0:
+ push {lr}
+ movs r0, 0
+ bl sub_8011C28
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_8011C40
+ bl sub_8097748
+ ldr r0, _080122F0
+ ldr r0, [r0]
+ bl sub_8094FA8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080122F0: .4byte gUnknown_203B47C
+ thumb_func_end sub_80122D0
+
+ thumb_func_start sub_80122F4
+sub_80122F4:
+ push {lr}
+ bl sub_800135C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80122F4
+
+ thumb_func_start sub_8012300
+sub_8012300:
+ push {lr}
+ bl sub_80923B8
+ bl sub_808CE08
+ bl sub_80909D8
+ bl sub_8092094
+ bl sub_80972F4
+ bl sub_8095118
+ bl sub_8095900
+ bl sub_80974E8
+ movs r0, 0x1
+ bl sub_8094998
+ bl sub_8097F74
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8012300
+
+ thumb_func_start nullsub_200
+nullsub_200:
+ bx lr
+ thumb_func_end nullsub_200
+
+ thumb_func_start sub_8012334
+sub_8012334:
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08012390
+ str r2, [r0]
+ cmp r2, 0
+ beq _080123C8
+ ldr r1, _08012394
+ ldr r0, [r2]
+ str r0, [r1]
+ ldr r1, _08012398
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, _0801239C
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ ldr r1, _080123A0
+ ldr r0, [r2, 0xC]
+ str r0, [r1]
+ ldr r1, _080123A4
+ ldr r0, [r2, 0x10]
+ str r0, [r1]
+ ldr r1, _080123A8
+ ldr r0, [r2, 0x14]
+ str r0, [r1]
+ ldr r1, _080123AC
+ ldr r0, [r2, 0x18]
+ str r0, [r1]
+ ldr r1, _080123B0
+ ldr r0, [r2, 0x1C]
+ str r0, [r1]
+ ldr r1, _080123B4
+ ldr r0, [r2, 0x20]
+ str r0, [r1]
+ ldr r1, _080123B8
+ ldr r0, [r2, 0x24]
+ str r0, [r1]
+ ldr r1, _080123BC
+ ldr r0, [r2, 0x28]
+ str r0, [r1]
+ ldr r1, _080123C0
+ ldr r0, [r2, 0x2C]
+ str r0, [r1]
+ ldr r1, _080123C4
+ ldr r0, [r2, 0x30]
+ b _0801242E
+ .align 2, 0
+_08012390: .4byte gUnknown_203B184
+_08012394: .4byte gUnknown_203B460
+_08012398: .4byte gUnknown_203B45C
+_0801239C: .4byte gUnknown_203B480
+_080123A0: .4byte gUnknown_203B484
+_080123A4: .4byte gUnknown_203B488
+_080123A8: .4byte gUnknown_203B48C
+_080123AC: .4byte gUnknown_203B490
+_080123B0: .4byte gUnknown_203B464
+_080123B4: .4byte gUnknown_203B494
+_080123B8: .4byte gUnknown_203B498
+_080123BC: .4byte gUnknown_203B468
+_080123C0: .4byte gUnknown_203B46C
+_080123C4: .4byte gUnknown_203B47C
+_080123C8:
+ bl sub_80909D0
+ ldr r1, _08012434
+ str r0, [r1]
+ bl sub_808CE00
+ ldr r1, _08012438
+ str r0, [r1]
+ bl sub_80950F8
+ ldr r1, _0801243C
+ str r0, [r1]
+ bl sub_8095100
+ ldr r1, _08012440
+ str r0, [r1]
+ bl sub_8095108
+ ldr r1, _08012444
+ str r0, [r1]
+ bl sub_8095110
+ ldr r1, _08012448
+ str r0, [r1]
+ bl sub_80958F8
+ ldr r1, _0801244C
+ str r0, [r1]
+ bl sub_809208C
+ ldr r1, _08012450
+ str r0, [r1]
+ bl sub_8097680
+ ldr r1, _08012454
+ str r0, [r1]
+ bl sub_8097F6C
+ ldr r1, _08012458
+ str r0, [r1]
+ bl sub_80923B0
+ ldr r1, _0801245C
+ str r0, [r1]
+ bl sub_8094990
+ ldr r1, _08012460
+ str r0, [r1]
+ bl sub_8094FA0
+ ldr r1, _08012464
+_0801242E:
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012434: .4byte gUnknown_203B460
+_08012438: .4byte gUnknown_203B45C
+_0801243C: .4byte gUnknown_203B480
+_08012440: .4byte gUnknown_203B484
+_08012444: .4byte gUnknown_203B488
+_08012448: .4byte gUnknown_203B48C
+_0801244C: .4byte gUnknown_203B490
+_08012450: .4byte gUnknown_203B464
+_08012454: .4byte gUnknown_203B494
+_08012458: .4byte gUnknown_203B498
+_0801245C: .4byte gUnknown_203B468
+_08012460: .4byte gUnknown_203B46C
+_08012464: .4byte gUnknown_203B47C
+ thumb_func_end sub_8012334
+
+ thumb_func_start sub_8012468
+sub_8012468:
+ push {r4,lr}
+ ldr r4, _08012480
+ movs r0, 0x8
+ movs r1, 0x5
+ bl MemoryAlloc
+ str r0, [r4]
+ movs r1, 0x1
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012480: .4byte gUnknown_203B188
+ thumb_func_end sub_8012468
+
+ thumb_func_start sub_8012484
+sub_8012484:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r1, _080124A0
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bhi _0801254C
+ lsls r0, 2
+ ldr r1, _080124A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080124A0: .4byte gUnknown_203B188
+_080124A4: .4byte _080124A8
+ .align 2, 0
+_080124A8:
+ .4byte _080124C4
+ .4byte _080124CC
+ .4byte _080124E8
+ .4byte _0801251C
+ .4byte _08012534
+ .4byte _0801254C
+ .4byte _08012548
+_080124C4:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+ b _0801254C
+_080124CC:
+ movs r0, 0
+ str r0, [sp]
+ mov r0, sp
+ bl sub_8011DAC
+ ldr r1, _080124E4
+ ldr r1, [r1]
+ str r0, [r1, 0x4]
+ movs r0, 0x2
+ str r0, [r1]
+ b _0801254C
+ .align 2, 0
+_080124E4: .4byte gUnknown_203B188
+_080124E8:
+ adds r5, r4, 0
+ ldr r1, [r5]
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0801253C
+ bl sub_8011FF8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012518
+ ldr r0, _08012510
+ ldr r3, _08012514
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ ldr r1, [r5]
+ movs r0, 0x3
+ str r0, [r1]
+ b _0801254C
+ .align 2, 0
+_08012510: .4byte gUnknown_80D4354
+_08012514: .4byte 0x00000301
+_08012518:
+ ldr r1, [r4]
+ b _0801252A
+_0801251C:
+ add r0, sp, 0x4
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801254C
+ ldr r0, _08012530
+ ldr r1, [r0]
+_0801252A:
+ movs r0, 0x4
+ str r0, [r1]
+ b _0801254C
+ .align 2, 0
+_08012530: .4byte gUnknown_203B188
+_08012534:
+ bl sub_8012298
+ ldr r0, _08012544
+ ldr r1, [r0]
+_0801253C:
+ movs r0, 0x6
+ str r0, [r1]
+ b _0801254C
+ .align 2, 0
+_08012544: .4byte gUnknown_203B188
+_08012548:
+ movs r0, 0
+ b _0801254E
+_0801254C:
+ movs r0, 0x1
+_0801254E:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8012484
+
+ thumb_func_start sub_8012558
+sub_8012558:
+ push {r4,lr}
+ ldr r4, _08012570
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801256A
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801256A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012570: .4byte gUnknown_203B188
+ thumb_func_end sub_8012558
+
+ thumb_func_start sub_8012574
+sub_8012574:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ bl sub_80993D8
+ ldr r5, _080125D4
+ movs r0, 0x20
+ movs r1, 0x5
+ bl MemoryAlloc
+ str r0, [r5]
+ movs r6, 0
+ movs r1, 0
+ strh r4, [r0, 0x1C]
+ str r1, [r0, 0xC]
+ str r1, [r0, 0x10]
+ cmp r4, 0
+ beq _080125BA
+ adds r0, r4, 0
+ bl sub_808DDD0
+ ldr r1, [r5]
+ str r0, [r1, 0xC]
+ ldr r0, [r0, 0x4]
+ str r0, [r1, 0x10]
+ strb r6, [r1, 0x18]
+ ldr r0, [r5]
+ strb r6, [r0, 0x19]
+ ldr r0, [r5]
+ strb r6, [r0, 0x1A]
+ ldr r1, [r5]
+ movs r0, 0x2
+ strh r0, [r1, 0x14]
+ movs r0, 0x8
+ strh r0, [r1, 0x16]
+_080125BA:
+ ldr r1, [r5]
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _080125DC
+ adds r2, r1, 0
+ adds r2, 0xC
+ ldr r0, _080125D8
+ movs r1, 0
+ movs r3, 0x20
+ bl sub_80141B4
+ b _080125E8
+ .align 2, 0
+_080125D4: .4byte gUnknown_203B18C
+_080125D8: .4byte gUnknown_80D4398
+_080125DC:
+ ldr r0, _080125F8
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x20
+ bl sub_80141B4
+_080125E8:
+ ldr r0, _080125FC
+ ldr r1, [r0]
+ movs r0, 0x3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080125F8: .4byte gUnknown_80D4398
+_080125FC: .4byte gUnknown_203B18C
+ thumb_func_end sub_8012574
+
+ thumb_func_start sub_8012600
+sub_8012600:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ movs r5, 0
+ ldr r0, _08012628
+ ldr r2, [r0]
+ ldr r1, [r2, 0xC]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _08012616
+ adds r5, r2, 0
+ adds r5, 0xC
+_08012616:
+ ldr r0, [r2]
+ cmp r0, 0x7
+ bls _0801261E
+ b _08012738
+_0801261E:
+ lsls r0, 2
+ ldr r1, _0801262C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012628: .4byte gUnknown_203B18C
+_0801262C: .4byte _08012630
+ .align 2, 0
+_08012630:
+ .4byte _08012650
+ .4byte _08012654
+ .4byte _08012738
+ .4byte _08012678
+ .4byte _08012680
+ .4byte _0801271C
+ .4byte _08012738
+ .4byte _08012734
+_08012650:
+ ldr r1, [r4]
+ b _0801272A
+_08012654:
+ ldr r1, [r4]
+ ldr r0, [r1, 0x4]
+ adds r0, 0x1
+ str r0, [r1, 0x4]
+ cmp r0, 0x8
+ ble _08012738
+ ldr r0, _08012674
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x20
+ bl sub_80141B4
+ ldr r1, [r4]
+ movs r0, 0x3
+ str r0, [r1]
+ b _08012738
+ .align 2, 0
+_08012674: .4byte gUnknown_80D43D8
+_08012678:
+ ldr r1, [r4]
+ movs r0, 0x4
+ str r0, [r1]
+ b _08012738
+_08012680:
+ movs r0, 0
+ str r0, [sp]
+ bl sub_80140DC
+ bl sub_8011C1C
+ adds r1, r0, 0
+ mov r0, sp
+ bl sub_801203C
+ ldr r4, _080126B8
+ ldr r1, [r4]
+ str r0, [r1, 0x8]
+ cmp r0, 0
+ beq _080126C4
+ cmp r0, 0x1
+ beq _080126DC
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _080126F4
+ ldr r0, _080126BC
+_080126AA:
+ ldr r3, _080126C0
+ movs r1, 0
+ adds r2, r5, 0
+ bl sub_80141B4
+ b _08012700
+ .align 2, 0
+_080126B8: .4byte gUnknown_203B18C
+_080126BC: .4byte gUnknown_80D44B0
+_080126C0: .4byte 0x00000101
+_080126C4:
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _080126D4
+ ldr r0, _080126D0
+ b _080126AA
+ .align 2, 0
+_080126D0: .4byte gUnknown_80D4438
+_080126D4:
+ ldr r0, _080126D8
+ b _080126F6
+ .align 2, 0
+_080126D8: .4byte gUnknown_80D4438
+_080126DC:
+ ldr r0, _080126F0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80141B4
+ ldr r1, [r4]
+ movs r0, 0x6
+ b _08012706
+ .align 2, 0
+_080126F0: .4byte gUnknown_80D444C
+_080126F4:
+ ldr r0, _08012710
+_080126F6:
+ ldr r3, _08012714
+ movs r1, 0
+ adds r2, r5, 0
+ bl sub_80141B4
+_08012700:
+ ldr r0, _08012718
+ ldr r1, [r0]
+ movs r0, 0x5
+_08012706:
+ str r0, [r1]
+ bl sub_8014114
+ b _08012738
+ .align 2, 0
+_08012710: .4byte gUnknown_80D44B0
+_08012714: .4byte 0x00000101
+_08012718: .4byte gUnknown_203B18C
+_0801271C:
+ add r0, sp, 0x4
+ bl sub_80144A4
+ cmp r0, 0
+ bne _08012738
+ ldr r0, _08012730
+ ldr r1, [r0]
+_0801272A:
+ movs r0, 0x7
+ str r0, [r1]
+ b _08012738
+ .align 2, 0
+_08012730: .4byte gUnknown_203B18C
+_08012734:
+ movs r0, 0
+ b _0801273A
+_08012738:
+ movs r0, 0x1
+_0801273A:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8012600
+
+ thumb_func_start sub_8012744
+sub_8012744:
+ ldr r0, _0801274C
+ ldr r0, [r0]
+ ldr r0, [r0, 0x8]
+ bx lr
+ .align 2, 0
+_0801274C: .4byte gUnknown_203B18C
+ thumb_func_end sub_8012744
+
+ thumb_func_start sub_8012750
+sub_8012750:
+ push {r4,lr}
+ ldr r4, _08012778
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801276E
+ ldr r0, [r0, 0xC]
+ cmp r0, 0
+ beq _08012764
+ bl CloseFile
+_08012764:
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_0801276E:
+ bl sub_80993E4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012778: .4byte gUnknown_203B18C
+ thumb_func_end sub_8012750
+
+ thumb_func_start sub_801277C
+sub_801277C:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ ldr r4, _080127A4
+ movs r0, 0x10
+ movs r1, 0x5
+ bl MemoryAlloc
+ str r0, [r4]
+ str r5, [r0, 0x4]
+ str r6, [r0, 0x8]
+ movs r1, 0
+ strb r1, [r0, 0xC]
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080127A4: .4byte gUnknown_203B190
+ thumb_func_end sub_801277C
+
+ thumb_func_start sub_80127A8
+sub_80127A8:
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r5, _080127C0
+ ldr r2, [r5]
+ ldr r4, [r2]
+ cmp r4, 0x1
+ beq _080127D4
+ cmp r4, 0x1
+ bgt _080127C4
+ cmp r4, 0
+ beq _080127CE
+ b _0801281E
+ .align 2, 0
+_080127C0: .4byte gUnknown_203B190
+_080127C4:
+ cmp r4, 0x2
+ beq _08012808
+ cmp r4, 0x3
+ beq _0801281A
+ b _0801281E
+_080127CE:
+ movs r0, 0x1
+ str r0, [r2]
+ b _0801281E
+_080127D4:
+ movs r0, 0x10
+ str r0, [sp]
+ ldr r1, [r2, 0x4]
+ ldr r2, [r2, 0x8]
+ mov r0, sp
+ bl sub_8011F9C
+ cmp r0, 0
+ bne _080127EC
+ ldr r0, [r5]
+ strb r4, [r0, 0xC]
+ b _08012812
+_080127EC:
+ ldr r0, _08012800
+ ldr r3, _08012804
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ ldr r1, [r5]
+ movs r0, 0x2
+ str r0, [r1]
+ b _0801281E
+ .align 2, 0
+_08012800: .4byte gUnknown_80D44C8
+_08012804: .4byte 0x00000301
+_08012808:
+ add r0, sp, 0x4
+ bl sub_80144A4
+ cmp r0, 0
+ bne _0801281E
+_08012812:
+ ldr r1, [r5]
+ movs r0, 0x3
+ str r0, [r1]
+ b _0801281E
+_0801281A:
+ movs r0, 0
+ b _08012820
+_0801281E:
+ movs r0, 0x1
+_08012820:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80127A8
+
+ thumb_func_start sub_8012828
+sub_8012828:
+ ldr r0, _08012830
+ ldr r0, [r0]
+ ldrb r0, [r0, 0xC]
+ bx lr
+ .align 2, 0
+_08012830: .4byte gUnknown_203B190
+ thumb_func_end sub_8012828
+
+ thumb_func_start sub_8012834
+sub_8012834:
+ push {r4,lr}
+ ldr r4, _0801284C
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08012846
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08012846:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801284C: .4byte gUnknown_203B190
+ thumb_func_end sub_8012834
+
+ thumb_func_start sub_8012850
+sub_8012850:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r6, r0, 0
+ mov r8, r1
+ lsls r4, r2, 24
+ lsrs r4, 24
+ ldr r5, _0801288C
+ movs r0, 0x14
+ movs r1, 0x5
+ bl MemoryAlloc
+ str r0, [r5]
+ str r6, [r0, 0x4]
+ mov r1, r8
+ str r1, [r0, 0x8]
+ movs r1, 0
+ strb r4, [r0, 0xC]
+ ldr r0, [r5]
+ str r1, [r0]
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0
+ beq _08012894
+ ldr r0, _08012890
+ movs r2, 0
+ movs r3, 0x20
+ bl sub_80141B4
+ b _080128A0
+ .align 2, 0
+_0801288C: .4byte gUnknown_203B194
+_08012890: .4byte gUnknown_80D45AC
+_08012894:
+ ldr r0, _080128AC
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x20
+ bl sub_80141B4
+_080128A0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080128AC: .4byte gUnknown_80D45AC
+ thumb_func_end sub_8012850
+
+ thumb_func_start sub_80128B0
+sub_80128B0:
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r1, _080128CC
+ ldr r0, [r1]
+ ldr r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _080128C2
+ b _080129F0
+_080128C2:
+ lsls r0, 2
+ ldr r1, _080128D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080128CC: .4byte gUnknown_203B194
+_080128D0: .4byte _080128D4
+ .align 2, 0
+_080128D4:
+ .4byte _080128EC
+ .4byte _080128F4
+ .4byte _0801291C
+ .4byte _080129C8
+ .4byte _080129F0
+ .4byte _080129E0
+_080128EC:
+ ldr r1, [r4]
+ movs r0, 0x1
+ str r0, [r1]
+ b _080129F0
+_080128F4:
+ bl sub_80140DC
+ movs r0, 0x10
+ str r0, [sp]
+ ldr r4, _08012918
+ ldr r0, [r4]
+ ldr r1, [r0, 0x4]
+ ldr r2, [r0, 0x8]
+ mov r0, sp
+ bl sub_80121D4
+ ldr r1, [r4]
+ str r0, [r1, 0x10]
+ movs r0, 0x2
+ str r0, [r1]
+ movs r0, 0x1
+ b _080129F2
+ .align 2, 0
+_08012918: .4byte gUnknown_203B194
+_0801291C:
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ cmp r0, 0
+ bne _08012934
+ mov r0, sp
+ movs r1, 0x2
+ bl sub_801203C
+ ldr r1, [r4]
+ str r0, [r1, 0x10]
+_08012934:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ cmp r0, 0
+ beq _08012964
+ cmp r0, 0x1
+ beq _080129AC
+ ldr r0, _08012958
+ bl sub_80121E0
+ ldr r0, _0801295C
+ ldr r3, _08012960
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ ldr r1, [r4]
+ movs r0, 0x3
+ b _080129BC
+ .align 2, 0
+_08012958: .4byte 0x000f1209
+_0801295C: .4byte gUnknown_80D47A0
+_08012960: .4byte 0x00000301
+_08012964:
+ ldr r0, _08012980
+ bl sub_80121E0
+ ldr r0, [r4]
+ ldrb r0, [r0, 0xC]
+ cmp r0, 0
+ beq _0801298C
+ ldr r0, _08012984
+ ldr r3, _08012988
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+ b _08012998
+ .align 2, 0
+_08012980: .4byte 0x000f1207
+_08012984: .4byte gUnknown_80D45F4
+_08012988: .4byte 0x00000301
+_0801298C:
+ ldr r0, _080129A0
+ ldr r3, _080129A4
+ movs r1, 0
+ movs r2, 0
+ bl sub_80141B4
+_08012998:
+ ldr r0, _080129A8
+ ldr r1, [r0]
+ movs r0, 0x3
+ b _080129BC
+ .align 2, 0
+_080129A0: .4byte gUnknown_80D4668
+_080129A4: .4byte 0x00000301
+_080129A8: .4byte gUnknown_203B194
+_080129AC:
+ ldr r0, _080129C4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80141B4
+ ldr r1, [r4]
+ movs r0, 0x4
+_080129BC:
+ str r0, [r1]
+ bl sub_8014114
+ b _080129F0
+ .align 2, 0
+_080129C4: .4byte gUnknown_80D473C
+_080129C8:
+ add r0, sp, 0x4
+ bl sub_80144A4
+ cmp r0, 0
+ bne _080129F0
+ ldr r0, _080129DC
+ ldr r1, [r0]
+ movs r0, 0x5
+ str r0, [r1]
+ b _080129F0
+ .align 2, 0
+_080129DC: .4byte gUnknown_203B194
+_080129E0:
+ ldr r0, [r4]
+ ldr r0, [r0, 0x10]
+ cmp r0, 0
+ bne _080129EC
+ movs r0, 0x2
+ b _080129F2
+_080129EC:
+ movs r0, 0x3
+ b _080129F2
+_080129F0:
+ movs r0, 0
+_080129F2:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80128B0
+
+ thumb_func_start sub_80129FC
+sub_80129FC:
+ push {r4,lr}
+ ldr r4, _08012A14
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08012A0E
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08012A0E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012A14: .4byte gUnknown_203B194
+ thumb_func_end sub_80129FC
+
+ .align 2, 0 @ Don't pad with nop.