diff options
author | YamaArashi <shadow962@live.com> | 2016-11-01 10:08:48 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-11-01 10:16:34 -0700 |
commit | 6f0e42a91aeeedd64725ce57e3dad6a38421d8e9 (patch) | |
tree | dcea69ec49430f004c17ff71b77587cafd78c69a /asm/save.s | |
parent | fef81187dce23adc635d7f4b7fd82298eab09ec2 (diff) |
split asm files
Diffstat (limited to 'asm/save.s')
-rw-r--r-- | asm/save.s | 2048 |
1 files changed, 2048 insertions, 0 deletions
diff --git a/asm/save.s b/asm/save.s new file mode 100644 index 000000000..0cc13bad5 --- /dev/null +++ b/asm/save.s @@ -0,0 +1,2048 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start calls_flash_erase_block +calls_flash_erase_block: @ 8152650 + push {r4,r5,lr} + movs r4, 0 + ldr r5, =0x03007860 +_08152656: + ldr r1, [r5] + adds r0, r4, 0 + bl _call_via_r1 + adds r0, r4, 0 + adds r0, 0x10 + lsls r0, 16 + lsrs r0, 16 + ldr r1, [r5] + bl _call_via_r1 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xF + bls _08152656 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end calls_flash_erase_block + + thumb_func_start sub_8152680 +sub_8152680: @ 8152680 + ldr r0, =0x03006200 + movs r1, 0 + str r1, [r0] + ldr r0, =0x030061f0 + strh r1, [r0] + ldr r0, =0x030061fc + str r1, [r0] + bx lr + .pool + thumb_func_end sub_8152680 + + thumb_func_start sub_815269C +sub_815269C: @ 815269C + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r3, r1, 24 + movs r4, 0 + cmp r0, 0x1 + beq _081526D0 + cmp r0, 0x1 + bgt _081526B6 + cmp r0, 0 + beq _081526BC + b _081526F4 +_081526B6: + cmp r0, 0x2 + beq _081526E4 + b _081526F4 +_081526BC: + ldr r2, =0x030061fc + movs r1, 0x1 + lsls r1, r3 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + b _081526F4 + .pool +_081526D0: + ldr r2, =0x030061fc + adds r1, r0, 0 + lsls r1, r3 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + b _081526F4 + .pool +_081526E4: + ldr r0, =0x030061fc + movs r1, 0x1 + lsls r1, r3 + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + beq _081526F4 + movs r4, 0x1 +_081526F4: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_815269C + + thumb_func_start save_write_to_flash +save_write_to_flash: @ 8152700 + push {r4-r7,lr} + adds r7, r1, 0 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, =0x03006204 + ldr r0, =0x0203abbc + str r0, [r1] + ldr r0, =0x0000ffff + cmp r2, r0 + beq _08152730 + adds r0, r2, 0 + adds r1, r7, 0 + bl sub_81527A0 + lsls r0, 24 + lsrs r5, r0, 24 + b _08152782 + .pool +_08152730: + ldr r1, =0x030061f8 + ldr r5, =0x030061f0 + ldrh r0, [r5] + strh r0, [r1] + ldr r1, =0x030061f4 + ldr r6, =0x03006200 + ldr r4, [r6] + str r4, [r1] + adds r0, 0x1 + strh r0, [r5] + ldrh r0, [r5] + movs r1, 0xE + bl __umodsi3 + strh r0, [r5] + adds r4, 0x1 + str r4, [r6] + movs r5, 0x1 + movs r4, 0 +_08152756: + adds r0, r4, 0 + adds r1, r7, 0 + bl sub_81527A0 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xD + bls _08152756 + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _08152782 + movs r5, 0xFF + ldr r1, =0x030061f0 + ldr r0, =0x030061f8 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =0x03006200 + ldr r0, =0x030061f4 + ldr r0, [r0] + str r0, [r1] +_08152782: + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end save_write_to_flash + + thumb_func_start sub_81527A0 +sub_81527A0: @ 81527A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =0x030061f0 + ldrh r0, [r0] + adds r0, r6, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r5, 0 + movs r1, 0xE + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, =0x03006200 + ldr r1, [r2] + movs r0, 0x1 + ands r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r6, 3 + adds r0, r4 + ldr r1, [r0] + mov r10, r1 + ldrh r4, [r0, 0x4] + movs r3, 0 + mov r9, r2 + ldr r2, =0x03006204 + mov r12, r2 + mov r8, r12 + movs r2, 0 + ldr r1, =0x00000fff +_081527F2: + mov r7, r8 + ldr r0, [r7] + adds r0, r3 + strb r2, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bls _081527F2 + mov r0, r12 + ldr r1, [r0] + ldr r2, =0x00000ff4 + adds r0, r1, r2 + strh r6, [r0] + ldr r3, =0x00000ff8 + adds r2, r1, r3 + ldr r0, =0x08012025 + str r0, [r2] + ldr r6, =0x00000ffc + adds r1, r6 + mov r7, r9 + ldr r0, [r7] + str r0, [r1] + movs r3, 0 + lsls r5, 24 + cmp r3, r4 + bcs _08152840 + mov r2, r12 +_0815282A: + ldr r1, [r2] + adds r1, r3 + mov r6, r10 + adds r0, r6, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r4 + bcc _0815282A +_08152840: + mov r0, r10 + adds r1, r4, 0 + bl sub_8153164 + ldr r1, =0x03006204 + ldr r1, [r1] + ldr r7, =0x00000ff6 + adds r2, r1, r7 + strh r0, [r2] + lsrs r0, r5, 24 + bl sub_8152908 + lsls r0, 24 + lsrs r0, 24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81527A0 + + thumb_func_start sub_8152890 +sub_8152890: @ 8152890 + push {r4-r7,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r2, 16 + lsrs r2, 16 + ldr r4, =0x0203abbc + movs r3, 0 + movs r6, 0 + ldr r1, =0x00000fff +_081528A4: + adds r0, r4, r3 + strb r6, [r0] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bls _081528A4 + ldr r0, =0x00000ff8 + adds r1, r4, r0 + ldr r0, =0x08012025 + str r0, [r1] + movs r3, 0 + cmp r3, r2 + bcs _081528D2 +_081528C0: + adds r1, r4, r3 + adds r0, r5, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r2 + bcc _081528C0 +_081528D2: + adds r0, r5, 0 + adds r1, r2, 0 + bl sub_8153164 + ldr r2, =0x00000ff4 + adds r1, r4, r2 + strh r0, [r1] + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_8152908 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152890 + + thumb_func_start sub_8152908 +sub_8152908: @ 8152908 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl ProgramFlashSectorsAndVerify + cmp r0, 0 + bne _08152924 + movs r0, 0x1 + adds r1, r4, 0 + bl sub_815269C + movs r0, 0x1 + b _0815292E +_08152924: + movs r0, 0 + adds r1, r4, 0 + bl sub_815269C + movs r0, 0xFF +_0815292E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8152908 + + thumb_func_start sub_8152934 +sub_8152934: @ 8152934 + push {r4-r6,lr} + ldr r1, =0x03006204 + ldr r0, =0x0203abbc + str r0, [r1] + ldr r1, =0x030061f8 + ldr r5, =0x030061f0 + ldrh r0, [r5] + strh r0, [r1] + ldr r1, =0x030061f4 + ldr r6, =0x03006200 + ldr r4, [r6] + str r4, [r1] + adds r0, 0x1 + strh r0, [r5] + ldrh r0, [r5] + movs r1, 0xE + bl __umodsi3 + strh r0, [r5] + adds r4, 0x1 + str r4, [r6] + ldr r1, =0x03006208 + movs r0, 0 + strh r0, [r1] + ldr r1, =0x030061fc + movs r0, 0 + str r0, [r1] + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152934 + + thumb_func_start sub_8152990 +sub_8152990: @ 8152990 + ldr r1, =0x03006204 + ldr r0, =0x0203abbc + str r0, [r1] + ldr r1, =0x030061f8 + ldr r0, =0x030061f0 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =0x030061f4 + ldr r0, =0x03006200 + ldr r0, [r0] + str r0, [r1] + ldr r1, =0x03006208 + movs r0, 0 + strh r0, [r1] + ldr r1, =0x030061fc + movs r0, 0 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_8152990 + + thumb_func_start sub_81529D4 +sub_81529D4: @ 81529D4 + push {r4,r5,lr} + lsls r0, 16 + lsrs r0, 16 + ldr r4, =0x03006208 + ldrh r2, [r4] + subs r0, 0x1 + cmp r2, r0 + bge _08152A28 + movs r5, 0x1 + adds r0, r2, 0 + bl sub_81527A0 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _08152A2A + movs r5, 0xFF + ldr r1, =0x030061f0 + ldr r0, =0x030061f8 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =0x03006200 + ldr r0, =0x030061f4 + ldr r0, [r0] + str r0, [r1] + b _08152A2A + .pool +_08152A28: + movs r5, 0xFF +_08152A2A: + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_81529D4 + + thumb_func_start sub_8152A34 +sub_8152A34: @ 8152A34 + push {r4,lr} + lsls r0, 16 + movs r4, 0x1 + ldr r2, =0xffff0000 + adds r0, r2 + lsrs r0, 16 + bl calls_flash_erase_block_2 + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _08152A5E + movs r4, 0xFF + ldr r1, =0x030061f0 + ldr r0, =0x030061f8 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, =0x03006200 + ldr r0, =0x030061f4 + ldr r0, [r0] + str r0, [r1] +_08152A5E: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152A34 + + thumb_func_start calls_flash_erase_block_2 +calls_flash_erase_block_2: @ 8152A80 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r4, r1, 0 + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, =0x030061f0 + ldrh r0, [r0] + adds r0, r6, r0 + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r5, 0 + movs r1, 0xE + bl __umodsi3 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, =0x03006200 + ldr r1, [r2] + movs r0, 0x1 + ands r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r5, r0 + lsls r0, 16 + lsrs r5, r0, 16 + lsls r0, r6, 3 + adds r0, r4 + ldr r1, [r0] + mov r10, r1 + ldrh r3, [r0, 0x4] + movs r4, 0 + mov r9, r2 + ldr r2, =0x03006204 + mov r12, r2 + mov r8, r12 + movs r2, 0 + ldr r1, =0x00000fff +_08152AD2: + mov r7, r8 + ldr r0, [r7] + adds r0, r4 + strb r2, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r1 + bls _08152AD2 + mov r0, r12 + ldr r1, [r0] + ldr r2, =0x00000ff4 + adds r0, r1, r2 + strh r6, [r0] + ldr r6, =0x00000ff8 + adds r2, r1, r6 + ldr r0, =0x08012025 + str r0, [r2] + ldr r7, =0x00000ffc + adds r1, r7 + mov r2, r9 + ldr r0, [r2] + str r0, [r1] + movs r4, 0 + lsls r6, r5, 24 + mov r8, r6 + cmp r4, r3 + bcs _08152B22 + mov r2, r12 +_08152B0C: + ldr r1, [r2] + adds r1, r4 + mov r7, r10 + adds r0, r7, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, r3 + bcc _08152B0C +_08152B22: + mov r0, r10 + adds r1, r3, 0 + bl sub_8153164 + ldr r1, =0x03006204 + ldr r1, [r1] + ldr r2, =0x00000ff6 + adds r1, r2 + strh r0, [r1] + ldr r0, =0x03007860 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + movs r6, 0x1 + movs r4, 0 + ldr r7, =0x00000ff7 + mov r9, r7 + ldr r7, =0x03007854 + b _08152B82 + .pool +_08152B7C: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08152B82: + cmp r4, r9 + bhi _08152BA0 + ldr r0, =0x03006204 + ldr r0, [r0] + adds r0, r4 + ldrb r2, [r0] + ldr r3, [r7] + adds r0, r5, 0 + adds r1, r4, 0 + bl _call_via_r3 + lsls r0, 16 + cmp r0, 0 + beq _08152B7C + movs r6, 0xFF +_08152BA0: + cmp r6, 0xFF + bne _08152BB0 + mov r0, r8 + lsrs r1, r0, 24 + b _08152C08 + .pool +_08152BB0: + movs r6, 0x1 + movs r4, 0 + ldr r1, =0x03007854 + mov r9, r1 + ldr r7, =0x00000ff9 + b _08152BCA + .pool +_08152BC4: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_08152BCA: + cmp r4, 0x6 + bhi _08152BEC + adds r1, r4, r7 + ldr r0, =0x03006204 + ldr r0, [r0] + adds r0, r4, r0 + adds r0, r7 + ldrb r2, [r0] + mov r0, r9 + ldr r3, [r0] + adds r0, r5, 0 + bl _call_via_r3 + lsls r0, 16 + cmp r0, 0 + beq _08152BC4 + movs r6, 0xFF +_08152BEC: + cmp r6, 0xFF + beq _08152C04 + mov r2, r8 + lsrs r1, r2, 24 + movs r0, 0x1 + bl sub_815269C + movs r0, 0x1 + b _08152C10 + .pool +_08152C04: + mov r6, r8 + lsrs r1, r6, 24 +_08152C08: + movs r0, 0 + bl sub_815269C + movs r0, 0xFF +_08152C10: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end calls_flash_erase_block_2 + + thumb_func_start sav12_xor_get +sav12_xor_get: @ 8152C20 + push {r4-r6,lr} + lsls r0, 16 + ldr r6, =0x030061f0 + lsrs r0, 16 + ldrh r1, [r6] + adds r0, r1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0xE + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, =0x03006200 + ldr r1, [r5] + movs r0, 0x1 + ands r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =0x03007854 + ldr r1, =0x00000ff8 + ldr r3, [r0] + adds r0, r4, 0 + movs r2, 0x25 + bl _call_via_r3 + lsls r0, 16 + cmp r0, 0 + bne _08152C84 + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_815269C + movs r0, 0x1 + b _08152C9C + .pool +_08152C84: + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_815269C + ldr r0, =0x030061f8 + ldrh r0, [r0] + strh r0, [r6] + ldr r0, =0x030061f4 + ldr r0, [r0] + str r0, [r5] + movs r0, 0xFF +_08152C9C: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sav12_xor_get + + thumb_func_start sub_8152CAC +sub_8152CAC: @ 8152CAC + push {r4-r6,lr} + lsls r0, 16 + ldr r6, =0x030061f0 + lsrs r0, 16 + ldrh r1, [r6] + adds r0, r1 + subs r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0xE + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, =0x03006200 + ldr r1, [r5] + movs r0, 0x1 + ands r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r3, =0x03007854 + ldr r1, =0x00000ff8 + ldr r0, =0x03006204 + ldr r0, [r0] + adds r0, r1 + ldrb r2, [r0] + ldr r3, [r3] + adds r0, r4, 0 + bl _call_via_r3 + lsls r0, 16 + cmp r0, 0 + bne _08152D1C + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_815269C + movs r0, 0x1 + b _08152D34 + .pool +_08152D1C: + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_815269C + ldr r0, =0x030061f8 + ldrh r0, [r0] + strh r0, [r6] + ldr r0, =0x030061f4 + ldr r0, [r0] + str r0, [r5] + movs r0, 0xFF +_08152D34: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152CAC + + thumb_func_start sub_8152D44 +sub_8152D44: @ 8152D44 + push {r4-r6,lr} + lsls r0, 16 + ldr r6, =0x030061f0 + lsrs r0, 16 + ldrh r1, [r6] + adds r0, r1 + subs r0, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + movs r1, 0xE + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r5, =0x03006200 + ldr r1, [r5] + movs r0, 0x1 + ands r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 1 + adds r0, r4, r0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r0, =0x03007854 + ldr r1, =0x00000ff8 + ldr r3, [r0] + adds r0, r4, 0 + movs r2, 0x25 + bl _call_via_r3 + lsls r0, 16 + cmp r0, 0 + bne _08152DA8 + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + bl sub_815269C + movs r0, 0x1 + b _08152DC0 + .pool +_08152DA8: + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0 + bl sub_815269C + ldr r0, =0x030061f8 + ldrh r0, [r0] + strh r0, [r6] + ldr r0, =0x030061f4 + ldr r0, [r0] + str r0, [r5] + movs r0, 0xFF +_08152DC0: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152D44 + + thumb_func_start sub_8152DD0 +sub_8152DD0: @ 8152DD0 + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r1, =0x03006204 + ldr r0, =0x0203abbc + str r0, [r1] + ldr r0, =0x0000ffff + cmp r4, r0 + beq _08152DF4 + movs r5, 0xFF + b _08152E06 + .pool +_08152DF4: + adds r0, r6, 0 + bl sub_8152EC8 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_8152E10 +_08152E06: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8152DD0 + + thumb_func_start sub_8152E10 +sub_8152E10: @ 8152E10 + push {r4-r7,lr} + mov r7, r8 + push {r7} + mov r8, r1 + ldr r0, =0x03006200 + ldr r1, [r0] + movs r0, 0x1 + ands r1, r0 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 17 + lsrs r7, r0, 16 + movs r5, 0 + ldr r6, =0x03006204 +_08152E2C: + adds r0, r5, r7 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r6] + bl sub_815314C + ldr r0, [r6] + ldr r1, =0x00000ff4 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + bne _08152E48 + ldr r0, =0x030061f0 + strh r5, [r0] +_08152E48: + ldr r0, [r6] + lsls r1, 3 + mov r2, r8 + adds r4, r1, r2 + ldrh r1, [r4, 0x4] + bl sub_8153164 + lsls r0, 16 + lsrs r3, r0, 16 + ldr r2, [r6] + ldr r1, =0x00000ff8 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, =0x08012025 + adds r5, 0x1 + cmp r1, r0 + bne _08152E98 + ldr r1, =0x00000ff6 + adds r0, r2, r1 + ldrh r0, [r0] + cmp r0, r3 + bne _08152E98 + movs r2, 0 + ldrh r0, [r4, 0x4] + cmp r2, r0 + bcs _08152E98 + adds r3, r4, 0 + ldr r4, =0x03006204 +_08152E80: + ldr r1, [r3] + adds r1, r2 + ldr r0, [r4] + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + ldrh r1, [r3, 0x4] + cmp r2, r1 + bcc _08152E80 +_08152E98: + lsls r0, r5, 16 + lsrs r5, r0, 16 + cmp r5, 0xD + bls _08152E2C + movs r0, 0x1 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152E10 + + thumb_func_start sub_8152EC8 +sub_8152EC8: @ 8152EC8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + mov r10, r0 + movs r0, 0 + mov r8, r0 + mov r9, r0 + movs r6, 0 + movs r5, 0 + movs r4, 0 + ldr r7, =0x03006204 +_08152EE4: + lsls r0, r4, 24 + lsrs r0, 24 + ldr r1, [r7] + bl sub_815314C + ldr r2, [r7] + ldr r1, =0x00000ff8 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, =0x08012025 + cmp r1, r0 + bne _08152F34 + movs r5, 0x1 + ldr r3, =0x00000ff4 + adds r0, r2, r3 + ldrh r0, [r0] + lsls r0, 3 + add r0, r10 + ldrh r1, [r0, 0x4] + adds r0, r2, 0 + bl sub_8153164 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, [r7] + ldr r3, =0x00000ff6 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _08152F34 + ldr r2, =0x00000ffc + adds r0, r1, r2 + ldr r0, [r0] + mov r8, r0 + subs r3, 0x2 + adds r1, r3 + adds r0, r5, 0 + ldrh r1, [r1] + lsls r0, r1 + orrs r6, r0 +_08152F34: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xD + bls _08152EE4 + cmp r5, 0 + beq _08152F70 + ldr r0, =0x00003fff + movs r1, 0xFF + str r1, [sp] + cmp r6, r0 + bne _08152F74 + movs r2, 0x1 + str r2, [sp] + b _08152F74 + .pool +_08152F70: + movs r3, 0 + str r3, [sp] +_08152F74: + movs r6, 0 + movs r5, 0 + movs r4, 0 + ldr r7, =0x03006204 +_08152F7C: + adds r0, r4, 0 + adds r0, 0xE + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r7] + bl sub_815314C + ldr r2, [r7] + ldr r1, =0x00000ff8 + adds r0, r2, r1 + ldr r1, [r0] + ldr r0, =0x08012025 + cmp r1, r0 + bne _08152FD0 + movs r5, 0x1 + ldr r3, =0x00000ff4 + adds r0, r2, r3 + ldrh r0, [r0] + lsls r0, 3 + add r0, r10 + ldrh r1, [r0, 0x4] + adds r0, r2, 0 + bl sub_8153164 + lsls r0, 16 + lsrs r2, r0, 16 + ldr r1, [r7] + ldr r3, =0x00000ff6 + adds r0, r1, r3 + ldrh r0, [r0] + cmp r0, r2 + bne _08152FD0 + ldr r2, =0x00000ffc + adds r0, r1, r2 + ldr r0, [r0] + mov r9, r0 + subs r3, 0x2 + adds r1, r3 + adds r0, r5, 0 + ldrh r1, [r1] + lsls r0, r1 + orrs r6, r0 +_08152FD0: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xD + bls _08152F7C + cmp r5, 0 + beq _08153008 + ldr r0, =0x00003fff + movs r1, 0xFF + cmp r6, r0 + bne _0815300A + movs r1, 0x1 + b _0815300A + .pool +_08153008: + movs r1, 0 +_0815300A: + ldr r0, [sp] + cmp r0, 0x1 + bne _0815307C + cmp r1, 0x1 + bne _0815306C + movs r0, 0x1 + negs r0, r0 + cmp r8, r0 + bne _08153022 + mov r1, r9 + cmp r1, 0 + beq _0815302C +_08153022: + mov r2, r8 + cmp r2, 0 + bne _08153050 + cmp r9, r0 + bne _08153050 +_0815302C: + mov r1, r8 + adds r1, 0x1 + mov r0, r9 + adds r0, 0x1 + cmp r1, r0 + bcs _08153044 + ldr r0, =0x03006200 + mov r3, r9 + b _08153064 + .pool +_08153044: + ldr r0, =0x03006200 + mov r1, r8 + str r1, [r0] + b _08153094 + .pool +_08153050: + cmp r8, r9 + bcs _08153060 + ldr r0, =0x03006200 + mov r2, r9 + str r2, [r0] + b _08153094 + .pool +_08153060: + ldr r0, =0x03006200 + mov r3, r8 +_08153064: + str r3, [r0] + b _08153094 + .pool +_0815306C: + ldr r0, =0x03006200 + mov r2, r8 + str r2, [r0] + cmp r1, 0xFF + beq _0815308C + b _08153094 + .pool +_0815307C: + cmp r1, 0x1 + bne _08153098 + ldr r0, =0x03006200 + mov r3, r9 + str r3, [r0] + ldr r0, [sp] + cmp r0, 0xFF + bne _08153094 +_0815308C: + movs r0, 0xFF + b _081530C4 + .pool +_08153094: + movs r0, 0x1 + b _081530C4 +_08153098: + ldr r2, [sp] + cmp r2, 0 + bne _081530B8 + cmp r1, 0 + bne _081530B8 + ldr r0, =0x03006200 + str r1, [r0] + ldr r0, =0x030061f0 + strh r1, [r0] + movs r0, 0 + b _081530C4 + .pool +_081530B8: + ldr r0, =0x03006200 + movs r1, 0 + str r1, [r0] + ldr r0, =0x030061f0 + strh r1, [r0] + movs r0, 0x2 +_081530C4: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8152EC8 + + thumb_func_start sub_81530DC +sub_81530DC: @ 81530DC + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r4, r2, 16 + ldr r5, =0x0203abbc + adds r1, r5, 0 + bl sub_815314C + ldr r1, =0x00000ff8 + adds r0, r5, r1 + ldr r1, [r0] + ldr r0, =0x08012025 + cmp r1, r0 + bne _08153144 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8153164 + lsls r0, 16 + lsrs r0, 16 + ldr r2, =0x00000ff4 + adds r1, r5, r2 + ldrh r1, [r1] + cmp r1, r0 + bne _08153140 + movs r2, 0 + cmp r2, r4 + bcs _0815312A +_08153118: + adds r1, r6, r2 + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r4 + bcc _08153118 +_0815312A: + movs r0, 0x1 + b _08153146 + .pool +_08153140: + movs r0, 0x2 + b _08153146 +_08153144: + movs r0, 0 +_08153146: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_81530DC + + thumb_func_start sub_815314C +sub_815314C: @ 815314C + push {lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + movs r3, 0x80 + lsls r3, 5 + movs r1, 0 + bl ReadFlash + movs r0, 0x1 + pop {r1} + bx r1 + thumb_func_end sub_815314C + + thumb_func_start sub_8153164 +sub_8153164: @ 8153164 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 16 + movs r2, 0 + movs r3, 0 + lsrs r1, 18 + cmp r2, r1 + bcs _08153182 +_08153174: + ldm r4!, {r0} + adds r2, r0 + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, r1 + bcc _08153174 +_08153182: + lsrs r0, r2, 16 + adds r0, r2 + lsls r0, 16 + lsrs r0, 16 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8153164 + + thumb_func_start sub_8153190 +sub_8153190: @ 8153190 + push {r4,r5,lr} + ldr r3, =0x03006220 + ldr r0, =0x03005d90 + ldr r2, =gUnknown_085CDC00 + ldrh r1, [r2] + ldr r0, [r0] + adds r0, r1 + str r0, [r3] + ldrh r0, [r2, 0x2] + strh r0, [r3, 0x4] + ldr r5, =0x03005d8c + adds r3, 0x8 + adds r2, 0x4 + movs r4, 0x3 +_081531AC: + ldrh r0, [r2] + ldr r1, [r5] + adds r1, r0 + str r1, [r3] + ldrh r0, [r2, 0x2] + strh r0, [r3, 0x4] + adds r3, 0x8 + adds r2, 0x4 + subs r4, 0x1 + cmp r4, 0 + bge _081531AC + movs r4, 0x5 + ldr r1, =0x03006220 + ldr r5, =0x03005d94 + ldr r0, =gUnknown_085CDC00 + adds r3, r1, 0 + adds r3, 0x28 + adds r2, r0, 0 + adds r2, 0x14 +_081531D2: + ldrh r0, [r2] + ldr r1, [r5] + adds r1, r0 + str r1, [r3] + ldrh r0, [r2, 0x2] + strh r0, [r3, 0x4] + adds r3, 0x8 + adds r2, 0x4 + adds r4, 0x1 + cmp r4, 0xD + ble _081531D2 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8153190 + + thumb_func_start calls_flash_erase_block_3 +calls_flash_erase_block_3: @ 8153204 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, =0x0203cf5c + ldr r6, [r1] + movs r0, 0 + str r0, [r1] + bl sub_8153190 + cmp r4, 0x5 + bhi _081532AC + lsls r0, r4, 2 + ldr r1, =_0815322C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0815322C: + .4byte _081532AC + .4byte _081532C4 + .4byte _081532C4 + .4byte _0815325A + .4byte _081532F8 + .4byte _08153244 +_08153244: + movs r4, 0x1C + ldr r5, =0x03007860 +_08153248: + ldr r1, [r5] + adds r0, r4, 0 + bl _call_via_r1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1F + bls _08153248 +_0815325A: + movs r0, 0xA + bl sub_80847F8 + ldr r1, =0x000003e6 + cmp r0, r1 + bhi _0815326C + movs r0, 0xA + bl sav12_xor_increment +_0815326C: + bl save_serialize_game + ldr r0, =0x0000ffff + ldr r1, =0x03006220 + bl save_write_to_flash + ldr r4, =0x0201c000 + movs r5, 0xF8 + lsls r5, 4 + movs r0, 0x1C + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8152890 + adds r4, r5 + movs r0, 0x1D + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8152890 + b _0815331A + .pool +_081532AC: + bl save_serialize_game + ldr r0, =0x0000ffff + ldr r1, =0x03006220 + bl save_write_to_flash + b _0815331A + .pool +_081532C4: + bl save_serialize_game + movs r4, 0 +_081532CA: + adds r0, r4, 0 + ldr r1, =0x03006220 + bl calls_flash_erase_block_2 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _081532CA + movs r4, 0 +_081532DE: + adds r0, r4, 0 + ldr r1, =0x03006220 + bl sav12_xor_get + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + bls _081532DE + b _0815331A + .pool +_081532F8: + movs r4, 0x1C + ldr r5, =0x03007860 +_081532FC: + ldr r1, [r5] + adds r0, r4, 0 + bl _call_via_r1 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1F + bls _081532FC + bl save_serialize_game + ldr r0, =0x0000ffff + ldr r1, =0x03006220 + bl save_write_to_flash +_0815331A: + ldr r0, =0x0203cf5c + str r6, [r0] + movs r0, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end calls_flash_erase_block_3 + + thumb_func_start save_game_when_memory_present +save_game_when_memory_present: @ 8153338 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, =0x03005d88 + ldr r4, [r0] + cmp r4, 0x1 + bne _0815335A + adds r0, r5, 0 + bl calls_flash_erase_block_3 + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _08153370 + adds r0, r5, 0 + bl fullscreen_save_activate +_0815335A: + ldr r1, =0x03006294 + movs r0, 0xFF + strh r0, [r1] + movs r0, 0xFF + b _08153376 + .pool +_08153370: + ldr r0, =0x03006294 + strh r4, [r0] + movs r0, 0x1 +_08153376: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end save_game_when_memory_present + + thumb_func_start sub_8153380 +sub_8153380: @ 8153380 + push {lr} + ldr r0, =0x03005d88 + ldr r0, [r0] + cmp r0, 0x1 + bne _081533A4 + bl sub_8153190 + bl save_serialize_game + ldr r0, =0x03006220 + bl sub_8152934 + movs r0, 0 + b _081533A6 + .pool +_081533A4: + movs r0, 0x1 +_081533A6: + pop {r1} + bx r1 + thumb_func_end sub_8153380 + + thumb_func_start sub_81533AC +sub_81533AC: @ 81533AC + push {r4,lr} + ldr r1, =0x03006220 + movs r0, 0xE + bl sub_81529D4 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _081533C8 + movs r0, 0 + bl fullscreen_save_activate +_081533C8: + cmp r4, 0xFF + beq _081533D8 + movs r0, 0 + b _081533DA + .pool +_081533D8: + movs r0, 0x1 +_081533DA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_81533AC + + thumb_func_start sub_81533E0 +sub_81533E0: @ 81533E0 + push {lr} + ldr r1, =0x03006220 + movs r0, 0xE + bl sub_8152A34 + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _081533F8 + movs r0, 0 + bl fullscreen_save_activate +_081533F8: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_81533E0 + + thumb_func_start sub_8153408 +sub_8153408: @ 8153408 + push {lr} + ldr r1, =0x03006220 + movs r0, 0xE + bl sub_8152CAC + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _08153420 + movs r0, 0 + bl fullscreen_save_activate +_08153420: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_8153408 + + thumb_func_start sub_8153430 +sub_8153430: @ 8153430 + push {r4,lr} + ldr r0, =0x03005d88 + ldr r0, [r0] + cmp r0, 0x1 + bne _0815346C + bl sub_8153190 + bl save_serialize_game + ldr r4, =0x03006220 + adds r0, r4, 0 + bl sub_8152990 + ldr r0, =0x03006208 + ldrh r0, [r0] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + adds r1, r4, 0 + bl sub_8152A34 + movs r0, 0 + b _0815346E + .pool +_0815346C: + movs r0, 0x1 +_0815346E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8153430 + + thumb_func_start sub_8153474 +sub_8153474: @ 8153474 + push {r4-r6,lr} + movs r6, 0 + ldr r0, =0x03006208 + ldrh r1, [r0] + adds r1, 0x1 + strh r1, [r0] + lsls r0, r1, 16 + lsrs r5, r0, 16 + cmp r5, 0x4 + bhi _081534A8 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r0, 16 + ldr r4, =0x03006220 + adds r1, r4, 0 + bl sub_8152A34 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_8152D44 + b _081534B2 + .pool +_081534A8: + ldr r1, =0x03006220 + adds r0, r5, 0 + bl sub_8152D44 + movs r6, 0x1 +_081534B2: + ldr r0, =0x030061fc + ldr r0, [r0] + cmp r0, 0 + beq _081534C0 + movs r0, 0x1 + bl fullscreen_save_activate +_081534C0: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_8153474 + + thumb_func_start sub_81534D0 +sub_81534D0: @ 81534D0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, =0x03005d88 + ldr r0, [r0] + cmp r0, 0x1 + beq _081534F0 + ldr r1, =0x03006210 + movs r0, 0x4 + strh r0, [r1] + movs r0, 0xFF + b _08153550 + .pool +_081534F0: + bl sub_8153190 + cmp r4, 0 + beq _081534FC + cmp r4, 0x3 + beq _08153528 +_081534FC: + ldr r0, =0x0000ffff + ldr r1, =0x03006220 + bl sub_8152DD0 + lsls r0, 24 + lsrs r4, r0, 24 + bl save_deserialize_game + ldr r0, =0x03006210 + strh r4, [r0] + ldr r1, =0x03006214 + movs r0, 0 + str r0, [r1] + b _0815354E + .pool +_08153528: + ldr r5, =0x0201c000 + movs r6, 0xF8 + lsls r6, 4 + movs r0, 0x1C + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_81530DC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0815354E + adds r1, r5, r6 + movs r0, 0x1D + adds r2, r6, 0 + bl sub_81530DC + lsls r0, 24 + lsrs r4, r0, 24 +_0815354E: + adds r0, r4, 0 +_08153550: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81534D0 + + thumb_func_start sub_815355C +sub_815355C: @ 815355C + push {r4-r7,lr} + ldr r5, =0x03006204 + ldr r0, =0x0203abbc + str r0, [r5] + adds r7, r0, 0 + ldr r0, =0x03005d88 + ldr r4, [r0] + cmp r4, 0x1 + beq _0815358C + b _081535C8 + .pool +_0815357C: + ldrb r1, [r7, 0xA] + ldrb r0, [r7, 0xB] + adds r1, r0 + ldrb r0, [r7, 0xC] + adds r1, r0 + ldrb r0, [r7, 0xD] + adds r0, r1 + b _081535CA +_0815358C: + bl sub_8153190 + ldr r0, =0x03006220 + bl sub_8152EC8 + ldr r0, =0x03006200 + ldr r1, [r0] + ands r1, r4 + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 17 + lsrs r6, r0, 16 + movs r4, 0 +_081535A6: + adds r0, r4, r6 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [r5] + bl sub_815314C + ldr r0, [r5] + ldr r1, =0x00000ff4 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _0815357C + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0xD + bls _081535A6 +_081535C8: + movs r0, 0 +_081535CA: + pop {r4-r7} + pop {r1} + bx r1 + .pool + thumb_func_end sub_815355C + + thumb_func_start sub_81535DC +sub_81535DC: @ 81535DC + push {r4-r6,lr} + adds r6, r1, 0 + lsls r0, 24 + lsrs r1, r0, 24 + movs r2, 0xE2 + lsls r2, 24 + adds r0, r2 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08153608 + ldr r4, =0x0203abbc + movs r3, 0x80 + lsls r3, 5 + adds r0, r1, 0 + movs r1, 0 + adds r2, r4, 0 + bl ReadFlash + ldr r1, [r4] + ldr r0, =0x0000b39d + cmp r1, r0 + beq _08153614 +_08153608: + movs r0, 0xFF + b _0815362A + .pool +_08153614: + movs r3, 0 + ldr r5, =0x00000ffb + adds r2, r4, 0x4 +_0815361A: + adds r0, r6, r3 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, r5 + ble _0815361A + movs r0, 0x1 +_0815362A: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_81535DC + + thumb_func_start sub_8153634 +sub_8153634: @ 8153634 + push {r4-r7,lr} + adds r5, r1, 0 + lsls r0, 24 + lsrs r6, r0, 24 + movs r1, 0xE2 + lsls r1, 24 + adds r0, r1 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08153680 + ldr r7, =0x0203abbc + ldr r0, =0x0000b39d + adds r3, r7, 0 + stm r3!, {r0} + movs r2, 0 + ldr r4, =0x00000ffb +_08153654: + adds r0, r3, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + ble _08153654 + adds r0, r6, 0 + adds r1, r7, 0 + bl ProgramFlashSectorsAndVerify + cmp r0, 0 + bne _08153680 + movs r0, 0x1 + b _08153682 + .pool +_08153680: + movs r0, 0xFF +_08153682: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8153634 + + thumb_func_start sub_8153688 +sub_8153688: @ 8153688 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + ldr r1, =0x03005e08 + adds r4, r0, r1 + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0xB + bls _081536A2 + b _081537C2 +_081536A2: + lsls r0, 2 + ldr r1, =_081536B4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_081536B4: + .4byte _081536E4 + .4byte _081536F4 + .4byte _081536FE + .4byte _0815371A + .4byte _0815372C + .4byte _08153742 + .4byte _08153758 + .4byte _08153762 + .4byte _08153778 + .4byte _0815378C + .4byte _08153796 + .4byte _081537A8 +_081536E4: + ldr r0, =0x03002700 + movs r1, 0x1 + strb r1, [r0] + movs r0, 0x1 + strh r0, [r4] + b _081537C2 + .pool +_081536F4: + bl sub_800ADF8 + movs r0, 0x2 + strh r0, [r4] + b _081537C2 +_081536FE: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081537C2 + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08153714 + bl save_serialize_map +_08153714: + movs r0, 0x3 + strh r0, [r4] + b _081537C2 +_0815371A: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _08153726 + bl sub_8076D5C +_08153726: + bl sub_8153380 + b _08153752 +_0815372C: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0x5 + bne _081537C2 + movs r0, 0 + strh r0, [r4, 0x2] + strh r1, [r4] + b _081537C2 +_08153742: + bl sub_81533AC + lsls r0, 24 + cmp r0, 0 + beq _08153752 + movs r0, 0x6 + strh r0, [r4] + b _081537C2 +_08153752: + movs r0, 0x4 + strh r0, [r4] + b _081537C2 +_08153758: + bl sub_81533E0 + movs r0, 0x7 + strh r0, [r4] + b _081537C2 +_08153762: + movs r1, 0x4 + ldrsh r0, [r4, r1] + cmp r0, 0 + bne _0815376E + bl sav2_gender2_inplace_and_xFE +_0815376E: + bl sub_800ADF8 + movs r0, 0x8 + strh r0, [r4] + b _081537C2 +_08153778: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081537C2 + bl sub_8153408 + movs r0, 0x9 + strh r0, [r4] + b _081537C2 +_0815378C: + bl sub_800ADF8 + movs r0, 0xA + strh r0, [r4] + b _081537C2 +_08153796: + bl sub_800A520 + lsls r0, 24 + cmp r0, 0 + beq _081537C2 + ldrh r0, [r4] + adds r0, 0x1 + strh r0, [r4] + b _081537C2 +_081537A8: + ldrh r0, [r4, 0x2] + adds r0, 0x1 + strh r0, [r4, 0x2] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x5 + ble _081537C2 + ldr r1, =0x03002700 + movs r0, 0 + strb r0, [r1] + adds r0, r2, 0 + bl DestroyTask +_081537C2: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_8153688 + + .align 2, 0 @ Don't pad with nop. |