diff options
author | Marcus Huderle <huderlem@gmail.com> | 2019-03-24 13:09:46 -0500 |
---|---|---|
committer | huderlem <huderlem@gmail.com> | 2019-03-24 13:15:37 -0500 |
commit | 456cc3a6f02b6f45753b47e5ea37bd92e616f089 (patch) | |
tree | 6bda4b048a176415741bc253d94f6ffd980dbbe2 /asm/mevent2.s | |
parent | d3ff307f9f1067ae1a893bed1938417eb0c07c83 (diff) |
Split out the remaining wireless-related files
Diffstat (limited to 'asm/mevent2.s')
-rwxr-xr-x | asm/mevent2.s | 1425 |
1 files changed, 1425 insertions, 0 deletions
diff --git a/asm/mevent2.s b/asm/mevent2.s new file mode 100755 index 000000000..6d894207f --- /dev/null +++ b/asm/mevent2.s @@ -0,0 +1,1425 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + +@void sub_801AFD8() { +@ CpuFill32(0, &gSaveBlock1Ptr->field_322C, 219); +@ sub_801B180(); +@ sub_811F8BC(); +@} + thumb_func_start sub_801AFD8 +sub_801AFD8: @ 801AFD8 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r0, =0x0000322c + adds r1, r0 + ldr r2, =0x050000db + mov r0, sp + bl CpuSet + bl sub_801B180 + bl sub_811F8BC + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_801AFD8 + + thumb_func_start sub_801B00C +sub_801B00C: @ 801B00C + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003230 + adds r0, r1 + bx lr + .pool + thumb_func_end sub_801B00C + + thumb_func_start sav1_get_mevent_buffer_1 +sav1_get_mevent_buffer_1: @ 801B020 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000033f0 + adds r0, r1 + bx lr + .pool + thumb_func_end sav1_get_mevent_buffer_1 + + thumb_func_start sav1_get_mevent_buffer_2 +sav1_get_mevent_buffer_2: @ 801B034 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + movs r1, 0xD5 + lsls r1, 6 + adds r0, r1 + bx lr + .pool + thumb_func_end sav1_get_mevent_buffer_2 + + thumb_func_start GetSaveBlock1Field356C +GetSaveBlock1Field356C: @ 801B044 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x0000356c + adds r0, r1 + bx lr + .pool + thumb_func_end GetSaveBlock1Field356C + + thumb_func_start GetSaveBlock1Field3564 +GetSaveBlock1Field3564: @ 801B058 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003564 + adds r0, r1 + bx lr + .pool + thumb_func_end GetSaveBlock1Field3564 + + thumb_func_start sub_801B06C +sub_801B06C: @ 801B06C + push {lr} + bl sub_801B14C + pop {r0} + bx r0 + thumb_func_end sub_801B06C + + thumb_func_start sub_801B078 +sub_801B078: @ 801B078 + push {r4-r7,lr} + adds r7, r0, 0 + bl sub_801B114 + cmp r0, 0 + beq _0801B0C4 + bl sub_801B14C + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + ldr r5, =0x00003230 + adds r0, r5 + movs r6, 0xDE + lsls r6, 1 + adds r1, r7, 0 + adds r2, r6, 0 + bl memcpy + ldr r0, [r4] + adds r0, r5 + adds r1, r6, 0 + bl CalcCRC16WithTable + ldr r1, [r4] + ldr r2, =0x0000322c + adds r1, r2 + lsls r0, 16 + lsrs r0, 16 + str r0, [r1] + movs r0, 0x1 + b _0801B0C6 + .pool +_0801B0C4: + movs r0, 0 +_0801B0C6: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_801B078 + + thumb_func_start sub_801B0CC +sub_801B0CC: @ 801B0CC + push {r4,lr} + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + ldr r1, =0x00003230 + adds r0, r1 + movs r1, 0xDE + lsls r1, 1 + bl CalcCRC16WithTable + lsls r0, 16 + lsrs r0, 16 + ldr r4, [r4] + ldr r2, =0x0000322c + adds r1, r4, r2 + ldr r1, [r1] + cmp r0, r1 + bne _0801B10C + ldr r1, =0x00003230 + adds r0, r4, r1 + bl sub_801B114 + cmp r0, 0 + beq _0801B10C + movs r0, 0x1 + b _0801B10E + .pool +_0801B10C: + movs r0, 0 +_0801B10E: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_801B0CC + + thumb_func_start sub_801B114 +sub_801B114: @ 801B114 + push {lr} + ldrh r0, [r0] + cmp r0, 0 + beq _0801B120 + movs r0, 0x1 + b _0801B122 +_0801B120: + movs r0, 0 +_0801B122: + pop {r1} + bx r1 + thumb_func_end sub_801B114 + + thumb_func_start sub_801B128 +sub_801B128: @ 801B128 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003230 + adds r0, r1 + ldrb r0, [r0, 0x2] + cmp r0, 0 + beq _0801B144 + movs r0, 0x1 + b _0801B146 + .pool +_0801B144: + movs r0, 0 +_0801B146: + pop {r1} + bx r1 + thumb_func_end sub_801B128 + + thumb_func_start sub_801B14C +sub_801B14C: @ 801B14C + push {r4,lr} + sub sp, 0x4 + movs r4, 0 + str r4, [sp] + bl sub_801B00C + adds r1, r0, 0 + ldr r2, =0x0500006f + mov r0, sp + bl CpuSet + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x0000322c + adds r0, r1 + str r4, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B14C + + thumb_func_start sub_801B180 +sub_801B180: @ 801B180 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + bl GetSaveBlock1Field356C + adds r1, r0, 0 + ldr r2, =0x05000001 + mov r0, sp + bl CpuSet + bl sub_801DBC0 + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B180 + + thumb_func_start sub_801B1A4 +sub_801B1A4: @ 801B1A4 + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00003230 + adds r4, r0, r1 + bl sub_801B0CC + cmp r0, 0 + bne _0801B1C4 +_0801B1B8: + movs r0, 0 + b _0801B1DC + .pool +_0801B1C4: + movs r2, 0 + ldr r3, =0x000001bb +_0801B1C8: + adds r0, r4, r2 + adds r1, r5, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0801B1B8 + adds r2, 0x1 + cmp r2, r3 + bls _0801B1C8 + movs r0, 0x1 +_0801B1DC: + pop {r4,r5} + pop {r1} + bx r1 + .pool + thumb_func_end sub_801B1A4 + + thumb_func_start sub_801B1E8 +sub_801B1E8: @ 801B1E8 + push {lr} + bl sub_801B330 + bl sub_801B368 + bl sub_801B9F8 + bl ClearRamScript + bl sub_809D4D8 + bl sub_809D570 + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldr r1, =0x00000bec + adds r0, r1 + bl ClearEReaderTrainer + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B1E8 + + thumb_func_start sub_801B21C +sub_801B21C: @ 801B21C + push {r4-r7,lr} + adds r7, r0, 0 + bl sub_801B2CC + cmp r0, 0 + beq _0801B274 + bl sub_801B1E8 + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + ldr r5, =0x000033f0 + adds r0, r5 + movs r6, 0xA6 + lsls r6, 1 + adds r1, r7, 0 + adds r2, r6, 0 + bl memcpy + ldr r0, [r4] + adds r0, r5 + adds r1, r6, 0 + bl CalcCRC16WithTable + ldr r1, [r4] + ldr r3, =0x000033ec + adds r2, r1, r3 + lsls r0, 16 + lsrs r0, 16 + str r0, [r2] + movs r0, 0xD5 + lsls r0, 6 + adds r2, r1, r0 + adds r1, r5 + ldrh r0, [r1, 0x2] + strh r0, [r2, 0x6] + movs r0, 0x1 + b _0801B276 + .pool +_0801B274: + movs r0, 0 +_0801B276: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_801B21C + + thumb_func_start sub_801B27C +sub_801B27C: @ 801B27C + push {r4,r5,lr} + ldr r5, =gSaveBlock1Ptr + ldr r0, [r5] + ldr r1, =0x000033ec + adds r4, r0, r1 + adds r1, 0x4 + adds r0, r1 + movs r1, 0xA6 + lsls r1, 1 + bl CalcCRC16WithTable + lsls r0, 16 + lsrs r0, 16 + ldr r1, [r4] + cmp r1, r0 + bne _0801B2C4 + ldr r0, [r5] + ldr r1, =0x000033f0 + adds r0, r1 + bl sub_801B2CC + cmp r0, 0 + beq _0801B2C4 + bl sub_80991F8 + cmp r0, 0 + beq _0801B2C4 + movs r0, 0x1 + b _0801B2C6 + .pool +_0801B2C4: + movs r0, 0 +_0801B2C6: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_801B27C + + thumb_func_start sub_801B2CC +sub_801B2CC: @ 801B2CC + push {lr} + adds r2, r0, 0 + ldrh r0, [r2] + cmp r0, 0 + beq _0801B302 + ldrb r1, [r2, 0x8] + lsls r0, r1, 30 + lsrs r0, 30 + cmp r0, 0x2 + bhi _0801B302 + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _0801B2F0 + cmp r0, 0x40 + beq _0801B2F0 + cmp r0, 0x80 + bne _0801B302 +_0801B2F0: + lsls r0, r1, 26 + lsrs r0, 28 + cmp r0, 0x7 + bhi _0801B302 + ldrb r0, [r2, 0x9] + cmp r0, 0x7 + bhi _0801B302 + movs r0, 0x1 + b _0801B304 +_0801B302: + movs r0, 0 +_0801B304: + pop {r1} + bx r1 + thumb_func_end sub_801B2CC + + thumb_func_start sub_801B308 +sub_801B308: @ 801B308 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000033f0 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0 + beq _0801B328 + movs r0, 0x1 + b _0801B32A + .pool +_0801B328: + movs r0, 0 +_0801B32A: + pop {r1} + bx r1 + thumb_func_end sub_801B308 + + thumb_func_start sub_801B330 +sub_801B330: @ 801B330 + push {r4,r5,lr} + sub sp, 0x4 + movs r5, 0 + str r5, [sp] + ldr r4, =gSaveBlock1Ptr + ldr r1, [r4] + ldr r0, =0x000033f0 + adds r1, r0 + ldr r2, =0x05000053 + mov r0, sp + bl CpuSet + ldr r0, [r4] + ldr r1, =0x000033ec + adds r0, r1 + str r5, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B330 + + thumb_func_start sub_801B368 +sub_801B368: @ 801B368 + push {r4,lr} + sub sp, 0x4 + movs r4, 0 + str r4, [sp] + bl sav1_get_mevent_buffer_2 + adds r1, r0, 0 + ldr r2, =0x05000009 + mov r0, sp + bl CpuSet + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x0000353c + adds r0, r1 + str r4, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B368 + + thumb_func_start sub_801B39C +sub_801B39C: @ 801B39C + push {lr} + bl sub_801B27C + cmp r0, 0 + bne _0801B3AA + movs r0, 0 + b _0801B3B4 +_0801B3AA: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000033f0 + adds r0, r1 + ldrh r0, [r0] +_0801B3B4: + pop {r1} + bx r1 + .pool + thumb_func_end sub_801B39C + + thumb_func_start sub_801B3C0 +sub_801B3C0: @ 801B3C0 + push {lr} + adds r2, r0, 0 + ldrb r1, [r2, 0x8] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x40 + bne _0801B3D4 + movs r0, 0x3F + ands r0, r1 + strb r0, [r2, 0x8] +_0801B3D4: + pop {r0} + bx r0 + thumb_func_end sub_801B3C0 + + thumb_func_start sub_801B3D8 +sub_801B3D8: @ 801B3D8 + push {lr} + lsls r0, 16 + ldr r1, =0xfc180000 + adds r0, r1 + lsrs r0, 16 + cmp r0, 0x13 + bls _0801B3F0 + movs r0, 0 + b _0801B3F2 + .pool +_0801B3F0: + movs r0, 0x1 +_0801B3F2: + pop {r1} + bx r1 + thumb_func_end sub_801B3D8 + + thumb_func_start sub_801B3F8 +sub_801B3F8: @ 801B3F8 + push {r4,lr} + bl sub_801B39C + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_801B3D8 + cmp r0, 0 + beq _0801B430 + ldr r1, =gUnknown_082F0DE8 + ldr r2, =0xfffffc18 + adds r0, r4, r2 + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0801B430 + movs r0, 0x1 + b _0801B432 + .pool +_0801B430: + movs r0, 0 +_0801B432: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_801B3F8 + + thumb_func_start sub_801B438 +sub_801B438: @ 801B438 + push {lr} + movs r3, 0 + cmp r3, r1 + bge _0801B45A + adds r2, r0, 0 + adds r2, 0x8 +_0801B444: + ldrh r0, [r2, 0xE] + cmp r0, 0 + beq _0801B452 + ldrh r0, [r2] + cmp r0, 0 + beq _0801B452 + adds r3, 0x1 +_0801B452: + adds r2, 0x2 + subs r1, 0x1 + cmp r1, 0 + bne _0801B444 +_0801B45A: + adds r0, r3, 0 + pop {r1} + bx r1 + thumb_func_end sub_801B438 + + thumb_func_start sub_801B460 +sub_801B460: @ 801B460 + push {r4-r7,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r1, 0 + cmp r1, r2 + bge _0801B49A + ldrh r6, [r4, 0x2] + movs r0, 0x16 + adds r0, r5 + mov r12, r0 +_0801B474: + lsls r3, r1, 1 + mov r7, r12 + ldrh r0, [r7] + cmp r0, r6 + beq _0801B48C + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r3 + ldrh r0, [r0] + ldrh r3, [r4] + cmp r0, r3 + bne _0801B490 +_0801B48C: + movs r0, 0x1 + b _0801B49C +_0801B490: + movs r7, 0x2 + add r12, r7 + adds r1, 0x1 + cmp r1, r2 + blt _0801B474 +_0801B49A: + movs r0, 0 +_0801B49C: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_801B460 + + thumb_func_start sub_801B4A4 +sub_801B4A4: @ 801B4A4 + push {lr} + adds r1, r0, 0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _0801B4C4 + ldrh r1, [r1] + cmp r1, 0 + beq _0801B4C4 + ldr r0, =0x0000019b + cmp r1, r0 + bhi _0801B4C4 + movs r0, 0x1 + b _0801B4C6 + .pool +_0801B4C4: + movs r0, 0 +_0801B4C6: + pop {r1} + bx r1 + thumb_func_end sub_801B4A4 + + thumb_func_start sub_801B4CC +sub_801B4CC: @ 801B4CC + push {lr} + bl sub_801B27C + cmp r0, 0 + beq _0801B500 + ldr r0, =gSaveBlock1Ptr + ldr r3, [r0] + ldr r0, =0x000033f0 + adds r2, r3, r0 + ldrb r1, [r2, 0x8] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0801B500 + movs r1, 0xD5 + lsls r1, 6 + adds r0, r3, r1 + ldrb r1, [r2, 0x9] + bl sub_801B438 + b _0801B502 + .pool +_0801B500: + movs r0, 0 +_0801B502: + pop {r1} + bx r1 + thumb_func_end sub_801B4CC + + thumb_func_start sub_801B508 +sub_801B508: @ 801B508 + push {r4-r6,lr} + adds r5, r0, 0 + ldr r6, =gSaveBlock1Ptr + ldr r0, [r6] + ldr r1, =0x000033f0 + adds r0, r1 + ldrb r4, [r0, 0x9] + adds r0, r5, 0 + bl sub_801B4A4 + cmp r0, 0 + beq _0801B572 + ldr r0, [r6] + movs r1, 0xD5 + lsls r1, 6 + adds r0, r1 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_801B460 + cmp r0, 0 + beq _0801B54C + b _0801B572 + .pool +_0801B540: + ldrh r0, [r5, 0x2] + strh r0, [r1] + ldrh r0, [r5] + strh r0, [r2] + movs r0, 0x1 + b _0801B574 +_0801B54C: + movs r3, 0 + cmp r3, r4 + bge _0801B572 + ldr r0, [r6] + ldr r6, =0x00003548 + adds r2, r0, r6 + adds r6, 0xE + adds r1, r0, r6 +_0801B55C: + ldrh r0, [r2, 0xE] + cmp r0, 0 + bne _0801B568 + ldrh r0, [r2] + cmp r0, 0 + beq _0801B540 +_0801B568: + adds r2, 0x2 + adds r1, 0x2 + adds r3, 0x1 + cmp r3, r4 + blt _0801B55C +_0801B572: + movs r0, 0 +_0801B574: + pop {r4-r6} + pop {r1} + bx r1 + .pool + thumb_func_end sub_801B508 + + thumb_func_start sub_801B580 +sub_801B580: @ 801B580 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r5, r0, 0 + adds r4, r1, 0 + movs r0, 0 + str r0, [sp] + ldr r2, =0x05000019 + mov r0, sp + adds r1, r5, 0 + bl CpuSet + ldr r0, =0x00000101 + str r0, [r5] + movs r0, 0x1 + strh r0, [r5, 0x4] + str r0, [r5, 0x8] + cmp r4, 0 + beq _0801B5C0 + movs r0, 0x5 + strh r0, [r5, 0xC] + ldr r0, =0x00000201 + b _0801B5C8 + .pool +_0801B5C0: + movs r0, 0x4 + strh r0, [r5, 0xC] + movs r0, 0x80 + lsls r0, 2 +_0801B5C8: + str r0, [r5, 0x10] + bl sub_801B27C + cmp r0, 0 + beq _0801B5FC + bl sav1_get_mevent_buffer_1 + ldrh r0, [r0] + strh r0, [r5, 0x14] + bl sav1_get_mevent_buffer_2 + adds r1, r5, 0 + adds r1, 0x20 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + bl sav1_get_mevent_buffer_1 + ldrb r1, [r0, 0x9] + adds r0, r5, 0 + adds r0, 0x44 + strb r1, [r0] + b _0801B5FE +_0801B5FC: + strh r0, [r5, 0x14] +_0801B5FE: + adds r4, r5, 0 + adds r4, 0x4C + ldr r0, =gSaveBlock2Ptr + mov r8, r0 + adds r6, r5, 0 + adds r6, 0x45 + adds r7, r5, 0 + adds r7, 0x50 + movs r1, 0x5C + adds r1, r5 + mov r9, r1 + movs r2, 0x60 + adds r2, r5 + mov r10, r2 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r3, =0x00003564 + adds r2, r0, r3 + adds r1, r5, 0 + adds r1, 0x16 + movs r3, 0x3 +_0801B628: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _0801B628 + mov r0, r8 + ldr r1, [r0] + adds r1, 0xA + adds r0, r4, 0 + bl CopyTrainerId + mov r2, r8 + ldr r1, [r2] + adds r0, r6, 0 + bl StringCopy + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r3, =0x00002bb0 + adds r2, r0, r3 + adds r1, r7, 0 + movs r3, 0x5 +_0801B658: + ldrh r0, [r2] + strh r0, [r1] + adds r2, 0x2 + adds r1, 0x2 + subs r3, 0x1 + cmp r3, 0 + bge _0801B658 + ldr r1, =RomHeaderGameCode + mov r0, r9 + movs r2, 0x4 + bl memcpy + ldr r0, =RomHeaderSoftwareVersion + ldrb r0, [r0] + mov r4, r10 + strb r0, [r4] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B580 + + thumb_func_start sub_801B6A0 +sub_801B6A0: @ 801B6A0 + push {r4,lr} + adds r2, r0, 0 + adds r4, r1, 0 + ldr r1, [r2] + ldr r0, =0x00000101 + cmp r1, r0 + bne _0801B6DC + ldrh r1, [r2, 0x4] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0801B6DC + ldr r0, [r2, 0x8] + ands r0, r3 + cmp r0, 0 + beq _0801B6DC + cmp r4, 0 + bne _0801B6E4 + ldrh r1, [r2, 0xC] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801B6DC + ldr r0, [r2, 0x10] + movs r1, 0xE0 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + bne _0801B6E4 +_0801B6DC: + movs r0, 0 + b _0801B6E6 + .pool +_0801B6E4: + movs r0, 0x1 +_0801B6E6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_801B6A0 + + thumb_func_start sub_801B6EC +sub_801B6EC: @ 801B6EC + push {lr} + ldrh r1, [r1, 0x14] + cmp r1, 0 + bne _0801B6F8 + movs r0, 0 + b _0801B704 +_0801B6F8: + ldrh r0, [r0] + cmp r0, r1 + beq _0801B702 + movs r0, 0x2 + b _0801B704 +_0801B702: + movs r0, 0x1 +_0801B704: + pop {r1} + bx r1 + thumb_func_end sub_801B6EC + + thumb_func_start sub_801B708 +sub_801B708: @ 801B708 + push {r4-r6,lr} + adds r6, r0, 0 + adds r4, r1, 0 + adds r5, r4, 0 + adds r5, 0x20 + adds r4, 0x44 + ldrb r1, [r4] + adds r0, r5, 0 + bl sub_801B438 + ldrb r2, [r4] + subs r4, r2, r0 + cmp r4, 0 + bne _0801B728 + movs r0, 0x1 + b _0801B742 +_0801B728: + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_801B460 + cmp r0, 0 + beq _0801B738 + movs r0, 0x3 + b _0801B742 +_0801B738: + cmp r4, 0x1 + beq _0801B740 + movs r0, 0x2 + b _0801B742 +_0801B740: + movs r0, 0x4 +_0801B742: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_801B708 + + thumb_func_start sub_801B748 +sub_801B748: @ 801B748 + push {r4,lr} + movs r3, 0 + adds r2, r0, 0 + adds r2, 0x16 +_0801B750: + ldrh r0, [r2] + ldrh r4, [r1] + cmp r0, r4 + beq _0801B75C + movs r0, 0 + b _0801B768 +_0801B75C: + adds r1, 0x2 + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + ble _0801B750 + movs r0, 0x1 +_0801B768: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_801B748 + + thumb_func_start sub_801B770 +sub_801B770: @ 801B770 + push {lr} + adds r2, r0, 0 + adds r2, 0x20 + adds r0, 0x44 + ldrb r1, [r0] + adds r0, r2, 0 + bl sub_801B438 + pop {r1} + bx r1 + thumb_func_end sub_801B770 + + thumb_func_start sub_801B784 +sub_801B784: @ 801B784 + push {lr} + adds r2, r0, 0 + cmp r1, 0x4 + bhi _0801B7D0 + lsls r0, r1, 2 + ldr r1, =_0801B79C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0801B79C: + .4byte _0801B7B0 + .4byte _0801B7B4 + .4byte _0801B7B8 + .4byte _0801B7BC + .4byte _0801B7C8 +_0801B7B0: + ldrh r0, [r2, 0x20] + b _0801B7D2 +_0801B7B4: + ldrh r0, [r2, 0x22] + b _0801B7D2 +_0801B7B8: + ldrh r0, [r2, 0x24] + b _0801B7D2 +_0801B7BC: + adds r0, r2, 0 + bl sub_801B770 + lsls r0, 16 + lsrs r0, 16 + b _0801B7D2 +_0801B7C8: + adds r0, r2, 0 + adds r0, 0x44 + ldrb r0, [r0] + b _0801B7D2 +_0801B7D0: + movs r0, 0 +_0801B7D2: + pop {r1} + bx r1 + thumb_func_end sub_801B784 + + thumb_func_start sub_801B7D8 +sub_801B7D8: @ 801B7D8 + push {r4,lr} + adds r4, r0, 0 + ldr r2, =gSaveBlock1Ptr + ldr r0, [r2] + ldr r1, =0x000033f0 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x3 + ands r0, r1 + adds r3, r2, 0 + cmp r0, 0x2 + bne _0801B850 + movs r2, 0 + cmp r4, 0x4 + bhi _0801B83A + lsls r0, r4, 2 + ldr r1, =_0801B80C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0801B80C: + .4byte _0801B820 + .4byte _0801B828 + .4byte _0801B834 + .4byte _0801B83A + .4byte _0801B83A +_0801B820: + ldr r0, [r3] + movs r1, 0xD5 + lsls r1, 6 + b _0801B838 +_0801B828: + ldr r0, [r3] + ldr r1, =0x00003542 + b _0801B838 + .pool +_0801B834: + ldr r0, [r3] + ldr r1, =0x00003544 +_0801B838: + adds r2, r0, r1 +_0801B83A: + cmp r2, 0 + beq _0801B850 + ldrh r0, [r2] + adds r0, 0x1 + strh r0, [r2] + lsls r0, 16 + lsrs r0, 16 + ldr r1, =0x000003e7 + cmp r0, r1 + bls _0801B850 + strh r1, [r2] +_0801B850: + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B7D8 + + thumb_func_start mevent_081445C0 +mevent_081445C0: @ 801B860 + push {lr} + cmp r0, 0x4 + bhi _0801B938 + lsls r0, 2 + ldr r1, =_0801B874 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .pool + .align 2, 0 +_0801B874: + .4byte _0801B888 + .4byte _0801B8AC + .4byte _0801B8D0 + .4byte _0801B8F4 + .4byte _0801B918 +_0801B888: + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r1, =0x000033f0 + adds r0, r2, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0801B938 + movs r1, 0xD5 + lsls r1, 6 + adds r0, r2, r1 + ldrh r0, [r0] + b _0801B93A + .pool +_0801B8AC: + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r1, =0x000033f0 + adds r0, r2, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0801B938 + movs r1, 0xD5 + lsls r1, 6 + adds r0, r2, r1 + ldrh r0, [r0, 0x2] + b _0801B93A + .pool +_0801B8D0: + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r1, =0x000033f0 + adds r0, r2, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x2 + bne _0801B938 + movs r1, 0xD5 + lsls r1, 6 + adds r0, r2, r1 + ldrh r0, [r0, 0x4] + b _0801B93A + .pool +_0801B8F4: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000033f0 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0801B938 + bl sub_801B4CC + lsls r0, 16 + lsrs r0, 16 + b _0801B93A + .pool +_0801B918: + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000033f0 + adds r2, r0, r1 + ldrb r1, [r2, 0x8] + movs r0, 0x3 + ands r0, r1 + cmp r0, 0x1 + bne _0801B938 + ldrb r0, [r2, 0x9] + b _0801B93A + .pool +_0801B938: + movs r0, 0 +_0801B93A: + pop {r1} + bx r1 + thumb_func_end mevent_081445C0 + + thumb_func_start sub_801B940 +sub_801B940: @ 801B940 + ldr r1, =gUnknown_02022C70 + movs r0, 0 + str r0, [r1] + bx lr + .pool + thumb_func_end sub_801B940 + + thumb_func_start sub_801B94C +sub_801B94C: @ 801B94C + push {r4,r5,lr} + lsls r0, 16 + lsrs r0, 16 + adds r4, r0, 0 + ldr r5, =gUnknown_02022C70 + movs r0, 0 + str r0, [r5] + cmp r4, 0 + beq _0801B98A + bl sub_801B27C + cmp r0, 0 + beq _0801B988 + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x000033f0 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r4 + bne _0801B988 + movs r0, 0x1 + str r0, [r5] + b _0801B98A + .pool +_0801B988: + movs r0, 0 +_0801B98A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_801B94C + + thumb_func_start sub_801B990 +sub_801B990: @ 801B990 + push {lr} + adds r2, r0, 0 + ldr r0, =gUnknown_02022C70 + ldr r0, [r0] + cmp r0, 0 + beq _0801B9EC + cmp r2, 0x1 + beq _0801B9DC + cmp r2, 0x1 + bcc _0801B9C0 + cmp r2, 0x2 + bne _0801B9EC + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r0, =0x00003584 + adds r2, r0 + movs r0, 0x2 + b _0801B9CA + .pool +_0801B9C0: + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r0, =0x00003570 + adds r2, r0 + movs r0, 0 +_0801B9CA: + movs r3, 0x5 + bl sub_801BA8C + b _0801B9EC + .pool +_0801B9DC: + ldr r0, =gSaveBlock1Ptr + ldr r2, [r0] + ldr r0, =0x00003570 + adds r2, r0 + movs r0, 0x1 + movs r3, 0x5 + bl sub_801BA8C +_0801B9EC: + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B990 + + thumb_func_start sub_801B9F8 +sub_801B9F8: @ 801B9F8 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + ldr r0, =gSaveBlock1Ptr + ldr r1, [r0] + ldr r0, =0x00003570 + adds r1, r0 + ldr r2, =0x0500000a + mov r0, sp + bl CpuSet + add sp, 0x4 + pop {r0} + bx r0 + .pool + thumb_func_end sub_801B9F8 + + thumb_func_start sub_801BA24 +sub_801BA24: @ 801BA24 + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r1, 0 + cmp r1, r2 + bge _0801BA46 + ldr r0, [r4] + cmp r0, r5 + beq _0801BA46 + adds r3, r4, 0 +_0801BA38: + adds r3, 0x4 + adds r1, 0x1 + cmp r1, r2 + bge _0801BA46 + ldr r0, [r3] + cmp r0, r5 + bne _0801BA38 +_0801BA46: + cmp r1, r2 + bne _0801BA68 + subs r3, r1, 0x1 + cmp r3, 0 + ble _0801BA62 + lsls r0, r3, 2 + subs r0, 0x4 + adds r2, r0, r4 +_0801BA56: + ldr r0, [r2] + str r0, [r2, 0x4] + subs r2, 0x4 + subs r3, 0x1 + cmp r3, 0 + bgt _0801BA56 +_0801BA62: + str r5, [r4] + movs r0, 0x1 + b _0801BA84 +_0801BA68: + adds r3, r1, 0 + cmp r3, 0 + ble _0801BA80 + lsls r0, r3, 2 + subs r0, 0x4 + adds r2, r0, r4 +_0801BA74: + ldr r0, [r2] + str r0, [r2, 0x4] + subs r2, 0x4 + subs r3, 0x1 + cmp r3, 0 + bgt _0801BA74 +_0801BA80: + str r5, [r4] + movs r0, 0 +_0801BA84: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_801BA24 + + thumb_func_start sub_801BA8C +sub_801BA8C: @ 801BA8C + push {r4,lr} + adds r4, r0, 0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r2, r3, 0 + bl sub_801BA24 + cmp r0, 0 + beq _0801BAA4 + adds r0, r4, 0 + bl sub_801B7D8 +_0801BAA4: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_801BA8C + + .align 2, 0 @ don't pad with nop |