diff options
Diffstat (limited to 'asm/secret_base.s')
-rw-r--r-- | asm/secret_base.s | 4586 |
1 files changed, 4586 insertions, 0 deletions
diff --git a/asm/secret_base.s b/asm/secret_base.s new file mode 100644 index 000000000..936fd1ece --- /dev/null +++ b/asm/secret_base.s @@ -0,0 +1,4586 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_80BB4AC +sub_80BB4AC: @ 80BB4AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + adds r3, r0, 0 + movs r0, 0 + strb r0, [r3] + movs r2, 0 + adds r4, r3, 0x2 + movs r5, 0xFF +_080BB4C4: + adds r0, r4, r2 + ldrb r1, [r0] + orrs r1, r5 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x6 + bls _080BB4C4 + movs r2, 0 + adds r5, r3, 0 + adds r5, 0x12 + adds r6, r3, 0 + adds r6, 0x22 + adds r7, r3, 0 + adds r7, 0x4C + adds r0, r3, 0 + adds r0, 0x34 + str r0, [sp] + adds r1, r3, 0 + adds r1, 0x9A + str r1, [sp, 0x4] + movs r0, 0x7C + adds r0, r3 + mov r10, r0 + movs r1, 0x88 + adds r1, r3 + mov r9, r1 + movs r0, 0x94 + adds r0, r3 + mov r8, r0 + adds r1, r3, 0 + adds r1, 0x9 + movs r4, 0 +_080BB508: + adds r0, r1, r2 + strb r4, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x3 + bls _080BB508 + movs r0, 0 + movs r1, 0 + strh r1, [r3, 0xE] + strb r0, [r3, 0x10] + strb r0, [r3, 0x11] + movs r0, 0 + strb r0, [r3, 0x1] + movs r2, 0 + adds r4, r5, 0 + adds r3, r6, 0 +_080BB52A: + adds r0, r4, r2 + strb r1, [r0] + adds r0, r3, r2 + strb r1, [r0] + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0xF + bls _080BB52A + movs r2, 0 + mov r12, r7 + movs r5, 0 +_080BB542: + movs r1, 0 + adds r7, r2, 0x1 + lsls r4, r2, 2 + lsls r6, r2, 1 + adds r3, r4, 0 +_080BB54C: + adds r0, r3, r1 + lsls r0, 1 + add r0, r12 + strh r5, [r0] + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x3 + bls _080BB54C + ldr r1, [sp] + adds r0, r1, r4 + str r5, [r0] + ldr r1, [sp, 0x4] + adds r0, r1, r2 + strb r5, [r0] + mov r1, r10 + adds r0, r1, r6 + strh r5, [r0] + mov r1, r9 + adds r0, r1, r6 + strh r5, [r0] + mov r1, r8 + adds r0, r1, r2 + strb r5, [r0] + lsls r0, r7, 16 + lsrs r2, r0, 16 + cmp r2, 0x5 + bls _080BB542 + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB4AC + + thumb_func_start sub_80BB594 +sub_80BB594: @ 80BB594 + push {lr} + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + ldr r1, _080BB5B0 @ =gSaveBlock1 + 0x1A08 + adds r0, r1 + bl sub_80BB4AC + pop {r0} + bx r0 + .align 2, 0 +_080BB5B0: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BB594 + + thumb_func_start sub_80BB5B4 +sub_80BB5B4: @ 80BB5B4 + push {r4,lr} + movs r4, 0 +_080BB5B8: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BB594 + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080BB5B8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80BB5B4 + + thumb_func_start sub_80BB5D0 +sub_80BB5D0: @ 80BB5D0 + ldr r0, _080BB5DC @ =gUnknown_020387DC + ldr r1, _080BB5E0 @ =gUnknown_0202E8CC + ldrh r1, [r1] + strb r1, [r0] + bx lr + .align 2, 0 +_080BB5DC: .4byte gUnknown_020387DC +_080BB5E0: .4byte gUnknown_0202E8CC + thumb_func_end sub_80BB5D0 + + thumb_func_start sub_80BB5E4 +sub_80BB5E4: @ 80BB5E4 + push {r4,lr} + ldr r0, _080BB5F4 @ =gScriptResult + movs r1, 0 + strh r1, [r0] + movs r3, 0 + adds r4, r0, 0 + b _080BB5FE + .align 2, 0 +_080BB5F4: .4byte gScriptResult +_080BB5F8: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 +_080BB5FE: + cmp r3, 0x13 + bhi _080BB626 + ldr r2, _080BB62C @ =gUnknown_020387DC + ldr r1, _080BB630 @ =gSaveBlock1 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r1 + ldr r1, _080BB634 @ =0x00001a08 + adds r0, r1 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _080BB5F8 + movs r0, 0x1 + strh r0, [r4] + ldr r0, _080BB638 @ =0x00004054 + adds r1, r3, 0 + bl VarSet +_080BB626: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB62C: .4byte gUnknown_020387DC +_080BB630: .4byte gSaveBlock1 +_080BB634: .4byte 0x00001a08 +_080BB638: .4byte 0x00004054 + thumb_func_end sub_80BB5E4 + + thumb_func_start sub_80BB63C +sub_80BB63C: @ 80BB63C + push {lr} + ldr r0, _080BB654 @ =gSaveBlock1 + ldr r1, _080BB658 @ =0x00001a08 + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _080BB660 + ldr r1, _080BB65C @ =gScriptResult + movs r0, 0x1 + strh r0, [r1] + b _080BB664 + .align 2, 0 +_080BB654: .4byte gSaveBlock1 +_080BB658: .4byte 0x00001a08 +_080BB65C: .4byte gScriptResult +_080BB660: + ldr r0, _080BB668 @ =gScriptResult + strh r1, [r0] +_080BB664: + pop {r0} + bx r0 + .align 2, 0 +_080BB668: .4byte gScriptResult + thumb_func_end sub_80BB63C + + thumb_func_start sub_80BB66C +sub_80BB66C: @ 80BB66C + push {r4,lr} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileBehaviorAt + adds r1, r0, 0 + ldr r2, _080BB6A4 @ =0x00000fff + adds r0, r2, 0 + ands r1, r0 + adds r0, r1, 0 + subs r0, 0x90 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6A8 + movs r0, 0x1 + b _080BB702 + .align 2, 0 +_080BB6A4: .4byte 0x00000fff +_080BB6A8: + adds r0, r1, 0 + subs r0, 0x92 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6B8 + movs r0, 0x2 + b _080BB702 +_080BB6B8: + adds r0, r1, 0 + subs r0, 0x9A + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6C8 + movs r0, 0x3 + b _080BB702 +_080BB6C8: + adds r0, r1, 0 + subs r0, 0x94 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080BB6D8 + movs r0, 0x4 + b _080BB702 +_080BB6D8: + adds r0, r1, 0 + subs r0, 0x96 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BB6EC + cmp r1, 0x9C + beq _080BB6EC + cmp r1, 0x9D + bne _080BB6F0 +_080BB6EC: + movs r0, 0x5 + b _080BB702 +_080BB6F0: + adds r0, r1, 0 + subs r0, 0x98 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _080BB700 + movs r0, 0 + b _080BB702 +_080BB700: + movs r0, 0x6 +_080BB702: + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BB66C + + thumb_func_start sub_80BB70C +sub_80BB70C: @ 80BB70C + push {r4,lr} + ldr r4, _080BB720 @ =gUnknown_0202E8D2 + bl sub_80BB66C + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BB720: .4byte gUnknown_0202E8D2 + thumb_func_end sub_80BB70C + + thumb_func_start unref_sub_80BB724 +unref_sub_80BB724: @ 80BB724 + push {r4-r6,lr} + adds r4, r0, 0 + lsls r1, 24 + movs r2, 0 + ldr r6, _080BB748 @ =0x00000fff + lsrs r3, r1, 24 + ldr r5, _080BB74C @ =0x000001ff +_080BB732: + lsls r0, r2, 1 + adds r0, r4 + ldrh r1, [r0] + adds r0, r6, 0 + ands r0, r1 + cmp r0, r3 + bne _080BB750 + lsls r0, r2, 16 + asrs r0, 16 + b _080BB75E + .align 2, 0 +_080BB748: .4byte 0x00000fff +_080BB74C: .4byte 0x000001ff +_080BB750: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, r5 + bls _080BB732 + movs r0, 0x1 + negs r0, r0 +_080BB75E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end unref_sub_80BB724 + + thumb_func_start sub_80BB764 +sub_80BB764: @ 80BB764 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + mov r9, r0 + mov r10, r1 + lsls r2, 16 + lsrs r2, 16 + mov r8, r2 + movs r0, 0 + mov r12, r0 + ldr r1, _080BB7C8 @ =gMapHeader + ldr r0, [r1] + ldr r3, [r0, 0x4] + cmp r12, r3 + bge _080BB7EE + ldr r0, [r0] + str r0, [sp, 0x4] + str r3, [sp] +_080BB78E: + movs r2, 0 + mov r1, r12 + lsls r7, r1, 16 + ldr r0, [sp, 0x4] + cmp r2, r0 + bge _080BB7DC + ldr r0, _080BB7C8 @ =gMapHeader + ldr r1, [r0] + asrs r0, r7, 16 + ldr r4, [r1] + adds r6, r0, 0 + muls r6, r4 + ldr r5, [r1, 0xC] +_080BB7A8: + lsls r0, r2, 16 + asrs r3, r0, 16 + adds r0, r6, r3 + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, _080BB7CC @ =0x000003ff + ands r0, r1 + cmp r0, r8 + bne _080BB7D0 + mov r1, r9 + strh r2, [r1] + mov r1, r12 + mov r0, r10 + strh r1, [r0] + b _080BB7EE + .align 2, 0 +_080BB7C8: .4byte gMapHeader +_080BB7CC: .4byte 0x000003ff +_080BB7D0: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, r4 + blt _080BB7A8 +_080BB7DC: + movs r1, 0x80 + lsls r1, 9 + adds r0, r7, r1 + lsrs r1, r0, 16 + mov r12, r1 + asrs r0, 16 + ldr r1, [sp] + cmp r0, r1 + blt _080BB78E +_080BB7EE: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB764 + + thumb_func_start sub_80BB800 +sub_80BB800: @ 80BB800 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + mov r4, sp + adds r4, 0x2 + mov r0, sp + adds r1, r4, 0 + bl GetXYCoordsOneStepInFrontOfPlayer + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r4, r2] + bl MapGridGetMetatileIdAt + movs r5, 0 + mov r12, r4 + lsls r0, 16 + asrs r3, r0, 16 + ldr r1, _080BB84C @ =gUnknown_083D1358 + mov r8, r1 + adds r7, r0, 0 + mov r4, sp + mov r6, r12 +_080BB834: + ldr r0, _080BB84C @ =gUnknown_083D1358 + lsls r1, r5, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r3 + bne _080BB850 + movs r3, 0 + ldrsh r0, [r4, r3] + movs r5, 0 + ldrsh r1, [r6, r5] + ldrh r3, [r2, 0x2] + b _080BB878 + .align 2, 0 +_080BB84C: .4byte gUnknown_083D1358 +_080BB850: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080BB834 + movs r5, 0 + mov r4, sp + mov r6, r12 +_080BB860: + lsls r0, r5, 2 + mov r1, r8 + adds r3, r0, r1 + ldrh r1, [r3, 0x2] + asrs r0, r7, 16 + cmp r1, r0 + bne _080BB892 + movs r2, 0 + ldrsh r0, [r4, r2] + movs r5, 0 + ldrsh r1, [r6, r5] + ldrh r3, [r3] +_080BB878: + movs r5, 0xC0 + lsls r5, 4 + adds r2, r5, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + movs r1, 0 + ldrsh r0, [r4, r1] + movs r2, 0 + ldrsh r1, [r6, r2] + bl CurrentMapDrawMetatileAt + b _080BB89C +_080BB892: + adds r0, r5, 0x1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0x6 + bls _080BB860 +_080BB89C: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB800 + + thumb_func_start sub_80BB8A8 +sub_80BB8A8: @ 80BB8A8 + push {lr} + adds r2, r0, 0 + movs r1, 0 +_080BB8AE: + adds r0, r2, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BB8BA + adds r0, r1, 0 + b _080BB8C6 +_080BB8BA: + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x6 + bls _080BB8AE + movs r0, 0x7 +_080BB8C6: + pop {r1} + bx r1 + thumb_func_end sub_80BB8A8 + + thumb_func_start sub_80BB8CC +sub_80BB8CC: @ 80BB8CC + push {r4-r6,lr} + ldr r2, _080BB948 @ =gSaveBlock1 + ldr r0, _080BB94C @ =gUnknown_020387DC + ldrb r1, [r0] + ldr r3, _080BB950 @ =0x00001a08 + adds r0, r2, r3 + strb r1, [r0] + movs r3, 0 + ldr r0, _080BB954 @ =0x00001a11 + adds r2, r0 + ldr r4, _080BB958 @ =gSaveBlock2 + 0xA +_080BB8E2: + adds r1, r3, r2 + adds r0, r3, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x3 + bls _080BB8E2 + ldr r0, _080BB95C @ =0x00004054 + movs r1, 0 + bl VarSet + ldr r6, _080BB960 @ =gSaveBlock2 + adds r0, r6, 0 + bl sub_80BB8A8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r5, _080BB964 @ =gSaveBlock1 + 0x1A0A + adds r0, r5, 0 + movs r1, 0xFF + movs r2, 0x7 + bl memset + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl StringCopyN + ldrb r0, [r6, 0x8] + subs r5, 0x1 + movs r1, 0x1 + ands r1, r0 + lsls r1, 4 + ldrb r2, [r5] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r5] + ldr r0, _080BB968 @ =0x00004026 + ldr r1, _080BB96C @ =gMapHeader + ldrb r1, [r1, 0x14] + bl VarSet + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BB948: .4byte gSaveBlock1 +_080BB94C: .4byte gUnknown_020387DC +_080BB950: .4byte 0x00001a08 +_080BB954: .4byte 0x00001a11 +_080BB958: .4byte gSaveBlock2 + 0xA +_080BB95C: .4byte 0x00004054 +_080BB960: .4byte gSaveBlock2 +_080BB964: .4byte gSaveBlock1 + 0x1A0A +_080BB968: .4byte 0x00004026 +_080BB96C: .4byte gMapHeader + thumb_func_end sub_80BB8CC + + thumb_func_start sub_80BB970 +sub_80BB970: @ 80BB970 + push {r4-r7,lr} + adds r5, r0, 0 + movs r2, 0 + b _080BBA06 +_080BB978: + ldr r0, [r5, 0x10] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3, 0x5] + adds r7, r2, 0x1 + cmp r0, 0x8 + bne _080BBA02 + movs r2, 0 + ldr r4, _080BB9E0 @ =gSaveBlock1 + adds r6, r1, 0 +_080BB990: + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 5 + adds r0, r4 + ldr r1, _080BB9E4 @ =0x00001a08 + adds r0, r1 + ldrb r1, [r0] + ldr r0, [r3, 0x8] + cmp r1, r0 + bne _080BB9F8 + ldrh r0, [r3] + adds r0, 0x7 + ldrh r1, [r3, 0x2] + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r3, 0 + lsls r0, 16 + asrs r4, r0, 16 +_080BB9B6: + ldr r0, _080BB9E8 @ =gUnknown_083D1358 + lsls r1, r3, 2 + adds r2, r1, r0 + ldrh r0, [r2] + cmp r0, r4 + bne _080BB9EC + ldr r1, [r5, 0x10] + adds r1, r6, r1 + ldrh r0, [r1] + adds r0, 0x7 + ldrh r1, [r1, 0x2] + adds r1, 0x7 + ldrh r3, [r2, 0x2] + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080BBA02 + .align 2, 0 +_080BB9E0: .4byte gSaveBlock1 +_080BB9E4: .4byte 0x00001a08 +_080BB9E8: .4byte gUnknown_083D1358 +_080BB9EC: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x6 + bls _080BB9B6 + b _080BBA02 +_080BB9F8: + adds r0, r2, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0x13 + bls _080BB990 +_080BBA02: + lsls r0, r7, 16 + lsrs r2, r0, 16 +_080BBA06: + ldrb r0, [r5, 0x3] + cmp r2, r0 + bcc _080BB978 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BB970 + + thumb_func_start sub_80BBA14 +sub_80BBA14: @ 80BBA14 + push {lr} + ldr r0, _080BBA40 @ =gUnknown_020387DC + ldrb r0, [r0] + movs r1, 0xA + bl __udivsi3 + ldr r2, _080BBA44 @ =gUnknown_083D1374 + lsls r0, 26 + asrs r0, 24 + adds r1, r0, r2 + ldrb r1, [r1] + lsls r1, 24 + asrs r1, 24 + adds r0, 0x1 + adds r0, r2 + movs r2, 0 + ldrsb r2, [r0, r2] + movs r0, 0x19 + bl warp1_set_2 + pop {r0} + bx r0 + .align 2, 0 +_080BBA40: .4byte gUnknown_020387DC +_080BBA44: .4byte gUnknown_083D1374 + thumb_func_end sub_80BBA14 + + thumb_func_start sub_80BBA48 +sub_80BBA48: @ 80BBA48 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _080BBA6C @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r2, r0, r1 + movs r1, 0x8 + ldrsh r0, [r2, r1] + cmp r0, 0x1 + beq _080BBA7C + cmp r0, 0x1 + bgt _080BBA70 + cmp r0, 0 + beq _080BBA76 + b _080BBAD0 + .align 2, 0 +_080BBA6C: .4byte gTasks +_080BBA70: + cmp r0, 0x2 + beq _080BBA94 + b _080BBAD0 +_080BBA76: + movs r0, 0x1 + strh r0, [r2, 0x8] + b _080BBAD0 +_080BBA7C: + ldr r0, _080BBA90 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBAD0 + movs r0, 0x2 + strh r0, [r2, 0x8] + b _080BBAD0 + .align 2, 0 +_080BBA90: .4byte gPaletteFade +_080BBA94: + ldr r0, _080BBAD8 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + ldr r2, _080BBADC @ =gSaveBlock1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BBAE0 @ =0x00001a18 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _080BBAB6 + adds r0, 0x1 + strb r0, [r1] +_080BBAB6: + bl sub_80BBA14 + bl warp_in + ldr r0, _080BBAE4 @ =gUnknown_0300485C + ldr r1, _080BBAE8 @ =sub_8080990 + str r1, [r0] + ldr r0, _080BBAEC @ =CB2_LoadMap + bl SetMainCallback2 + adds r0, r4, 0 + bl DestroyTask +_080BBAD0: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBAD8: .4byte 0x00004054 +_080BBADC: .4byte gSaveBlock1 +_080BBAE0: .4byte 0x00001a18 +_080BBAE4: .4byte gUnknown_0300485C +_080BBAE8: .4byte sub_8080990 +_080BBAEC: .4byte CB2_LoadMap + thumb_func_end sub_80BBA48 + + thumb_func_start sub_80BBAF0 +sub_80BBAF0: @ 80BBAF0 + push {lr} + ldr r0, _080BBB1C @ =sub_80BBA48 + movs r1, 0 + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + ldr r0, _080BBB20 @ =gSaveBlock1 + movs r1, 0x4 + ldrsb r1, [r0, r1] + movs r2, 0x5 + ldrsb r2, [r0, r2] + movs r3, 0x1 + negs r3, r3 + movs r0, 0 + bl saved_warp2_set + pop {r0} + bx r0 + .align 2, 0 +_080BBB1C: .4byte sub_80BBA48 +_080BBB20: .4byte gSaveBlock1 + thumb_func_end sub_80BBAF0 + + thumb_func_start sub_80BBB24 +sub_80BBB24: @ 80BBB24 + push {lr} + ldr r0, _080BBB40 @ =gMapHeader + ldrb r0, [r0, 0x17] + cmp r0, 0x9 + bne _080BBB48 + ldr r0, _080BBB44 @ =0x00004097 + bl VarGet + lsls r0, 16 + cmp r0, 0 + bne _080BBB48 + movs r0, 0 + b _080BBB4A + .align 2, 0 +_080BBB40: .4byte gMapHeader +_080BBB44: .4byte 0x00004097 +_080BBB48: + movs r0, 0x1 +_080BBB4A: + pop {r1} + bx r1 + thumb_func_end sub_80BBB24 + + thumb_func_start sub_80BBB50 +sub_80BBB50: @ 80BBB50 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080BBB88 @ =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, _080BBB8C @ =gMapObjects + adds r0, r1 + movs r1, 0x2 + bl FieldObjectTurn + bl sub_807D770 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BBB80 + bl EnableBothScriptContexts + adds r0, r4, 0 + bl DestroyTask +_080BBB80: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBB88: .4byte gPlayerAvatar +_080BBB8C: .4byte gMapObjects + thumb_func_end sub_80BBB50 + + thumb_func_start sub_80BBB90 +sub_80BBB90: @ 80BBB90 + push {r4,lr} + sub sp, 0x4 + bl ScriptContext2_Enable + bl HideMapNamePopUpWindow + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x7 + movs r2, 0 + ldrsh r1, [r4, r2] + adds r1, 0x7 + movs r2, 0xE2 + lsls r2, 4 + bl MapGridSetMetatileIdAt + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + adds r0, 0x7 + movs r2, 0 + ldrsh r1, [r4, r2] + adds r1, 0x7 + bl CurrentMapDrawMetatileAt + bl pal_fill_black + ldr r0, _080BBBE8 @ =sub_80BBB50 + movs r1, 0 + bl CreateTask + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BBBE8: .4byte sub_80BBB50 + thumb_func_end sub_80BBB90 + + thumb_func_start sub_80BBBEC +sub_80BBBEC: @ 80BBBEC + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080BBC5C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BBC52 + ldr r0, _080BBC60 @ =gUnknown_020387DC + ldrb r0, [r0] + movs r1, 0xA + bl __udivsi3 + ldr r1, _080BBC64 @ =gSaveBlock1 + movs r5, 0x4 + ldrsb r5, [r1, r5] + ldrb r1, [r1, 0x5] + lsls r1, 24 + asrs r1, 24 + movs r2, 0x1 + negs r2, r2 + ldr r4, _080BBC68 @ =gUnknown_083D1374 + lsls r0, 26 + asrs r0, 24 + adds r3, r0, 0x2 + adds r3, r4 + ldrb r3, [r3] + lsls r3, 24 + asrs r3, 24 + adds r0, 0x3 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + str r0, [sp] + adds r0, r5, 0 + bl warp1_set + bl warp_in + ldr r1, _080BBC6C @ =gUnknown_0300485C + ldr r0, _080BBC70 @ =sub_80BBB90 + str r0, [r1] + ldr r0, _080BBC74 @ =CB2_LoadMap + bl SetMainCallback2 + adds r0, r6, 0 + bl DestroyTask +_080BBC52: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BBC5C: .4byte gPaletteFade +_080BBC60: .4byte gUnknown_020387DC +_080BBC64: .4byte gSaveBlock1 +_080BBC68: .4byte gUnknown_083D1374 +_080BBC6C: .4byte gUnknown_0300485C +_080BBC70: .4byte sub_80BBB90 +_080BBC74: .4byte CB2_LoadMap + thumb_func_end sub_80BBBEC + + thumb_func_start sub_80BBC78 +sub_80BBC78: @ 80BBC78 + push {lr} + ldr r0, _080BBCA0 @ =sub_80BBBEC + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BBCA4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r0, 0 + strh r0, [r1, 0x8] + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080BBCA0: .4byte sub_80BBBEC +_080BBCA4: .4byte gTasks + thumb_func_end sub_80BBC78 + + thumb_func_start CurrentMapIsSecretBase +CurrentMapIsSecretBase: @ 80BBCA8 + push {lr} + ldr r1, _080BBCC0 @ =gSaveBlock1 + movs r0, 0x4 + ldrsb r0, [r1, r0] + cmp r0, 0x19 + bne _080BBCC4 + ldrb r0, [r1, 0x5] + cmp r0, 0x17 + bhi _080BBCC4 + movs r0, 0x1 + b _080BBCC6 + .align 2, 0 +_080BBCC0: .4byte gSaveBlock1 +_080BBCC4: + movs r0, 0 +_080BBCC6: + pop {r1} + bx r1 + thumb_func_end CurrentMapIsSecretBase + + thumb_func_start sub_80BBCCC +sub_80BBCCC: @ 80BBCCC + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + bl CurrentMapIsSecretBase + lsls r0, 24 + cmp r0, 0 + beq _080BBDBC + ldr r0, _080BBD70 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + movs r1, 0 + mov r0, sp + strh r1, [r0] + ldr r6, _080BBD74 @ =gSaveBlock1 + mov r4, sp + ldr r0, _080BBD78 @ =0x00001a2a + adds r7, r6, r0 +_080BBCFC: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + ldrh r1, [r4] + adds r2, r0, r1 + ldr r1, _080BBD7C @ =0x00001a1a + adds r0, r6, r1 + adds r1, r2, r0 + ldrb r0, [r1] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x77 + bhi _080BBD3A + ldr r0, _080BBD80 @ =gDecorations + ldrb r3, [r1] + lsls r1, r3, 5 + adds r1, r0 + ldrb r0, [r1, 0x11] + cmp r0, 0x4 + beq _080BBD3A + adds r0, r2, r7 + ldrb r2, [r0] + lsrs r0, r2, 4 + adds r0, 0x7 + movs r1, 0xF + ands r1, r2 + adds r1, 0x7 + adds r2, r3, 0 + bl sub_80FF394 +_080BBD3A: + ldrh r0, [r4] + adds r0, 0x1 + lsls r0, 16 + lsrs r0, 16 + strh r0, [r4] + cmp r0, 0xF + bls _080BBCFC + cmp r5, 0 + beq _080BBD88 + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + ldrh r0, [r0] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x7 + ldr r2, _080BBD84 @ =0x00000e21 + bl MapGridSetMetatileIdAt + b _080BBDBC + .align 2, 0 +_080BBD70: .4byte 0x00004054 +_080BBD74: .4byte gSaveBlock1 +_080BBD78: .4byte 0x00001a2a +_080BBD7C: .4byte 0x00001a1a +_080BBD80: .4byte gDecorations +_080BBD84: .4byte 0x00000e21 +_080BBD88: + mov r0, r8 + cmp r0, 0x1 + bne _080BBDBC + ldr r0, _080BBDC8 @ =0x00004089 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _080BBDBC + mov r4, sp + adds r4, 0x2 + movs r2, 0x88 + lsls r2, 2 + mov r0, sp + adds r1, r4, 0 + bl sub_80BB764 + mov r0, sp + ldrh r0, [r0] + adds r0, 0x7 + ldrh r1, [r4] + adds r1, 0x7 + ldr r2, _080BBDCC @ =0x00000e0a + bl MapGridSetMetatileIdAt +_080BBDBC: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBDC8: .4byte 0x00004089 +_080BBDCC: .4byte 0x00000e0a + thumb_func_end sub_80BBCCC + + thumb_func_start sub_80BBDD0 +sub_80BBDD0: @ 80BBDD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, _080BBE00 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r4, r0, 16 + bl CurrentMapIsSecretBase + lsls r0, 24 + cmp r0, 0 + bne _080BBE08 + ldr r0, _080BBE04 @ =gSaveBlock1 + 0x2688 + str r0, [sp, 0x4] + adds r0, 0xC + str r0, [sp, 0x8] + movs r1, 0xC + str r1, [sp, 0xC] + b _080BBE1E + .align 2, 0 +_080BBE00: .4byte 0x00004054 +_080BBE04: .4byte gSaveBlock1 + 0x2688 +_080BBE08: + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 5 + ldr r0, _080BBF7C @ =gSaveBlock1 + 0x1A1A + adds r2, r1, r0 + str r2, [sp, 0x4] + adds r0, 0x10 + adds r1, r0 + str r1, [sp, 0x8] + movs r3, 0x10 + str r3, [sp, 0xC] +_080BBE1E: + movs r6, 0 + ldr r4, [sp, 0xC] + cmp r6, r4 + bcc _080BBE28 + b _080BBF6C +_080BBE28: + ldr r5, _080BBF80 @ =gSaveBlock1 + mov r10, r5 +_080BBE2C: + ldr r1, [sp, 0x4] + adds r0, r1, r6 + ldrb r1, [r0] + mov r9, r0 + adds r2, r6, 0x1 + str r2, [sp, 0x10] + cmp r1, 0 + bne _080BBE3E + b _080BBF5E +_080BBE3E: + ldrb r0, [r0] + lsls r0, 5 + ldr r3, _080BBF84 @ =gDecorations + adds r0, r3 + ldrb r0, [r0, 0x11] + cmp r0, 0x4 + beq _080BBE4E + b _080BBF5E +_080BBE4E: + movs r5, 0 + ldr r0, _080BBF88 @ =gMapHeader + ldr r2, [r0, 0x4] + ldrb r3, [r2] + mov r8, r0 + cmp r5, r3 + bcs _080BBE8E + ldr r0, [r2, 0x4] + ldrh r1, [r0, 0x14] + ldr r4, _080BBF8C @ =gUnknown_0202E8CC + ldrh r0, [r4] + adds r0, 0xAE + adds r7, r4, 0 + cmp r1, r0 + beq _080BBE8E + adds r4, r2, 0 + adds r2, r3, 0 +_080BBE70: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, r2 + bcs _080BBE8E + ldr r1, [r4, 0x4] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r1, [r0, 0x14] + ldrh r0, [r7] + adds r0, 0xAE + cmp r1, r0 + bne _080BBE70 +_080BBE8E: + mov r1, r8 + ldr r0, [r1, 0x4] + ldrb r0, [r0] + cmp r5, r0 + beq _080BBF5E + ldr r7, _080BBF90 @ =gUnknown_0202E8D0 + ldr r2, [sp, 0x8] + adds r1, r2, r6 + ldrb r0, [r1] + lsrs r0, 4 + strh r0, [r7] + ldr r6, _080BBF94 @ =gUnknown_0202E8D2 + ldrb r1, [r1] + movs r0, 0xF + ands r0, r1 + strh r0, [r6] + ldrh r0, [r7] + adds r0, 0x7 + ldrh r1, [r6] + adds r1, 0x7 + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_80572D8 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BBEDA + adds r0, r4, 0 + bl sub_80572EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BBF5E +_080BBEDA: + mov r3, r8 + ldr r0, [r3, 0x4] + ldr r1, [r0, 0x4] + lsls r4, r5, 1 + adds r4, r5 + lsls r4, 3 + adds r1, r4, r1 + ldr r5, _080BBF98 @ =0x00003f20 + adds r0, r5, 0 + ldrb r1, [r1, 0x1] + adds r0, r1 + ldr r1, _080BBF9C @ =gScriptResult + strh r0, [r1] + ldrh r0, [r1] + mov r2, r9 + ldrb r1, [r2] + lsls r1, 5 + ldr r3, _080BBFA0 @ =gDecorations + 0x1C + adds r1, r3 + ldr r1, [r1] + ldrh r1, [r1] + bl VarSet + mov r5, r8 + ldr r0, [r5, 0x4] + ldr r0, [r0, 0x4] + adds r4, r0 + ldrb r0, [r4] + ldr r1, _080BBF9C @ =gScriptResult + strh r0, [r1] + ldr r2, _080BBF8C @ =gUnknown_0202E8CC + ldrh r0, [r2] + adds r0, 0xAE + lsls r0, 16 + lsrs r0, 16 + bl FlagReset + ldr r3, _080BBF9C @ =gScriptResult + ldrb r0, [r3] + mov r4, r10 + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + bl show_sprite + ldr r5, _080BBF9C @ =gScriptResult + ldrb r0, [r5] + ldrb r1, [r4, 0x5] + ldrb r2, [r4, 0x4] + movs r4, 0 + ldrsh r3, [r7, r4] + movs r5, 0 + ldrsh r4, [r6, r5] + str r4, [sp] + bl sub_805C0F8 + ldr r1, _080BBF9C @ =gScriptResult + ldrb r0, [r1] + mov r2, r10 + ldrb r1, [r2, 0x5] + ldrb r2, [r2, 0x4] + bl sub_805C78C + ldr r3, _080BBF8C @ =gUnknown_0202E8CC + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] +_080BBF5E: + ldr r4, [sp, 0x10] + lsls r0, r4, 24 + lsrs r6, r0, 24 + ldr r5, [sp, 0xC] + cmp r6, r5 + bcs _080BBF6C + b _080BBE2C +_080BBF6C: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BBF7C: .4byte gSaveBlock1 + 0x1A1A +_080BBF80: .4byte gSaveBlock1 +_080BBF84: .4byte gDecorations +_080BBF88: .4byte gMapHeader +_080BBF8C: .4byte gUnknown_0202E8CC +_080BBF90: .4byte gUnknown_0202E8D0 +_080BBF94: .4byte gUnknown_0202E8D2 +_080BBF98: .4byte 0x00003f20 +_080BBF9C: .4byte gScriptResult +_080BBFA0: .4byte gDecorations + 0x1C + thumb_func_end sub_80BBDD0 + + thumb_func_start sub_80BBFA4 +sub_80BBFA4: @ 80BBFA4 + push {r4,r5,lr} + ldr r0, _080BBFCC @ =0x00004054 + bl VarGet + ldr r5, _080BBFD0 @ =0x0000401f + ldr r4, _080BBFD4 @ =gUnknown_083D13EC + lsls r0, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r1, [r0] + adds r0, r5, 0 + bl VarSet + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BBFCC: .4byte 0x00004054 +_080BBFD0: .4byte 0x0000401f +_080BBFD4: .4byte gUnknown_083D13EC + thumb_func_end sub_80BBFA4 + + thumb_func_start sub_80BBFD8 +sub_80BBFD8: @ 80BBFD8 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r3, 0 + ldrb r0, [r4, 0x3] + cmp r3, r0 + bge _080BC030 + ldr r6, _080BC01C @ =gUnknown_020387DC +_080BBFE8: + lsls r3, 16 + asrs r1, r3, 16 + ldr r2, [r4, 0x10] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x5] + cmp r0, 0x8 + bne _080BC020 + movs r0, 0 + ldrsh r1, [r5, r0] + ldrh r0, [r2] + adds r0, 0x7 + cmp r1, r0 + bne _080BC020 + movs r0, 0x2 + ldrsh r1, [r5, r0] + ldrh r0, [r2, 0x2] + adds r0, 0x7 + cmp r1, r0 + bne _080BC020 + ldr r0, [r2, 0x8] + strb r0, [r6] + b _080BC030 + .align 2, 0 +_080BC01C: .4byte gUnknown_020387DC +_080BC020: + movs r1, 0x80 + lsls r1, 9 + adds r0, r3, r1 + lsrs r3, r0, 16 + asrs r0, 16 + ldrb r1, [r4, 0x3] + cmp r0, r1 + blt _080BBFE8 +_080BC030: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BBFD8 + + thumb_func_start sub_80BC038 +sub_80BC038: @ 80BC038 + push {lr} + bl sub_80BBFD8 + bl sub_80BB5E4 + ldr r0, _080BC04C @ =gUnknown_081A2E14 + bl ScriptContext1_SetupScript + pop {r0} + bx r0 + .align 2, 0 +_080BC04C: .4byte gUnknown_081A2E14 + thumb_func_end sub_80BC038 + + thumb_func_start sub_80BC050 +sub_80BC050: @ 80BC050 + push {lr} + bl sub_80BB5D0 + bl sub_80BB5E4 + ldr r0, _080BC068 @ =gScriptResult + ldrh r0, [r0] + cmp r0, 0x1 + beq _080BC06C + movs r0, 0x1 + b _080BC06E + .align 2, 0 +_080BC068: .4byte gScriptResult +_080BC06C: + movs r0, 0 +_080BC06E: + pop {r1} + bx r1 + thumb_func_end sub_80BC050 + + thumb_func_start sub_80BC074 +sub_80BC074: @ 80BC074 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _080BC098 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r4, r0, r1 + movs r1, 0x8 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080BC0AC + cmp r0, 0x1 + bgt _080BC09C + cmp r0, 0 + beq _080BC0A2 + b _080BC0E4 + .align 2, 0 +_080BC098: .4byte gTasks +_080BC09C: + cmp r0, 0x2 + beq _080BC0C4 + b _080BC0E4 +_080BC0A2: + bl ScriptContext2_Enable + movs r0, 0x1 + strh r0, [r4, 0x8] + b _080BC0E4 +_080BC0AC: + ldr r0, _080BC0C0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080BC0E4 + movs r0, 0x2 + strh r0, [r4, 0x8] + b _080BC0E4 + .align 2, 0 +_080BC0C0: .4byte gPaletteFade +_080BC0C4: + movs r0, 0x7E + bl copy_saved_warp2_bank_and_enter_x_to_warp1 + bl warp_in + ldr r0, _080BC0EC @ =gUnknown_0300485C + ldr r1, _080BC0F0 @ =mapldr_default + str r1, [r0] + ldr r0, _080BC0F4 @ =CB2_LoadMap + bl SetMainCallback2 + bl ScriptContext2_Disable + adds r0, r5, 0 + bl DestroyTask +_080BC0E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC0EC: .4byte gUnknown_0300485C +_080BC0F0: .4byte mapldr_default +_080BC0F4: .4byte CB2_LoadMap + thumb_func_end sub_80BC074 + + thumb_func_start sub_80BC0F8 +sub_80BC0F8: @ 80BC0F8 + push {lr} + ldr r0, _080BC110 @ =sub_80BC074 + movs r1, 0 + bl CreateTask + movs r0, 0x1 + movs r1, 0 + bl fade_screen + pop {r0} + bx r0 + .align 2, 0 +_080BC110: .4byte sub_80BC074 + thumb_func_end sub_80BC0F8 + + thumb_func_start sub_80BC114 +sub_80BC114: @ 80BC114 + push {lr} + ldr r0, _080BC12C @ =gSaveBlock1 + ldr r1, _080BC130 @ =0x00001a08 + adds r0, r1 + ldr r1, _080BC134 @ =gUnknown_020387DC + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BC13C + ldr r1, _080BC138 @ =gScriptResult + movs r0, 0x1 + b _080BC140 + .align 2, 0 +_080BC12C: .4byte gSaveBlock1 +_080BC130: .4byte 0x00001a08 +_080BC134: .4byte gUnknown_020387DC +_080BC138: .4byte gScriptResult +_080BC13C: + ldr r1, _080BC148 @ =gScriptResult + movs r0, 0 +_080BC140: + strh r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BC148: .4byte gScriptResult + thumb_func_end sub_80BC114 + + thumb_func_start sub_80BC14C +sub_80BC14C: @ 80BC14C + push {r4,r5,lr} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r5, _080BC174 @ =gSaveBlock1 + ldr r4, _080BC178 @ =0x00001a08 +_080BC158: + lsls r0, r2, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r5 + adds r0, r4 + ldrb r0, [r0] + cmp r0, r3 + bne _080BC17C + lsls r0, r2, 24 + lsrs r0, 24 + b _080BC18A + .align 2, 0 +_080BC174: .4byte gSaveBlock1 +_080BC178: .4byte 0x00001a08 +_080BC17C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BC158 + movs r0, 0 +_080BC18A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC14C + + thumb_func_start sub_80BC190 +sub_80BC190: @ 80BC190 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r1, 24 + lsls r4, r1, 2 + adds r4, r1 + lsls r4, 5 + ldr r0, _080BC1C8 @ =gSaveBlock1 + 0x1A0A + adds r4, r0 + adds r0, r4, 0 + bl sub_80BB8A8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringCopyN + movs r1, 0xFF + strb r1, [r0] + ldr r1, _080BC1CC @ =gOtherText_PlayersBase + adds r0, r5, 0 + bl StringAppend + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080BC1C8: .4byte gSaveBlock1 + 0x1A0A +_080BC1CC: .4byte gOtherText_PlayersBase + thumb_func_end sub_80BC190 + + thumb_func_start GetSecretBaseMapName +GetSecretBaseMapName: @ 80BC1D0 + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + ldr r6, _080BC214 @ =gUnknown_020387DC + ldr r5, _080BC218 @ =gSaveBlock1 + ldr r4, _080BC21C @ =0x00004054 + adds r0, r4, 0 + bl VarGet + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r5 + ldr r0, _080BC220 @ =0x00001a08 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r6] + adds r0, r4, 0 + bl VarGet + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl sub_80BC190 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080BC214: .4byte gUnknown_020387DC +_080BC218: .4byte gSaveBlock1 +_080BC21C: .4byte 0x00004054 +_080BC220: .4byte 0x00001a08 + thumb_func_end GetSecretBaseMapName + + thumb_func_start sub_80BC224 +sub_80BC224: @ 80BC224 + push {r4,r5,lr} + ldr r0, _080BC25C @ =0x00004054 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + ldr r0, _080BC260 @ =gSaveBlock1 + 0x1A0A + adds r4, r0 + ldr r5, _080BC264 @ =gStringVar1 + adds r0, r4, 0 + bl sub_80BB8A8 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r5, 0 + adds r1, r4, 0 + bl StringCopyN + movs r1, 0xFF + strb r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC25C: .4byte 0x00004054 +_080BC260: .4byte gSaveBlock1 + 0x1A0A +_080BC264: .4byte gStringVar1 + thumb_func_end sub_80BC224 + + thumb_func_start sub_80BC268 +sub_80BC268: @ 80BC268 + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BC288 @ =gSaveBlock1 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BC28C @ =0x00001a09 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 6 + cmp r0, 0 + bne _080BC290 + movs r0, 0 + b _080BC292 + .align 2, 0 +_080BC288: .4byte gSaveBlock1 +_080BC28C: .4byte 0x00001a09 +_080BC290: + movs r0, 0x1 +_080BC292: + pop {r1} + bx r1 + thumb_func_end sub_80BC268 + + thumb_func_start sub_80BC298 +sub_80BC298: @ 80BC298 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x1A + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1B + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1C + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1D + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1E + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x1F + bl GetMonData + adds r4, r0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r4, 0 + movs r1, 0x6 + bl __udivsi3 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC298 + + thumb_func_start sub_80BC300 +sub_80BC300: @ 80BC300 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0 + mov r10, r0 + movs r6, 0 + mov r9, r6 +_080BC314: + movs r4, 0 + lsls r3, r6, 2 + lsls r2, r6, 1 + ldr r7, _080BC424 @ =gPlayerParty + adds r1, r6, 0x1 + str r1, [sp] + adds r1, r3, 0 +_080BC322: + adds r0, r1, r4 + lsls r0, 1 + ldr r5, _080BC428 @ =gSaveBlock1 + 0x1A54 + adds r0, r5, r0 + mov r5, r9 + strh r5, [r0] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x3 + bls _080BC322 + ldr r1, _080BC42C @ =gSaveBlock1 + 0x1A84 + adds r0, r1, r2 + strh r5, [r0] + ldr r5, _080BC430 @ =gSaveBlock1 + 0x1A90 + adds r0, r5, r2 + mov r1, r9 + strh r1, [r0] + ldr r2, _080BC434 @ =gSaveBlock1 + 0x1A9C + adds r0, r2, r6 + mov r5, r9 + strb r5, [r0] + ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C + adds r0, r1, r3 + mov r2, r9 + str r2, [r0] + ldr r3, _080BC43C @ =gSaveBlock1 + 0x1AA2 + adds r0, r3, r6 + strb r2, [r0] + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + adds r4, r5, r7 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080BC408 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080BC408 + movs r4, 0 + mov r0, r10 + lsls r0, 2 + mov r8, r0 + mov r1, r10 + lsls r7, r1, 1 + adds r1, 0x1 + str r1, [sp, 0x4] + ldr r2, _080BC424 @ =gPlayerParty +_080BC38E: + adds r1, r4, 0 + adds r1, 0xD + adds r0, r5, r2 + str r2, [sp, 0x8] + bl GetMonData + mov r3, r8 + adds r1, r3, r4 + lsls r1, 1 + ldr r3, _080BC428 @ =gSaveBlock1 + 0x1A54 + adds r1, r3, r1 + strh r0, [r1] + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r2, [sp, 0x8] + cmp r4, 0x3 + bls _080BC38E + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + ldr r0, _080BC424 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r5, _080BC42C @ =gSaveBlock1 + 0x1A84 + adds r1, r5, r7 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + ldr r2, _080BC430 @ =gSaveBlock1 + 0x1A90 + adds r1, r2, r7 + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, _080BC434 @ =gSaveBlock1 + 0x1A9C + add r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + ldr r1, _080BC438 @ =gSaveBlock1 + 0x1A3C + add r1, r8 + str r0, [r1] + adds r0, r4, 0 + bl sub_80BC298 + ldr r1, _080BC43C @ =gSaveBlock1 + 0x1AA2 + add r1, r10 + strb r0, [r1] + ldr r3, [sp, 0x4] + lsls r0, r3, 16 + lsrs r0, 16 + mov r10, r0 +_080BC408: + ldr r5, [sp] + lsls r0, r5, 16 + lsrs r6, r0, 16 + cmp r6, 0x5 + bls _080BC314 + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BC424: .4byte gPlayerParty +_080BC428: .4byte gSaveBlock1 + 0x1A54 +_080BC42C: .4byte gSaveBlock1 + 0x1A84 +_080BC430: .4byte gSaveBlock1 + 0x1A90 +_080BC434: .4byte gSaveBlock1 + 0x1A9C +_080BC438: .4byte gSaveBlock1 + 0x1A3C +_080BC43C: .4byte gSaveBlock1 + 0x1AA2 + thumb_func_end sub_80BC300 + + thumb_func_start sub_80BC440 +sub_80BC440: @ 80BC440 + push {r4,r5,lr} + ldr r4, _080BC45C @ =gSaveBlock1 + ldr r0, _080BC460 @ =0x00001a16 + adds r4, r0 + ldrh r5, [r4] + movs r0, 0 + bl sub_80BB594 + strh r5, [r4] + bl sub_80BC0F8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC45C: .4byte gSaveBlock1 +_080BC460: .4byte 0x00001a16 + thumb_func_end sub_80BC440 + + thumb_func_start sub_80BC464 +sub_80BC464: @ 80BC464 + push {lr} + movs r0, 0x14 + bl sav12_xor_increment + bl sub_80BC440 + pop {r0} + bx r0 + thumb_func_end sub_80BC464 + + thumb_func_start sub_80BC474 +sub_80BC474: @ 80BC474 + push {r4-r7,lr} + ldr r0, _080BC4CC @ =gMapHeader + ldr r4, [r0, 0x4] + movs r6, 0 + ldrb r0, [r4, 0x3] + cmp r6, r0 + bcs _080BC504 + ldr r3, _080BC4D0 @ =gSaveBlock1 + 0x1A08 +_080BC484: + ldr r2, [r4, 0x10] + lsls r1, r6, 1 + adds r0, r1, r6 + lsls r0, 2 + adds r2, r0, r2 + ldrb r0, [r2, 0x5] + adds r7, r1, 0 + cmp r0, 0x8 + bne _080BC4F8 + ldrb r1, [r3] + ldr r0, [r2, 0x8] + cmp r1, r0 + bne _080BC4F8 + ldrh r0, [r2] + adds r0, 0x7 + ldrh r1, [r2, 0x2] + adds r1, 0x7 + bl MapGridGetMetatileIdAt + movs r1, 0 + ldr r5, _080BC4D4 @ =gUnknown_083D1358 + lsls r0, 16 + asrs r2, r0, 16 +_080BC4B2: + lsls r0, r1, 2 + adds r3, r0, r5 + ldrh r0, [r3, 0x2] + cmp r0, r2 + beq _080BC4D8 + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0x6 + bls _080BC4B2 +_080BC4C6: + bl DrawWholeMapView + b _080BC504 + .align 2, 0 +_080BC4CC: .4byte gMapHeader +_080BC4D0: .4byte gSaveBlock1 + 0x1A08 +_080BC4D4: .4byte gUnknown_083D1358 +_080BC4D8: + ldr r0, [r4, 0x10] + adds r1, r7, r6 + lsls r1, 2 + adds r1, r0 + ldrh r0, [r1] + adds r0, 0x7 + ldrh r1, [r1, 0x2] + adds r1, 0x7 + ldrh r3, [r3] + movs r4, 0xC0 + lsls r4, 4 + adds r2, r4, 0 + orrs r2, r3 + bl MapGridSetMetatileIdAt + b _080BC4C6 +_080BC4F8: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + ldrb r0, [r4, 0x3] + cmp r6, r0 + bcc _080BC484 +_080BC504: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BC474 + + thumb_func_start sub_80BC50C +sub_80BC50C: @ 80BC50C + push {r4,r5,lr} + bl sub_80BC474 + movs r0, 0x14 + bl sav12_xor_increment + ldr r4, _080BC530 @ =gSaveBlock1 + ldr r0, _080BC534 @ =0x00001a16 + adds r4, r0 + ldrh r5, [r4] + movs r0, 0 + bl sub_80BB594 + strh r5, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC530: .4byte gSaveBlock1 +_080BC534: .4byte 0x00001a16 + thumb_func_end sub_80BC50C + + thumb_func_start sub_80BC538 +sub_80BC538: @ 80BC538 + push {r4,r5,lr} + movs r5, 0 + movs r4, 0x1 +_080BC53E: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC554 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080BC554: + lsls r0, r4, 16 + movs r1, 0x80 + lsls r1, 9 + adds r0, r1 + lsrs r4, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BC53E + adds r0, r5, 0 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BC538 + + thumb_func_start sub_80BC56C +sub_80BC56C: @ 80BC56C + push {lr} + ldr r0, _080BC58C @ =gUnknown_020387DC + ldrb r0, [r0] + bl sub_80BC14C + lsls r0, 24 + lsrs r0, 24 + bl sub_80BC268 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x1 + bne _080BC594 + ldr r0, _080BC590 @ =gScriptResult + strh r1, [r0] + b _080BC5B2 + .align 2, 0 +_080BC58C: .4byte gUnknown_020387DC +_080BC590: .4byte gScriptResult +_080BC594: + bl sub_80BC538 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x9 + bls _080BC5AC + ldr r1, _080BC5A8 @ =gScriptResult + movs r0, 0x2 + b _080BC5B0 + .align 2, 0 +_080BC5A8: .4byte gScriptResult +_080BC5AC: + ldr r1, _080BC5B8 @ =gScriptResult + movs r0, 0 +_080BC5B0: + strh r0, [r1] +_080BC5B2: + pop {r0} + bx r0 + .align 2, 0 +_080BC5B8: .4byte gScriptResult + thumb_func_end sub_80BC56C + + thumb_func_start sub_80BC5BC +sub_80BC5BC: @ 80BC5BC + push {lr} + ldr r0, _080BC5F8 @ =gUnknown_020387DC + ldrb r0, [r0] + bl sub_80BC14C + ldr r2, _080BC5FC @ =gSaveBlock1 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BC600 @ =0x00001a09 + adds r1, r0 + ldrb r3, [r1] + lsrs r2, r3, 6 + movs r0, 0x1 + eors r2, r0 + lsls r2, 6 + movs r0, 0x3F + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + movs r0, 0x86 + lsls r0, 1 + bl FlagSet + pop {r0} + bx r0 + .align 2, 0 +_080BC5F8: .4byte gUnknown_020387DC +_080BC5FC: .4byte gSaveBlock1 +_080BC600: .4byte 0x00001a09 + thumb_func_end sub_80BC5BC + + thumb_func_start sub_80BC604 +sub_80BC604: @ 80BC604 + push {lr} + ldr r0, _080BC614 @ =sub_80FE264 + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080BC614: .4byte sub_80FE264 + thumb_func_end sub_80BC604 + + thumb_func_start sub_80BC618 +sub_80BC618: @ 80BC618 + push {lr} + ldr r0, _080BC628 @ =sub_80BC62C + movs r1, 0 + bl CreateTask + pop {r0} + bx r0 + .align 2, 0 +_080BC628: .4byte sub_80BC62C + thumb_func_end sub_80BC618 + + thumb_func_start sub_80BC62C +sub_80BC62C: @ 80BC62C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + bl ScriptContext2_Enable + bl sub_80F944C + bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BC688 @ =gTasks + 0x8 + adds r4, r0, r1 + bl sub_80BC538 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + adds r1, r0, 0 + cmp r1, 0 + beq _080BC694 + cmp r1, 0x7 + ble _080BC65E + movs r0, 0x7 +_080BC65E: + strh r0, [r4, 0x6] + movs r0, 0 + strh r0, [r4, 0x2] + strh r0, [r4, 0x4] + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_80BC7D8 + ldr r1, _080BC68C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BC690 @ =sub_80BC824 + str r1, [r0] + b _080BC6A0 + .align 2, 0 +_080BC688: .4byte gTasks + 0x8 +_080BC68C: .4byte gTasks +_080BC690: .4byte sub_80BC824 +_080BC694: + ldr r1, _080BC6A8 @ =gSecretBaseText_NoRegistry + ldr r2, _080BC6AC @ =sub_80BCC54 + adds r0, r5, 0 + movs r3, 0 + bl DisplayItemMessageOnField +_080BC6A0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC6A8: .4byte gSecretBaseText_NoRegistry +_080BC6AC: .4byte sub_80BCC54 + thumb_func_end sub_80BC62C + + thumb_func_start sub_80BC6B0 +sub_80BC6B0: @ 80BC6B0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BC6D8 @ =gTasks + 0x8 + adds r1, r0 + mov r8, r1 + movs r4, 0 + movs r6, 0 + movs r5, 0x1 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r6, r0 + bne _080BC6DC + movs r4, 0x1 + b _080BC706 + .align 2, 0 +_080BC6D8: .4byte gTasks + 0x8 +_080BC6DC: + adds r0, r5, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC6F0 + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_080BC6F0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bhi _080BC706 + mov r1, r8 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r4, r0 + bne _080BC6DC + adds r4, r5, 0 +_080BC706: + adds r5, r4, 0 + cmp r5, 0x13 + bhi _080BC75A + ldr r7, _080BC7A0 @ =gStringVar1 +_080BC70E: + adds r0, r5, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC750 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80BC190 + lsls r3, r6, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + adds r0, r7, 0 + movs r1, 0x12 + adds r2, r4, 0 + bl MenuPrint + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x8 + beq _080BC75A +_080BC750: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BC70E +_080BC75A: + cmp r6, 0x7 + bhi _080BC7A8 + lsls r3, r6, 1 + adds r4, r3, 0x2 + lsls r4, 24 + lsrs r4, 24 + adds r3, 0x3 + lsls r3, 24 + lsrs r3, 24 + movs r0, 0x12 + adds r1, r4, 0 + movs r2, 0x1C + bl MenuFillWindowRectWithBlankTile + ldr r0, _080BC7A4 @ =gUnknownText_Exit + movs r1, 0x12 + adds r2, r4, 0 + bl MenuPrint + movs r0, 0x1 + bl SetBgTilemapBuffer + cmp r6, 0x7 + beq _080BC7B2 + lsls r1, r6, 25 + movs r0, 0x80 + lsls r0, 19 + adds r1, r0 + lsrs r1, 24 + movs r0, 0x12 + movs r2, 0x1C + movs r3, 0x12 + bl MenuFillWindowRectWithBlankTile + b _080BC7B2 + .align 2, 0 +_080BC7A0: .4byte gStringVar1 +_080BC7A4: .4byte gUnknownText_Exit +_080BC7A8: + movs r0, 0x1 + movs r1, 0xBC + movs r2, 0x98 + bl sub_80F953C +_080BC7B2: + mov r1, r8 + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0 + bne _080BC7C4 + movs r0, 0 + bl SetBgTilemapBuffer + b _080BC7CE +_080BC7C4: + movs r0, 0 + movs r1, 0xBC + movs r2, 0x8 + bl sub_80F953C +_080BC7CE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BC6B0 + + thumb_func_start sub_80BC7D8 +sub_80BC7D8: @ 80BC7D8 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080BC820 @ =gTasks + 0x8 + adds r4, r0 + movs r0, 0x11 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuDrawTextWindow + ldrb r3, [r4, 0x6] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r4, 0x2] + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x12 + movs r2, 0x2 + bl InitMenu + adds r0, r5, 0 + bl sub_80BC6B0 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BC820: .4byte gTasks + 0x8 + thumb_func_end sub_80BC7D8 + + thumb_func_start sub_80BC824 +sub_80BC824: @ 80BC824 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + ldr r1, _080BC858 @ =gTasks + 0x8 + adds r4, r0, r1 + ldr r2, _080BC85C @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BC874 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080BC860 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + b _080BC8B6 + .align 2, 0 +_080BC858: .4byte gTasks + 0x8 +_080BC85C: .4byte gMain +_080BC860: + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4, 0x4] + subs r0, 0x1 + b _080BC8A4 +_080BC874: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BC8C2 + movs r0, 0x2 + ldrsh r1, [r4, r0] + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r1, r0 + bne _080BC8AE + movs r1, 0x4 + ldrsh r0, [r4, r1] + movs r2, 0x2 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r0, r1 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + ldrh r0, [r4, 0x4] + adds r0, 0x1 +_080BC8A4: + strh r0, [r4, 0x4] + adds r0, r5, 0 + bl sub_80BC6B0 + b _080BC940 +_080BC8AE: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 +_080BC8B6: + bl MoveMenuCursor + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x2] + b _080BC940 +_080BC8C2: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BC91C + movs r0, 0x5 + bl PlaySE + movs r1, 0x2 + ldrsh r0, [r4, r1] + movs r2, 0x4 + ldrsh r1, [r4, r2] + adds r0, r1 + movs r2, 0 + ldrsh r1, [r4, r2] + cmp r0, r1 + bne _080BC8FC + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r5, 0 + bl sub_80BCC54 + b _080BC940 +_080BC8FC: + bl sub_8072DEC + ldrb r0, [r4, 0x4] + ldrb r1, [r4, 0x2] + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl sub_80BC948 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x8] + adds r0, r5, 0 + bl sub_80BC980 + b _080BC940 +_080BC91C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BC940 + movs r0, 0x5 + bl PlaySE + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r6, 0 + bl sub_80BCC54 +_080BC940: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BC824 + + thumb_func_start sub_80BC948 +sub_80BC948: @ 80BC948 + push {r4-r6,lr} + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + movs r4, 0x1 +_080BC952: + adds r0, r4, 0 + bl sub_80BC268 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BC96E + cmp r6, r5 + bne _080BC968 + adds r0, r4, 0 + b _080BC97A +_080BC968: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_080BC96E: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x13 + bls _080BC952 + movs r0, 0 +_080BC97A: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BC948 + + thumb_func_start sub_80BC980 +sub_80BC980: @ 80BC980 + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + bl sub_80F996C + movs r0, 0x1 + bl sub_80F996C + movs r0, 0x1 + movs r1, 0 + movs r2, 0xC + movs r3, 0x5 + bl MenuDrawTextWindow + ldr r3, _080BC9D8 @ =gUnknown_083D13D4 + movs r0, 0x2 + movs r1, 0x1 + movs r2, 0x2 + bl PrintMenuItems + movs r0, 0 + str r0, [sp] + movs r0, 0xA + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x2 + movs r2, 0x1 + movs r3, 0x2 + bl InitMenu + ldr r1, _080BC9DC @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BC9E0 @ =sub_80BC9E4 + str r1, [r0] + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BC9D8: .4byte gUnknown_083D13D4 +_080BC9DC: .4byte gTasks +_080BC9E0: .4byte sub_80BC9E4 + thumb_func_end sub_80BC980 + + thumb_func_start sub_80BC9E4 +sub_80BC9E4: @ 80BC9E4 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r4, r5, 0 + ldr r2, _080BCA14 @ =gMain + ldrh r1, [r2, 0x30] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080BCA18 + bl GetMenuCursorPos + lsls r0, 24 + cmp r0, 0 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + negs r0, r0 + bl MoveMenuCursor + b _080BCA7C + .align 2, 0 +_080BCA14: .4byte gMain +_080BCA18: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080BCA3A + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + bl MoveMenuCursor + b _080BCA7C +_080BCA3A: + ldrh r1, [r2, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080BCA68 + movs r0, 0x5 + bl PlaySE + ldr r4, _080BCA64 @ =gUnknown_083D13D4 + bl GetMenuCursorPos + lsls r0, 24 + lsrs r0, 21 + adds r4, 0x4 + adds r0, r4 + ldr r1, [r0] + adds r0, r5, 0 + bl _call_via_r1 + b _080BCA7C + .align 2, 0 +_080BCA64: .4byte gUnknown_083D13D4 +_080BCA68: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080BCA7C + movs r0, 0x5 + bl PlaySE + adds r0, r4, 0 + bl sub_80BCBF8 +_080BCA7C: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BC9E4 + + thumb_func_start sub_80BCA84 +sub_80BCA84: @ 80BCA84 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + ldr r0, _080BCAD8 @ =gTasks + 0x8 + adds r4, r0 + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + bl sub_8072DEC + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r0, _080BCADC @ =gStringVar1 + ldrb r1, [r4, 0x8] + bl sub_80BC190 + ldr r4, _080BCAE0 @ =gStringVar4 + ldr r1, _080BCAE4 @ =gOtherText_OkayToDeleteFromRegistry + adds r0, r4, 0 + bl StringExpandPlaceholders + ldr r2, _080BCAE8 @ =sub_80BCAEC + adds r0, r5, 0 + adds r1, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCAD8: .4byte gTasks + 0x8 +_080BCADC: .4byte gStringVar1 +_080BCAE0: .4byte gStringVar4 +_080BCAE4: .4byte gOtherText_OkayToDeleteFromRegistry +_080BCAE8: .4byte sub_80BCAEC + thumb_func_end sub_80BCA84 + + thumb_func_start sub_80BCAEC +sub_80BCAEC: @ 80BCAEC + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1 + bl DisplayYesNoMenu + ldr r1, _080BCB0C @ =gUnknown_083D13E4 + adds r0, r4, 0 + bl sub_80F914C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCB0C: .4byte gUnknown_083D13E4 + thumb_func_end sub_80BCAEC + + thumb_func_start sub_80BCB10 +sub_80BCB10: @ 80BCB10 + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + adds r5, r0, 0 + lsls r0, r5, 2 + adds r0, r5 + lsls r6, r0, 3 + ldr r7, _080BCB80 @ =gTasks + 0x8 + adds r4, r6, r7 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + ldr r2, _080BCB84 @ =gSaveBlock1 + movs r0, 0x8 + ldrsh r1, [r4, r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r2 + ldr r1, _080BCB88 @ =0x00001a09 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x3F + ands r1, r2 + strb r1, [r0] + ldrh r0, [r4] + subs r0, 0x1 + strh r0, [r4] + ldrh r1, [r4, 0x4] + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, 0 + ble _080BCB5C + subs r0, r1, 0x1 + strh r0, [r4, 0x4] +_080BCB5C: + movs r1, 0 + ldrsh r0, [r4, r1] + cmp r0, 0x7 + bgt _080BCB6A + ldrh r0, [r4, 0x6] + subs r0, 0x1 + strh r0, [r4, 0x6] +_080BCB6A: + adds r0, r5, 0 + bl sub_80BC7D8 + adds r0, r7, 0 + subs r0, 0x8 + adds r0, r6, r0 + ldr r1, _080BCB8C @ =sub_80BC824 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCB80: .4byte gTasks + 0x8 +_080BCB84: .4byte gSaveBlock1 +_080BCB88: .4byte 0x00001a09 +_080BCB8C: .4byte sub_80BC824 + thumb_func_end sub_80BCB10 + + thumb_func_start sub_80BCB90 +sub_80BCB90: @ 80BCB90 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x14 + movs r1, 0x8 + movs r2, 0x1A + movs r3, 0xD + bl MenuZeroFillWindowRect + ldr r1, _080BCBB8 @ =gOtherText_RegisteredDataDeleted + ldr r2, _080BCBBC @ =sub_80BCB10 + adds r0, r4, 0 + movs r3, 0 + bl DisplayItemMessageOnField + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCBB8: .4byte gOtherText_RegisteredDataDeleted +_080BCBBC: .4byte sub_80BCB10 + thumb_func_end sub_80BCB90 + + thumb_func_start sub_80BCBC0 +sub_80BCBC0: @ 80BCBC0 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0 + movs r1, 0 + movs r2, 0x1D + movs r3, 0x13 + bl MenuZeroFillWindowRect + adds r0, r4, 0 + bl sub_80BC7D8 + ldr r1, _080BCBF0 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + ldr r1, _080BCBF4 @ =sub_80BC824 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCBF0: .4byte gTasks +_080BCBF4: .4byte sub_80BC824 + thumb_func_end sub_80BCBC0 + + thumb_func_start sub_80BCBF8 +sub_80BCBF8: @ 80BCBF8 + push {r4,r5,lr} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 3 + ldr r5, _080BCC4C @ =gTasks + 0x8 + adds r0, r4, r5 + ldrb r3, [r0, 0x6] + adds r3, 0x1 + lsls r3, 24 + lsrs r3, 24 + ldrb r0, [r0, 0x2] + str r0, [sp] + movs r0, 0xB + str r0, [sp, 0x4] + movs r0, 0 + movs r1, 0x12 + movs r2, 0x2 + bl InitMenu + movs r0, 0x1 + movs r1, 0 + movs r2, 0xC + movs r3, 0x5 + bl MenuZeroFillWindowRect + movs r0, 0 + bl sub_80F98DC + movs r0, 0x1 + bl sub_80F98DC + subs r5, 0x8 + adds r4, r5 + ldr r0, _080BCC50 @ =sub_80BC824 + str r0, [r4] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCC4C: .4byte gTasks + 0x8 +_080BCC50: .4byte sub_80BC824 + thumb_func_end sub_80BCBF8 + + thumb_func_start sub_80BCC54 +sub_80BCC54: @ 80BCC54 + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080BCC84 @ =0x00004054 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + bl BuyMenuFreeMemory + movs r0, 0 + bl SetBgTilemapBuffer + movs r0, 0x1 + bl SetBgTilemapBuffer + cmp r4, 0 + bne _080BCC8C + ldr r0, _080BCC88 @ =gUnknown_0815F399 + bl ScriptContext1_SetupScript + b _080BCC92 + .align 2, 0 +_080BCC84: .4byte 0x00004054 +_080BCC88: .4byte gUnknown_0815F399 +_080BCC8C: + ldr r0, _080BCCA0 @ =gUnknown_0815F49A + bl ScriptContext1_SetupScript +_080BCC92: + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080BCCA0: .4byte gUnknown_0815F49A + thumb_func_end sub_80BCC54 + + thumb_func_start sub_80BCCA4 +sub_80BCCA4: @ 80BCCA4 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080BCCDC @ =gSaveBlock1 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + adds r4, r1 + ldr r1, _080BCCE0 @ =0x00001a11 + adds r0, r4, r1 + ldrb r0, [r0] + movs r1, 0x5 + bl __umodsi3 + ldr r1, _080BCCE4 @ =0x00001a09 + adds r4, r1 + ldrb r2, [r4] + lsls r2, 27 + lsrs r2, 31 + lsls r1, r2, 2 + adds r1, r2 + adds r0, r1 + lsls r0, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080BCCDC: .4byte gSaveBlock1 +_080BCCE0: .4byte 0x00001a11 +_080BCCE4: .4byte 0x00001a09 + thumb_func_end sub_80BCCA4 + + thumb_func_start sub_80BCCE8 +sub_80BCCE8: @ 80BCCE8 + push {lr} + ldr r0, _080BCD08 @ =0x00004054 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + adds r1, r0, 0 + cmp r0, 0 + bne _080BCD10 + ldr r0, _080BCD0C @ =UnknownString_81A1BB2 + b _080BCD72 + .align 2, 0 +_080BCD08: .4byte 0x00004054 +_080BCD0C: .4byte UnknownString_81A1BB2 +_080BCD10: + cmp r0, 0x1 + bne _080BCD1C + ldr r0, _080BCD18 @ =UnknownString_81A1F67 + b _080BCD72 + .align 2, 0 +_080BCD18: .4byte UnknownString_81A1F67 +_080BCD1C: + cmp r0, 0x2 + bne _080BCD28 + ldr r0, _080BCD24 @ =UnknownString_81A2254 + b _080BCD72 + .align 2, 0 +_080BCD24: .4byte UnknownString_81A2254 +_080BCD28: + cmp r0, 0x3 + bne _080BCD34 + ldr r0, _080BCD30 @ =UnknownString_81A25C3 + b _080BCD72 + .align 2, 0 +_080BCD30: .4byte UnknownString_81A25C3 +_080BCD34: + cmp r0, 0x4 + bne _080BCD40 + ldr r0, _080BCD3C @ =UnknownString_81A2925 + b _080BCD72 + .align 2, 0 +_080BCD3C: .4byte UnknownString_81A2925 +_080BCD40: + cmp r0, 0x5 + bne _080BCD4C + ldr r0, _080BCD48 @ =UnknownString_81A1D74 + b _080BCD72 + .align 2, 0 +_080BCD48: .4byte UnknownString_81A1D74 +_080BCD4C: + cmp r0, 0x6 + bne _080BCD58 + ldr r0, _080BCD54 @ =UnknownString_81A20C9 + b _080BCD72 + .align 2, 0 +_080BCD54: .4byte UnknownString_81A20C9 +_080BCD58: + cmp r0, 0x7 + bne _080BCD64 + ldr r0, _080BCD60 @ =UnknownString_81A2439 + b _080BCD72 + .align 2, 0 +_080BCD60: .4byte UnknownString_81A2439 +_080BCD64: + cmp r1, 0x8 + beq _080BCD70 + ldr r0, _080BCD6C @ =UnknownString_81A2B2A + b _080BCD72 + .align 2, 0 +_080BCD6C: .4byte UnknownString_81A2B2A +_080BCD70: + ldr r0, _080BCD78 @ =UnknownString_81A2754 +_080BCD72: + pop {r1} + bx r1 + .align 2, 0 +_080BCD78: .4byte UnknownString_81A2754 + thumb_func_end sub_80BCCE8 + + thumb_func_start unref_sub_80BCD7C +unref_sub_80BCD7C: @ 80BCD7C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + movs r5, 0 + ldr r7, _080BCDFC @ =gSaveBlock1 + lsls r1, r0, 2 + adds r1, r0 + lsls r6, r1, 5 + ldr r0, _080BCE00 @ =0x00001a3c + adds r0, r7 + mov r10, r0 + ldr r1, _080BCE04 @ =0x00001a54 + adds r1, r7 + mov r9, r1 + ldr r2, _080BCE08 @ =0x00001a84 + adds r2, r7 + mov r8, r2 + ldr r0, _080BCE0C @ =0x00000115 + mov r12, r0 +_080BCDAA: + lsls r4, r5, 2 + adds r0, r4, r6 + add r0, r10 + adds r3, r5, 0x1 + str r3, [r0] + lsls r0, r5, 3 + adds r0, r6 + add r0, r9 + strh r3, [r0] + lsls r1, r5, 1 + adds r1, r6 + mov r2, r8 + adds r0, r1, r2 + mov r2, r12 + strh r2, [r0] + ldr r2, _080BCE10 @ =0x00001a90 + adds r0, r7, r2 + adds r1, r0 + strh r3, [r1] + adds r2, r5, r6 + ldr r1, _080BCE14 @ =0x00001a9c + adds r0, r7, r1 + adds r0, r2, r0 + adds r1, r5, 0x5 + strb r1, [r0] + ldr r1, _080BCE18 @ =0x00001aa2 + adds r0, r7, r1 + adds r2, r0 + adds r4, r5 + strb r4, [r2] + lsls r3, 16 + lsrs r5, r3, 16 + cmp r5, 0 + beq _080BCDAA + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCDFC: .4byte gSaveBlock1 +_080BCE00: .4byte 0x00001a3c +_080BCE04: .4byte 0x00001a54 +_080BCE08: .4byte 0x00001a84 +_080BCE0C: .4byte 0x00000115 +_080BCE10: .4byte 0x00001a90 +_080BCE14: .4byte 0x00001a9c +_080BCE18: .4byte 0x00001aa2 + thumb_func_end unref_sub_80BCD7C + + thumb_func_start sub_80BCE1C +sub_80BCE1C: @ 80BCE1C + push {r4,lr} + ldr r0, _080BCE44 @ =0x00004054 + bl VarGet + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0x1 + bl sub_810FB10 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 5 + ldr r1, _080BCE48 @ =gSaveBlock1 + 0x1A08 + adds r0, r1 + bl CreateSecretBaseEnemyParty + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BCE44: .4byte 0x00004054 +_080BCE48: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BCE1C + + thumb_func_start sub_80BCE4C +sub_80BCE4C: @ 80BCE4C + push {lr} + ldr r0, _080BCE80 @ =0x00004054 + bl VarGet + ldr r2, _080BCE84 @ =gSaveBlock1 + lsls r0, 16 + lsrs r0, 16 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 5 + adds r1, r2 + ldr r0, _080BCE88 @ =gScriptResult + ldrb r0, [r0] + ldr r2, _080BCE8C @ =0x00001a09 + adds r1, r2 + movs r2, 0x1 + ands r2, r0 + lsls r2, 5 + ldrb r3, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080BCE80: .4byte 0x00004054 +_080BCE84: .4byte gSaveBlock1 +_080BCE88: .4byte gScriptResult +_080BCE8C: .4byte 0x00001a09 + thumb_func_end sub_80BCE4C + + thumb_func_start sub_80BCE90 +sub_80BCE90: @ 80BCE90 + push {r4-r7,lr} + ldr r0, _080BCF04 @ =0x00004054 + bl VarGet + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080BCF08 @ =0x000008c2 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080BCED4 + movs r3, 0 + ldr r7, _080BCF0C @ =gSaveBlock1 + ldr r4, _080BCF10 @ =0x00001a09 + movs r6, 0x21 + negs r6, r6 +_080BCEB2: + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 5 + adds r1, r7 + adds r1, r4 + ldrb r2, [r1] + adds r0, r6, 0 + ands r0, r2 + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x13 + bls _080BCEB2 + ldr r0, _080BCF08 @ =0x000008c2 + bl FlagSet +_080BCED4: + ldr r4, _080BCF14 @ =gUnknown_0202E8CC + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_80BCCA4 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4] + ldr r2, _080BCF18 @ =gScriptResult + ldr r1, _080BCF0C @ =gSaveBlock1 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + adds r0, r1 + ldr r1, _080BCF10 @ =0x00001a09 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r0, 31 + strh r0, [r2] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BCF04: .4byte 0x00004054 +_080BCF08: .4byte 0x000008c2 +_080BCF0C: .4byte gSaveBlock1 +_080BCF10: .4byte 0x00001a09 +_080BCF14: .4byte gUnknown_0202E8CC +_080BCF18: .4byte gScriptResult + thumb_func_end sub_80BCE90 + + thumb_func_start sub_80BCF1C +sub_80BCF1C: @ 80BCF1C + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + ldr r0, _080BCF40 @ =gTasks + 0x8 + adds r4, r1, r0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + beq _080BCF54 + cmp r0, 0x1 + bgt _080BCF44 + cmp r0, 0 + beq _080BCF4A + b _080BD02C + .align 2, 0 +_080BCF40: .4byte gTasks + 0x8 +_080BCF44: + cmp r0, 0x2 + beq _080BD01C + b _080BD02C +_080BCF4A: + adds r0, r4, 0x4 + adds r1, r4, 0x6 + bl PlayerGetDestCoords + b _080BD028 +_080BCF54: + mov r5, sp + adds r5, 0x2 + mov r0, sp + adds r1, r5, 0 + bl PlayerGetDestCoords + mov r0, sp + ldrh r2, [r0] + movs r3, 0 + ldrsh r1, [r0, r3] + movs r3, 0x4 + ldrsh r0, [r4, r3] + cmp r1, r0 + bne _080BCF7C + movs r0, 0 + ldrsh r1, [r5, r0] + movs r3, 0x6 + ldrsh r0, [r4, r3] + cmp r1, r0 + beq _080BD02C +_080BCF7C: + strh r2, [r4, 0x4] + ldrh r0, [r5] + strh r0, [r4, 0x6] + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileBehaviorAt + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl sub_8057350 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFA8 + bl sub_80C6C90 + b _080BD02C +_080BCFA8: + adds r0, r4, 0 + bl sub_8057314 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFD8 + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileIdAt + lsls r0, 16 + asrs r0, 16 + mov r1, sp + movs r3, 0 + ldrsh r1, [r1, r3] + movs r3, 0 + ldrsh r2, [r5, r3] + bl sub_80C68A4 + b _080BD02C +_080BCFD8: + adds r0, r4, 0 + bl sub_8057328 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BCFF6 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + movs r2, 0 + ldrsh r1, [r5, r2] + bl sub_80C6A54 + b _080BD02C +_080BCFF6: + adds r0, r4, 0 + bl sub_805733C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD02C + mov r0, sp + movs r3, 0 + ldrsh r0, [r0, r3] + movs r2, 0 + ldrsh r1, [r5, r2] + bl MapGridGetMetatileIdAt + lsls r0, 16 + asrs r0, 16 + bl sub_80C6C30 + b _080BD02C +_080BD01C: + ldrb r0, [r4, 0x8] + bl FieldEffectActiveListContains + lsls r0, 24 + cmp r0, 0 + bne _080BD02C +_080BD028: + movs r0, 0x1 + strh r0, [r4, 0x2] +_080BD02C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80BCF1C + + thumb_func_start sub_80BD034 +sub_80BD034: @ 80BD034 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080BD064 @ =gSaveBlock1 + lsls r4, r0, 2 + adds r4, r0 + lsls r4, 5 + adds r4, r2 + ldr r2, _080BD068 @ =0x00001a08 + adds r0, r4, r2 + movs r2, 0xA0 + bl memcpy + ldr r0, _080BD06C @ =0x00001a09 + adds r4, r0 + ldrb r1, [r4] + movs r0, 0x3F + ands r0, r1 + movs r1, 0x80 + orrs r0, r1 + strb r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080BD064: .4byte gSaveBlock1 +_080BD068: .4byte 0x00001a08 +_080BD06C: .4byte 0x00001a09 + thumb_func_end sub_80BD034 + + thumb_func_start sub_80BD070 +sub_80BD070: @ 80BD070 + push {r4,lr} + movs r2, 0 + adds r4, r0, 0 + adds r4, 0x9 + adds r3, r1, 0 + adds r3, 0x9 +_080BD07C: + adds r0, r4, r2 + adds r1, r3, r2 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BD08C + movs r0, 0 + b _080BD098 +_080BD08C: + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD07C + movs r0, 0x1 +_080BD098: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD070 + + thumb_func_start sub_80BD0A0 +sub_80BD0A0: @ 80BD0A0 + push {r4-r6,lr} + adds r6, r0, 0 + adds r5, r1, 0 + movs r3, 0 + ldrb r0, [r6, 0x2] + cmp r0, 0xFF + bne _080BD0B4 + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + beq _080BD0E2 +_080BD0B4: + adds r2, r6, 0x2 + adds r0, r2, r3 + adds r4, r5, 0x2 + adds r1, r4, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _080BD0C8 + movs r0, 0 + b _080BD0E4 +_080BD0C8: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x6 + bhi _080BD0E2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD0B4 + adds r0, r4, r3 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD0B4 +_080BD0E2: + movs r0, 0x1 +_080BD0E4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD0A0 + + thumb_func_start sub_80BD0EC +sub_80BD0EC: @ 80BD0EC + push {r4,r5,lr} + adds r4, r0, 0 + adds r5, r1, 0 + ldrb r2, [r4, 0x1] + movs r0, 0x10 + adds r1, r0, 0 + ands r1, r2 + ldrb r2, [r5, 0x1] + ands r0, r2 + cmp r1, r0 + bne _080BD122 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD070 + lsls r0, 24 + cmp r0, 0 + beq _080BD122 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD0A0 + lsls r0, 24 + cmp r0, 0 + beq _080BD122 + movs r0, 0x1 + b _080BD124 +_080BD122: + movs r0, 0 +_080BD124: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BD0EC + + thumb_func_start sub_80BD12C +sub_80BD12C: @ 80BD12C + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r4, _080BD150 @ =gSaveBlock1 + ldr r3, _080BD154 @ =0x00001a08 +_080BD138: + lsls r0, r1, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, r2 + bne _080BD158 + adds r0, r1, 0 + b _080BD168 + .align 2, 0 +_080BD150: .4byte gSaveBlock1 +_080BD154: .4byte 0x00001a08 +_080BD158: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD138 + movs r0, 0x1 + negs r0, r0 +_080BD168: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD12C + + thumb_func_start sub_80BD170 +sub_80BD170: @ 80BD170 + push {r4,lr} + movs r2, 0x1 + ldr r4, _080BD194 @ =gSaveBlock1 + ldr r3, _080BD198 @ =0x00001a08 +_080BD178: + lsls r0, r2, 16 + asrs r1, r0, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _080BD19C + lsls r0, r2, 24 + lsrs r0, 24 + b _080BD1AA + .align 2, 0 +_080BD194: .4byte gSaveBlock1 +_080BD198: .4byte 0x00001a08 +_080BD19C: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r2, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD178 + movs r0, 0 +_080BD1AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD170 + + thumb_func_start sub_80BD1B0 +sub_80BD1B0: @ 80BD1B0 + push {r4,lr} + movs r3, 0x1 + ldr r4, _080BD1DC @ =gSaveBlock1 +_080BD1B6: + lsls r2, r3, 16 + asrs r1, r2, 16 + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 5 + adds r0, r4 + ldr r1, _080BD1E0 @ =0x00001a09 + adds r0, r1 + ldrb r1, [r0] + lsrs r0, r1, 6 + cmp r0, 0 + bne _080BD1E4 + lsls r0, r1, 28 + cmp r0, 0 + bne _080BD1E4 + lsls r0, r3, 24 + lsrs r0, 24 + b _080BD1F4 + .align 2, 0 +_080BD1DC: .4byte gSaveBlock1 +_080BD1E0: .4byte 0x00001a09 +_080BD1E4: + movs r1, 0x80 + lsls r1, 9 + adds r0, r2, r1 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x13 + ble _080BD1B6 + movs r0, 0 +_080BD1F4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80BD1B0 + + thumb_func_start sub_80BD1FC +sub_80BD1FC: @ 80BD1FC + push {r4,r5,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _080BD278 + ldrb r0, [r5] + bl sub_80BD12C + lsls r0, 16 + lsrs r4, r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + beq _080BD278 + movs r0, 0x1 + negs r0, r0 + cmp r2, r0 + beq _080BD254 + ldr r0, _080BD24C @ =gSaveBlock1 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 5 + adds r1, r0 + ldr r0, _080BD250 @ =0x00001a09 + adds r1, r0 + ldrb r1, [r1] + lsls r0, r1, 28 + lsrs r0, 28 + cmp r0, 0x1 + beq _080BD278 + lsrs r0, r1, 6 + cmp r0, 0x2 + bne _080BD246 + ldrb r1, [r5, 0x1] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _080BD278 +_080BD246: + lsls r4, 24 + lsrs r4, 24 + b _080BD26C + .align 2, 0 +_080BD24C: .4byte gSaveBlock1 +_080BD250: .4byte 0x00001a09 +_080BD254: + bl sub_80BD170 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080BD26C + bl sub_80BD1B0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080BD278 +_080BD26C: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80BD034 + adds r0, r4, 0 + b _080BD27A +_080BD278: + movs r0, 0 +_080BD27A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80BD1FC + + thumb_func_start sub_80BD280 +sub_80BD280: @ 80BD280 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0xA0 + ldr r0, _080BD324 @ =gSaveBlock1 + 0x1A08 + mov r8, r0 + movs r2, 0x1 +_080BD290: + adds r1, r2, 0x1 + lsls r0, r1, 24 + lsrs r5, r0, 24 + mov r9, r1 + cmp r5, 0x13 + bhi _080BD30C + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 5 + mov r1, r8 + adds r6, r0, r1 + movs r7, 0xC0 +_080BD2A8: + ldrb r0, [r6, 0x1] + adds r3, r7, 0 + ands r3, r0 + cmp r3, 0 + bne _080BD2C6 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 5 + add r0, r8 + ldrb r1, [r0, 0x1] + adds r0, r7, 0 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0x40 + beq _080BD2DE +_080BD2C6: + cmp r3, 0x80 + bne _080BD302 + lsls r2, r5, 2 + adds r0, r2, r5 + lsls r0, 5 + add r0, r8 + ldrb r1, [r0, 0x1] + adds r0, r7, 0 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0x80 + beq _080BD302 +_080BD2DE: + mov r0, sp + adds r1, r6, 0 + movs r2, 0xA0 + bl memcpy + adds r4, r5 + lsls r4, 5 + add r4, r8 + adds r0, r6, 0 + adds r1, r4, 0 + movs r2, 0xA0 + bl memcpy + adds r0, r4, 0 + mov r1, sp + movs r2, 0xA0 + bl memcpy +_080BD302: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD2A8 +_080BD30C: + mov r1, r9 + lsls r0, r1, 24 + lsrs r2, r0, 24 + cmp r2, 0x12 + bls _080BD290 + add sp, 0xA0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD324: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BD280 + + thumb_func_start sub_80BD328 +sub_80BD328: @ 80BD328 + push {r4-r6,lr} + adds r6, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r4, 0x1 +_080BD332: + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 5 + adds r1, r0, r6 + ldrb r0, [r1, 0x1] + lsrs r0, 6 + cmp r0, r5 + bne _080BD348 + adds r0, r1, 0 + bl sub_80BD1FC +_080BD348: + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0x13 + bls _080BD332 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80BD328 + + thumb_func_start sub_80BD358 +sub_80BD358: @ 80BD358 + push {r4-r6,lr} + adds r5, r0, 0 + ldrb r0, [r5] + cmp r0, 0 + beq _080BD372 + ldrb r0, [r5, 0x1] + lsls r0, 27 + ldr r1, _080BD378 @ =gSaveBlock2 + lsrs r0, 31 + adds r4, r1, 0 + ldrb r1, [r4, 0x8] + cmp r0, r1 + beq _080BD37C +_080BD372: + movs r0, 0 + b _080BD3D4 + .align 2, 0 +_080BD378: .4byte gSaveBlock2 +_080BD37C: + movs r2, 0 + adds r3, r5, 0 + adds r3, 0x9 + adds r6, r4, 0 + adds r6, 0xA +_080BD386: + adds r0, r3, r2 + adds r1, r2, r6 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080BD372 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x3 + bls _080BD386 + movs r2, 0 + ldrb r0, [r5, 0x2] + cmp r0, 0xFF + bne _080BD3AA + ldrb r0, [r4] + cmp r0, 0xFF + beq _080BD3D2 +_080BD3AA: + adds r3, r5, 0x2 + adds r0, r3, r2 + adds r1, r2, r4 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _080BD372 + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x6 + bhi _080BD3D2 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD3AA + adds r0, r2, r4 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080BD3AA +_080BD3D2: + movs r0, 0x1 +_080BD3D4: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_80BD358 + + thumb_func_start sub_80BD3DC +sub_80BD3DC: @ 80BD3DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r10, r0 + mov r9, r1 + mov r8, r2 + movs r5, 0 + movs r6, 0 +_080BD3F0: + movs r0, 0x1 + ands r0, r5 + cmp r0, 0 + bne _080BD41A + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r10 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD41A + adds r0, r4, 0 + bl sub_80BB4AC + movs r0, 0x1 + orrs r5, r0 +_080BD41A: + movs r7, 0x2 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + bne _080BD448 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r9 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD448 + adds r0, r4, 0 + bl sub_80BB4AC + orrs r5, r7 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080BD448: + movs r7, 0x4 + movs r0, 0x4 + ands r0, r5 + cmp r0, 0 + bne _080BD476 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + bl sub_80BD358 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD476 + adds r0, r4, 0 + bl sub_80BB4AC + orrs r5, r7 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080BD476: + cmp r5, 0x7 + beq _080BD484 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x13 + bls _080BD3F0 +_080BD484: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BD3DC + + thumb_func_start sub_80BD494 +sub_80BD494: @ 80BD494 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + mov r8, r1 + lsls r2, 24 + lsrs r7, r2, 24 + movs r5, 0 +_080BD4A4: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + mov r1, r8 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD4FE + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_80BD0EC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080BD4FE + cmp r7, 0 + bne _080BD4D0 + adds r0, r4, 0 + bl sub_80BB4AC + b _080BD508 +_080BD4D0: + ldrh r0, [r6, 0xE] + ldrh r3, [r4, 0xE] + cmp r0, r3 + bls _080BD4E0 + adds r0, r4, 0 + bl sub_80BB4AC + b _080BD508 +_080BD4E0: + ldrb r0, [r6, 0x1] + lsls r0, 28 + lsrs r0, 28 + ldrb r1, [r4, 0x1] + movs r3, 0x10 + negs r3, r3 + adds r2, r3, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x1] + adds r0, r6, 0 + bl sub_80BB4AC + movs r0, 0x1 + b _080BD50A +_080BD4FE: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD4A4 +_080BD508: + movs r0, 0 +_080BD50A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80BD494 + + thumb_func_start sub_80BD514 +sub_80BD514: @ 80BD514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + adds r7, r1, 0 + mov r8, r2 + adds r6, r3, 0 + movs r5, 0x1 +_080BD526: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + mov r1, r9 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD578 + ldrb r1, [r4, 0x1] + movs r0, 0xC0 + ands r0, r1 + cmp r0, 0x40 + bne _080BD54E + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r1 + movs r1, 0x1 + orrs r0, r1 + strb r0, [r4, 0x1] +_080BD54E: + adds r0, r4, 0 + adds r1, r7, 0 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD578 + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD578 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD578: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD526 + movs r5, 0 +_080BD584: + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 5 + adds r4, r0, r7 + ldrb r0, [r4] + cmp r0, 0 + beq _080BD5B8 + ldrb r0, [r4, 0x1] + movs r2, 0x21 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + strb r0, [r4, 0x1] + adds r0, r4, 0 + mov r1, r8 + adds r2, r5, 0 + bl sub_80BD494 + lsls r0, 24 + cmp r0, 0 + bne _080BD5B8 + adds r0, r4, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD5B8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD584 + movs r5, 0 + movs r0, 0x21 + negs r0, r0 + adds r7, r0, 0 +_080BD5CA: + lsls r0, r5, 2 + adds r0, r5 + lsls r4, r0, 5 + mov r2, r8 + adds r1, r4, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _080BD5EA + ldrb r0, [r1, 0x1] + ands r0, r7 + strb r0, [r1, 0x1] + adds r0, r1, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_80BD494 +_080BD5EA: + adds r1, r4, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _080BD5F8 + ldrb r0, [r1, 0x1] + ands r0, r7 + strb r0, [r1, 0x1] +_080BD5F8: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x13 + bls _080BD5CA + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80BD514 + + thumb_func_start sub_80BD610 +sub_80BD610: @ 80BD610 + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + bl sub_80BD3DC + ldr r0, _080BD670 @ =gSaveBlock1 + 0x1A08 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_80BD514 + adds r0, r4, 0 + bl sub_80BD1FC + adds r0, r5, 0 + bl sub_80BD1FC + adds r0, r6, 0 + bl sub_80BD1FC + adds r0, r4, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r6, 0 + movs r1, 0x1 + bl sub_80BD328 + adds r0, r4, 0 + movs r1, 0 + bl sub_80BD328 + adds r0, r5, 0 + movs r1, 0 + bl sub_80BD328 + adds r0, r6, 0 + movs r1, 0 + bl sub_80BD328 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080BD670: .4byte gSaveBlock1 + 0x1A08 + thumb_func_end sub_80BD610 + + thumb_func_start sub_80BD674 +sub_80BD674: @ 80BD674 + push {r4-r7,lr} + adds r6, r0, 0 + adds r5, r1, 0 + lsls r2, 24 + lsrs r7, r2, 24 + movs r0, 0x60 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _080BD68C + b _080BD790 +_080BD68C: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080BD69E + cmp r0, 0x3 + beq _080BD6BA + b _080BD6C8 +_080BD69E: + lsls r4, r5, 1 + adds r0, r6, r4 + movs r1, 0 + adds r2, r5, 0 + bl memset + adds r4, r5 + adds r4, r6, r4 + adds r0, r4, 0 + movs r1, 0 + adds r2, r5, 0 + bl memset + b _080BD6C8 +_080BD6BA: + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + movs r1, 0 + adds r2, r5, 0 + bl memset +_080BD6C8: + cmp r7, 0x1 + beq _080BD6F0 + cmp r7, 0x1 + bgt _080BD6D6 + cmp r7, 0 + beq _080BD6E0 + b _080BD71C +_080BD6D6: + cmp r7, 0x2 + beq _080BD700 + cmp r7, 0x3 + beq _080BD710 + b _080BD71C +_080BD6E0: + adds r0, r6, r5 + lsls r2, r5, 1 + adds r1, r6, r2 + adds r2, r5 + adds r2, r6, r2 + bl sub_80BD610 + b _080BD71C +_080BD6F0: + lsls r1, r5, 1 + adds r0, r6, r1 + adds r1, r5 + adds r1, r6, r1 + adds r2, r6, 0 + bl sub_80BD610 + b _080BD71C +_080BD700: + lsls r0, r5, 1 + adds r0, r5 + adds r0, r6, r0 + adds r2, r6, r5 + adds r1, r6, 0 + bl sub_80BD610 + b _080BD71C +_080BD710: + adds r1, r6, r5 + lsls r2, r5, 1 + adds r2, r6, r2 + adds r0, r6, 0 + bl sub_80BD610 +_080BD71C: + movs r3, 0x1 + ldr r6, _080BD798 @ =gSaveBlock1 + movs r5, 0x10 + negs r5, r5 + ldr r4, _080BD79C @ =0x00001a09 +_080BD726: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r6 + adds r2, r0, r4 + ldrb r1, [r2] + lsls r0, r1, 28 + lsrs r0, 28 + cmp r0, 0x1 + bne _080BD746 + movs r0, 0x3F + ands r0, r1 + movs r1, 0x40 + orrs r0, r1 + ands r0, r5 + strb r0, [r2] +_080BD746: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _080BD726 + bl sub_80BD280 + movs r3, 0x1 + ldr r4, _080BD798 @ =gSaveBlock1 + ldr r6, _080BD79C @ =0x00001a09 + adds r7, r4, 0 + movs r5, 0x3F +_080BD75E: + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 5 + adds r0, r4 + adds r2, r0, r6 + ldrb r1, [r2] + lsrs r0, r1, 6 + cmp r0, 0x2 + bne _080BD776 + adds r0, r5, 0 + ands r0, r1 + strb r0, [r2] +_080BD776: + adds r0, r3, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x13 + bls _080BD75E + ldr r0, _080BD7A0 @ =0x00001a16 + adds r2, r7, r0 + ldrh r1, [r2] + ldr r0, _080BD7A4 @ =0x0000ffff + cmp r1, r0 + beq _080BD790 + adds r0, r1, 0x1 + strh r0, [r2] +_080BD790: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080BD798: .4byte gSaveBlock1 +_080BD79C: .4byte 0x00001a09 +_080BD7A0: .4byte 0x00001a16 +_080BD7A4: .4byte 0x0000ffff + thumb_func_end sub_80BD674 + + .align 2, 0 @ Don't pad with nop. |