diff options
Diffstat (limited to 'asm/save.s')
-rw-r--r-- | asm/save.s | 1813 |
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. |