.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_818E9AC sub_818E9AC: @ 818E9AC push {lr} ldr r1, =gUnknown_0860D090 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_818E9AC thumb_func_start sub_818E9CC sub_818E9CC: @ 818E9CC push {r4-r7,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r7, r0, 16 ldr r0, [r4] ldr r2, =0x00000ca8 adds r0, r2 movs r6, 0 strb r6, [r0] ldr r1, [r4] adds r2, 0xA adds r0, r1, r2 strh r6, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r4] ldr r2, =0x00000ca9 adds r1, r2 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r4, [r4] ldr r0, =0x00000cdc adds r3, r4, r0 ldr r2, =gUnknown_0860D0EC lsls r1, r5, 2 lsls r0, r7, 3 adds r1, r0 adds r1, r2 ldr r0, [r3] ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _0818EA3E lsls r0, r5, 1 lsls r1, r7, 2 adds r0, r1 ldr r2, =0x00000d0c adds r1, r4, r2 adds r1, r0 strh r6, [r1] _0818EA3E: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] 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 ldr r0, =gTrainerBattleOpponent_A strh r6, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_818E9CC thumb_func_start sub_818EA84 sub_818EA84: @ 818EA84 push {r4-r6,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x9 bls _0818EAA8 b _0818ED10 _0818EAA8: lsls r0, 2 ldr r1, =_0818EAC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0818EAC8: .4byte _0818EAF0 .4byte _0818EB14 .4byte _0818EB48 .4byte _0818EB64 .4byte _0818EB80 .4byte _0818EB98 .4byte _0818EBB4 .4byte _0818EC40 .4byte _0818ECD0 .4byte _0818ECF4 _0818EAF0: ldr r3, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r5, 1 lsls r2, r6, 2 adds r1, r2 ldr r2, =0x00000d0c adds r0, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r3] b _0818ED10 .pool _0818EB14: ldr r4, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r3, =0x00000cdc adds r2, r3 ldr r3, =gUnknown_0860D0EC lsls r0, r5, 2 lsls r1, r6, 3 adds r0, r1 adds r0, r3 ldr r1, [r2] ldr r0, [r0] ands r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 strh r0, [r4] b _0818ED10 .pool _0818EB48: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d08 adds r0, r2 ldrb r0, [r0] lsls r0, 31 b _0818ECBE .pool _0818EB64: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d08 adds r0, r3 ldrb r0, [r0] lsls r0, 30 b _0818ECBE .pool _0818EB80: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d08 adds r0, r2 b _0818ECBA .pool _0818EB98: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d08 adds r0, r3 ldrb r0, [r0] lsls r0, 28 b _0818ECBE .pool _0818EBB4: ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0818EC04 cmp r5, 0 beq _0818EBE8 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d08 adds r0, r2 ldrb r0, [r0] lsls r0, 26 b _0818ECBE .pool _0818EBE8: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d08 adds r0, r3 ldrb r0, [r0] lsls r0, 27 b _0818ECBE .pool _0818EC04: cmp r5, 0 beq _0818EC24 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d08 adds r0, r2 ldrb r0, [r0] lsls r0, 30 b _0818ECBE .pool _0818EC24: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d08 adds r0, r3 ldrb r0, [r0] lsls r0, 31 b _0818ECBE .pool _0818EC40: ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _0818EC90 cmp r5, 0 beq _0818EC74 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d08 adds r0, r2 ldrb r0, [r0] lsrs r0, 7 strh r0, [r1] b _0818ED10 .pool _0818EC74: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d08 adds r0, r3 ldrb r0, [r0] lsls r0, 25 b _0818ECBE .pool _0818EC90: cmp r5, 0 beq _0818ECB0 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d08 adds r0, r2 ldrb r0, [r0] lsls r0, 28 b _0818ECBE .pool _0818ECB0: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d08 adds r0, r3 _0818ECBA: ldrb r0, [r0] lsls r0, 29 _0818ECBE: lsrs r0, 31 strh r0, [r1] b _0818ED10 .pool _0818ECD0: bl sub_81B8558 ldr r2, =gUnknown_0203CEF8 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xCB lsls r1, 4 adds r0, r1 ldrh r1, [r0] strb r1, [r2] ldrh r0, [r0] lsrs r0, 8 strb r0, [r2, 0x1] b _0818ED10 .pool _0818ECF4: ldr r2, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r3, =0x00000d0a adds r0, r1, r3 ldrb r0, [r0] lsls r0, 1 adds r3, 0x1 adds r1, r3 ldr r3, =0x0000fffd adds r0, r3 ldrb r1, [r1] adds r0, r1 strh r0, [r2] _0818ED10: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_818EA84 thumb_func_start sub_818ED28 sub_818ED28: @ 818ED28 push {r4,r5,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r4, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x8 bls _0818ED4C b _0818F01E _0818ED4C: lsls r0, 2 ldr r1, =_0818ED6C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0818ED6C: .4byte _0818ED90 .4byte _0818EDB4 .4byte _0818EE10 .4byte _0818EE34 .4byte _0818EE5C .4byte _0818EE78 .4byte _0818EEA0 .4byte _0818EF50 .4byte _0818F008 _0818ED90: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] lsls r0, r4, 1 lsls r1, r5, 2 adds r0, r1 ldr r1, =0x00000d0c adds r2, r1 adds r2, r0 ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] strh r0, [r2] b _0818F01E .pool _0818EDB4: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _0818EDE8 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =0x00000cdc adds r2, r0 ldr r3, =gUnknown_0860D0EC lsls r1, r4, 2 lsls r0, r5, 3 adds r1, r0 adds r1, r3 ldr r0, [r2] ldr r1, [r1] orrs r0, r1 str r0, [r2] b _0818F01E .pool _0818EDE8: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, =0x00000cdc adds r2, r1 ldr r3, =gUnknown_0860D0FC lsls r1, r4, 2 lsls r0, r5, 3 adds r1, r0 adds r1, r3 ldr r0, [r2] ldr r1, [r1] ands r0, r1 str r0, [r2] b _0818F01E .pool _0818EE10: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000d08 adds r2, r1 movs r1, 0x1 ands r1, r0 ldrb r3, [r2] movs r0, 0x2 negs r0, r0 b _0818EF74 .pool _0818EE34: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000d08 adds r3, r2 movs r1, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r3] movs r0, 0x3 negs r0, r0 b _0818EFF4 .pool _0818EE5C: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000d08 adds r3, r1 b _0818EFE8 .pool _0818EE78: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000d08 adds r3, r2 movs r1, 0x1 ands r1, r0 lsls r1, 3 ldrb r2, [r3] movs r0, 0x9 negs r0, r0 b _0818EFF4 .pool _0818EEA0: ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bne _0818EF00 cmp r4, 0 beq _0818EEDC ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000d08 adds r3, r2 ands r1, r0 lsls r1, 5 ldrb r2, [r3] movs r0, 0x21 negs r0, r0 b _0818EFF4 .pool _0818EEDC: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000d08 adds r3, r2 ands r1, r0 lsls r1, 4 ldrb r2, [r3] movs r0, 0x11 negs r0, r0 b _0818EFF4 .pool _0818EF00: cmp r4, 0 beq _0818EF2C ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000d08 adds r3, r1 movs r1, 0x1 ands r1, r0 lsls r1, 1 ldrb r2, [r3] movs r0, 0x3 negs r0, r0 b _0818EFF4 .pool _0818EF2C: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000d08 adds r2, r1 movs r1, 0x1 ands r1, r0 ldrb r3, [r2] movs r0, 0x2 negs r0, r0 b _0818EF74 .pool _0818EF50: ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x1 bne _0818EFB0 cmp r4, 0 beq _0818EF8C ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r1, [r0] ldr r0, =0x00000d08 adds r2, r0 lsls r1, 7 ldrb r3, [r2] movs r0, 0x7F _0818EF74: ands r0, r3 orrs r0, r1 strb r0, [r2] b _0818F01E .pool _0818EF8C: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000d08 adds r3, r2 ands r1, r0 lsls r1, 6 ldrb r2, [r3] movs r0, 0x41 negs r0, r0 b _0818EFF4 .pool _0818EFB0: cmp r4, 0 beq _0818EFDC ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000d08 adds r3, r1 movs r1, 0x1 ands r1, r0 lsls r1, 3 ldrb r2, [r3] movs r0, 0x9 negs r0, r0 b _0818EFF4 .pool _0818EFDC: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000d08 adds r3, r2 _0818EFE8: movs r1, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 _0818EFF4: ands r0, r2 orrs r0, r1 strb r0, [r3] b _0818F01E .pool _0818F008: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gUnknown_0203CEF8 ldrb r1, [r0] ldrb r0, [r0, 0x1] lsls r0, 8 orrs r1, r0 movs r0, 0xCB lsls r0, 4 adds r2, r0 strh r1, [r2] _0818F01E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_818ED28 thumb_func_start sub_818F02C sub_818F02C: @ 818F02C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x20 bl AllocZeroed str r0, [sp, 0x18] movs r0, 0x18 bl AllocZeroed str r0, [sp, 0x1C] ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 adds r0, 0x1 ldr r3, =0x00000d0a adds r1, r3 strb r0, [r1] ldr r0, =0x000040ce bl VarGet ldr r1, [r4] adds r0, 0x1 ldr r5, =0x00000d0b adds r1, r5 strb r0, [r1] ldr r2, [r4] ldr r7, =0x00000d24 adds r3, r2, r7 ldrh r0, [r3] ldr r5, =0x000003ff adds r1, r5, 0 orrs r0, r1 strh r0, [r3] ldr r3, =0x00000d25 adds r2, r3 ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] ldr r1, [r4] adds r1, r3 ldrb r2, [r1] movs r0, 0x19 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r4] adds r1, r3 ldrb r2, [r1] movs r0, 0x1F ands r0, r2 strb r0, [r1] movs r7, 0 mov r10, r7 mov r8, r4 ldr r0, =gBattleScripting + 0x14 mov r9, r0 movs r4, 0 _0818F0BA: mov r1, r8 ldr r0, [r1] ldr r2, =0x00000caa adds r0, r2 adds r0, r4 ldrh r0, [r0] movs r3, 0x64 muls r0, r3 add r0, r9 movs r1, 0xB movs r2, 0 bl GetMonData mov r5, r8 ldr r1, [r5] ldr r7, =0x00000d64 adds r1, r7 adds r1, r4 strh r0, [r1] movs r5, 0 mov r0, r10 lsls r7, r0, 4 adds r6, r7, 0 _0818F0E8: mov r1, r8 ldr r0, [r1] ldr r2, =0x00000caa adds r0, r2 adds r0, r4 ldrh r0, [r0] movs r3, 0x64 muls r0, r3 add r0, r9 adds r1, r5, 0 adds r1, 0xD movs r2, 0 bl GetMonData mov r2, r8 ldr r1, [r2] ldr r3, =0x00000efc adds r1, r3 adds r1, r6 strh r0, [r1] adds r6, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _0818F0E8 movs r5, 0 ldr r6, =gSaveBlock2Ptr _0818F11C: ldr r0, [r6] ldr r1, =0x00000caa adds r0, r1 adds r0, r4 ldrh r0, [r0] movs r2, 0x64 muls r0, r2 add r0, r9 adds r1, r5, 0 adds r1, 0x1A movs r2, 0 bl GetMonData ldr r1, [r6] adds r2, r5, r7 ldr r3, =0x00000f04 adds r1, r3 adds r1, r2 strb r0, [r1] adds r5, 0x1 cmp r5, 0x5 ble _0818F11C mov r5, r8 ldr r0, [r5] ldr r1, =0x00000caa adds r0, r1 adds r0, r4 ldrh r0, [r0] movs r2, 0x64 muls r0, r2 add r0, r9 bl GetNature ldr r1, [r5] adds r1, r7 ldr r3, =0x00000f0a adds r1, r3 strb r0, [r1] adds r4, 0x2 movs r5, 0x1 add r10, r5 mov r7, r10 cmp r7, 0x2 ble _0818F0BA mov r10, r5 movs r0, 0x4 str r0, [sp, 0x34] movs r1, 0x6 str r1, [sp, 0x38] _0818F17E: mov r2, r10 cmp r2, 0x5 ble _0818F22C _0818F184: bl sub_81A39C4 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8162548 lsls r0, 16 lsrs r4, r0, 16 movs r5, 0x1 cmp r5, r10 bge _0818F1CA ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r7, =0x00000d28 adds r0, r7 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 adds r2, r3, 0 cmp r0, r4 beq _0818F1CA ldr r3, =0x00000d24 _0818F1B2: adds r5, 0x1 cmp r5, r10 bge _0818F1CA ldr r0, [r2] lsls r1, r5, 2 adds r0, r1 adds r0, r3 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r4 bne _0818F1B2 _0818F1CA: cmp r5, r10 bne _0818F184 ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r1, [sp, 0x34] adds r3, r1 ldr r2, =0x00000d24 adds r3, r2 ldr r5, =0x000003ff adds r0, r5, 0 adds r2, r4, 0 ands r2, r0 ldrh r0, [r3] ldr r7, =0xfffffc00 adds r1, r7, 0 b _0818F292 .pool _0818F22C: bl sub_81A39C4 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl sub_8162548 lsls r0, 16 lsrs r4, r0, 16 movs r5, 0x1 cmp r5, r10 bge _0818F274 ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000d28 adds r0, r2 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 adds r2, r1, 0 cmp r0, r4 beq _0818F274 ldr r3, =0x00000d24 _0818F25C: adds r5, 0x1 cmp r5, r10 bge _0818F274 ldr r0, [r2] lsls r1, r5, 2 adds r0, r1 adds r0, r3 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r4 bne _0818F25C _0818F274: cmp r5, r10 bne _0818F22C ldr r5, =gSaveBlock2Ptr ldr r3, [r5] ldr r7, [sp, 0x34] adds r3, r7 ldr r0, =0x00000d24 adds r3, r0 ldr r1, =0x000003ff adds r0, r1, 0 adds r2, r4, 0 ands r2, r0 ldrh r0, [r3] ldr r5, =0xfffffc00 adds r1, r5, 0 _0818F292: ands r0, r1 orrs r0, r2 strh r0, [r3] movs r5, 0 lsls r4, 16 str r4, [sp, 0x2C] ldr r7, [sp, 0x38] str r7, [sp, 0x20] _0818F2A2: lsls r0, r5, 1 mov r9, r0 adds r1, r5, 0x1 str r1, [sp, 0x24] lsls r2, r5, 2 str r2, [sp, 0x28] _0818F2AE: ldr r3, [sp, 0x2C] lsrs r0, r3, 16 bl sub_8163524 lsls r0, 16 lsrs r6, r0, 16 movs r7, 0 cmp r7, r5 bge _0818F300 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, [sp, 0x8] mov r8, r1 ldr r2, [sp, 0xC] mov r12, r2 ldr r3, =0x00000d64 adds r0, r3 ldr r1, [sp, 0x20] adds r4, r1, r0 _0818F2D4: ldrh r3, [r4] cmp r3, r6 beq _0818F300 ldr r2, =gUnknown_0203BC8C ldr r1, [r2] lsls r0, r6, 4 adds r2, r0, r1 ldrh r0, [r2] cmp r8, r0 beq _0818F300 cmp r12, r0 beq _0818F300 lsls r0, r3, 4 adds r0, r1 ldrb r0, [r0, 0xA] ldrb r2, [r2, 0xA] cmp r0, r2 beq _0818F300 adds r4, 0x2 adds r7, 0x1 cmp r7, r5 blt _0818F2D4 _0818F300: cmp r7, r5 bne _0818F2AE ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r1, [sp, 0x38] add r1, r9 ldr r5, =0x00000d64 adds r0, r5 adds r0, r1 strh r6, [r0] ldr r2, [sp, 0x28] add r2, sp adds r2, 0x8 ldr r0, =gUnknown_0203BC8C ldr r1, [r0] lsls r0, r6, 4 adds r0, r1 ldrh r0, [r0] str r0, [r2] ldr r5, [sp, 0x24] cmp r5, 0x2 ble _0818F2A2 ldr r2, [r3] ldr r7, [sp, 0x34] adds r2, r7 ldr r0, =0x00000d25 adds r2, r0 ldrb r0, [r2] movs r3, 0x5 negs r3, r3 adds r1, r3, 0 ands r0, r1 strb r0, [r2] ldr r5, =gSaveBlock2Ptr ldr r2, [r5] adds r2, r7 ldr r7, =0x00000d25 adds r2, r7 ldrb r0, [r2] subs r3, 0x14 adds r1, r3, 0 ands r0, r1 strb r0, [r2] ldr r1, [r5] ldr r5, [sp, 0x34] adds r1, r5 adds r1, r7 ldrb r2, [r1] movs r0, 0x1F ands r0, r2 strb r0, [r1] adds r5, 0x4 str r5, [sp, 0x34] ldr r7, [sp, 0x38] adds r7, 0x6 str r7, [sp, 0x38] movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0xF bgt _0818F37C b _0818F17E _0818F37C: movs r7, 0 ldr r2, [sp, 0x18] strh r7, [r2] movs r3, 0 mov r10, r3 ldr r6, =gBitTable ldr r5, =gBaseStats _0818F38A: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] mov r2, r10 lsls r1, r2, 1 ldr r3, =0x00000caa adds r0, r3 adds r0, r1 ldrh r0, [r0] subs r4, r0, 0x1 movs r0, 0x64 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x3B movs r2, 0 bl GetMonData ldr r2, [sp, 0x18] ldrh r1, [r2] adds r1, r0 strh r1, [r2] adds r0, r4, 0 movs r1, 0x3C movs r2, 0 bl GetMonData ldr r3, [sp, 0x18] ldrh r1, [r3] adds r1, r0 strh r1, [r3] adds r0, r4, 0 movs r1, 0x3E movs r2, 0 bl GetMonData ldr r2, [sp, 0x18] ldrh r1, [r2] adds r1, r0 strh r1, [r2] adds r0, r4, 0 movs r1, 0x3F movs r2, 0 bl GetMonData ldr r3, [sp, 0x18] ldrh r1, [r3] adds r1, r0 strh r1, [r3] adds r0, r4, 0 movs r1, 0x3D movs r2, 0 bl GetMonData ldr r2, [sp, 0x18] ldrh r1, [r2] adds r1, r0 strh r1, [r2] adds r0, r4, 0 movs r1, 0x3A movs r2, 0 bl GetMonData ldr r3, [sp, 0x18] ldrh r1, [r3] adds r1, r0 strh r1, [r3] adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x6] lsls r0, 2 adds r0, r6 ldr r0, [r0] orrs r7, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x7] lsls r0, 2 adds r0, r6 ldr r0, [r0] orrs r7, r0 movs r0, 0x1 add r10, r0 mov r1, r10 cmp r1, 0x2 ble _0818F38A movs r4, 0 movs r1, 0x1 movs r5, 0x1F _0818F458: adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0818F462 adds r4, 0x1 _0818F462: asrs r7, 1 subs r5, 0x1 cmp r5, 0 bge _0818F458 bl sub_8165C40 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] adds r2, r0, 0 adds r0, r4, 0 muls r0, r2 movs r1, 0x14 bl __divsi3 ldr r3, [sp, 0x18] ldrh r1, [r3] adds r1, r0 strh r1, [r3] movs r5, 0x1 mov r10, r5 adds r6, r3, 0 adds r6, 0x2 movs r7, 0x2 str r7, [sp, 0x30] _0818F494: movs r7, 0 strh r7, [r6] ldr r1, =gSaveBlock2Ptr ldr r0, [r1] mov r2, r10 lsls r1, r2, 2 adds r0, r1 ldr r3, =0x00000d24 adds r0, r3 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 bl sub_8190168 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r0, [sp, 0x30] mov r9, r0 _0818F4BC: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] mov r4, r9 add r4, r10 adds r4, r5 lsls r4, 1 ldr r2, =0x00000d64 adds r0, r2 adds r0, r4 ldrh r1, [r0] ldr r3, =gUnknown_0203BC8C ldr r0, [r3] lsls r1, 4 adds r1, r0 ldrh r0, [r1] ldrb r3, [r1, 0xB] ldrb r1, [r1, 0xC] str r1, [sp] ldr r1, [sp, 0x1C] str r1, [sp, 0x4] ldr r1, [sp, 0x14] mov r2, r8 bl sub_818F720 ldr r2, [sp, 0x1C] ldr r1, [r2, 0x4] ldrh r0, [r6] adds r0, r1 ldr r1, [r2, 0x8] adds r0, r1 ldr r1, [r2, 0x10] adds r0, r1 ldr r1, [r2, 0x14] adds r0, r1 ldr r1, [r2, 0xC] adds r0, r1 ldr r1, [r2] adds r0, r1 strh r0, [r6] ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r1, =0x00000d64 adds r0, r1 adds r0, r4 ldrh r0, [r0] ldr r2, =gUnknown_0203BC8C ldr r1, [r2] lsls r0, 4 adds r0, r1 ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r3, =gBaseStats adds r1, r3 ldrb r0, [r1, 0x6] lsls r0, 2 ldr r2, =gBitTable adds r0, r2 ldr r0, [r0] orrs r7, r0 ldrb r0, [r1, 0x7] lsls r0, 2 adds r0, r2 ldr r0, [r0] orrs r7, r0 adds r5, 0x1 cmp r5, 0x2 ble _0818F4BC movs r4, 0 movs r1, 0x1 movs r5, 0x1F _0818F54C: adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _0818F556 adds r4, 0x1 _0818F556: asrs r7, 1 subs r5, 0x1 cmp r5, 0 bge _0818F54C ldr r3, [sp, 0x14] adds r0, r4, 0 muls r0, r3 movs r1, 0x14 bl __divsi3 ldrh r1, [r6] adds r1, r0 strh r1, [r6] adds r6, 0x2 ldr r5, [sp, 0x30] adds r5, 0x2 str r5, [sp, 0x30] movs r7, 0x1 add r10, r7 mov r0, r10 cmp r0, 0xF ble _0818F494 movs r1, 0 mov r10, r1 ldr r2, =0x000003ff mov r8, r2 _0818F58A: mov r5, r10 adds r5, 0x1 adds r7, r5, 0 cmp r5, 0xF bgt _0818F626 mov r3, r10 lsls r0, r3, 1 ldr r1, [sp, 0x18] adds r6, r0, r1 lsls r0, r5, 1 adds r4, r0, r1 _0818F5A0: ldrh r1, [r6] ldrh r0, [r4] cmp r1, r0 bcc _0818F5C2 cmp r1, r0 bne _0818F61E ldr r0, =gSaveBlock2Ptr ldr r1, [r0] lsls r0, r5, 2 adds r0, r1, r0 ldr r2, =0x00000d24 adds r0, r2 ldrh r0, [r0] lsls r2, r0, 22 lsrs r0, r2, 22 cmp r0, r8 bne _0818F602 _0818F5C2: mov r0, r10 adds r1, r5, 0 ldr r2, [sp, 0x18] bl sub_818F904 b _0818F600 .pool _0818F600: b _0818F61E _0818F602: mov r3, r10 lsls r0, r3, 2 adds r0, r1, r0 ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r0, 22 cmp r0, r2 bls _0818F61E mov r0, r10 adds r1, r5, 0 ldr r2, [sp, 0x18] bl sub_818F904 _0818F61E: adds r4, 0x2 adds r5, 0x1 cmp r5, 0xF ble _0818F5A0 _0818F626: mov r10, r7 mov r2, r10 cmp r2, 0xE ble _0818F58A bl sub_81A3610 lsls r0, 24 cmp r0, 0 beq _0818F6EE movs r3, 0 mov r10, r3 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r4, =0x00000d24 adds r1, r4 ldrh r1, [r1] lsls r1, 22 lsrs r1, 22 ldr r3, =0x000003ff adds r2, r0, 0 ldr r6, =gUnknown_0860D3F1 cmp r1, r3 beq _0818F674 adds r5, r2, 0 _0818F656: movs r7, 0x1 add r10, r7 mov r0, r10 cmp r0, 0xF bgt _0818F674 ldr r0, [r5] mov r7, r10 lsls r1, r7, 2 adds r0, r1 adds r0, r4 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r3 bne _0818F656 _0818F674: mov r1, r10 lsls r0, r1, 1 adds r0, r6 ldrb r0, [r0] cmp r0, 0 beq _0818F6AC movs r5, 0 ldr r2, [r2] ldr r3, =0x00000d24 adds r2, r3 ldrh r1, [r2] ldr r0, =0xfffffc00 ands r0, r1 ldr r7, =0x000003fe adds r1, r7, 0 b _0818F6BE .pool _0818F6AC: movs r5, 0x1 ldr r2, [r2] ldr r0, =0x00000d28 adds r2, r0 ldrh r1, [r2] ldr r0, =0xfffffc00 ands r0, r1 ldr r3, =0x000003fe adds r1, r3, 0 _0818F6BE: orrs r0, r1 strh r0, [r2] movs r7, 0 mov r10, r7 lsls r0, r5, 1 adds r0, r5 lsls r4, r0, 1 _0818F6CC: mov r1, r10 lsls r0, r1, 24 lsrs r0, 24 bl sub_81A4FF0 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r2, =0x00000d64 adds r1, r2 adds r1, r4 strh r0, [r1] adds r4, 0x2 movs r3, 0x1 add r10, r3 mov r5, r10 cmp r5, 0x2 ble _0818F6CC _0818F6EE: ldr r0, [sp, 0x18] bl Free ldr r0, [sp, 0x1C] bl Free add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_818F02C thumb_func_start sub_818F720 sub_818F720: @ 818F720 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r7, r1, 0 mov r9, r2 ldr r1, [sp, 0x3C] ldr r2, [sp, 0x40] mov r8, r2 lsls r0, 16 lsrs r6, r0, 16 lsls r3, 24 lsrs r5, r3, 24 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x18] movs r1, 0 adds r4, r5, 0 movs r3, 0x1 movs r2, 0x5 _0818F74C: adds r0, r4, 0 ands r0, r3 cmp r0, 0 beq _0818F756 adds r1, 0x1 _0818F756: lsrs r4, 1 subs r2, 0x1 cmp r2, 0 bge _0818F74C movs r0, 0xFF lsls r0, 1 bl __divsi3 lsls r0, 16 lsrs r3, r0, 16 lsls r0, r6, 3 mov r10, r0 movs r1, 0 mov r12, r1 mov r1, sp movs r2, 0x5 _0818F776: mov r0, r12 str r0, [r1] adds r0, r5, 0 ands r0, r4 cmp r0, 0 beq _0818F784 str r3, [r1] _0818F784: lsls r0, r4, 25 lsrs r4, r0, 24 adds r1, 0x4 subs r2, 0x1 cmp r2, 0 bge _0818F776 ldr r0, =0x0000012f cmp r6, r0 bne _0818F7A0 movs r0, 0x1 b _0818F7CA .pool _0818F7A0: mov r2, r10 subs r0, r2, r6 lsls r0, 2 ldr r1, =gBaseStats adds r0, r1 ldrb r0, [r0] lsls r0, 1 mov r2, r9 adds r1, r0, r2 ldr r0, [sp] cmp r0, 0 bge _0818F7BA adds r0, 0x3 _0818F7BA: asrs r0, 2 adds r0, r1, r0 muls r0, r7 movs r1, 0x64 bl __divsi3 adds r0, r7 adds r0, 0xA _0818F7CA: mov r1, r8 str r0, [r1] mov r2, r10 subs r0, r2, r6 lsls r0, 2 ldr r1, =gBaseStats adds r4, r0, r1 ldrb r0, [r4, 0x1] lsls r0, 1 mov r2, r9 adds r1, r0, r2 ldr r0, [sp, 0x4] cmp r0, 0 bge _0818F7E8 adds r0, 0x3 _0818F7E8: asrs r0, 2 adds r0, r1, r0 muls r0, r7 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 adds r1, 0x5 mov r0, r8 str r1, [r0, 0x4] lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x18] movs r2, 0x1 bl nature_stat_mod lsls r0, 24 lsrs r0, 24 mov r1, r8 str r0, [r1, 0x4] ldrb r0, [r4, 0x2] lsls r0, 1 mov r2, r9 adds r1, r0, r2 ldr r0, [sp, 0x8] cmp r0, 0 bge _0818F820 adds r0, 0x3 _0818F820: asrs r0, 2 adds r0, r1, r0 muls r0, r7 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 adds r1, 0x5 mov r0, r8 str r1, [r0, 0x8] lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x18] movs r2, 0x2 bl nature_stat_mod lsls r0, 24 lsrs r0, 24 mov r1, r8 str r0, [r1, 0x8] ldrb r0, [r4, 0x3] lsls r0, 1 mov r2, r9 adds r1, r0, r2 ldr r0, [sp, 0xC] cmp r0, 0 bge _0818F858 adds r0, 0x3 _0818F858: asrs r0, 2 adds r0, r1, r0 muls r0, r7 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 adds r1, 0x5 mov r0, r8 str r1, [r0, 0xC] lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x18] movs r2, 0x3 bl nature_stat_mod lsls r0, 24 lsrs r0, 24 mov r1, r8 str r0, [r1, 0xC] ldrb r0, [r4, 0x4] lsls r0, 1 mov r2, r9 adds r1, r0, r2 ldr r0, [sp, 0x10] cmp r0, 0 bge _0818F890 adds r0, 0x3 _0818F890: asrs r0, 2 adds r0, r1, r0 muls r0, r7 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 adds r1, 0x5 mov r0, r8 str r1, [r0, 0x10] lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x18] movs r2, 0x4 bl nature_stat_mod lsls r0, 24 lsrs r0, 24 mov r1, r8 str r0, [r1, 0x10] ldrb r0, [r4, 0x5] lsls r0, 1 mov r1, r9 adds r2, r0, r1 ldr r0, [sp, 0x14] cmp r0, 0 bge _0818F8C8 adds r0, 0x3 _0818F8C8: asrs r0, 2 adds r0, r2, r0 muls r0, r7 movs r1, 0x64 bl __divsi3 adds r1, r0, 0 adds r1, 0x5 mov r2, r8 str r1, [r2, 0x14] lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x18] movs r2, 0x5 bl nature_stat_mod lsls r0, 24 lsrs r0, 24 mov r1, r8 str r0, [r1, 0x14] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_818F720 thumb_func_start sub_818F904 sub_818F904: @ 818F904 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r3, r0, 1 mov r12, r3 adds r4, r3, r2 ldrh r5, [r4] lsls r7, r1, 1 mov r9, r7 add r2, r9 ldrh r3, [r2] strh r3, [r4] strh r5, [r2] ldr r2, =gSaveBlock2Ptr ldr r5, [r2] lsls r6, r0, 2 adds r6, r5, r6 ldr r3, =0x00000d24 adds r6, r3 ldrh r7, [r6] mov r10, r7 mov r2, r10 lsls r2, 22 mov r8, r2 lsls r2, r1, 2 adds r5, r2 adds r5, r3 ldrh r4, [r5] lsls r4, 22 lsrs r4, 22 ldr r3, =0xfffffc00 adds r2, r3, 0 mov r7, r10 ands r2, r7 orrs r2, r4 strh r2, [r6] mov r2, r8 lsrs r2, 22 mov r8, r2 ldrh r2, [r5] ands r3, r2 mov r7, r8 orrs r3, r7 strh r3, [r5] ldr r2, =gSaveBlock2Ptr mov r8, r2 add r12, r0 add r9, r1 mov r3, r9 lsls r4, r3, 1 mov r7, r12 lsls r3, r7, 1 ldr r7, =0x00000d64 movs r6, 0x2 _0818F974: mov r1, r8 ldr r0, [r1] adds r0, r7 adds r2, r0, r3 ldrh r5, [r2] adds r0, r4 ldrh r1, [r0] strh r1, [r2] strh r5, [r0] adds r4, 0x2 adds r3, 0x2 subs r6, 0x1 cmp r6, 0 bge _0818F974 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_818F904 thumb_func_start sub_818F9B0 sub_818F9B0: @ 818F9B0 push {lr} ldr r0, =gStringVar1 ldr r2, =gUnknown_085CCD20 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r3, =0x00000cb2 adds r1, r3 ldrh r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r0} bx r0 .pool thumb_func_end sub_818F9B0 thumb_func_start sub_818F9E0 sub_818F9E0: @ 818F9E0 push {lr} ldr r0, =gStringVar1 ldr r2, =gUnknown_085CCD20 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r3, =0x00000cb2 adds r1, r3 ldrh r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r0, =gStringVar2 ldr r1, =gTrainerBattleOpponent_A ldrh r1, [r1] bl sub_8195898 pop {r0} bx r0 .pool thumb_func_end sub_818F9E0 thumb_func_start sub_818FA20 sub_818FA20: @ 818FA20 push {r4,r5,lr} ldr r1, =gUnknown_0203CD70 movs r0, 0 str r0, [r1] ldr r4, =gPlayerParty adds r0, r4, 0 movs r1, 0x3A movs r2, 0 bl GetMonData ldr r5, =gUnknown_0203CD74 str r0, [r5] adds r4, 0x64 adds r0, r4, 0 movs r1, 0x3A movs r2, 0 bl GetMonData ldr r1, [r5] adds r1, r0 str r1, [r5] bl CalculatePlayerPartyCount ldr r0, =gTrainerBattleOpponent_A ldrh r0, [r0] bl sub_8195358 lsls r0, 16 lsrs r0, 16 bl sub_818FBDC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_818FA20 thumb_func_start sub_818FA74 sub_818FA74: @ 818FA74 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x30 adds r5, r2, 0 str r3, [sp, 0x14] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] lsls r1, 16 lsrs r1, 16 str r1, [sp, 0x28] lsls r5, 24 lsrs r5, 24 add r0, sp, 0xC movs r1, 0x1 negs r1, r1 strb r1, [r0] ldr r0, [sp, 0x28] bl sub_8190168 adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 str r6, [sp, 0x2C] bl sub_8165C40 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 movs r0, 0x64 ldr r4, [sp, 0x10] adds r3, r4, 0 muls r3, r0 str r3, [sp, 0x18] ldr r6, =gEnemyParty adds r0, r3, r6 ldr r7, =gSaveBlock2Ptr ldr r4, [r7] lsls r5, 1 ldr r3, [sp, 0x28] lsls r1, r3, 1 adds r1, r3 lsls r1, 1 adds r1, r5, r1 ldr r6, =0x00000d64 adds r4, r6 adds r4, r1 ldrh r3, [r4] ldr r7, =gUnknown_0203BC8C ldr r7, [r7] mov r8, r7 lsls r3, 4 add r3, r8 ldrh r1, [r3] ldrb r3, [r3, 0xC] ldr r6, [sp, 0x2C] str r6, [sp] ldrh r4, [r4] lsls r4, 4 add r4, r8 ldrb r4, [r4, 0xB] str r4, [sp, 0x4] ldr r7, [sp, 0x14] str r7, [sp, 0x8] bl sub_8068634 add r0, sp, 0xC movs r1, 0x1 negs r1, r1 strb r1, [r0] movs r6, 0 ldr r2, [sp, 0x18] str r2, [sp, 0x1C] mov r10, r5 ldr r3, =0x00000d64 mov r9, r3 ldr r3, =gUnknown_0203BC8C mov r4, r10 str r4, [sp, 0x20] _0818FB18: ldr r7, =gSaveBlock2Ptr ldr r1, [r7] ldr r2, [sp, 0x28] lsls r0, r2, 1 adds r0, r2 lsls r0, 1 mov r8, r0 mov r5, r10 add r5, r8 add r1, r9 adds r1, r5 ldrh r0, [r1] ldr r1, [r3] lsls r0, 4 adds r0, r1 lsls r4, r6, 1 adds r0, 0x2 adds r0, r4 ldrh r1, [r0] lsls r2, r6, 24 lsrs r2, 24 mov r12, r2 ldr r7, [sp, 0x1C] ldr r2, =gEnemyParty adds r0, r7, r2 mov r2, r12 str r3, [sp, 0x24] bl SetMonMoveSlot ldr r7, =gSaveBlock2Ptr ldr r0, [r7] add r0, r9 adds r0, r5 ldrh r0, [r0] ldr r3, [sp, 0x24] ldr r1, [r3] lsls r0, 4 adds r0, r1 adds r0, 0x2 adds r0, r4 ldrh r0, [r0] cmp r0, 0xDA bne _0818FB74 movs r1, 0 add r0, sp, 0xC strb r1, [r0] _0818FB74: adds r6, 0x1 cmp r6, 0x3 ble _0818FB18 movs r0, 0x64 ldr r1, [sp, 0x10] adds r4, r1, 0 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0xC bl SetMonData ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, [sp, 0x20] add r1, r8 ldr r2, =0x00000d64 adds r0, r2 adds r0, r1 ldrh r0, [r0] ldr r1, =gUnknown_0203BC8C ldr r1, [r1] lsls r0, 4 adds r0, r1 ldrb r2, [r0, 0xA] lsls r2, 1 ldr r0, =gBattleFrontierHeldItems adds r2, r0 adds r0, r4, 0 movs r1, 0xC bl SetMonData add sp, 0x30 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_818FA74 thumb_func_start sub_818FBDC sub_818FBDC: @ 818FBDC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 16 lsrs r0, 16 mov r8, r0 movs r6, 0 bl ZeroEnemyPartyMons mov r0, r8 bl sub_818FC78 adds r5, r0, 0 bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r7, r4, 16 lsls r0, 16 orrs r7, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bls _0818FC46 movs r4, 0 _0818FC20: movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _0818FC3C lsls r2, r4, 24 lsrs r2, 24 adds r0, r6, 0 mov r1, r8 adds r3, r7, 0 bl sub_818FA74 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0818FC3C: asrs r5, 1 adds r4, 0x1 cmp r4, 0x2 ble _0818FC20 b _0818FC6C _0818FC46: movs r4, 0x2 _0818FC48: movs r0, 0x4 ands r0, r5 cmp r0, 0 beq _0818FC64 lsls r2, r4, 24 lsrs r2, 24 adds r0, r6, 0 mov r1, r8 adds r3, r7, 0 bl sub_818FA74 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0818FC64: lsls r5, 1 subs r4, 0x1 cmp r4, 0 bge _0818FC48 _0818FC6C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_818FBDC thumb_func_start sub_818FC78 sub_818FC78: @ 818FC78 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 adds r5, r4, 0 bl Random movs r1, 0x1 ands r1, r0 cmp r1, 0 beq _0818FCA2 adds r0, r4, 0 movs r1, 0 bl sub_818FCBC cmp r0, 0 bne _0818FCB6 adds r0, r4, 0 movs r1, 0x1 bl sub_818FDB8 b _0818FCB6 _0818FCA2: adds r0, r5, 0 movs r1, 0 bl sub_818FDB8 cmp r0, 0 bne _0818FCB6 adds r0, r5, 0 movs r1, 0x1 bl sub_818FCBC _0818FCB6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_818FC78 thumb_func_start sub_818FCBC sub_818FCBC: @ 818FCBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] movs r0, 0 mov r9, r0 mov r1, r8 lsls r1, 2 str r1, [sp, 0x18] _0818FCDE: mov r2, r9 lsls r0, r2, 2 mov r2, sp adds r1, r2, r0 movs r0, 0 str r0, [r1] movs r7, 0 mov r0, r9 adds r0, 0x1 str r0, [sp, 0x14] adds r5, r1, 0 mov r1, r9 lsls r1, 1 str r1, [sp, 0x10] _0818FCFA: movs r6, 0 adds r2, r7, 0x1 mov r10, r2 _0818FD00: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, [sp, 0x18] adds r0, r1, r2 ldr r2, =0x00000d24 adds r0, r2 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 ldr r2, =0x000003fe cmp r0, r2 bne _0818FD3C mov r1, r9 lsls r0, r1, 24 lsls r1, r7, 24 lsrs r0, 24 lsrs r1, 24 bl sub_81A5060 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 b _0818FD60 .pool _0818FD3C: mov r2, r8 lsls r0, r2, 1 add r0, r8 lsls r0, 1 ldr r2, [sp, 0x10] adds r0, r2, r0 ldr r2, =0x00000d64 adds r1, r2 adds r1, r0 ldrh r0, [r1] ldr r1, =gUnknown_0203BC8C ldr r1, [r1] lsls r0, 4 adds r0, r1 lsls r1, r7, 1 adds r0, 0x2 adds r0, r1 ldrh r4, [r0] _0818FD60: movs r0, 0x64 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl sub_818FFC0 ldr r1, [r5] adds r1, r0 str r1, [r5] adds r6, 0x1 cmp r6, 0x2 ble _0818FD00 mov r7, r10 cmp r7, 0x3 ble _0818FCFA ldr r0, [sp, 0x14] mov r9, r0 cmp r0, 0x2 ble _0818FCDE mov r0, sp ldr r1, [sp, 0xC] bl sub_818FEB4 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_818FCBC thumb_func_start sub_818FDB8 sub_818FDB8: @ 818FDB8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] movs r0, 0 mov r9, r0 mov r1, r8 lsls r1, 2 str r1, [sp, 0x18] _0818FDDA: mov r2, r9 lsls r0, r2, 2 mov r2, sp adds r1, r2, r0 movs r0, 0 str r0, [r1] movs r7, 0 mov r0, r9 adds r0, 0x1 str r0, [sp, 0x14] adds r5, r1, 0 mov r1, r9 lsls r1, 1 str r1, [sp, 0x10] _0818FDF6: movs r6, 0 adds r2, r7, 0x1 mov r10, r2 _0818FDFC: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, [sp, 0x18] adds r0, r1, r2 ldr r2, =0x00000d24 adds r0, r2 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 ldr r2, =0x000003fe cmp r0, r2 bne _0818FE38 mov r1, r9 lsls r0, r1, 24 lsls r1, r7, 24 lsrs r0, 24 lsrs r1, 24 bl sub_81A5060 adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 b _0818FE5C .pool _0818FE38: mov r2, r8 lsls r0, r2, 1 add r0, r8 lsls r0, 1 ldr r2, [sp, 0x10] adds r0, r2, r0 ldr r2, =0x00000d64 adds r1, r2 adds r1, r0 ldrh r0, [r1] ldr r1, =gUnknown_0203BC8C ldr r1, [r1] lsls r0, 4 adds r0, r1 lsls r1, r7, 1 adds r0, 0x2 adds r0, r1 ldrh r4, [r0] _0818FE5C: movs r0, 0x64 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x1 bl sub_818FFC0 ldr r1, [r5] adds r1, r0 str r1, [r5] adds r6, 0x1 cmp r6, 0x2 ble _0818FDFC mov r7, r10 cmp r7, 0x3 ble _0818FDF6 ldr r0, [sp, 0x14] mov r9, r0 cmp r0, 0x2 ble _0818FDDA mov r0, sp ldr r1, [sp, 0xC] bl sub_818FEB4 add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_818FDB8 thumb_func_start sub_818FEB4 sub_818FEB4: @ 818FEB4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r10, r0 lsls r1, 24 lsrs r1, 24 movs r0, 0 str r0, [sp, 0xC] movs r3, 0x2 add r0, sp, 0x8 _0818FECE: str r3, [r0] subs r0, 0x4 subs r3, 0x1 cmp r3, 0 bge _0818FECE mov r3, r10 ldr r2, [r3] ldr r0, [r3, 0x4] cmp r2, r0 bne _0818FF20 ldr r0, [r3, 0x8] cmp r2, r0 bne _0818FF20 cmp r1, 0 beq _0818FFAA movs r3, 0 ldr r4, =gBitTable _0818FEF0: str r3, [sp, 0x14] bl Random movs r1, 0x3 ands r1, r0 ldr r3, [sp, 0x14] cmp r1, 0x3 beq _0818FF16 lsls r0, r1, 2 adds r0, r4 ldr r1, [r0] ldr r0, [sp, 0xC] ands r0, r1 cmp r0, 0 bne _0818FF16 ldr r0, [sp, 0xC] orrs r0, r1 str r0, [sp, 0xC] adds r3, 0x1 _0818FF16: cmp r3, 0x2 bne _0818FEF0 b _0818FFAA .pool _0818FF20: movs r3, 0 mov r9, sp mov r8, r10 _0818FF26: adds r2, r3, 0x1 cmp r2, 0x2 bgt _0818FF84 mov r6, r8 mov r7, r9 lsls r0, r2, 2 mov r1, sp adds r5, r0, r1 mov r1, r10 adds r4, r0, r1 _0818FF3A: ldr r0, [r6] ldr r1, [r4] cmp r0, r1 bge _0818FF4E str r1, [r6] str r0, [r4] ldr r1, [r7] ldr r0, [r5] str r0, [r7] str r1, [r5] _0818FF4E: ldr r1, [r6] ldr r0, [r4] cmp r1, r0 bne _0818FF7A str r2, [sp, 0x10] str r3, [sp, 0x14] bl Random movs r1, 0x1 ands r1, r0 ldr r2, [sp, 0x10] ldr r3, [sp, 0x14] cmp r1, 0 beq _0818FF7A ldr r1, [r6] ldr r0, [r4] str r0, [r6] str r1, [r4] ldr r1, [r7] ldr r0, [r5] str r0, [r7] str r1, [r5] _0818FF7A: adds r5, 0x4 adds r4, 0x4 adds r2, 0x1 cmp r2, 0x2 ble _0818FF3A _0818FF84: movs r4, 0x4 add r9, r4 add r8, r4 adds r3, 0x1 cmp r3, 0x1 ble _0818FF26 ldr r2, =gBitTable mov r1, sp movs r3, 0x1 _0818FF96: ldm r1!, {r0} lsls r0, 2 adds r0, r2 ldr r0, [r0] ldr r4, [sp, 0xC] orrs r4, r0 str r4, [sp, 0xC] subs r3, 0x1 cmp r3, 0 bge _0818FF96 _0818FFAA: ldr r0, [sp, 0xC] add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_818FEB4 thumb_func_start sub_818FFC0 sub_818FFC0: @ 818FFC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r3, r0, 0 adds r4, r1, 0 str r2, [sp] movs r6, 0 movs r2, 0x14 cmp r3, 0 beq _0818FFF0 ldr r0, =0x0000ffff cmp r3, r0 beq _0818FFF0 ldr r0, =gBattleMoves lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r3, r1, r0 ldrb r0, [r3, 0x1] cmp r0, 0 bne _0818FFFC _0818FFF0: movs r0, 0 b _08190156 .pool _0818FFFC: ldr r1, =gBaseStats lsls r0, r4, 3 subs r0, r4 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x6] mov r10, r1 ldrb r1, [r0, 0x7] mov r9, r1 ldrb r0, [r0, 0x16] mov r8, r0 ldrb r3, [r3, 0x2] str r3, [sp, 0x4] cmp r0, 0x1A bne _0819002C cmp r3, 0x4 bne _0819002C ldr r0, [sp] cmp r0, 0x1 bne _081900AA movs r2, 0x8 b _081900A4 .pool _0819002C: ldr r0, =gUnknown_0831ACE8 adds r1, r6, r0 ldrb r0, [r1] ldr r7, =gUnknown_0831ACE8 cmp r0, 0xFF beq _081900A4 adds r4, r1, 0 _0819003A: ldrb r0, [r4] cmp r0, 0xFE beq _08190096 ldrb r0, [r4] ldr r1, [sp, 0x4] cmp r0, r1 bne _08190096 ldrb r0, [r4, 0x1] adds r5, r6, 0x1 cmp r0, r10 bne _0819006C adds r1, r6, 0x2 mov r0, r8 cmp r0, 0x19 bne _0819005E ldrb r0, [r4, 0x2] cmp r0, 0x28 bne _0819006C _0819005E: adds r0, r1, r7 ldrb r0, [r0] muls r0, r2 movs r1, 0xA bl __divsi3 adds r2, r0, 0 _0819006C: adds r0, r5, r7 ldrb r0, [r0] cmp r0, r9 bne _08190096 cmp r10, r9 beq _08190096 adds r1, r6, 0x2 mov r0, r8 cmp r0, 0x19 bne _08190088 adds r0, r1, r7 ldrb r0, [r0] cmp r0, 0x28 bne _08190096 _08190088: adds r0, r1, r7 ldrb r0, [r0] muls r0, r2 movs r1, 0xA bl __divsi3 adds r2, r0, 0 _08190096: adds r4, 0x3 adds r6, 0x3 ldr r1, =gUnknown_0831ACE8 adds r0, r6, r1 ldrb r0, [r0] cmp r0, 0xFF bne _0819003A _081900A4: ldr r0, [sp] cmp r0, 0x1 beq _081900E0 _081900AA: ldr r1, [sp] cmp r1, 0x1 bgt _081900BC cmp r1, 0 beq _081900C4 b _08190154 .pool _081900BC: ldr r0, [sp] cmp r0, 0x2 beq _08190114 b _08190154 _081900C4: cmp r2, 0xA beq _08190146 cmp r2, 0xA ble _08190146 cmp r2, 0x28 beq _0819014A cmp r2, 0x28 bgt _081900DA cmp r2, 0x14 beq _08190104 b _08190146 _081900DA: cmp r2, 0x50 bne _08190146 b _08190100 _081900E0: cmp r2, 0xA beq _08190104 cmp r2, 0xA bgt _081900F2 cmp r2, 0 beq _08190100 cmp r2, 0x5 beq _0819014A b _08190146 _081900F2: cmp r2, 0x28 beq _08190108 cmp r2, 0x28 ble _08190146 cmp r2, 0x50 beq _0819010E b _08190146 _08190100: movs r2, 0x8 b _08190154 _08190104: movs r2, 0x2 b _08190154 _08190108: movs r2, 0x2 negs r2, r2 b _08190154 _0819010E: movs r2, 0x4 negs r2, r2 b _08190154 _08190114: cmp r2, 0xA beq _08190146 cmp r2, 0xA bgt _08190126 cmp r2, 0 beq _0819013A cmp r2, 0x5 beq _08190140 b _08190146 _08190126: cmp r2, 0x28 beq _0819014E cmp r2, 0x28 bgt _08190134 cmp r2, 0x14 beq _0819014A b _08190146 _08190134: cmp r2, 0x50 beq _08190152 b _08190146 _0819013A: movs r2, 0x10 negs r2, r2 b _08190154 _08190140: movs r2, 0x8 negs r2, r2 b _08190154 _08190146: movs r2, 0 b _08190154 _0819014A: movs r2, 0x4 b _08190154 _0819014E: movs r2, 0xC b _08190154 _08190152: movs r2, 0x14 _08190154: adds r0, r2, 0 _08190156: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_818FFC0 thumb_func_start sub_8190168 sub_8190168: @ 8190168 push {lr} lsls r0, 16 lsrs r0, 16 movs r1, 0x3 cmp r0, 0x63 bls _0819019A movs r1, 0x6 cmp r0, 0x77 bls _0819019A movs r1, 0x9 cmp r0, 0x8B bls _0819019A movs r1, 0xC cmp r0, 0x9F bls _0819019A movs r1, 0xF cmp r0, 0xB3 bls _0819019A movs r1, 0x12 cmp r0, 0xC7 bls _0819019A movs r1, 0x1F cmp r0, 0xDB bhi _0819019A movs r1, 0x15 _0819019A: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_8190168 thumb_func_start sub_81901A0 sub_81901A0: @ 81901A0 push {r4-r7,lr} adds r3, r0, 0 adds r2, r1, 0 movs r5, 0 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r4, =0x00000d24 adds r1, r4 ldrh r1, [r1] lsls r1, 22 lsrs r1, 22 mov r12, r0 ldr r6, =gUnknown_0860D10C cmp r1, r2 beq _081901D8 mov r7, r12 _081901C0: adds r5, 0x1 cmp r5, 0xF bgt _081901D8 ldr r0, [r7] lsls r1, r5, 2 adds r0, r1 adds r0, r4 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r2 bne _081901C0 _081901D8: cmp r3, 0 beq _0819026C cmp r3, 0x3 bne _081901FC lsls r0, r5, 2 adds r1, r0, 0x3 adds r1, r6 ldrb r1, [r1] adds r4, r1, 0 adds r4, 0x8 b _08190206 .pool _081901FC: lsls r0, r5, 2 adds r1, r3, r0 adds r1, r6 ldrb r1, [r1] adds r4, r1, 0x4 _08190206: adds r0, r3, r0 adds r0, r6 ldrb r2, [r0] cmp r2, r4 bge _08190256 ldr r1, =gUnknown_0860D14C adds r0, r2, r1 ldrb r3, [r0] adds r6, r1, 0 cmp r3, r5 beq _08190234 mov r1, r12 ldr r0, [r1] lsls r1, r3, 2 adds r0, r1 ldr r3, =0x00000d25 adds r0, r3 b _0819024E .pool _08190234: adds r2, 0x1 cmp r2, r4 bge _08190256 adds r0, r2, r6 ldrb r1, [r0] cmp r1, r5 beq _08190234 mov r3, r12 ldr r0, [r3] lsls r1, 2 adds r0, r1 ldr r1, =0x00000d25 adds r0, r1 _0819024E: ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08190234 _08190256: cmp r2, r4 beq _08190286 ldr r0, =gUnknown_0860D14C adds r0, r2, r0 ldrb r0, [r0] b _08190292 .pool _0819026C: mov r3, r12 ldr r1, [r3] lsls r0, r5, 2 adds r0, r6 ldrb r2, [r0] lsls r0, r2, 2 adds r1, r0 ldr r0, =0x00000d25 adds r1, r0 ldrb r0, [r1] lsls r0, 29 cmp r0, 0 bge _08190290 _08190286: movs r0, 0xFF b _08190292 .pool _08190290: adds r0, r2, 0 _08190292: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81901A0 thumb_func_start sub_8190298 sub_8190298: @ 8190298 push {lr} bl sub_81902AC ldr r1, =gTrainerBattleOpponent_A strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8190298 thumb_func_start sub_81902AC sub_81902AC: @ 81902AC push {r4,lr} ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r1, =0x00000cb2 adds r0, r4, r1 ldrh r0, [r0] ldr r1, =0x000003ff bl sub_81901A0 lsls r0, 2 adds r4, r0 ldr r0, =0x00000d24 adds r4, r0 ldrh r0, [r4] lsls r0, 22 lsrs r0, 22 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81902AC thumb_func_start sub_81902E4 sub_81902E4: @ 81902E4 push {lr} ldr r0, =gTrainerBattleOpponent_A ldrh r0, [r0] movs r1, 0 bl sub_8162614 pop {r0} bx r0 .pool thumb_func_end sub_81902E4 thumb_func_start sub_81902F8 sub_81902F8: @ 81902F8 push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81902F8 thumb_func_start sub_819033C sub_819033C: @ 819033C push {r4,r5,lr} ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldr r1, =0x00000ca9 adds r0, r1 ldrb r4, [r0] lsls r4, 30 lsrs r4, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 24 ldr r1, [r5] lsls r4, 1 lsrs r0, 22 adds r4, r0 ldr r3, =0x00000d0c adds r1, r3 adds r1, r4 ldrh r0, [r1] ldr r2, =0x000003e6 cmp r0, r2 bhi _0819036E adds r0, 0x1 strh r0, [r1] _0819036E: ldr r0, [r5] ldr r1, =0x00000d1c adds r0, r1 adds r1, r0, r4 ldrh r0, [r1] cmp r0, r2 bhi _08190380 adds r0, 0x1 strh r0, [r1] _08190380: ldr r0, [r5] adds r1, r0, r3 adds r1, r4 ldr r2, =0x00000d14 adds r0, r2 adds r0, r4 ldrh r1, [r1] ldrh r2, [r0] cmp r1, r2 bls _08190396 strh r1, [r0] _08190396: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819033C thumb_func_start sub_81903B8 sub_81903B8: @ 81903B8 push {r4,r5,lr} ldr r0, =sub_8190400 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r5, 0 strh r5, [r4, 0x8] bl sub_81902AC lsls r0, 16 lsrs r0, 16 bl sub_8195358 strh r0, [r4, 0xA] strh r5, [r4, 0xC] strh r5, [r4, 0xE] ldr r0, =sub_8194B54 bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81903B8 thumb_func_start sub_8190400 sub_8190400: @ 8190400 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r1, =gTasks lsls r0, 2 add r0, r10 lsls r0, 3 adds r6, r0, r1 movs r0, 0xA ldrsh r5, [r6, r0] movs r2, 0xC ldrsh r1, [r6, r2] mov r9, r1 movs r0, 0xE ldrsh r7, [r6, r0] movs r1, 0x8 ldrsh r4, [r6, r1] cmp r4, 0x1 beq _08190508 cmp r4, 0x1 bgt _08190440 cmp r4, 0 beq _0819044E b _08190772 .pool _08190440: cmp r4, 0x2 bne _08190446 b _08190570 _08190446: cmp r4, 0x3 bne _0819044C b _08190634 _0819044C: b _08190772 _0819044E: movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r0, 0x1 bl EnableInterrupts str r4, [sp, 0x4] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 add r0, sp, 0x4 bl CpuSet movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0860CE84 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, =gUnknown_0860CEB4 bl InitWindows bl DeactivateAllTextPrinters ldr r0, =gUnknown_02022E14 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] ldr r0, =gUnknown_02022E18 strh r4, [r0] ldr r0, =gUnknown_02022E1A strh r4, [r0] ldr r0, =gUnknown_02022E20 strh r4, [r0] ldr r0, =gUnknown_02022E22 strh r4, [r0] mov r2, r9 cmp r2, 0x2 bne _081904DC ldr r0, =gUnknown_02022E1C strh r4, [r0] ldr r0, =gUnknown_02022E1E strh r4, [r0] b _081904E6 .pool _081904DC: ldr r0, =gUnknown_02022E1C strh r4, [r0] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] _081904E6: ldr r0, =gTasks mov r2, r10 lsls r1, r2, 2 add r1, r10 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _08190772 .pool _08190508: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r0, 0x4C movs r1, 0 bl SetGpuReg movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x42 movs r1, 0 bl SetGpuReg movs r0, 0x46 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0x3F bl SetGpuReg bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, =gReservedSpritePaletteCount movs r0, 0x4 strb r0, [r1] b _08190602 .pool _08190570: ldr r1, =gUnknown_08D83D50 movs r5, 0x80 lsls r5, 6 movs r7, 0 str r7, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08D84970 movs r4, 0x1 str r4, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08D84F00 movs r2, 0x80 lsls r2, 4 str r4, [sp] movs r0, 0x3 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r0, =gUnknown_0860CF50 bl LoadCompressedObjectPic ldr r0, =gUnknown_08D85358 movs r4, 0x80 lsls r4, 2 movs r1, 0 adds r2, r4, 0 bl LoadCompressedPalette ldr r0, =gUnknown_08D85444 movs r1, 0x80 lsls r1, 1 adds r2, r4, 0 bl LoadCompressedPalette ldr r0, =gUnknown_08D85600 movs r1, 0xF0 movs r2, 0x20 bl LoadCompressedPalette mov r0, r9 cmp r0, 0x2 bne _081905DE ldr r0, =gUnknown_08D854C8 movs r1, 0x50 movs r2, 0x20 bl LoadCompressedPalette _081905DE: str r7, [sp, 0x8] add r0, sp, 0x8 ldr r1, =gPlttBufferFaded ldr r2, =0x05000100 bl CpuSet movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg _08190602: ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _08190772 .pool _08190634: ldr r0, =sub_8194B70 bl SetVBlankCallback ldr r4, =gUnknown_0203CD78 movs r0, 0x14 bl AllocZeroed str r0, [r4] movs r6, 0 lsls r5, 24 movs r2, 0xFF _0819064A: ldr r1, [r4] adds r1, r6 ldrb r0, [r1] orrs r0, r2 strb r0, [r1] adds r6, 0x1 cmp r6, 0xF ble _0819064A bl sub_80D2F04 ldr r0, =sub_8190CD4 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] strh r1, [r0, 0xC] mov r1, r9 strh r1, [r0, 0xE] strh r7, [r0, 0x10] mov r2, r9 cmp r2, 0x2 bne _081906A8 lsrs r1, r5, 24 movs r0, 0 bl sub_819314C ldr r0, =gUnknown_0203CD78 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x10] b _081906B0 .pool _081906A8: lsrs r1, r5, 24 movs r0, 0 bl sub_81924E0 _081906B0: movs r1, 0xFA lsls r1, 5 movs r0, 0 bl SetGpuReg mov r0, r9 cmp r0, 0 beq _0819076C ldr r5, =gUnknown_0860D068 adds r0, r5, 0 movs r1, 0x78 movs r2, 0x4 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 ldr r1, =gSprites mov r8, r1 add r4, r8 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim strh r6, [r4, 0x2E] adds r0, r5, 0 movs r1, 0x78 movs r2, 0x9C movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 add r4, r8 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim strh r6, [r4, 0x2E] ldr r5, =gUnknown_0860D050 adds r0, r5, 0 movs r1, 0x6 movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 4 adds r0, r7 lsls r0, 2 mov r2, r8 adds r4, r0, r2 adds r0, r4, 0 movs r1, 0 bl StartSpriteAnim strh r6, [r4, 0x2E] movs r0, 0 strh r0, [r4, 0x30] mov r1, r9 cmp r1, 0x1 bne _08190746 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08190746: adds r0, r5, 0 movs r1, 0xEA movs r2, 0x50 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r7, r0, 24 lsls r4, r7, 4 adds r4, r7 lsls r4, 2 add r4, r8 adds r0, r4, 0 movs r1, 0x1 bl StartSpriteAnim strh r6, [r4, 0x2E] movs r0, 0x1 strh r0, [r4, 0x30] _0819076C: mov r0, r10 bl DestroyTask _08190772: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8190400 thumb_func_start sub_8190790 sub_8190790: @ 8190790 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x22] adds r1, r0, 0x4 strh r1, [r2, 0x22] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 beq _081907D4 lsls r0, r1, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 blt _081907BC adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _081907BC: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 bne _081907F0 ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] b _081907F0 .pool _081907D4: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xBF ble _081907F0 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r3, 0x32 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrh r0, [r2, 0x34] bl sub_818D8F0 _081907F0: pop {r0} bx r0 .pool thumb_func_end sub_8190790 thumb_func_start sub_81907F8 sub_81907F8: @ 81907F8 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x22] subs r1, r0, 0x4 strh r1, [r2, 0x22] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 beq _08190838 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xC0 bgt _08190820 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _08190820: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 bne _08190858 ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] b _08190858 .pool _08190838: lsls r0, r1, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 bgt _08190858 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r3, 0x32 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrh r0, [r2, 0x34] bl sub_818D8F0 _08190858: pop {r0} bx r0 .pool thumb_func_end sub_81907F8 thumb_func_start sub_8190860 sub_8190860: @ 8190860 push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] adds r1, r0, 0x4 strh r1, [r2, 0x20] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 beq _081908A4 lsls r0, r1, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 blt _0819088C adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _0819088C: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _081908C0 ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] b _081908C0 .pool _081908A4: lsls r1, 16 ldr r0, =0x010f0000 cmp r1, r0 ble _081908C0 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r3, 0x32 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrh r0, [r2, 0x34] bl sub_818D8F0 _081908C0: pop {r0} bx r0 .pool thumb_func_end sub_8190860 thumb_func_start sub_81908CC sub_81908CC: @ 81908CC push {lr} adds r2, r0, 0 ldrh r0, [r2, 0x20] subs r1, r0, 0x4 strh r1, [r2, 0x20] movs r3, 0x2E ldrsh r0, [r2, r3] cmp r0, 0 beq _08190910 lsls r1, 16 movs r0, 0x88 lsls r0, 17 cmp r1, r0 bgt _081908F6 adds r3, r2, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] _081908F6: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _08190930 ldr r0, =SpriteCallbackDummy str r0, [r2, 0x1C] b _08190930 .pool _08190910: lsls r0, r1, 16 asrs r0, 16 movs r1, 0x20 negs r1, r1 cmp r0, r1 bgt _08190930 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r3, 0x32 ldrsh r1, [r2, r3] adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrh r0, [r2, 0x34] bl sub_818D8F0 _08190930: pop {r0} bx r0 .pool thumb_func_end sub_81908CC thumb_func_start sub_8190938 sub_8190938: @ 8190938 push {lr} adds r1, r0, 0 movs r2, 0x34 ldrsh r0, [r1, r2] cmp r0, 0 bne _0819094A adds r0, r1, 0 bl sub_80D30DC _0819094A: pop {r0} bx r0 thumb_func_end sub_8190938 thumb_func_start sub_8190950 sub_8190950: @ 8190950 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _08190962 adds r0, r4, 0 bl sub_80D30DC _08190962: ldrh r0, [r4, 0x22] adds r1, r0, 0x4 strh r1, [r4, 0x22] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _081909A4 lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 blt _0819098A adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _0819098A: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 bne _081909C0 ldr r0, =sub_8190938 str r0, [r4, 0x1C] b _081909C0 .pool _081909A4: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xAF ble _081909C0 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r2, 0x32 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0xFF strb r1, [r0] adds r0, r4, 0 bl sub_80D2EF8 _081909C0: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8190950 thumb_func_start sub_81909CC sub_81909CC: @ 81909CC push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _081909DE adds r0, r4, 0 bl sub_80D30DC _081909DE: ldrh r0, [r4, 0x22] subs r1, r0, 0x4 strh r1, [r4, 0x22] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _08190A1C lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xB0 bgt _08190A02 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08190A02: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x28 bne _08190A3C ldr r0, =sub_8190938 str r0, [r4, 0x1C] b _08190A3C .pool _08190A1C: lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bgt _08190A3C ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r2, 0x32 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0xFF strb r1, [r0] adds r0, r4, 0 bl sub_80D2EF8 _08190A3C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81909CC thumb_func_start sub_8190A48 sub_8190A48: @ 8190A48 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _08190A5A adds r0, r4, 0 bl sub_80D30DC _08190A5A: ldrh r0, [r4, 0x20] adds r1, r0, 0x4 strh r1, [r4, 0x20] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _08190A9C lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 blt _08190A82 adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08190A82: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _08190AB8 ldr r0, =sub_8190938 str r0, [r4, 0x1C] b _08190AB8 .pool _08190A9C: lsls r0, r1, 16 asrs r0, 16 cmp r0, 0xFF ble _08190AB8 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r2, 0x32 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0xFF strb r1, [r0] adds r0, r4, 0 bl sub_80D2EF8 _08190AB8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8190A48 thumb_func_start sub_8190AC4 sub_8190AC4: @ 8190AC4 push {r4,lr} adds r4, r0, 0 movs r1, 0x34 ldrsh r0, [r4, r1] cmp r0, 0 bne _08190AD6 adds r0, r4, 0 bl sub_80D30DC _08190AD6: ldrh r0, [r4, 0x20] subs r1, r0, 0x4 strh r1, [r4, 0x20] movs r2, 0x2E ldrsh r0, [r4, r2] cmp r0, 0 beq _08190B14 lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bgt _08190AFC adds r2, r4, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08190AFC: ldrh r0, [r4, 0x30] adds r0, 0x1 strh r0, [r4, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x40 bne _08190B34 ldr r0, =sub_8190938 str r0, [r4, 0x1C] b _08190B34 .pool _08190B14: lsls r0, r1, 16 asrs r0, 16 movs r1, 0x10 negs r1, r1 cmp r0, r1 bgt _08190B34 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] movs r2, 0x32 ldrsh r1, [r4, r2] adds r0, r1 movs r1, 0xFF strb r1, [r0] adds r0, r4, 0 bl sub_80D2EF8 _08190B34: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8190AC4 thumb_func_start sub_8190B40 sub_8190B40: @ 8190B40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} adds r3, r0, 0 movs r0, 0x2E ldrsh r6, [r3, r0] ldr r2, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r2 movs r7, 0x10 ldrsh r1, [r4, r7] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0xA ldrsh r0, [r0, r1] ldr r1, =gUnknown_0860D080 adds r0, r1 ldrb r0, [r0] mov r10, r0 ldr r1, =gSaveBlock2Ptr ldr r5, [r1] ldr r7, =0x00000cb2 adds r0, r5, r7 ldrh r0, [r0] mov r12, r0 movs r7, 0xE ldrsh r0, [r4, r7] mov r9, r2 mov r8, r1 cmp r0, 0x1 bne _08190C0C movs r1, 0x30 ldrsh r0, [r3, r1] cmp r0, 0 beq _08190BFC mov r2, r10 lsls r0, r2, 2 adds r1, r5, r0 ldr r7, =0x00000d25 adds r1, r7 ldrb r2, [r1] lsls r1, r2, 29 adds r4, r0, 0 cmp r1, 0 bge _08190BB6 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r1, [r0, 0x10] subs r1, 0x1 lsls r0, r2, 27 lsrs r0, 30 cmp r1, r0 blt _08190C32 _08190BB6: mov r1, r8 ldr r0, [r1] adds r0, r4 ldr r2, =0x00000d25 adds r0, r2 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08190BD4 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] subs r0, 0x1 cmp r0, r12 blt _08190C32 _08190BD4: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 add r0, r9 movs r7, 0x8 ldrsh r0, [r0, r7] b _08190C4C .pool _08190BFC: ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 bne _08190C32 b _08190C48 .pool _08190C0C: movs r2, 0x30 ldrsh r0, [r3, r2] cmp r0, 0 beq _08190C28 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0x1 bls _08190C32 movs r7, 0x8 ldrsh r0, [r4, r7] b _08190C4C .pool _08190C28: ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 beq _08190C48 _08190C32: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] b _08190C5C .pool _08190C48: movs r1, 0x8 ldrsh r0, [r4, r1] _08190C4C: cmp r0, 0x2 bne _08190C5C adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08190C5C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8190B40 thumb_func_start sub_8190C6C sub_8190C6C: @ 8190C6C push {lr} adds r3, r0, 0 movs r0, 0x2E ldrsh r1, [r3, r0] ldr r2, =gTasks lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r1, r0, r2 movs r2, 0xE ldrsh r0, [r1, r2] cmp r0, 0x1 bne _08190C9C ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 bne _08190CA6 b _08190CC0 .pool _08190C9C: ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0x1 beq _08190CC0 _08190CA6: movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0x2 bne _08190CCE adds r0, r3, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _08190CCE .pool _08190CC0: adds r2, r3, 0 adds r2, 0x3E ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] _08190CCE: pop {r0} bx r0 thumb_func_end sub_8190C6C thumb_func_start sub_8190CD4 sub_8190CD4: @ 8190CD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r3, 0xE ldrsh r2, [r0, r3] mov r9, r2 movs r4, 0x10 ldrsh r7, [r0, r4] movs r5, 0x8 ldrsh r0, [r0, r5] cmp r0, 0x8 bls _08190D06 bl _08192202 _08190D06: lsls r0, 2 ldr r1, =_08190D18 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08190D18: .4byte _08190D3C .4byte _08190D7C .4byte _08190DA8 .4byte _08190E48 .4byte _08191FF8 .4byte _08192038 .4byte _08192078 .4byte _081920BC .4byte _08192106 _08190D3C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _08190D50 bl _08192202 _08190D50: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, =gTasks mov r6, r8 lsls r0, r6, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] bl _08192202 .pool _08190D7C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08190D8C bl _08192202 _08190D8C: mov r1, r8 lsls r0, r1, 2 add r0, r8 lsls r0, 3 ldr r2, =gTasks adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] bl _08192202 .pool _08190DA8: mov r0, r8 bl sub_819221C lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x8 bgt _08190DBE cmp r6, 0x1 bge _08190DF0 bl _08192202 _08190DBE: cmp r6, 0x9 beq _08190DC6 bl _08192202 _08190DC6: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0x8 strh r1, [r0, 0x8] bl _08192202 .pool _08190DF0: ldr r1, =gTasks mov r4, r8 lsls r2, r4, 2 adds r0, r2, r4 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x12] movs r5, 0xC ldrsh r0, [r0, r5] movs r1, 0 mov r9, r2 cmp r0, 0 beq _08190E0C movs r1, 0x9 _08190E0C: adds r6, r1, 0 adds r0, r6, 0 adds r0, 0x9 cmp r6, r0 bge _08190E32 adds r5, r0, 0 _08190E18: lsls r4, r6, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r6, 0x1 cmp r6, r5 blt _08190E18 _08190E32: ldr r0, =gTasks mov r1, r9 add r1, r8 lsls r1, 3 adds r1, r0 movs r0, 0x3 strh r0, [r1, 0x8] bl _08192202 .pool _08190E48: mov r6, r8 lsls r1, r6, 2 adds r0, r1, r6 lsls r0, 3 ldr r2, =gTasks adds r0, r2 movs r3, 0x12 ldrsh r6, [r0, r3] subs r0, r6, 0x1 mov r9, r1 cmp r0, 0x7 bls _08190E64 bl _08192202 _08190E64: lsls r0, 2 ldr r1, =_08190E78 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08190E78: .4byte _08190E98 .4byte _08191234 .4byte _081915CC .4byte _08191B08 .4byte _08190E98 .4byte _08191234 .4byte _0819187C .4byte _08191D68 _08190E98: mov r0, r9 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r0, r4 movs r5, 0xC ldrsh r2, [r0, r5] cmp r2, 0 beq _08190ED4 ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r0, =gUnknown_02022E18 strh r1, [r0] ldr r1, =gUnknown_02022E1A movs r0, 0xA0 strh r0, [r1] b _08190EE6 .pool _08190ED4: ldr r0, =gUnknown_02022E14 strh r2, [r0] ldr r1, =gUnknown_02022E16 movs r0, 0xA0 strh r0, [r1] ldr r0, =gUnknown_02022E18 strh r2, [r0] ldr r0, =gUnknown_02022E1A strh r2, [r0] _08190EE6: cmp r6, 0x1 bne _08190F9C ldr r5, =gUnknown_0203CD78 ldr r0, [r5] ldrb r1, [r0, 0x10] cmp r1, 0 bne _08190F50 ldr r0, =gUnknown_02022E1C strh r1, [r0] ldr r1, =gUnknown_02022E1E movs r6, 0xA0 lsls r6, 1 adds r0, r6, 0 strh r0, [r1] ldr r3, =gUnknown_0860D080 ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r4, 0xA ldrsh r1, [r0, r4] adds r1, r3 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0xC] movs r0, 0x10 orrs r0, r2 ldrb r1, [r1] bl sub_81924E0 b _08191084 .pool _08190F50: ldr r1, =gUnknown_02022E1C movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r1] ldr r0, =gUnknown_02022E1E movs r4, 0 strh r4, [r0] ldr r3, =gUnknown_0860D080 ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r6, 0xA ldrsh r1, [r0, r6] adds r1, r3 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0xC] movs r0, 0x10 orrs r0, r2 ldrb r1, [r1] bl sub_81924E0 ldr r0, [r5] strb r4, [r0, 0x10] b _08191084 .pool _08190F9C: ldr r6, =gUnknown_0203CD78 ldr r1, [r6] ldrb r5, [r1, 0x10] cmp r5, 0 bne _08190FF8 ldr r4, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 movs r2, 0xA ldrsh r0, [r0, r2] adds r2, r0, 0 subs r2, 0x10 lsls r0, r2, 24 lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 ldr r0, =gUnknown_02022E1C strh r5, [r0] ldr r1, =gUnknown_02022E1E movs r3, 0xA0 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] ldr r2, [r6] mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r4 ldrb r1, [r0, 0xC] movs r0, 0x10 orrs r0, r1 ldrb r1, [r2, 0x11] bl sub_81924E0 b _08191084 .pool _08190FF8: cmp r5, 0x2 bne _0819104C ldr r4, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 movs r5, 0xA ldrsh r0, [r0, r5] adds r2, r0, 0 subs r2, 0x10 lsls r0, r2, 24 lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 ldr r1, =gUnknown_02022E1C movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r2, 0xA0 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] ldr r2, [r6] mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r4 ldrb r1, [r0, 0xC] movs r0, 0x10 orrs r0, r1 ldrb r1, [r2, 0x12] bl sub_81924E0 b _08191084 .pool _0819104C: ldr r1, =gUnknown_02022E1C movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r4, 0xA ldrsh r0, [r0, r4] adds r2, r0, 0 subs r2, 0x10 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] movs r0, 0x10 orrs r0, r1 lsls r1, r2, 24 lsrs r1, 24 bl sub_819314C _08191084: movs r6, 0 ldr r5, =gUnknown_0203CD78 mov r10, r5 ldr r3, =gSprites mov r0, r9 add r0, r8 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 mov r12, r6 adds r4, r3, 0 adds r4, 0x1C movs r7, 0x1 _0819109E: cmp r6, 0x1 bgt _0819110C mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191150 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190790 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191150 .pool _0819110C: mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191150 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190950 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191150: adds r6, 0x1 cmp r6, 0x7 ble _0819109E movs r6, 0x8 ldr r2, =gUnknown_0203CD78 mov r12, r2 ldr r3, =gSprites ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r5, r0, r1 movs r4, 0 adds r7, r3, 0 adds r7, 0x1C _0819116E: cmp r6, 0x9 bgt _081911D4 mov r1, r12 ldr r0, [r1] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191214 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190790 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191214 .pool _081911D4: mov r2, r12 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191214 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190950 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191214: adds r6, 0x1 cmp r6, 0xF ble _0819116E mov r0, r9 add r0, r8 lsls r0, 3 ldr r3, =gTasks adds r0, r3 movs r2, 0 movs r1, 0x4 bl _08191FE8 .pool _08191234: mov r0, r9 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r0, r4 movs r5, 0xC ldrsh r2, [r0, r5] cmp r2, 0 beq _08191278 ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r0, =gUnknown_02022E18 strh r1, [r0] ldr r1, =gUnknown_02022E1A ldr r2, =0x0000ff60 adds r0, r2, 0 strh r0, [r1] b _0819128C .pool _08191278: ldr r0, =gUnknown_02022E14 strh r2, [r0] ldr r1, =gUnknown_02022E16 ldr r3, =0x0000ff60 adds r0, r3, 0 strh r0, [r1] ldr r0, =gUnknown_02022E18 strh r2, [r0] ldr r0, =gUnknown_02022E1A strh r2, [r0] _0819128C: cmp r6, 0x2 bne _0819133C ldr r5, =gUnknown_0203CD78 ldr r0, [r5] ldrb r1, [r0, 0x10] cmp r1, 0 bne _081912F4 ldr r0, =gUnknown_02022E1C strh r1, [r0] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r3, =gUnknown_0860D080 ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r4, 0xA ldrsh r1, [r0, r4] adds r1, r3 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0xC] movs r0, 0x4 orrs r0, r2 ldrb r1, [r1] bl sub_81924E0 b _0819141C .pool _081912F4: ldr r0, =gUnknown_02022E1C movs r4, 0 strh r4, [r0] ldr r0, =gUnknown_02022E1E strh r4, [r0] ldr r3, =gUnknown_0860D080 ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r6, 0xA ldrsh r1, [r0, r6] adds r1, r3 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0xC] movs r0, 0x4 orrs r0, r2 ldrb r1, [r1] bl sub_81924E0 ldr r0, [r5] strb r4, [r0, 0x10] b _0819141C .pool _0819133C: ldr r6, =gUnknown_0203CD78 ldr r1, [r6] ldrb r5, [r1, 0x10] cmp r5, 0 bne _08191394 ldr r4, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 movs r2, 0xA ldrsh r0, [r0, r2] adds r2, r0, 0 subs r2, 0x10 lsls r0, r2, 24 lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 ldr r0, =gUnknown_02022E1C strh r5, [r0] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r2, [r6] mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r4 ldrb r1, [r0, 0xC] movs r0, 0x4 orrs r0, r1 ldrb r1, [r2, 0x11] bl sub_81924E0 b _0819141C .pool _08191394: cmp r5, 0x2 bne _081913E4 ldr r4, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r4 movs r3, 0xA ldrsh r0, [r0, r3] adds r2, r0, 0 subs r2, 0x10 lsls r0, r2, 24 lsrs r0, 24 adds r1, 0x11 bl sub_8192F08 ldr r1, =gUnknown_02022E1C movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r2, [r6] mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r4 ldrb r1, [r0, 0xC] movs r0, 0x4 orrs r0, r1 ldrb r1, [r2, 0x12] bl sub_81924E0 b _0819141C .pool _081913E4: ldr r1, =gUnknown_02022E1C movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0 strh r0, [r1] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r5, 0xA ldrsh r0, [r0, r5] adds r2, r0, 0 subs r2, 0x10 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] movs r0, 0x4 orrs r0, r1 lsls r1, r2, 24 lsrs r1, 24 bl sub_819314C _0819141C: movs r6, 0 ldr r0, =gUnknown_0203CD78 mov r10, r0 ldr r3, =gSprites mov r0, r9 add r0, r8 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 mov r12, r6 adds r4, r3, 0 adds r4, 0x1C movs r7, 0x1 _08191436: cmp r6, 0x1 bgt _081914A4 mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _081914E8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_81907F8 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _081914E8 .pool _081914A4: mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _081914E8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_81909CC str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _081914E8: adds r6, 0x1 cmp r6, 0x7 ble _08191436 movs r6, 0x8 ldr r2, =gUnknown_0203CD78 mov r12, r2 ldr r3, =gSprites ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r5, r0, r1 movs r4, 0 adds r7, r3, 0 adds r7, 0x1C _08191506: cmp r6, 0x9 bgt _0819156C mov r1, r12 ldr r0, [r1] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _081915AC adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_81907F8 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _081915AC .pool _0819156C: mov r2, r12 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _081915AC adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_81909CC str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _081915AC: adds r6, 0x1 cmp r6, 0xF ble _08191506 mov r0, r9 add r0, r8 lsls r0, 3 ldr r3, =gTasks adds r0, r3 movs r2, 0 movs r1, 0x5 bl _08191FE8 .pool _081915CC: mov r0, r9 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r0, r4 movs r5, 0xC ldrsh r2, [r0, r5] cmp r2, 0 beq _0819160C ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r2, =gUnknown_02022E18 movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r2] ldr r0, =gUnknown_02022E1A strh r1, [r0] b _08191622 .pool _0819160C: ldr r1, =gUnknown_02022E14 movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] ldr r0, =gUnknown_02022E18 strh r2, [r0] ldr r0, =gUnknown_02022E1A strh r2, [r0] _08191622: ldr r0, =gUnknown_0203CD78 ldr r4, [r0] ldrb r0, [r4, 0x10] cmp r0, 0 bne _08191688 ldr r1, =gUnknown_02022E1C movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r3, =gUnknown_0860D080 ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r5, 0xA ldrsh r1, [r0, r5] adds r1, r3 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0xC] movs r0, 0x8 orrs r0, r2 ldrb r1, [r1] bl sub_81924E0 b _081916C6 .pool _08191688: ldr r1, =gUnknown_02022E1C movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0 strh r0, [r1] ldr r3, =gUnknown_0860D15C ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r5, 0xA ldrsh r1, [r0, r5] lsls r1, 2 subs r1, 0x1 ldrb r4, [r4, 0x10] adds r1, r4 adds r1, r3 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r2 ldrb r2, [r0, 0xC] movs r0, 0x8 orrs r0, r2 ldrb r1, [r1] bl sub_819314C _081916C6: movs r6, 0 ldr r0, =gUnknown_0203CD78 mov r10, r0 ldr r3, =gSprites mov r0, r9 add r0, r8 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 mov r12, r6 adds r4, r3, 0 adds r4, 0x1C movs r7, 0x1 _081916E0: cmp r6, 0x1 bgt _08191754 mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191798 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190860 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191798 .pool _08191754: mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191798 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190A48 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191798: adds r6, 0x1 cmp r6, 0x7 ble _081916E0 movs r6, 0x8 ldr r2, =gUnknown_0203CD78 mov r12, r2 ldr r3, =gSprites ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r5, r0, r1 movs r4, 0 adds r7, r3, 0 adds r7, 0x1C _081917B6: cmp r6, 0x9 bgt _0819181C mov r1, r12 ldr r0, [r1] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _0819185C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190860 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _0819185C .pool _0819181C: mov r2, r12 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _0819185C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190A48 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _0819185C: adds r6, 0x1 cmp r6, 0xF ble _081917B6 mov r0, r9 add r0, r8 lsls r0, 3 ldr r3, =gTasks adds r0, r3 movs r2, 0 movs r1, 0x6 b _08191FE8 .pool _0819187C: mov r0, r9 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r0, r4 movs r5, 0xC ldrsh r2, [r0, r5] cmp r2, 0 beq _081918BC ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r2, =gUnknown_02022E18 movs r6, 0x80 lsls r6, 1 adds r0, r6, 0 strh r0, [r2] ldr r0, =gUnknown_02022E1A strh r1, [r0] b _081918D2 .pool _081918BC: ldr r1, =gUnknown_02022E14 movs r3, 0x80 lsls r3, 1 adds r0, r3, 0 strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] ldr r0, =gUnknown_02022E18 strh r2, [r0] ldr r0, =gUnknown_02022E1A strh r2, [r0] _081918D2: ldr r0, =gUnknown_0203CD78 ldr r2, [r0] ldrb r0, [r2, 0x10] cmp r0, 0 bne _08191924 ldr r1, =gUnknown_02022E1C movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] movs r0, 0x8 orrs r0, r1 ldrb r1, [r2, 0x11] bl sub_81924E0 b _08191958 .pool _08191924: ldr r1, =gUnknown_02022E1C movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r5, 0xA ldrsh r0, [r0, r5] adds r2, r0, 0 subs r2, 0x10 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] movs r0, 0x8 orrs r0, r1 lsls r1, r2, 24 lsrs r1, 24 bl sub_819314C _08191958: movs r6, 0 ldr r0, =gUnknown_0203CD78 mov r10, r0 ldr r3, =gSprites mov r0, r9 add r0, r8 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 mov r12, r6 adds r4, r3, 0 adds r4, 0x1C movs r7, 0x1 _08191972: cmp r6, 0x1 bgt _081919E0 mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191A24 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190860 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191A24 .pool _081919E0: mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191A24 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190A48 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191A24: adds r6, 0x1 cmp r6, 0x7 ble _08191972 movs r6, 0x8 ldr r2, =gUnknown_0203CD78 mov r12, r2 ldr r3, =gSprites ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r5, r0, r1 movs r4, 0 adds r7, r3, 0 adds r7, 0x1C _08191A42: cmp r6, 0x9 bgt _08191AA8 mov r1, r12 ldr r0, [r1] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191AE8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190860 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191AE8 .pool _08191AA8: mov r2, r12 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191AE8 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190A48 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191AE8: adds r6, 0x1 cmp r6, 0xF ble _08191A42 mov r0, r9 add r0, r8 lsls r0, 3 ldr r3, =gTasks adds r0, r3 movs r2, 0 movs r1, 0x6 b _08191FE8 .pool _08191B08: mov r0, r9 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r0, r4 movs r5, 0xC ldrsh r2, [r0, r5] cmp r2, 0 beq _08191B48 ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r2, =gUnknown_02022E18 movs r6, 0xFF lsls r6, 8 adds r0, r6, 0 strh r0, [r2] ldr r0, =gUnknown_02022E1A strh r1, [r0] b _08191B5E .pool _08191B48: ldr r1, =gUnknown_02022E14 movs r3, 0xFF lsls r3, 8 adds r0, r3, 0 strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] ldr r0, =gUnknown_02022E18 strh r2, [r0] ldr r0, =gUnknown_02022E1A strh r2, [r0] _08191B5E: ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _08191B94 ldr r1, =gUnknown_02022E1C movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] b _08191B9E .pool _08191B94: ldr r0, =gUnknown_02022E1C movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E1E strh r1, [r0] _08191B9E: ldr r4, =gUnknown_0860D15C ldr r5, =gUnknown_0203CD78 ldr r3, [r5] ldr r2, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 movs r6, 0xA ldrsh r1, [r0, r6] lsls r1, 2 subs r1, 0x1 ldrb r3, [r3, 0x10] adds r1, r3 adds r1, r4 mov r4, r9 add r4, r8 lsls r4, 3 adds r4, r2 ldrb r2, [r4, 0xC] movs r0, 0x2 orrs r0, r2 ldrb r1, [r1] bl sub_819314C movs r6, 0 ldr r7, =gSprites mov r12, r6 mov r10, r5 adds r5, r7, 0 adds r5, 0x1C _08191BDC: cmp r6, 0x1 bgt _08191C50 mov r1, r10 ldr r0, [r1] adds r3, r0, r6 ldrb r0, [r3] cmp r0, 0xFF beq _08191C96 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =sub_81908CC str r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r4, 0xC] movs r2, 0x1 eors r1, r2 strh r1, [r0, 0x2E] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 mov r2, r12 strh r2, [r0, 0x30] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r6, [r0, 0x32] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r1, [r0, 0x34] b _08191C96 .pool _08191C50: mov r3, r10 ldr r0, [r3] adds r3, r0, r6 ldrb r0, [r3] cmp r0, 0xFF beq _08191C96 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldr r1, =sub_8190AC4 str r1, [r0] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r4, 0xC] movs r2, 0x1 eors r1, r2 strh r1, [r0, 0x2E] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 strh r6, [r0, 0x32] _08191C96: adds r6, 0x1 cmp r6, 0x7 ble _08191BDC movs r6, 0x8 ldr r2, =gUnknown_0203CD78 mov r12, r2 ldr r3, =gSprites ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r5, r0, r1 movs r4, 0 adds r7, r3, 0 adds r7, 0x1C _08191CB4: cmp r6, 0x9 bgt _08191D1C mov r1, r12 ldr r0, [r1] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191D5C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_81908CC str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191D5C .pool _08191D1C: mov r2, r12 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191D5C adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190AC4 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191D5C: adds r6, 0x1 cmp r6, 0xF ble _08191CB4 b _08191FDA .pool _08191D68: mov r0, r9 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r0, r4 movs r5, 0xC ldrsh r2, [r0, r5] cmp r2, 0 beq _08191DA8 ldr r0, =gUnknown_02022E14 movs r1, 0 strh r1, [r0] ldr r0, =gUnknown_02022E16 strh r1, [r0] ldr r2, =gUnknown_02022E18 movs r6, 0xFF lsls r6, 8 adds r0, r6, 0 strh r0, [r2] ldr r0, =gUnknown_02022E1A strh r1, [r0] b _08191DBE .pool _08191DA8: ldr r1, =gUnknown_02022E14 movs r3, 0xFF lsls r3, 8 adds r0, r3, 0 strh r0, [r1] ldr r0, =gUnknown_02022E16 strh r2, [r0] ldr r0, =gUnknown_02022E18 strh r2, [r0] ldr r0, =gUnknown_02022E1A strh r2, [r0] _08191DBE: ldr r0, =gUnknown_0203CD78 ldr r2, [r0] ldrb r0, [r2, 0x10] cmp r0, 0x2 bne _08191E10 ldr r1, =gUnknown_02022E1C movs r4, 0x80 lsls r4, 1 adds r0, r4, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] movs r0, 0x2 orrs r0, r1 ldrb r1, [r2, 0x12] bl sub_81924E0 b _08191E44 .pool _08191E10: ldr r1, =gUnknown_02022E1C movs r0, 0 strh r0, [r1] ldr r1, =gUnknown_02022E1E movs r0, 0xA0 strh r0, [r1] ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r5, 0xA ldrsh r0, [r0, r5] adds r2, r0, 0 subs r2, 0x10 mov r0, r9 add r0, r8 lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0xC] movs r0, 0x2 orrs r0, r1 lsls r1, r2, 24 lsrs r1, 24 bl sub_819314C _08191E44: movs r6, 0 ldr r0, =gUnknown_0203CD78 mov r10, r0 ldr r3, =gSprites mov r0, r9 add r0, r8 lsls r0, 3 ldr r1, =gTasks adds r5, r0, r1 mov r12, r6 adds r4, r3, 0 adds r4, 0x1C movs r7, 0x1 _08191E5E: cmp r6, 0x1 bgt _08191ECC mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191F10 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_81908CC str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191F10 .pool _08191ECC: mov r2, r10 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191F10 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 ldr r1, =sub_8190AC4 str r1, [r0] ldrb r0, [r2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrh r0, [r5, 0xC] eors r0, r7 strh r0, [r1, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 mov r1, r12 strh r1, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191F10: adds r6, 0x1 cmp r6, 0x7 ble _08191E5E movs r6, 0x8 ldr r2, =gUnknown_0203CD78 mov r12, r2 ldr r3, =gSprites ldr r1, =gTasks mov r0, r9 add r0, r8 lsls r0, 3 adds r5, r0, r1 movs r4, 0 adds r7, r3, 0 adds r7, 0x1C _08191F2E: cmp r6, 0x9 bgt _08191F94 mov r1, r12 ldr r0, [r1] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191FD4 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_81908CC str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r1, [r0, 0x34] b _08191FD4 .pool _08191F94: mov r2, r12 ldr r0, [r2] adds r2, r0, r6 ldrb r0, [r2] cmp r0, 0xFF beq _08191FD4 adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldr r1, =sub_8190AC4 str r1, [r0] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r5, 0xC] strh r1, [r0, 0x2E] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r4, [r0, 0x30] ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r6, [r0, 0x32] _08191FD4: adds r6, 0x1 cmp r6, 0xF ble _08191F2E _08191FDA: mov r0, r9 add r0, r8 lsls r0, 3 ldr r3, =gTasks adds r0, r3 movs r2, 0 movs r1, 0x7 _08191FE8: strh r1, [r0, 0x8] strh r2, [r0, 0x12] b _08192202 .pool _08191FF8: mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 ldr r5, =gTasks adds r1, r0, r5 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x29 beq _08192100 ldr r1, =gUnknown_02022E16 ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E1A ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E1E b _081920A4 .pool _08192038: mov r6, r8 lsls r0, r6, 2 add r0, r8 lsls r0, 3 ldr r2, =gTasks adds r1, r0, r2 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x29 beq _08192100 ldr r1, =gUnknown_02022E16 ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E1A ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E1E b _081920E8 .pool _08192078: mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 ldr r4, =gTasks adds r1, r0, r4 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x41 beq _08192100 ldr r1, =gUnknown_02022E14 ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E18 ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E1C _081920A4: ldrh r0, [r1] subs r0, 0x4 strh r0, [r1] b _08192202 .pool _081920BC: mov r5, r8 lsls r0, r5, 2 add r0, r8 lsls r0, 3 ldr r6, =gTasks adds r1, r0, r6 ldrh r0, [r1, 0x12] adds r0, 0x1 strh r0, [r1, 0x12] lsls r0, 16 asrs r0, 16 cmp r0, 0x41 beq _08192100 ldr r1, =gUnknown_02022E14 ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E18 ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] ldr r1, =gUnknown_02022E1C _081920E8: ldrh r0, [r1] adds r0, 0x4 strh r0, [r1] b _08192202 .pool _08192100: movs r0, 0x2 strh r0, [r1, 0x8] b _08192202 _08192106: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08192202 movs r6, 0 ldr r4, =gUnknown_0203CD78 _08192116: cmp r6, 0x1 bgt _08192134 ldr r0, [r4] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0xFF beq _0819214E bl sub_818D8F0 b _0819214E .pool _08192134: ldr r0, [r4] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0xFF beq _0819214E adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl sub_80D2EF8 _0819214E: adds r6, 0x1 cmp r6, 0x7 ble _08192116 movs r6, 0x8 ldr r4, =gUnknown_0203CD78 _08192158: cmp r6, 0x9 bgt _08192174 ldr r0, [r4] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0xFF beq _0819218E bl sub_818D8F0 b _0819218E .pool _08192174: ldr r0, [r4] adds r1, r0, r6 ldrb r0, [r1] cmp r0, 0xFF beq _0819218E adds r1, r0, 0 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl sub_80D2EF8 _0819218E: adds r6, 0x1 cmp r6, 0xF ble _08192158 bl sub_80D2F9C ldr r4, =gUnknown_0203CD78 ldr r0, [r4] bl Free movs r5, 0 str r5, [r4] bl FreeAllWindowBuffers mov r0, r9 cmp r0, 0 bne _081921C4 ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 b _081921FC .pool _081921C4: ldr r0, =sub_8194220 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r6, r0, 24 ldr r2, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x8] strh r5, [r1, 0xA] movs r0, 0x3 strh r0, [r1, 0xC] mov r3, r8 lsls r0, r3, 2 add r0, r8 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x10] strh r0, [r1, 0xE] lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x14] strh r0, [r1, 0x10] _081921FC: mov r0, r8 bl DestroyTask _08192202: 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_8190CD4 thumb_func_start sub_819221C sub_819221C: @ 819221C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r7, 0 ldr r2, =gTasks lsls r0, 2 add r0, r9 lsls r0, 3 adds r0, r2 mov r12, r0 movs r1, 0x10 ldrsh r6, [r0, r1] lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r2 movs r3, 0xA ldrsh r5, [r0, r3] ldr r0, =gUnknown_0860D080 adds r0, r5, r0 ldrb r0, [r0] mov r10, r0 ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] mov r8, r0 ldr r1, =gMain ldrh r4, [r1, 0x2E] movs r0, 0x3 ands r0, r4 adds r2, r1, 0 cmp r0, 0 beq _0819226E movs r7, 0x9 _0819226E: mov r3, r12 movs r1, 0xE ldrsh r0, [r3, r1] cmp r0, 0 bne _0819227A b _081924CC _0819227A: cmp r0, 0x1 beq _08192280 b _081923B0 _08192280: movs r0, 0x40 ands r0, r4 cmp r0, 0 beq _081922BA ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 bne _081922BA cmp r5, 0 bne _081922B4 movs r5, 0xF b _081922B6 .pool _081922B4: subs r5, 0x1 _081922B6: movs r7, 0x1 b _08192360 _081922BA: ldrh r1, [r2, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081922E2 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0 bne _081922E2 cmp r5, 0xF bne _081922DC movs r5, 0 b _081922DE .pool _081922DC: adds r5, 0x1 _081922DE: movs r7, 0x2 b _08192360 _081922E2: ldrh r1, [r2, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _08192304 ldr r0, =gUnknown_0203CD78 ldr r1, [r0] ldrb r0, [r1, 0x10] cmp r0, 0 beq _08192304 subs r0, 0x1 strb r0, [r1, 0x10] movs r7, 0x3 b _08192360 .pool _08192304: ldrh r1, [r2, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08192360 ldr r2, =gSaveBlock2Ptr ldr r0, [r2] mov r3, r10 lsls r1, r3, 2 adds r0, r1 ldr r2, =0x00000d25 adds r0, r2 ldrb r3, [r0] lsls r0, r3, 29 mov r12, r1 cmp r0, 0 bge _0819233C ldr r0, =gUnknown_0203CD78 ldr r2, [r0] ldrb r4, [r2, 0x10] subs r1, r4, 0x1 lsls r0, r3, 27 lsrs r0, 30 cmp r1, r0 bge _0819233C adds r0, r4, 0x1 strb r0, [r2, 0x10] movs r7, 0x4 _0819233C: ldr r3, =gSaveBlock2Ptr ldr r0, [r3] add r0, r12 ldr r1, =0x00000d25 adds r0, r1 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08192360 ldr r0, =gUnknown_0203CD78 ldr r3, [r0] ldrb r1, [r3, 0x10] subs r0, r1, 0x1 cmp r0, r8 bge _08192360 adds r0, r1, 0x1 strb r0, [r3, 0x10] movs r7, 0x4 _08192360: cmp r7, 0x9 beq _08192366 b _081924A0 _08192366: ldr r0, =gUnknown_0203CD78 ldr r3, [r0] ldrb r0, [r3, 0x10] cmp r0, 0 beq _081923A0 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r2, =gTasks adds r1, r2 ldr r2, =gUnknown_0860D1A0 lsrs r0, r5, 31 adds r0, r5, r0 asrs r0, 1 lsls r0, 2 subs r0, 0x1 ldrb r3, [r3, 0x10] adds r0, r3 b _08192482 .pool _081923A0: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r3, =gTasks adds r0, r3 b _0819249E .pool _081923B0: movs r0, 0x40 ands r0, r4 cmp r0, 0 beq _081923DE ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _081923DE cmp r5, 0x10 bne _081923D8 ldr r0, =gUnknown_0860D19C add r0, r8 ldrb r5, [r0] b _081923DA .pool _081923D8: subs r5, 0x1 _081923DA: movs r7, 0x5 b _08192446 _081923DE: ldrh r1, [r2, 0x2E] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819240E ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _0819240E ldr r0, =gUnknown_0860D19C add r0, r8 ldrb r0, [r0] cmp r5, r0 bne _08192408 movs r5, 0x10 b _0819240A .pool _08192408: adds r5, 0x1 _0819240A: movs r7, 0x6 b _08192446 _0819240E: ldrh r1, [r2, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819242C ldr r0, =gUnknown_0203CD78 ldr r1, [r0] ldrb r0, [r1, 0x10] cmp r0, 0 beq _0819242C movs r7, 0x7 subs r0, 0x1 b _08192444 .pool _0819242C: ldrh r1, [r2, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _08192446 ldr r0, =gUnknown_0203CD78 ldr r1, [r0] ldrb r0, [r1, 0x10] cmp r0, 0x1 bhi _08192446 movs r7, 0x8 adds r0, 0x1 _08192444: strb r0, [r1, 0x10] _08192446: cmp r7, 0x9 bne _081924A0 ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldrb r1, [r0, 0x10] cmp r1, 0 bne _08192470 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r2, =gTasks adds r1, r2 ldr r2, =gUnknown_0860D1C0 ldrb r0, [r0, 0x11] b _08192482 .pool _08192470: cmp r1, 0x2 bne _08192494 lsls r1, r6, 2 adds r1, r6 lsls r1, 3 ldr r3, =gTasks adds r1, r3 ldr r2, =gUnknown_0860D1C0 ldrb r0, [r0, 0x12] _08192482: adds r0, r2 ldrb r0, [r0] strh r0, [r1, 0xA] b _081924A0 .pool _08192494: lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks adds r0, r1 _0819249E: strh r5, [r0, 0xA] _081924A0: cmp r7, 0 beq _081924CC cmp r7, 0x9 beq _081924CC movs r0, 0x5 bl PlaySE ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xA] mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0xC] movs r2, 0x1 eors r1, r2 strh r1, [r0, 0xC] _081924CC: adds r0, r7, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_819221C thumb_func_start sub_81924E0 sub_81924E0: @ 81924E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x58 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x20] movs r5, 0 movs r0, 0 str r0, [sp, 0x28] movs r1, 0 str r1, [sp, 0x2C] movs r2, 0 str r2, [sp, 0x30] movs r4, 0 movs r0, 0x24 bl AllocZeroed mov r8, r0 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r3, [sp, 0x20] lsls r0, r3, 2 adds r0, r1, r0 ldr r2, =0x00000d24 adds r0, r2 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 str r0, [sp, 0x24] movs r0, 0x1 ldr r3, [sp, 0x1C] ands r0, r3 cmp r0, 0 beq _08192538 movs r5, 0x8 movs r4, 0x9 str r4, [sp, 0x28] movs r4, 0x2 _08192538: movs r0, 0x2 ldr r2, [sp, 0x1C] ands r0, r2 cmp r0, 0 beq _08192548 movs r3, 0x80 lsls r3, 1 str r3, [sp, 0x2C] _08192548: movs r0, 0x4 ldr r2, [sp, 0x1C] ands r0, r2 cmp r0, 0 beq _08192556 movs r3, 0xA0 str r3, [sp, 0x30] _08192556: movs r0, 0x8 ldr r2, [sp, 0x1C] ands r0, r2 cmp r0, 0 beq _08192564 ldr r3, =0xffffff00 str r3, [sp, 0x2C] _08192564: movs r0, 0x10 ldr r2, [sp, 0x1C] ands r0, r2 cmp r0, 0 beq _08192574 movs r3, 0xA0 negs r3, r3 str r3, [sp, 0x30] _08192574: ldr r0, =0x000003ff ldr r2, [sp, 0x24] cmp r2, r0 bne _08192598 ldrb r0, [r1, 0x8] bl sub_806F000 lsls r0, 16 lsrs r0, 16 b _081925B6 .pool _08192598: ldr r0, =0x000003fe ldr r3, [sp, 0x24] cmp r3, r0 bne _081925AC bl sub_8195910 b _081925B2 .pool _081925AC: ldr r0, [sp, 0x24] bl sub_8162AA0 _081925B2: lsls r0, 24 lsrs r0, 24 _081925B6: ldr r2, [sp, 0x2C] adds r2, 0x30 ldr r3, [sp, 0x30] adds r3, 0x40 adds r1, r4, 0 adds r1, 0xC str r1, [sp] ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 bl sub_818D8AC ldr r1, =gUnknown_0203CD78 ldr r1, [r1] adds r1, r5 strb r0, [r1] movs r0, 0x1E ldr r4, [sp, 0x1C] ands r0, r4 cmp r0, 0 beq _081925FC ldr r2, =gSprites ldr r0, =gUnknown_0203CD78 ldr r0, [r0] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _081925FC: movs r7, 0 ldr r0, [sp, 0x20] lsls r0, 1 str r0, [sp, 0x3C] adds r1, r5, 0x2 ldr r2, [sp, 0x28] lsls r2, 24 str r2, [sp, 0x44] ldr r3, [sp, 0x28] adds r3, 0x4 str r3, [sp, 0x40] ldr r4, [sp, 0x20] adds r0, r4 ldr r6, =gUnknown_0203CD78 ldr r2, =gSprites mov r10, r2 adds r4, r1, 0 lsls r5, r0, 1 movs r3, 0 mov r9, r3 _08192624: ldr r0, =0x000003ff ldr r1, [sp, 0x24] cmp r1, r0 bne _08192660 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000d64 adds r0, r2 adds r0, r5 ldrh r0, [r0] ldr r1, =gUnknown_0860D340 adds r1, r7, r1 ldrb r2, [r1] ldr r3, [sp, 0x2C] orrs r2, r3 b _081926B0 .pool _08192660: ldr r0, =0x000003fe ldr r3, [sp, 0x24] cmp r3, r0 bne _08192690 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000d64 adds r0, r1 adds r0, r5 ldrh r0, [r0] ldr r1, =gUnknown_0860D340 adds r1, r7, r1 ldrb r2, [r1] ldr r3, [sp, 0x2C] orrs r2, r3 b _081926B0 .pool _08192690: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r3, =0x00000d64 adds r0, r3 adds r0, r5 ldrh r1, [r0] ldr r0, =gUnknown_0203BC8C ldr r0, [r0] lsls r1, 4 adds r1, r0 ldrh r0, [r1] ldr r1, =gUnknown_0860D340 adds r1, r7, r1 ldrb r2, [r1] ldr r1, [sp, 0x2C] orrs r2, r1 _081926B0: ldr r1, =gUnknown_0860D343 adds r1, r7, r1 ldrb r3, [r1] ldr r1, [sp, 0x30] adds r3, r1 mov r1, r9 str r1, [sp] str r1, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] ldr r1, =sub_8190938 bl sub_80D2CC4 ldr r1, [r6] adds r1, r4 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r10 ldrb r1, [r0, 0x5] movs r2, 0xD negs r2, r2 ands r1, r2 strb r1, [r0, 0x5] movs r0, 0x1E ldr r3, [sp, 0x1C] ands r0, r3 cmp r0, 0 beq _0819270A ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r10 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0819270A: adds r4, 0x1 adds r5, 0x2 adds r7, 0x1 cmp r7, 0x2 ble _08192624 add r0, sp, 0xC movs r2, 0 movs r3, 0x2 strb r3, [r0, 0x5] strb r2, [r0, 0x6] strb r2, [r0, 0x7] adds r1, r0, 0 adds r0, r2, 0 strb r0, [r1, 0x8] adds r0, r1, 0 ldrb r0, [r0, 0x7] strb r0, [r1, 0x9] adds r0, r1, 0 strb r3, [r0, 0xA] strb r2, [r0, 0xB] adds r3, r0, 0 ldrb r2, [r3, 0xC] movs r1, 0x10 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] adds r2, r3, 0 movs r0, 0xE0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] adds r1, r2, 0 movs r0, 0xD0 strb r0, [r1, 0xD] movs r7, 0 ldr r0, =0x000003ff ldr r4, [sp, 0x24] cmp r4, r0 bne _08192784 ldr r0, =gTrainerClassNameIndices adds r0, 0x3C ldrb r5, [r0] b _081927A2 .pool _08192784: ldr r0, =0x000003fe ldr r1, [sp, 0x24] cmp r1, r0 bne _08192798 bl sub_8195924 b _0819279E .pool _08192798: ldr r0, [sp, 0x24] bl sub_8162BD8 _0819279E: lsls r0, 24 lsrs r5, r0, 24 _081927A2: ldr r2, =gTrainerClassNames movs r0, 0xD adds r1, r5, 0 muls r1, r0 adds r0, r7, r1 adds r0, r2 ldrb r0, [r0] cmp r0, 0xFF beq _081927CA ldr r3, =gStringVar1 adds r0, r1, r2 adds r2, r7, r0 _081927BA: adds r0, r7, r3 ldrb r1, [r2] strb r1, [r0] adds r2, 0x1 adds r7, 0x1 ldrb r0, [r2] cmp r0, 0xFF bne _081927BA _081927CA: ldr r5, =gStringVar1 adds r1, r7, r5 movs r0, 0 strb r0, [r1] adds r0, r7, 0x1 adds r0, r5 movs r1, 0xFF strb r1, [r0] ldr r0, =0x000003ff ldr r2, [sp, 0x24] cmp r2, r0 bne _08192800 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r5, 0 bl StringAppend b _08192836 .pool _08192800: ldr r0, =0x000003fe ldr r3, [sp, 0x24] cmp r3, r0 bne _08192824 ldr r4, =gStringVar2 adds r0, r4, 0 bl sub_8195938 adds r0, r5, 0 adds r1, r4, 0 bl StringAppend b _08192836 .pool _08192824: ldr r4, =gStringVar2 ldr r1, [sp, 0x24] adds r0, r4, 0 bl sub_8195898 adds r0, r5, 0 adds r1, r4, 0 bl StringAppend _08192836: add r0, sp, 0xC ldrb r0, [r0, 0x5] ldr r4, =gStringVar1 add r1, sp, 0xC ldrb r3, [r1, 0xA] adds r1, r4, 0 movs r2, 0xD0 bl GetStringCenterAlignXOffsetWithLetterSpacing add r1, sp, 0xC movs r5, 0 strb r0, [r1, 0x8] str r4, [sp, 0xC] adds r0, r1, 0 add r4, sp, 0x28 ldrb r4, [r4] strb r4, [r0, 0x4] ldr r0, [sp, 0x44] lsrs r4, r0, 24 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add r0, sp, 0xC movs r1, 0 movs r2, 0 bl AddTextPrinter add r0, sp, 0xC strb r5, [r0, 0xA] movs r7, 0 adds r6, r0, 0 ldr r1, [sp, 0x3C] ldr r2, [sp, 0x20] adds r0, r1, r2 lsls r0, 1 mov r9, r0 movs r3, 0xB mov r10, r3 _0819288A: ldr r0, =gUnknown_0860D346 adds r0, r7, r0 ldrb r0, [r0] strb r0, [r6, 0x9] ldr r0, =0x000003ff ldr r4, [sp, 0x24] cmp r4, r0 bne _081928C0 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] lsls r0, r7, 1 add r0, r9 ldr r2, =0x00000d64 adds r1, r2 b _081928FA .pool _081928C0: ldr r0, =0x000003fe ldr r4, [sp, 0x24] cmp r4, r0 bne _081928E4 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] lsls r0, r7, 1 add r0, r9 ldr r2, =0x00000d64 adds r1, r2 b _081928FA .pool _081928E4: ldr r4, =gSaveBlock2Ptr ldr r1, [r4] lsls r0, r7, 1 add r0, r9 ldr r2, =0x00000d64 adds r1, r2 adds r1, r0 ldrh r1, [r1] ldr r0, =gUnknown_0203BC8C ldr r0, [r0] lsls r1, 4 _081928FA: adds r1, r0 ldrh r0, [r1] mov r3, r10 muls r3, r0 adds r0, r3, 0 ldr r1, =gSpeciesNames adds r0, r1 str r0, [sp, 0xC] adds r0, r7, 0x1 ldr r4, [sp, 0x28] adds r0, r4 movs r1, 0 strb r0, [r6, 0x4] cmp r7, 0x1 bne _08192930 movs r0, 0x7 strb r0, [r6, 0x8] b _08192932 .pool _08192930: strb r1, [r6, 0x8] _08192932: adds r5, r7, 0x1 ldr r0, [sp, 0x28] adds r4, r5, r0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add r0, sp, 0xC movs r1, 0 movs r2, 0 bl AddTextPrinter adds r7, r5, 0 cmp r7, 0x2 ble _0819288A ldr r4, [sp, 0x40] adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram ldr r0, =0x000003fe ldr r1, [sp, 0x24] cmp r1, r0 bne _08192980 ldr r0, =gUnknown_0860D1D0 ldr r0, [r0, 0x40] b _0819298A .pool _08192980: ldr r0, =gUnknown_0860D1D0 ldr r2, [sp, 0x20] lsls r1, r2, 2 adds r1, r0 ldr r0, [r1] _0819298A: str r0, [sp, 0xC] add r1, sp, 0xC movs r2, 0 movs r0, 0x1 strb r0, [r1, 0x5] adds r0, r1, 0 add r3, sp, 0x40 ldrb r3, [r3] strb r3, [r0, 0x4] strb r2, [r0, 0x8] movs r1, 0x4 strb r1, [r0, 0x7] strb r1, [r0, 0x9] movs r1, 0 bl AddTextPrinter movs r7, 0 ldr r3, =gUnknown_0860B358 _081929AE: movs r5, 0 adds r4, r7, 0x1 str r4, [sp, 0x38] lsls r0, r7, 1 str r0, [sp, 0x34] lsls r2, r7, 4 _081929BA: movs r6, 0 lsls r1, r5, 1 mov r10, r1 mov r4, r8 mov r9, r2 _081929C4: ldr r0, =0x000003fe ldr r1, [sp, 0x24] cmp r1, r0 bne _08192A00 lsls r0, r7, 24 lsls r1, r5, 24 lsrs r0, 24 lsrs r1, 24 str r2, [sp, 0x48] str r3, [sp, 0x4C] bl sub_81A5060 lsls r0, 16 lsrs r0, 12 adds r0, r6, r0 ldr r3, [sp, 0x4C] adds r0, r3 ldrh r1, [r4] ldrb r0, [r0] adds r1, r0 strh r1, [r4] ldr r2, [sp, 0x48] b _08192A58 .pool _08192A00: ldr r0, =0x000003ff ldr r1, [sp, 0x24] cmp r1, r0 bne _08192A20 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000efc adds r0, r1 add r0, r9 b _08192A48 .pool _08192A20: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] mov r12, r0 ldr r0, [sp, 0x3C] ldr r1, [sp, 0x20] adds r0, r1 str r0, [sp, 0x50] lsls r0, 1 ldr r1, [sp, 0x34] adds r0, r1, r0 ldr r1, =0x00000d64 add r1, r12 adds r1, r0 ldrh r0, [r1] ldr r1, =gUnknown_0203BC8C ldr r1, [r1] lsls r0, 4 adds r0, r1 adds r0, 0x2 add r0, r10 _08192A48: ldrh r0, [r0] lsls r0, 4 adds r0, r6, r0 adds r0, r3 ldrh r1, [r4] ldrb r0, [r0] adds r1, r0 strh r1, [r4] _08192A58: adds r4, 0x2 adds r6, 0x1 cmp r6, 0xF ble _081929C4 adds r2, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _081929BA ldr r7, [sp, 0x38] cmp r7, 0x2 ble _081929AE movs r7, 0 ldr r2, =gUnknown_0860D214 mov r9, r2 ldr r3, =gUnknown_0860C988 mov r10, r3 _08192A78: movs r4, 0 movs r6, 0 movs r5, 0 mov r3, r8 lsls r0, r7, 4 mov r1, r10 adds r2, r0, r1 _08192A86: ldrb r0, [r2] cmp r0, 0 beq _08192A9E adds r4, 0x1 movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 beq _08192A9E ldrb r1, [r2] cmp r0, r1 blt _08192A9E adds r6, 0x1 _08192A9E: adds r3, 0x2 adds r2, 0x1 adds r5, 0x1 cmp r5, 0xF ble _08192A86 cmp r4, r6 beq _08192AB2 adds r7, 0x1 cmp r7, 0x1E bls _08192A78 _08192AB2: lsls r0, r7, 2 add r0, r9 ldr r0, [r0] str r0, [sp, 0xC] add r0, sp, 0xC movs r1, 0x14 strb r1, [r0, 0x7] strb r1, [r0, 0x9] movs r1, 0 movs r2, 0 bl AddTextPrinter movs r1, 0 mov r0, r8 adds r0, 0x22 _08192AD0: strh r1, [r0] subs r0, 0x2 cmp r0, r8 bge _08192AD0 ldr r2, [sp, 0x24] ldr r3, =0xfffffc02 adds r0, r2, r3 cmp r0, 0x1 bls _08192AE4 b _08192C24 _08192AE4: movs r7, 0 movs r4, 0 mov r9, r4 _08192AEA: movs r5, 0 mov r4, r8 mov r6, r9 _08192AF0: ldr r0, =0x000003fe ldr r1, [sp, 0x24] cmp r1, r0 bne _08192B24 lsls r1, r5, 24 lsrs r1, 24 lsrs r0, r6, 24 bl sub_81A50F0 lsls r0, 24 lsrs r0, 24 b _08192B34 .pool _08192B24: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r7, 4 adds r1, r5, r1 ldr r2, =0x00000f04 adds r0, r2 adds r0, r1 ldrb r0, [r0] _08192B34: strh r0, [r4] adds r4, 0x2 adds r5, 0x1 cmp r5, 0x5 ble _08192AF0 mov r3, r8 ldrh r0, [r3] ldrh r4, [r3, 0xC] adds r0, r4 strh r0, [r3, 0xC] movs r5, 0 mov r4, r8 _08192B4C: ldr r0, =0x000003fe ldr r1, [sp, 0x24] cmp r1, r0 bne _08192B70 mov r2, r9 lsrs r0, r2, 24 bl sub_81A50B0 lsls r0, 24 lsrs r2, r0, 24 b _08192B7E .pool _08192B70: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r7, 4 adds r0, r1 ldr r3, =0x00000f0a adds r0, r3 ldrb r2, [r0] _08192B7E: ldr r1, =gNatureStatTable lsls r0, r2, 2 adds r0, r2 adds r0, r5, r0 adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _08192BB4 movs r0, 0x2 ldrsh r1, [r4, r0] movs r0, 0x6E muls r0, r1 movs r1, 0x64 bl __divsi3 ldrh r1, [r4, 0xE] adds r1, r0 strh r1, [r4, 0xE] b _08192BDC .pool _08192BB4: cmp r0, 0 bge _08192BD4 movs r2, 0x2 ldrsh r1, [r4, r2] movs r0, 0x5A muls r0, r1 movs r1, 0x64 bl __divsi3 ldrh r1, [r4, 0xE] adds r1, r0 strh r1, [r4, 0xE] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] b _08192BDC _08192BD4: ldrh r0, [r4, 0x2] ldrh r3, [r4, 0xE] adds r0, r3 strh r0, [r4, 0xE] _08192BDC: adds r4, 0x2 adds r5, 0x1 cmp r5, 0x4 ble _08192B4C movs r4, 0x80 lsls r4, 17 add r9, r4 adds r7, 0x1 cmp r7, 0x2 bgt _08192BF2 b _08192AEA _08192BF2: movs r5, 0 mov r1, r8 movs r7, 0x5 _08192BF8: movs r2, 0xC ldrsh r0, [r1, r2] adds r5, r0 adds r1, 0x2 subs r7, 0x1 cmp r7, 0 bge _08192BF8 movs r6, 0x64 mov r4, r8 movs r7, 0x5 _08192C0C: movs r3, 0xC ldrsh r0, [r4, r3] muls r0, r6 adds r1, r5, 0 bl __divsi3 strh r0, [r4] adds r4, 0x2 subs r7, 0x1 cmp r7, 0 bge _08192C0C b _08192D70 _08192C24: ldr r4, =gUnknown_0203BC8C mov r10, r4 ldr r1, [sp, 0x3C] ldr r2, [sp, 0x20] adds r0, r1, r2 lsls r0, 1 mov r9, r0 movs r7, 0x2 _08192C34: ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r4, =0x00000d64 adds r0, r4 add r0, r9 ldrh r0, [r0] mov r2, r10 ldr r1, [r2] lsls r0, 4 adds r0, r1 ldrb r2, [r0, 0xB] movs r6, 0 movs r4, 0 movs r3, 0x1 mov r1, r8 movs r5, 0x5 _08192C54: strh r4, [r1] adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _08192C60 adds r6, 0x1 _08192C60: asrs r2, 1 adds r1, 0x2 subs r5, 0x1 cmp r5, 0 bge _08192C54 movs r0, 0xFF lsls r0, 1 adds r1, r6, 0 bl __divsi3 adds r6, r0, 0 ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r4, =0x00000d64 adds r0, r4 add r0, r9 ldrh r0, [r0] mov r2, r10 ldr r1, [r2] lsls r0, 4 adds r0, r1 ldrb r2, [r0, 0xB] movs r3, 0x1 mov r1, r8 movs r5, 0x5 _08192C92: adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _08192C9C strh r6, [r1] _08192C9C: asrs r2, 1 adds r1, 0x2 subs r5, 0x1 cmp r5, 0 bge _08192C92 mov r3, r8 ldrh r0, [r3] ldrh r4, [r3, 0xC] adds r0, r4 strh r0, [r3, 0xC] movs r5, 0 mov r4, r8 _08192CB4: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000d64 adds r0, r2 add r0, r9 ldrh r0, [r0] mov r3, r10 ldr r1, [r3] lsls r0, 4 adds r0, r1 ldrb r2, [r0, 0xC] lsls r0, r2, 2 adds r0, r2 adds r0, r5, r0 ldr r1, =gNatureStatTable adds r0, r1 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 cmp r0, 0 ble _08192D04 movs r2, 0x2 ldrsh r1, [r4, r2] movs r0, 0x6E muls r0, r1 movs r1, 0x64 bl __divsi3 ldrh r1, [r4, 0xE] adds r1, r0 strh r1, [r4, 0xE] b _08192D2C .pool _08192D04: cmp r0, 0 bge _08192D24 movs r3, 0x2 ldrsh r1, [r4, r3] movs r0, 0x5A muls r0, r1 movs r1, 0x64 bl __divsi3 ldrh r1, [r4, 0xE] adds r1, r0 strh r1, [r4, 0xE] ldrh r0, [r4, 0x1A] adds r0, 0x1 strh r0, [r4, 0x1A] b _08192D2C _08192D24: ldrh r0, [r4, 0x2] ldrh r1, [r4, 0xE] adds r0, r1 strh r0, [r4, 0xE] _08192D2C: adds r4, 0x2 adds r5, 0x1 cmp r5, 0x4 ble _08192CB4 movs r2, 0x2 add r9, r2 subs r7, 0x1 cmp r7, 0 blt _08192D40 b _08192C34 _08192D40: movs r5, 0 mov r1, r8 movs r7, 0x5 _08192D46: movs r3, 0xC ldrsh r0, [r1, r3] adds r5, r0 adds r1, 0x2 subs r7, 0x1 cmp r7, 0 bge _08192D46 movs r6, 0x64 mov r4, r8 movs r7, 0x5 _08192D5A: movs r1, 0xC ldrsh r0, [r4, r1] muls r0, r6 adds r1, r5, 0 bl __divsi3 strh r0, [r4] adds r4, 0x2 subs r7, 0x1 cmp r7, 0 bge _08192D5A _08192D70: movs r7, 0 movs r5, 0 movs r6, 0 mov r4, r8 mov r10, r8 mov r9, r8 _08192D7C: movs r2, 0 ldrsh r1, [r4, r2] cmp r1, 0x1D ble _08192DDE cmp r7, 0x2 bne _08192DD4 mov r3, r8 movs r0, 0xC ldrsh r3, [r3, r0] mov r12, r3 cmp r12, r1 bge _08192DC6 mov r2, r8 ldrh r2, [r2, 0xE] add r3, sp, 0x54 strh r2, [r3] mov r2, r8 movs r3, 0xE ldrsh r0, [r2, r3] cmp r0, r1 bge _08192DBA cmp r12, r0 bge _08192DB4 add r0, sp, 0x54 ldrh r0, [r0] strh r0, [r2, 0xC] strh r6, [r2, 0xE] b _08192DDE _08192DB4: mov r1, r8 strh r6, [r1, 0xE] b _08192DDE _08192DBA: add r2, sp, 0x54 ldrh r3, [r2] mov r2, r8 strh r3, [r2, 0xC] strh r6, [r2, 0xE] b _08192DDE _08192DC6: mov r3, r8 movs r2, 0xE ldrsh r0, [r3, r2] cmp r0, r1 bge _08192DDE strh r6, [r3, 0xE] b _08192DDE _08192DD4: mov r3, r9 strh r6, [r3, 0xC] movs r0, 0x2 add r9, r0 adds r7, 0x1 _08192DDE: movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _08192E64 cmp r5, 0x2 bne _08192E5A movs r2, 0x18 ldrsh r0, [r4, r2] cmp r0, 0x1 bgt _08192E18 cmp r0, 0x1 bne _08192E64 mov r3, r8 movs r1, 0x10 ldrsh r0, [r3, r1] lsls r0, 1 add r0, r8 movs r2, 0x18 ldrsh r0, [r0, r2] cmp r0, 0 bne _08192E22 movs r1, 0x12 ldrsh r0, [r3, r1] lsls r0, 1 add r0, r8 movs r2, 0x18 ldrsh r0, [r0, r2] cmp r0, 0 bne _08192E22 _08192E18: mov r3, r8 ldrh r0, [r3, 0x12] strh r0, [r3, 0x10] strh r6, [r3, 0x12] b _08192E64 _08192E22: movs r1, 0x18 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _08192E64 mov r2, r8 movs r3, 0x10 ldrsh r0, [r2, r3] lsls r0, 1 add r0, r8 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08192E44 ldrh r0, [r2, 0x12] strh r0, [r2, 0x10] strh r6, [r2, 0x12] b _08192E64 _08192E44: mov r2, r8 movs r3, 0x12 ldrsh r0, [r2, r3] lsls r0, 1 add r0, r8 movs r1, 0x18 ldrsh r0, [r0, r1] cmp r0, 0 bne _08192E64 strh r6, [r2, 0x12] b _08192E64 _08192E5A: mov r2, r10 strh r6, [r2, 0x10] movs r3, 0x2 add r10, r3 adds r5, 0x1 _08192E64: adds r4, 0x2 adds r6, 0x1 cmp r6, 0x5 ble _08192D7C cmp r7, 0x2 bne _08192E8C ldr r0, =gUnknown_0860D349 mov r4, r8 movs r1, 0xC ldrsh r2, [r4, r1] adds r0, r2, r0 movs r3, 0xE ldrsh r1, [r4, r3] subs r1, 0x1 subs r1, r2 ldrb r0, [r0] adds r7, r1, r0 b _08192ED2 .pool _08192E8C: cmp r7, 0x1 bne _08192E9C mov r4, r8 movs r1, 0xC ldrsh r0, [r4, r1] adds r7, r0, 0 adds r7, 0xF b _08192ED2 _08192E9C: cmp r5, 0x2 bne _08192EC0 ldr r0, =gUnknown_0860D349 mov r3, r8 movs r4, 0x10 ldrsh r2, [r3, r4] adds r0, r2, r0 movs r4, 0x12 ldrsh r1, [r3, r4] subs r1, 0x1 subs r1, r2 ldrb r0, [r0] adds r1, r0 adds r7, r1, 0 adds r7, 0x15 b _08192ED2 .pool _08192EC0: cmp r5, 0x1 bne _08192ED0 mov r1, r8 movs r2, 0x10 ldrsh r0, [r1, r2] adds r7, r0, 0 adds r7, 0x24 b _08192ED2 _08192ED0: movs r7, 0x2A _08192ED2: lsls r0, r7, 2 ldr r3, =gUnknown_0860D294 adds r0, r3 ldr r0, [r0] str r0, [sp, 0xC] add r0, sp, 0xC movs r1, 0x24 strb r1, [r0, 0x7] strb r1, [r0, 0x9] movs r1, 0 movs r2, 0 bl AddTextPrinter mov r0, r8 bl Free add sp, 0x58 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81924E0 thumb_func_start sub_8192F08 sub_8192F08: @ 8192F08 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 str r1, [sp] lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 str r0, [sp, 0x4] mov r8, r0 ldr r2, =gUnknown_0860D3C4 lsls r0, r7, 1 adds r0, r7 adds r1, r0, r2 ldrb r6, [r1] adds r1, r2, 0x1 adds r0, r1 ldrb r0, [r0] adds r0, r6, r0 adds r3, r2, 0 cmp r6, r0 bge _08192FD4 ldr r5, =gSaveBlock2Ptr ldr r1, =0x000003ff mov r10, r1 ldr r2, =0x000003fe mov r9, r2 _08192F42: ldr r0, =gUnknown_0860D3B4 adds r0, r6, r0 ldrb r4, [r0] ldr r0, [r5] lsls r1, r4, 2 adds r0, r1 ldr r2, =0x00000d25 adds r0, r2 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08192FBE ldr r0, [sp] add r0, r8 strb r4, [r0] ldr r2, [r5] adds r0, r2, r1 ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r1, r0, 22 lsrs r0, r1, 22 cmp r0, r10 bne _08192F9C ldr r0, =gStringVar1 adds r1, r2, 0 bl StringCopy b _08192FB8 .pool _08192F9C: lsrs r0, r1, 22 cmp r0, r9 bne _08192FB0 ldr r0, =gStringVar1 bl sub_8195938 b _08192FB8 .pool _08192FB0: lsrs r1, 22 ldr r0, =gStringVar1 bl sub_8195898 _08192FB8: movs r2, 0x1 add r8, r2 ldr r3, =gUnknown_0860D3C4 _08192FBE: adds r6, 0x1 lsls r1, r7, 1 adds r1, r7 adds r0, r1, r3 ldrb r2, [r0] adds r0, r3, 0x1 adds r1, r0 ldrb r0, [r1] adds r2, r0 cmp r6, r2 blt _08192F42 _08192FD4: mov r5, r8 cmp r5, 0x2 bne _08192FE8 movs r0, 0 b _0819313C .pool _08192FE8: mov r12, r3 lsls r3, r7, 1 adds r0, r3, r7 mov r2, r12 adds r1, r0, r2 ldrb r6, [r1] mov r1, r12 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] adds r0, r6, r0 str r3, [sp, 0x8] cmp r6, r0 blt _08193006 b _08193126 _08193006: ldr r5, =gSaveBlock2Ptr mov r10, r5 ldr r0, =0x00000d25 mov r9, r0 _0819300E: ldr r0, =gUnknown_0860D3B4 adds r0, r6, r0 ldrb r4, [r0] mov r1, r10 ldr r0, [r1] lsls r2, r4, 2 str r2, [sp, 0xC] adds r0, r2 add r0, r9 ldrb r2, [r0] lsls r0, r2, 29 cmp r0, 0 bge _08193100 lsls r2, 27 adds r1, r3, r7 mov r0, r12 adds r0, 0x2 adds r1, r0 lsrs r2, 30 ldrb r1, [r1] cmp r2, r1 bcc _08193100 ldr r0, [sp] add r0, r8 strb r4, [r0] movs r5, 0x1 add r8, r5 mov r0, r10 ldr r3, [r0] ldr r5, [sp, 0xC] adds r2, r3, r5 adds r0, r2, 0 add r0, r9 ldrb r5, [r0] mov r12, r5 mov r0, r12 lsls r0, 27 lsrs r0, 30 cmp r0, r1 bne _081930BC lsls r4, 1 movs r1, 0xEC lsls r1, 4 adds r0, r3, r1 adds r0, r4 ldrh r1, [r0] movs r0, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 ldr r0, =gStringVar2 bl StringCopy mov r2, r10 ldr r1, [r2] ldr r5, [sp, 0xC] adds r0, r1, r5 add r0, r9 ldrb r0, [r0] lsls r2, r0, 24 lsrs r0, r2, 29 lsls r0, 1 str r0, [sp, 0x4] movs r0, 0xEC lsls r0, 4 adds r1, r0 adds r1, r4 ldrh r0, [r1] cmp r0, 0 bne _08193100 lsrs r0, r2, 29 cmp r0, 0 bne _08193100 movs r1, 0x4 str r1, [sp, 0x4] b _08193100 .pool _081930BC: ldr r5, =0x00000d24 adds r0, r2, r5 ldrh r0, [r0] lsls r1, r0, 22 ldr r0, =0xffc00000 cmp r1, r0 bne _081930E0 ldr r0, =gStringVar1 adds r1, r3, 0 bl StringCopy b _08193100 .pool _081930E0: ldr r0, =0xff800000 cmp r1, r0 bne _081930F8 ldr r0, =gStringVar1 bl sub_8195938 b _08193100 .pool _081930F8: lsrs r1, 22 ldr r0, =gStringVar1 bl sub_8195898 _08193100: mov r0, r8 cmp r0, 0x2 beq _08193126 adds r6, 0x1 ldr r1, =gUnknown_0860D3C4 mov r12, r1 ldr r3, [sp, 0x8] adds r1, r3, r7 mov r2, r12 adds r0, r1, r2 ldrb r2, [r0] mov r0, r12 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] adds r2, r0 cmp r6, r2 bge _08193126 b _0819300E _08193126: cmp r7, 0xE beq _08193138 ldr r0, [sp, 0x4] adds r0, 0x1 b _0819313C .pool _08193138: ldr r0, [sp, 0x4] adds r0, 0x2 _0819313C: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8192F08 thumb_func_start sub_819314C sub_819314C: @ 819314C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x80 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x34] lsls r1, 24 lsrs r6, r1, 24 movs r0, 0 str r0, [sp, 0x3C] movs r7, 0 movs r1, 0 str r1, [sp, 0x40] movs r2, 0 str r2, [sp, 0x44] mov r9, r2 movs r0, 0x1 ldr r3, [sp, 0x34] ands r0, r3 cmp r0, 0 beq _08193186 movs r7, 0x8 str r7, [sp, 0x3C] movs r7, 0x9 movs r0, 0x2 mov r9, r0 _08193186: movs r0, 0x2 ldr r1, [sp, 0x34] ands r0, r1 cmp r0, 0 beq _08193196 movs r2, 0x80 lsls r2, 1 str r2, [sp, 0x40] _08193196: movs r0, 0x4 ldr r3, [sp, 0x34] ands r0, r3 cmp r0, 0 beq _081931A4 movs r0, 0xA0 str r0, [sp, 0x44] _081931A4: movs r0, 0x8 ldr r1, [sp, 0x34] ands r0, r1 cmp r0, 0 beq _081931B2 ldr r2, =0xffffff00 str r2, [sp, 0x40] _081931B2: movs r0, 0x10 ldr r3, [sp, 0x34] ands r0, r3 cmp r0, 0 beq _081931C2 movs r0, 0xA0 negs r0, r0 str r0, [sp, 0x44] _081931C2: ldr r4, =gUnknown_0203CD78 ldr r1, [r4] adds r1, 0x11 adds r0, r6, 0 bl sub_8192F08 str r0, [sp, 0x38] movs r5, 0 mov r1, sp adds r1, 0x1C str r1, [sp, 0x48] mov r2, sp adds r2, 0x24 str r2, [sp, 0x4C] lsls r1, r6, 1 mov r3, sp adds r3, 0x2C str r3, [sp, 0x50] ldr r0, [sp, 0x40] adds r0, 0x30 mov r8, r0 ldr r2, [sp, 0x44] adds r2, 0x58 str r2, [sp, 0x78] movs r3, 0xC add r3, r9 mov r10, r3 ldr r0, [sp, 0x40] adds r0, 0xC0 str r0, [sp, 0x7C] mov r2, r9 adds r2, 0xD str r2, [sp, 0x74] ldr r3, [sp, 0x3C] adds r3, 0x1 mov r9, r3 ldr r0, [sp, 0x3C] adds r0, 0x2 str r0, [sp, 0x54] ldr r2, [sp, 0x3C] adds r2, 0x5 str r2, [sp, 0x5C] adds r3, r7, 0 adds r3, 0x8 str r3, [sp, 0x6C] adds r0, r7, 0x6 str r0, [sp, 0x64] adds r2, r7, 0x7 str r2, [sp, 0x68] lsls r3, r6, 2 str r3, [sp, 0x58] adds r0, r7, 0x5 str r0, [sp, 0x60] ldr r0, [r4] adds r0, 0x11 mov r12, r0 ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r0, =gUnknown_0860D3C6 movs r3, 0 adds r1, r6 adds r1, r0 ldrb r6, [r1] _08193240: ldr r1, [sp, 0x48] adds r2, r3, r1 mov r7, r12 adds r0, r7, r5 ldrb r0, [r0] str r0, [r2] ldr r7, [sp, 0x4C] adds r1, r3, r7 lsls r0, 2 adds r0, r4, r0 ldr r7, =0x00000d24 adds r0, r7 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 str r0, [r1] ldr r0, [r2] lsls r0, 2 adds r0, r4, r0 ldr r1, =0x00000d25 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 27 lsrs r0, 30 cmp r0, r6 bhi _0819329C lsls r0, r1, 29 cmp r0, 0 bge _0819329C ldr r2, [sp, 0x50] adds r1, r3, r2 movs r0, 0x1 b _081932A2 .pool _0819329C: ldr r7, [sp, 0x50] adds r1, r3, r7 movs r0, 0 _081932A2: str r0, [r1] adds r3, 0x4 adds r5, 0x1 cmp r5, 0x1 ble _08193240 ldr r1, [sp, 0x24] ldr r0, =0x000003ff cmp r1, r0 bne _081932D4 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] bl sub_806F000 lsls r0, 16 lsrs r0, 16 mov r2, r8 ldr r3, [sp, 0x78] mov r1, r10 str r1, [sp] b _081932F8 .pool _081932D4: ldr r0, =0x000003fe cmp r1, r0 bne _081932E4 bl sub_8195910 b _081932EC .pool _081932E4: lsls r0, r1, 16 lsrs r0, 16 bl sub_8162AA0 _081932EC: lsls r0, 24 lsrs r0, 24 mov r2, r8 ldr r3, [sp, 0x78] mov r7, r10 str r7, [sp] _081932F8: ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 bl sub_818D8AC ldr r1, =gUnknown_0203CD78 ldr r1, [r1] ldr r2, [sp, 0x3C] adds r1, r2 strb r0, [r1] movs r0, 0x1E ldr r3, [sp, 0x34] ands r0, r3 cmp r0, 0 beq _08193334 ldr r2, =gSprites ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldr r7, [sp, 0x3C] adds r0, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08193334: ldr r0, [sp, 0x2C] cmp r0, 0 beq _0819335A ldr r2, =gSprites ldr r0, =gUnknown_0203CD78 ldr r0, [r0] ldr r1, [sp, 0x3C] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x5] movs r1, 0xF ands r1, r2 movs r2, 0x30 orrs r1, r2 strb r1, [r0, 0x5] _0819335A: ldr r2, [sp, 0x4C] ldr r1, [r2, 0x4] ldr r0, =0x000003ff cmp r1, r0 bne _08193388 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] bl sub_806F000 lsls r0, 16 lsrs r0, 16 b _081933B0 .pool _08193388: ldr r0, =0x000003fe cmp r1, r0 bne _081933A4 bl sub_8195910 lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x7C] ldr r3, [sp, 0x78] ldr r1, [sp, 0x74] str r1, [sp] b _081933B8 .pool _081933A4: lsls r0, r1, 16 lsrs r0, 16 bl sub_8162AA0 lsls r0, 24 lsrs r0, 24 _081933B0: ldr r2, [sp, 0x7C] ldr r3, [sp, 0x78] ldr r7, [sp, 0x74] str r7, [sp] _081933B8: ldr r1, =0x0000ffff str r1, [sp, 0x4] movs r1, 0x1 bl sub_818D8AC ldr r1, =gUnknown_0203CD78 ldr r1, [r1] add r1, r9 strb r0, [r1] movs r0, 0x1E ldr r1, [sp, 0x34] ands r0, r1 cmp r0, 0 beq _081933F0 ldr r2, =gSprites ldr r0, =gUnknown_0203CD78 ldr r0, [r0] add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _081933F0: ldr r2, [sp, 0x50] ldr r0, [r2, 0x4] cmp r0, 0 beq _08193416 ldr r2, =gSprites ldr r0, =gUnknown_0203CD78 ldr r0, [r0] add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r2, [r0, 0x5] movs r1, 0xF ands r1, r2 movs r2, 0x30 orrs r1, r2 strb r1, [r0, 0x5] _08193416: movs r5, 0 ldr r3, [sp, 0x38] lsls r3, 2 str r3, [sp, 0x70] mov r8, r5 ldr r6, =gUnknown_0203CD78 ldr r7, =gSprites ldr r4, [sp, 0x54] mov r9, r5 movs r0, 0x1 mov r10, r0 _0819342C: ldr r1, [sp, 0x24] ldr r0, =0x000003ff cmp r1, r0 bne _08193464 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, [sp, 0x1C] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r9 ldr r1, =0x00000d64 adds r2, r1 adds r2, r0 ldrh r0, [r2] b _081934B0 .pool _08193464: ldr r0, =0x000003fe cmp r1, r0 bne _08193490 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, [sp, 0x1C] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r9 ldr r1, =0x00000d64 adds r2, r1 adds r2, r0 ldrh r0, [r2] b _081934B0 .pool _08193490: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, [sp, 0x1C] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r9 ldr r1, =0x00000d64 adds r2, r1 adds r2, r0 ldrh r1, [r2] ldr r0, =gUnknown_0203BC8C ldr r0, [r0] lsls r1, 4 adds r1, r0 ldrh r0, [r1] _081934B0: ldr r1, =gUnknown_0860D3A8 adds r1, r5, r1 ldrb r2, [r1] ldr r3, [sp, 0x40] orrs r2, r3 ldr r1, =gUnknown_0860D3AB adds r1, r5, r1 ldrb r3, [r1] ldr r1, [sp, 0x44] adds r3, r1 mov r1, r8 str r1, [sp] str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] ldr r1, =sub_8190938 bl sub_80D2CC4 ldr r1, [r6] adds r1, r4 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrb r1, [r0, 0x5] movs r3, 0xD negs r3, r3 adds r2, r3, 0 ands r1, r2 strb r1, [r0, 0x5] movs r0, 0x1E ldr r1, [sp, 0x34] ands r0, r1 cmp r0, 0 beq _08193516 ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _08193516: ldr r0, [sp, 0x2C] cmp r0, 0 beq _08193548 ldr r0, [r6] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x30 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 mov r2, r10 strh r2, [r0, 0x34] _08193548: adds r4, 0x1 movs r3, 0x2 add r9, r3 adds r5, 0x1 cmp r5, 0x2 bgt _08193556 b _0819342C _08193556: movs r5, 0 ldr r6, =gUnknown_0203CD78 ldr r7, =gSprites mov r8, r7 ldr r4, [sp, 0x5C] mov r9, r5 movs r7, 0 _08193564: ldr r0, [sp, 0x4C] ldr r1, [r0, 0x4] ldr r0, =0x000003ff cmp r1, r0 bne _081935AC ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r3, [sp, 0x48] ldr r1, [r3, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r9 ldr r1, =0x00000d64 adds r2, r1 adds r2, r0 ldrh r0, [r2] b _081935FA .pool _081935AC: ldr r0, =0x000003fe cmp r1, r0 bne _081935D8 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, [sp, 0x48] ldr r1, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r9 ldr r1, =0x00000d64 adds r2, r1 adds r2, r0 ldrh r0, [r2] b _081935FA .pool _081935D8: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, [sp, 0x48] ldr r1, [r0, 0x4] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 add r0, r9 ldr r1, =0x00000d64 adds r2, r1 adds r2, r0 ldrh r1, [r2] ldr r0, =gUnknown_0203BC8C ldr r0, [r0] lsls r1, 4 adds r1, r0 ldrh r0, [r1] _081935FA: ldr r1, =gUnknown_0860D3AE adds r1, r5, r1 ldrb r2, [r1] ldr r3, [sp, 0x40] orrs r2, r3 ldr r1, =gUnknown_0860D3B1 adds r1, r5, r1 ldrb r3, [r1] ldr r1, [sp, 0x44] adds r3, r1 str r7, [sp] str r7, [sp, 0x4] movs r1, 0x1 str r1, [sp, 0x8] ldr r1, =sub_8190938 bl sub_80D2CC4 ldr r1, [r6] adds r1, r4 strb r0, [r1] ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 ldrb r1, [r0, 0x5] movs r3, 0xD negs r3, r3 adds r2, r3, 0 ands r1, r2 strb r1, [r0, 0x5] movs r0, 0x1E ldr r1, [sp, 0x34] ands r0, r1 cmp r0, 0 beq _0819365E ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] _0819365E: ldr r2, [sp, 0x50] ldr r0, [r2, 0x4] cmp r0, 0 beq _08193692 ldr r0, [r6] adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 movs r2, 0x30 orrs r0, r2 strb r0, [r1, 0x5] ldr r0, [r6] adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 movs r1, 0x1 strh r1, [r0, 0x34] _08193692: adds r4, 0x1 movs r3, 0x2 add r9, r3 adds r5, 0x1 cmp r5, 0x2 bgt _081936A0 b _08193564 _081936A0: add r0, sp, 0xC movs r5, 0 strb r5, [r0, 0x6] adds r1, r0, 0 movs r0, 0x2 strb r0, [r1, 0x7] adds r0, r1, 0 ldrb r0, [r0, 0x6] strb r0, [r1, 0x8] adds r0, r1, 0 ldrb r0, [r0, 0x7] strb r0, [r1, 0x9] adds r0, r1, 0 strb r5, [r0, 0xA] strb r5, [r0, 0xB] adds r3, r0, 0 ldrb r2, [r3, 0xC] movs r1, 0x10 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] adds r2, r3, 0 movs r0, 0xE0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] adds r1, r2, 0 movs r0, 0xD0 strb r0, [r1, 0xD] ldr r4, =gStringVar4 ldr r0, =gUnknown_0860D38C ldr r7, [sp, 0x70] adds r0, r7, r0 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders str r4, [sp, 0xC] add r0, sp, 0xC add r1, sp, 0x6C ldrb r1, [r1] strb r1, [r0, 0x4] adds r1, r0, 0 movs r0, 0x1 strb r0, [r1, 0x5] ldr r4, [sp, 0x6C] adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add r0, sp, 0xC strb r5, [r0, 0x8] adds r1, r0, 0 strb r5, [r0, 0x7] strb r5, [r1, 0x9] movs r1, 0 movs r2, 0 bl AddTextPrinter ldr r1, [sp, 0x24] ldr r0, =0x000003ff cmp r1, r0 bne _0819375C ldr r0, =gStringVar1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy b _0819377E .pool _0819375C: ldr r0, =0x000003fe cmp r1, r0 bne _08193774 ldr r0, =gStringVar1 bl sub_8195938 b _0819377E .pool _08193774: ldr r0, =gStringVar1 lsls r1, 16 lsrs r1, 16 bl sub_8195898 _0819377E: add r0, sp, 0xC movs r4, 0x2 strb r4, [r0, 0x5] strb r4, [r0, 0xA] ldr r5, =gStringVar1 str r5, [sp, 0xC] add r2, sp, 0x64 ldrb r2, [r2] strb r2, [r0, 0x4] ldrb r0, [r0, 0x5] ldr r1, [sp, 0xC] add r2, sp, 0xC ldrb r3, [r2, 0xA] movs r2, 0x40 bl GetStringCenterAlignXOffsetWithLetterSpacing add r1, sp, 0xC strb r0, [r1, 0x8] adds r0, r1, 0 strb r4, [r0, 0x7] strb r4, [r1, 0x9] ldr r4, [sp, 0x64] adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add r0, sp, 0xC movs r1, 0 movs r2, 0 bl AddTextPrinter ldr r3, [sp, 0x4C] ldr r1, [r3, 0x4] ldr r0, =0x000003ff cmp r1, r0 bne _081937E4 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r5, 0 bl StringCopy b _08193802 .pool _081937E4: ldr r0, =0x000003fe cmp r1, r0 bne _081937F8 adds r0, r5, 0 bl sub_8195938 b _08193802 .pool _081937F8: lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 bl sub_8195898 _08193802: ldr r0, =gStringVar1 str r0, [sp, 0xC] add r0, sp, 0xC movs r6, 0 add r7, sp, 0x68 ldrb r7, [r7] strb r7, [r0, 0x4] ldrb r0, [r0, 0x5] ldr r1, [sp, 0xC] add r2, sp, 0xC ldrb r3, [r2, 0xA] movs r2, 0x40 bl GetStringCenterAlignXOffsetWithLetterSpacing add r1, sp, 0xC strb r0, [r1, 0x8] adds r0, r1, 0 movs r5, 0x2 strb r5, [r0, 0x7] strb r5, [r1, 0x9] ldr r4, [sp, 0x68] adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add r0, sp, 0xC movs r1, 0 movs r2, 0 bl AddTextPrinter add r0, sp, 0xC strb r6, [r0, 0xA] ldr r0, =gUnknown_0860D350 ldr r1, [sp, 0x58] adds r0, r1, r0 ldr r0, [r0] str r0, [sp, 0xC] add r0, sp, 0xC add r2, sp, 0x60 ldrb r2, [r2] strb r2, [r0, 0x4] ldrb r0, [r0, 0x5] ldr r1, [sp, 0xC] add r2, sp, 0xC ldrb r3, [r2, 0xA] movs r2, 0xA0 bl GetStringCenterAlignXOffsetWithLetterSpacing add r1, sp, 0xC strb r0, [r1, 0x8] adds r0, r1, 0 strb r5, [r0, 0x7] strb r5, [r1, 0x9] ldr r4, [sp, 0x60] adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram add r0, sp, 0xC movs r1, 0 movs r2, 0 bl AddTextPrinter add sp, 0x80 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819314C thumb_func_start sub_81938A4 sub_81938A4: @ 81938A4 push {lr} ldr r0, =sub_8194220 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x8] strh r2, [r1, 0xA] movs r0, 0x2 strh r0, [r1, 0xC] strh r2, [r1, 0x10] ldr r0, =sub_8194B54 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_81938A4 thumb_func_start sub_81938E0 sub_81938E0: @ 81938E0 push {r4,lr} bl sub_8194D48 ldr r4, =gSaveBlock2Ptr ldr r2, [r4] ldr r1, =0x00000d0a adds r0, r2, r1 ldrb r1, [r0] subs r1, 0x1 ldr r0, =0x00000ca9 adds r2, r0 movs r0, 0x3 ands r1, r0 ldrb r3, [r2] movs r0, 0x4 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldr r0, [r4] ldr r1, =0x00000cb2 adds r0, r1 movs r4, 0 movs r1, 0x3 strh r1, [r0] ldr r0, =sub_8194220 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] strh r4, [r1, 0xA] movs r0, 0x2 strh r0, [r1, 0xC] movs r0, 0x1 strh r0, [r1, 0x10] ldr r0, =sub_8194B54 bl SetMainCallback2 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81938E0 thumb_func_start sub_819395C sub_819395C: @ 819395C push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0xA ldrsh r7, [r0, r2] movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x7 bls _0819397E b _08193BC2 _0819397E: lsls r0, 2 ldr r1, =_08193990 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08193990: .4byte _081939B0 .4byte _08193A00 .4byte _08193A20 .4byte _08193AA8 .4byte _08193BC2 .4byte _08193B20 .4byte _08193BC2 .4byte _08193B84 _081939B0: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 beq _081939C2 b _08193BC2 _081939C2: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] lsls r0, r7, 4 adds r0, r7 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim b _08193BC2 .pool _08193A00: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08193A0E b _08193BC2 _08193A0E: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 movs r1, 0x2 strh r1, [r0, 0x8] b _08193BC2 .pool _08193A20: adds r0, r5, 0 bl sub_8193BDC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08193A30 b _08193BC2 _08193A30: cmp r0, 0x1 ble _08193A3C cmp r0, 0x2 beq _08193A60 cmp r0, 0x3 beq _08193A84 _08193A3C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x7 strh r1, [r0, 0x8] b _08193BC2 .pool _08193A60: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x3 strh r1, [r0, 0x8] b _08193BC2 .pool _08193A84: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x5 strh r1, [r0, 0x8] b _08193BC2 .pool _08193AA8: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _08193ABA b _08193BC2 _08193ABA: bl FreeAllWindowBuffers bl remove_some_task ldr r4, =gUnknown_0203CD7C ldr r0, [r4] bl Free str r6, [r4] ldr r0, =sub_8190400 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gTasks lsls r1, r3, 2 adds r1, r3 lsls r1, 3 adds r1, r2 movs r3, 0 strh r6, [r1, 0x8] ldr r0, =gUnknown_0860D080 adds r0, r7, r0 ldrb r0, [r0] strh r0, [r1, 0xA] movs r0, 0x1 strh r0, [r1, 0xC] strh r5, [r1, 0xE] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 movs r1, 0x4 strh r1, [r0, 0x8] ldr r0, =gUnknown_0203CD78 ldr r0, [r0] strb r3, [r0, 0x10] b _08193BC2 .pool _08193B20: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08193BC2 bl FreeAllWindowBuffers bl remove_some_task ldr r4, =gUnknown_0203CD7C ldr r0, [r4] bl Free str r6, [r4] ldr r0, =sub_8190400 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gTasks lsls r0, r3, 2 adds r0, r3 lsls r0, 3 adds r0, r2 strh r6, [r0, 0x8] adds r1, r7, 0 subs r1, 0x10 strh r1, [r0, 0xA] movs r1, 0x2 strh r1, [r0, 0xC] strh r5, [r0, 0xE] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r2 movs r1, 0x6 strh r1, [r0, 0x8] b _08193BC2 .pool _08193B84: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 bne _08193BC2 bl FreeAllWindowBuffers bl remove_some_task ldr r4, =gUnknown_0203CD7C ldr r0, [r4] bl Free str r6, [r4] ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrb r0, [r0, 0x16] bl DestroyTask adds r0, r5, 0 bl DestroyTask _08193BC2: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819395C thumb_func_start sub_8193BDC sub_8193BDC: @ 8193BDC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0x1 mov r9, r0 movs r1, 0x4 mov r8, r1 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 movs r1, 0xA ldrsh r5, [r0, r1] ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r6, [r0] ldr r0, =gMain ldrh r1, [r0, 0x2E] adds r2, r1, 0 adds r3, r0, 0 cmp r2, 0x2 beq _08193C20 mov r0, r9 ands r0, r1 cmp r0, 0 beq _08193C58 cmp r5, 0x1F bne _08193C3C _08193C20: movs r0, 0x5 bl PlaySE movs r0, 0 mov r9, r0 b _08193CDE .pool _08193C3C: cmp r5, 0xF bgt _08193C4C movs r0, 0x5 bl PlaySE movs r1, 0x2 mov r9, r1 b _08193CDE _08193C4C: movs r0, 0x5 bl PlaySE movs r0, 0x3 mov r9, r0 b _08193CDE _08193C58: cmp r2, 0x40 bne _08193C78 ldr r0, =gUnknown_0860CBF1 lsls r1, r5, 2 adds r1, r5 adds r1, r6 lsls r1, 2 adds r1, r0 ldrb r0, [r1] cmp r0, 0xFF beq _08193C78 movs r1, 0 mov r8, r1 b _08193CDE .pool _08193C78: ldrh r0, [r3, 0x2E] cmp r0, 0x80 bne _08193C9C ldr r0, =gUnknown_0860CBF1 lsls r1, r5, 2 adds r1, r5 adds r1, r6 lsls r1, 2 adds r0, 0x1 adds r1, r0 ldrb r0, [r1] cmp r0, 0xFF beq _08193C9C movs r0, 0x1 b _08193CDC .pool _08193C9C: ldrh r0, [r3, 0x2E] cmp r0, 0x20 bne _08193CC0 ldr r0, =gUnknown_0860CBF1 lsls r1, r5, 2 adds r1, r5 adds r1, r6 lsls r1, 2 adds r0, 0x2 adds r1, r0 ldrb r0, [r1] cmp r0, 0xFF beq _08193CC0 movs r1, 0x2 mov r8, r1 b _08193CDE .pool _08193CC0: ldrh r0, [r3, 0x2E] cmp r0, 0x10 bne _08193CDE ldr r0, =gUnknown_0860CBF1 lsls r1, r5, 2 adds r1, r5 adds r1, r6 lsls r1, 2 adds r0, 0x3 adds r1, r0 ldrb r0, [r1] cmp r0, 0xFF beq _08193CDE movs r0, 0x3 _08193CDC: mov r8, r0 _08193CDE: mov r1, r8 cmp r1, 0x4 beq _08193D26 movs r0, 0x5 bl PlaySE lsls r0, r5, 4 adds r0, r5 lsls r0, 2 ldr r4, =gSprites adds r0, r4 movs r1, 0 bl StartSpriteAnim ldr r2, =gUnknown_0860CBF1 lsls r1, r6, 2 add r1, r8 lsls r0, r5, 2 adds r0, r5 lsls r0, 2 adds r1, r0 adds r1, r2 ldrb r5, [r1] lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAnim ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xA] _08193D26: mov r0, r9 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8193BDC thumb_func_start sub_8193D40 sub_8193D40: @ 8193D40 push {lr} ldr r0, =sub_8194220 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r2, 0 strh r2, [r1, 0x8] movs r0, 0x1 strh r0, [r1, 0xA] movs r0, 0x2 strh r0, [r1, 0xC] strh r2, [r1, 0x10] ldr r0, =sub_8194B54 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_8193D40 thumb_func_start sub_8193D7C sub_8193D7C: @ 8193D7C push {r4-r7,lr} mov r7, r8 push {r7} ldr r7, =gSpecialVar_0x8005 ldrh r0, [r7] cmp r0, 0x1 bne _08193E10 ldr r5, =gTrainerBattleOpponent_A ldrh r0, [r5] bl sub_8195358 ldr r4, =gSaveBlock2Ptr ldr r2, [r4] lsls r0, 2 adds r2, r0 ldr r6, =0x00000d25 adds r2, r6 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldrh r0, [r5] bl sub_8195358 ldr r1, [r4] lsls r0, 2 adds r0, r1, r0 ldr r2, =0x00000cb2 mov r8, r2 add r1, r8 adds r0, r6 movs r3, 0x3 ldrb r2, [r1] ands r2, r3 lsls r2, 3 ldrb r3, [r0] movs r1, 0x19 negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0] ldrh r0, [r5] bl sub_8195358 ldr r2, [r4] lsls r0, 1 movs r3, 0xEC lsls r3, 4 adds r1, r2, r3 adds r1, r0 ldr r0, =gBattleResults ldrh r0, [r0, 0x22] strh r0, [r1] add r2, r8 ldrh r0, [r2] cmp r0, 0x2 bhi _08193EAE lsls r0, 24 lsrs r0, 24 bl sub_8195438 b _08193EAE .pool _08193E10: ldr r5, =0x000003ff adds r0, r5, 0 bl sub_8195358 ldr r4, =gSaveBlock2Ptr ldr r2, [r4] lsls r0, 2 adds r2, r0 ldr r6, =0x00000d25 adds r2, r6 ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] adds r0, r5, 0 bl sub_8195358 ldr r1, [r4] lsls r0, 2 adds r0, r1, r0 ldr r2, =0x00000cb2 adds r1, r2 adds r0, r6 movs r3, 0x3 ldrb r2, [r1] ands r2, r3 lsls r2, 3 ldrb r3, [r0] movs r1, 0x19 negs r1, r1 ands r1, r3 orrs r1, r2 strb r1, [r0] adds r0, r5, 0 bl sub_8195358 ldr r1, [r4] lsls r0, 1 movs r3, 0xEC lsls r3, 4 adds r1, r3 adds r1, r0 ldr r0, =gBattleResults ldrh r0, [r0, 0x24] strh r0, [r1] ldr r0, =gBattleOutcome ldrb r0, [r0] cmp r0, 0x9 beq _08193E78 ldrh r0, [r7] cmp r0, 0x9 bne _08193E92 _08193E78: adds r0, r5, 0 bl sub_8195358 ldr r2, [r4] lsls r0, 2 adds r2, r0 adds r2, r6 ldrb r1, [r2] movs r0, 0x1F ands r0, r1 movs r1, 0x20 orrs r0, r1 strb r0, [r2] _08193E92: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r4, [r0] cmp r4, 0x3 bgt _08193EAE _08193EA0: lsls r0, r4, 24 lsrs r0, 24 bl sub_8195438 adds r4, 0x1 cmp r4, 0x3 ble _08193EA0 _08193EAE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8193D7C thumb_func_start sub_8193ED0 sub_8193ED0: @ 8193ED0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x84 str r0, [sp, 0x48] str r1, [sp, 0x4C] lsls r4, r2, 24 lsrs r4, 24 movs r0, 0 str r0, [sp, 0x54] movs r1, 0 str r1, [sp, 0x58] bl sub_8165C40 movs r2, 0 str r2, [sp, 0x50] add r3, sp, 0x30 mov r10, r3 ldr r5, [sp, 0x4C] lsls r5, 1 str r5, [sp, 0x70] subs r4, 0x1 str r4, [sp, 0x78] _08193F02: movs r0, 0 mov r9, r0 ldr r1, [sp, 0x50] lsls r1, 2 str r1, [sp, 0x74] ldr r2, [sp, 0x48] lsls r2, 2 str r2, [sp, 0x6C] ldr r3, [sp, 0x50] adds r3, 0x1 str r3, [sp, 0x60] _08193F18: ldr r4, [sp, 0x74] add r4, r9 lsls r0, r4, 2 mov r5, sp adds r1, r5, r0 movs r0, 0 str r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r1, [sp, 0x6C] adds r0, r3, r1 ldr r2, =0x00000d24 adds r0, r2 ldrh r0, [r0] lsls r0, 22 ldr r1, =0xff800000 cmp r0, r1 bne _08193F60 ldr r3, [sp, 0x50] lsls r0, r3, 24 mov r5, r9 lsls r1, r5, 24 lsrs r1, 24 lsrs r0, 24 bl sub_81A5060 lsls r1, r4, 1 add r1, r10 strh r0, [r1] b _08193F8C .pool _08193F60: lsls r2, r4, 1 add r2, r10 ldr r1, [sp, 0x48] lsls r0, r1, 1 adds r0, r1 ldr r4, [sp, 0x50] adds r0, r4 lsls r0, 1 ldr r5, =0x00000d64 adds r1, r3, r5 adds r1, r0 ldrh r0, [r1] ldr r1, =gUnknown_0203BC8C ldr r1, [r1] lsls r0, 4 adds r0, r1 mov r3, r9 lsls r1, r3, 1 adds r0, 0x2 adds r0, r1 ldrh r0, [r0] strh r0, [r2] _08193F8C: ldr r0, =gBattleMoves ldr r1, [sp, 0x74] add r1, r9 lsls r1, 1 add r1, r10 ldrh r2, [r1] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r6, [r1, 0x1] cmp r6, 0 bne _08193FB8 movs r6, 0x28 b _08193FD0 .pool _08193FB8: cmp r6, 0x1 bne _08193FC0 movs r6, 0x3C b _08193FD0 _08193FC0: adds r1, r2, 0 cmp r1, 0x78 beq _08193FCA cmp r1, 0x99 bne _08193FD0 _08193FCA: lsrs r0, r6, 31 adds r0, r6, r0 asrs r6, r0, 1 _08193FD0: movs r1, 0 mov r4, r9 adds r4, 0x1 str r4, [sp, 0x64] ldr r5, [sp, 0x70] ldr r2, [sp, 0x4C] adds r0, r5, r2 lsls r0, 1 str r0, [sp, 0x5C] _08193FE2: lsls r7, r1, 1 adds r1, 0x1 str r1, [sp, 0x68] ldr r3, [sp, 0x5C] adds r3, r7 mov r8, r3 _08193FEE: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r5, r4, 16 lsls r0, 16 orrs r5, r0 ldr r2, =gSaveBlock2Ptr ldr r0, [r2] ldr r4, =0x00000d64 adds r0, r4 add r0, r8 ldrh r4, [r0] ldr r3, =gUnknown_0203BC8C ldr r0, [r3] lsls r4, 4 adds r4, r0 adds r0, r5, 0 str r2, [sp, 0x7C] str r3, [sp, 0x80] bl GetNatureFromPersonality ldrb r1, [r4, 0xC] lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x7C] ldr r3, [sp, 0x80] cmp r1, r0 bne _08193FEE ldr r0, [r2] ldr r2, [sp, 0x5C] adds r1, r7, r2 ldr r4, =0x00000d64 adds r0, r4 adds r0, r1 ldrh r0, [r0] ldr r1, [r3] lsls r0, 4 adds r0, r1 ldrh r1, [r0] movs r0, 0x1 ands r5, r0 cmp r5, 0 beq _08194068 lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r5, =gBaseStats adds r0, r5 ldrb r2, [r0, 0x17] b _08194074 .pool _08194068: lsls r0, r1, 3 subs r0, r1 lsls r0, 2 ldr r2, =gBaseStats adds r0, r2 ldrb r2, [r0, 0x16] _08194074: ldr r4, [sp, 0x74] add r4, r9 lsls r0, r4, 1 add r0, r10 ldrh r0, [r0] bl ai_rate_move lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x6 ands r0, r5 cmp r0, 0x6 bne _0819409C lsls r0, r4, 2 mov r3, sp adds r1, r3, r0 b _081940D8 .pool _0819409C: movs r0, 0x29 ands r0, r5 cmp r0, 0 bne _081940DE movs r0, 0x2 ands r0, r5 cmp r0, 0 beq _081940B6 lsls r0, r4, 2 mov r5, sp adds r2, r5, r0 lsls r1, r6, 1 b _081940CA _081940B6: movs r0, 0x4 ands r5, r0 cmp r5, 0 beq _081940D2 lsls r0, r4, 2 mov r1, sp adds r2, r1, r0 lsrs r1, r6, 31 adds r1, r6, r1 asrs r1, 1 _081940CA: ldr r0, [r2] adds r0, r1 str r0, [r2] b _081940DE _081940D2: lsls r0, r4, 2 mov r2, sp adds r1, r2, r0 _081940D8: ldr r0, [r1] adds r0, r6 str r0, [r1] _081940DE: ldr r1, [sp, 0x68] cmp r1, 0x2 bgt _081940E6 b _08193FE2 _081940E6: ldr r2, [sp, 0x74] add r2, r9 lsls r0, r2, 2 add r0, sp ldr r1, [r0] ldr r3, [sp, 0x54] cmp r3, r1 bge _08194104 lsls r0, r2, 16 lsrs r0, 16 str r0, [sp, 0x58] lsls r0, r1, 16 lsrs r0, 16 str r0, [sp, 0x54] b _08194122 _08194104: ldr r4, [sp, 0x54] cmp r4, r1 bne _08194122 ldr r5, [sp, 0x58] lsls r0, r5, 1 add r0, r10 lsls r1, r2, 1 add r1, r10 ldrh r0, [r0] ldrh r1, [r1] cmp r0, r1 bcs _08194122 lsls r0, r2, 16 lsrs r0, 16 str r0, [sp, 0x58] _08194122: ldr r0, [sp, 0x64] mov r9, r0 cmp r0, 0x3 bgt _0819412C b _08193F18 _0819412C: ldr r1, [sp, 0x60] str r1, [sp, 0x50] cmp r1, 0x2 bgt _08194136 b _08193F02 _08194136: ldr r2, [sp, 0x58] mov r9, r2 b _08194182 _0819413C: movs r3, 0 mov r9, r3 movs r1, 0 mov r4, r10 mov r3, r10 mov r2, sp _08194148: ldr r0, [r2] ldr r5, [sp, 0x54] cmp r5, r0 bge _0819415A mov r9, r1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x54] b _08194170 _0819415A: ldr r5, [sp, 0x54] cmp r5, r0 bne _08194170 mov r5, r9 lsls r0, r5, 1 adds r0, r4, r0 ldrh r0, [r0] ldrh r5, [r3] cmp r0, r5 bcs _08194170 mov r9, r1 _08194170: adds r3, 0x2 adds r2, 0x4 adds r1, 0x1 cmp r1, 0xB ble _08194148 ldr r0, [sp, 0x50] ldr r1, [sp, 0x78] cmp r0, r1 beq _081941F4 _08194182: movs r2, 0 str r2, [sp, 0x50] mov r3, r9 lsls r7, r3, 2 ldr r4, [sp, 0x78] cmp r2, r4 bge _081941CA lsls r0, r3, 1 mov r5, r10 adds r6, r5, r0 ldr r0, [sp, 0x48] lsls r5, r0, 24 _0819419A: ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r2, [sp, 0x50] lsls r1, r2, 24 lsrs r1, 24 lsrs r0, r5, 24 bl sub_81953E8 lsls r0, 24 lsrs r0, 23 movs r3, 0xEC lsls r3, 4 adds r4, r3 adds r4, r0 ldrh r0, [r4] ldrh r4, [r6] cmp r0, r4 beq _081941CA ldr r0, [sp, 0x50] adds r0, 0x1 str r0, [sp, 0x50] ldr r1, [sp, 0x78] cmp r0, r1 blt _0819419A _081941CA: ldr r2, [sp, 0x50] ldr r3, [sp, 0x78] cmp r2, r3 beq _081941F4 mov r4, sp adds r1, r4, r7 movs r0, 0 str r0, [r1] movs r5, 0 str r5, [sp, 0x54] mov r9, r5 mov r2, sp movs r1, 0xB _081941E4: ldm r2!, {r0} add r9, r0 subs r1, 0x1 cmp r1, 0 bge _081941E4 mov r0, r9 cmp r0, 0 bne _0819413C _081941F4: mov r1, r9 lsls r0, r1, 2 add r0, sp ldr r0, [r0] cmp r0, 0 bne _08194204 ldr r2, [sp, 0x58] mov r9, r2 _08194204: mov r3, r9 lsls r0, r3, 1 add r0, r10 ldrh r0, [r0] add sp, 0x84 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8193ED0 thumb_func_start sub_8194220 sub_8194220: @ 8194220 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r1, =gTasks lsls r0, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r2, 0xA ldrsh r1, [r0, r2] mov r10, r1 movs r3, 0xC ldrsh r4, [r0, r3] movs r1, 0x8 ldrsh r0, [r0, r1] cmp r0, 0x5 bls _08194250 b _081948C2 _08194250: lsls r0, 2 ldr r1, =_08194264 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08194264: .4byte _0819427C .4byte _0819431C .4byte _0819438C .4byte _0819447C .4byte _081944FC .4byte _081947C8 _0819427C: movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r0, 0x3 bl EnableInterrupts movs r4, 0 str r4, [sp, 0x14] add r0, sp, 0x14 movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 bl CpuSet movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_0860CE74 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, =gUnknown_0860CE94 bl InitWindows bl DeactivateAllTextPrinters ldr r0, =gUnknown_02022E14 strh r4, [r0] ldr r0, =gUnknown_02022E16 strh r4, [r0] ldr r0, =gUnknown_02022E18 strh r4, [r0] ldr r0, =gUnknown_02022E1A strh r4, [r0] movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r1, 0xB0 lsls r1, 4 movs r0, 0x3 movs r2, 0 bl ChangeBgY ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 b _0819443C .pool _0819431C: movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r0, 0x4C movs r1, 0 bl SetGpuReg ldr r1, =0x00005860 movs r0, 0x40 bl SetGpuReg movs r0, 0x44 movs r1, 0x9F bl SetGpuReg ldr r1, =0x00009098 movs r0, 0x42 bl SetGpuReg movs r0, 0x46 movs r1, 0x9F bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0x3F bl SetGpuReg bl ResetPaletteFade bl ResetSpriteData bl FreeAllSpritePalettes ldr r1, =gTasks mov r3, r8 lsls r0, r3, 2 b _0819443C .pool _0819438C: ldr r4, =gUnknown_0203CD7C movs r0, 0x80 lsls r0, 4 bl AllocZeroed adds r1, r0, 0 str r1, [r4] ldr r0, =gUnknown_08D83900 bl LZDecompressWram ldr r1, [r4] movs r0, 0x1 bl SetBgTilemapBuffer movs r0, 0x1 bl CopyBgTilemapBufferToVram ldr r1, =gUnknown_08D82F10 movs r5, 0x80 lsls r5, 6 movs r6, 0 str r6, [sp] movs r0, 0x1 adds r2, r5, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08D834FC str r6, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08D83B2C movs r4, 0x1 str r4, [sp] movs r0, 0x2 adds r2, r5, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r1, =gUnknown_08D83C3C str r4, [sp] movs r0, 0x3 adds r2, r5, 0 movs r3, 0 bl copy_decompressed_tile_data_to_vram_autofree ldr r0, =gUnknown_08D85358 movs r4, 0x80 lsls r4, 2 movs r1, 0 adds r2, r4, 0 bl LoadCompressedPalette ldr r0, =gUnknown_08D85444 movs r1, 0x80 lsls r1, 1 adds r2, r4, 0 bl LoadCompressedPalette ldr r0, =gUnknown_08D85600 movs r1, 0xF0 movs r2, 0x20 bl LoadCompressedPalette str r6, [sp, 0x18] add r0, sp, 0x18 ldr r1, =gPlttBufferFaded ldr r2, =0x05000100 bl CpuSet movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x3 bl ShowBg ldr r1, =gTasks mov r4, r8 lsls r0, r4, 2 _0819443C: add r0, r8 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _081948C2 .pool _0819447C: ldr r0, =gUnknown_0860CF50 bl LoadCompressedObjectPic mov r0, r8 lsls r0, 2 str r0, [sp, 0x1C] mov r1, r10 cmp r1, 0 bne _081944E8 movs r5, 0 ldr r4, =gUnknown_0860D411 _08194492: ldrb r1, [r4] ldrb r2, [r4, 0x1] ldr r0, =gUnknown_0860CFA8 movs r3, 0 bl CreateSprite adds r4, 0x2 adds r5, 0x1 cmp r5, 0x1E bls _08194492 ldr r0, =gTasks ldr r1, [sp, 0x1C] add r1, r8 lsls r1, 3 adds r1, r0 movs r2, 0x10 ldrsh r0, [r1, r2] cmp r0, 0 beq _081944DC ldr r0, =gUnknown_0860D008 movs r1, 0xDA movs r2, 0xC movs r3, 0 bl CreateSprite b _081944E8 .pool _081944DC: ldr r0, =gUnknown_0860CFD8 movs r1, 0xDA movs r2, 0xC movs r3, 0 bl CreateSprite _081944E8: ldr r1, =0x00007f40 movs r0, 0 bl SetGpuReg b _081947A6 .pool _081944FC: add r0, sp, 0x4 movs r2, 0 movs r1, 0x2 strb r1, [r0, 0x5] ldr r0, =gUnknown_085CCCEE str r0, [sp, 0x4] add r0, sp, 0x4 strb r1, [r0, 0x4] strb r2, [r0, 0x6] strb r2, [r0, 0x7] strb r1, [r0, 0xA] strb r2, [r0, 0xB] ldrb r0, [r0, 0x5] ldr r1, [sp, 0x4] add r2, sp, 0x4 ldrb r3, [r2, 0xA] movs r2, 0x70 bl GetStringCenterAlignXOffsetWithLetterSpacing add r1, sp, 0x4 strb r0, [r1, 0x8] movs r0, 0x1 strb r0, [r1, 0x9] adds r3, r1, 0 ldrb r2, [r3, 0xC] movs r1, 0x10 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] adds r2, r3, 0 movs r0, 0xE0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] adds r1, r2, 0 movs r0, 0xD0 strb r0, [r1, 0xD] adds r0, r1, 0 movs r1, 0 movs r2, 0 bl AddTextPrinter mov r3, r8 lsls r3, 2 str r3, [sp, 0x1C] add r4, sp, 0x4 movs r0, 0xF mov r9, r0 movs r1, 0 str r1, [sp, 0x20] movs r2, 0 str r2, [sp, 0x24] movs r7, 0 movs r5, 0xF _0819456C: ldr r3, =gSaveBlock2Ptr ldr r0, [r3] adds r0, r7 ldr r1, =0x00000d24 adds r0, r1 ldrh r1, [r0] lsls r1, 22 lsrs r1, 22 ldr r0, =gDisplayedStringBattle bl sub_8195898 mov r2, r10 cmp r2, 0x1 bne _081945C4 ldr r3, =gSaveBlock2Ptr ldr r2, [r3] adds r0, r2, r7 ldr r1, =0x00000d25 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 29 cmp r0, 0 blt _081945DC ldr r3, =0x00000cb2 adds r0, r2, r3 ldrh r1, [r0] cmp r1, 0x1 beq _08194634 ldr r2, [sp, 0x24] lsrs r0, r2, 24 subs r1, 0x2 b _081945EA .pool _081945C4: mov r3, r10 cmp r3, 0 bne _08194634 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r0, r2, r7 ldr r1, =0x00000d25 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 29 cmp r0, 0 bge _081945FC _081945DC: lsls r1, 27 lsrs r0, r1, 30 cmp r0, 0 beq _08194634 subs r1, r0, 0x1 ldr r2, [sp, 0x24] lsrs r0, r2, 24 _081945EA: lsls r1, 24 lsrs r1, 24 bl sub_81948EC b _08194634 .pool _081945FC: ldr r3, =0x00000cb2 adds r1, r2, r3 ldrh r0, [r1] cmp r0, 0 beq _08194634 ldr r0, [sp, 0x1C] add r0, r8 lsls r0, 3 ldr r2, =gTasks adds r0, r2 movs r3, 0x10 ldrsh r0, [r0, r3] cmp r0, 0 beq _08194624 ldrh r1, [r1] b _08194628 .pool _08194624: ldrh r0, [r1] subs r1, r0, 0x1 _08194628: ldr r2, [sp, 0x24] lsrs r0, r2, 24 lsls r1, 24 lsrs r1, 24 bl sub_81948EC _08194634: ldr r0, [sp, 0x1C] add r0, r8 lsls r0, 3 ldr r3, =gTasks adds r0, r3 movs r1, 0x10 ldrsh r0, [r0, r1] cmp r0, 0 beq _08194660 ldr r2, =gSaveBlock2Ptr ldr r0, [r2] ldr r3, =0x00000cb2 adds r0, r3 ldrh r3, [r0] adds r6, r2, 0 b _0819466E .pool _08194660: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000cb2 adds r0, r2 ldrh r0, [r0] subs r3, r0, 0x1 adds r6, r1, 0 _0819466E: mov r0, r10 cmp r0, 0x1 bne _0819468E ldr r2, [r6] adds r0, r2, r7 ldr r1, =0x00000d25 adds r0, r1 ldrb r1, [r0] lsls r1, 27 lsrs r1, 30 ldr r0, =0x00000cb2 adds r2, r0 ldrh r0, [r2] subs r0, 0x1 cmp r1, r0 blt _081946A6 _0819468E: mov r1, r10 cmp r1, 0 bne _081946FA ldr r0, [r6] adds r0, r7 ldr r2, =0x00000d25 adds r0, r2 ldrb r0, [r0] lsls r0, 27 lsrs r0, 30 cmp r0, r3 bgt _081946FA _081946A6: ldr r0, [r6] adds r1, r0, r7 ldr r3, =0x00000d25 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _081946FA ldr r2, =0x00000d24 adds r0, r1, r2 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 ldr r3, =0x000003ff cmp r0, r3 bne _081946F0 ldrb r1, [r4, 0xC] mov r0, r9 ands r0, r1 movs r1, 0x30 orrs r0, r1 strb r0, [r4, 0xC] ldrb r1, [r4, 0xD] mov r0, r9 ands r0, r1 movs r1, 0x40 b _08194740 .pool _081946F0: ldrb r1, [r4, 0xC] mov r0, r9 ands r0, r1 movs r1, 0xB0 b _08194734 _081946FA: ldr r0, [r6] adds r0, r7 ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 ldr r2, =0x000003ff cmp r0, r2 bne _0819472C ldrb r1, [r4, 0xC] mov r0, r9 ands r0, r1 movs r1, 0x30 orrs r0, r1 strb r0, [r4, 0xC] ldrb r1, [r4, 0xD] mov r0, r9 ands r0, r1 movs r1, 0x40 b _08194740 .pool _0819472C: ldrb r1, [r4, 0xC] mov r0, r9 ands r0, r1 movs r1, 0xE0 _08194734: orrs r0, r1 strb r0, [r4, 0xC] ldrb r1, [r4, 0xD] mov r0, r9 ands r0, r1 movs r1, 0xD0 _08194740: orrs r0, r1 strb r0, [r4, 0xD] ldr r0, =gUnknown_0860D3F1 ldr r3, [sp, 0x20] adds r0, r3, r0 ldrb r0, [r0] cmp r0, 0 bne _08194768 ldrb r0, [r4, 0x5] ldrb r3, [r4, 0xA] ldr r1, =gDisplayedStringBattle movs r2, 0x3D bl GetStringWidthDifference b _0819476A .pool _08194768: movs r0, 0x3 _0819476A: strb r0, [r4, 0x8] ldr r0, =gDisplayedStringBattle str r0, [sp, 0x4] ldr r0, =gUnknown_0860D3F1 ldr r1, [sp, 0x20] adds r0, r1, r0 ldrb r0, [r0] strb r0, [r4, 0x4] ldr r2, =gUnknown_0860D3F2 adds r0, r1, r2 ldrb r0, [r0] strb r0, [r4, 0x9] add r0, sp, 0x4 movs r1, 0 movs r2, 0 bl AddTextPrinter ldr r3, [sp, 0x20] adds r3, 0x2 str r3, [sp, 0x20] ldr r0, [sp, 0x24] movs r1, 0x80 lsls r1, 17 adds r0, r1 str r0, [sp, 0x24] adds r7, 0x4 subs r5, 0x1 cmp r5, 0 blt _081947A6 b _0819456C _081947A6: ldr r0, =gTasks ldr r1, [sp, 0x1C] add r1, r8 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _081948C2 .pool _081947C8: movs r0, 0 bl PutWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram movs r0, 0x2 movs r1, 0x3 bl CopyWindowToVram ldr r0, =sub_8194BEC bl SetHBlankCallback ldr r0, =sub_8194CE4 bl SetVBlankCallback cmp r4, 0x2 bne _0819485C mov r2, r10 cmp r2, 0 bne _08194844 ldr r0, =sub_819395C movs r1, 0 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r2, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 mov r3, r10 strh r3, [r1, 0x8] strh r3, [r1, 0xA] mov r4, r8 lsls r0, r4, 2 add r0, r8 lsls r0, 3 adds r0, r2 ldrh r0, [r0, 0x10] strh r0, [r1, 0x14] b _08194878 .pool _08194844: ldr r0, =sub_8194950 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks b _0819486C .pool _0819485C: ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r3, 0xE ldrsh r5, [r0, r3] _0819486C: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] _08194878: bl dp12_8087EA4 ldr r0, =gUnknown_02038C28 ldr r2, =0x00001f0a movs r4, 0xF0 lsls r4, 3 adds r1, r0, r4 movs r5, 0x5A _08194888: strh r2, [r0] strh r2, [r1] adds r1, 0x2 adds r0, 0x2 subs r5, 0x1 cmp r5, 0 bge _08194888 movs r5, 0x5B ldr r3, =gUnknown_0860CF44 ldr r0, =gUnknown_02038C28 ldr r2, =0x00001f09 ldr r4, =0x00000836 adds r1, r0, r4 adds r0, 0xB6 _081948A4: strh r2, [r0] strh r2, [r1] adds r1, 0x2 adds r0, 0x2 adds r5, 0x1 cmp r5, 0x9F ble _081948A4 ldr r0, [r3] ldr r1, [r3, 0x4] ldr r2, [r3, 0x8] bl sub_80BA038 mov r0, r8 bl DestroyTask _081948C2: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8194220 thumb_func_start sub_81948EC sub_81948EC: @ 81948EC push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r4, =gUnknown_0860DD10 lsls r2, r1, 2 lsls r3, r0, 4 adds r2, r3 adds r2, r4 ldr r3, [r2] ldr r2, =gUnknown_0860DE10 lsls r0, 2 adds r1, r0 adds r1, r2 ldrb r0, [r1] cmp r0, 0 beq _08194938 movs r7, 0x1 adds r4, r3, 0 adds r5, r4, 0x2 adds r6, r0, 0 _0819491A: ldrb r2, [r4] ldrb r3, [r4, 0x1] str r7, [sp] str r7, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0x1 adds r1, r5, 0 bl CopyToBgTilemapBufferRect_ChangePalette adds r4, 0x4 adds r5, 0x4 subs r6, 0x1 cmp r6, 0 bne _0819491A _08194938: movs r0, 0x1 bl CopyBgTilemapBufferToVram add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81948EC thumb_func_start sub_8194950 sub_8194950: @ 8194950 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] adds r2, r1, 0 cmp r0, 0x4 bls _08194974 b _08194B3C _08194974: lsls r0, 2 ldr r1, =_08194988 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08194988: .4byte _0819499C .4byte _081949C0 .4byte _08194AD4 .4byte _08194AEE .4byte _08194B24 _0819499C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x1 strh r1, [r0, 0x8] b _08194B3C .pool _081949C0: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081949CE b _08194B3C _081949CE: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r2 movs r2, 0 movs r3, 0x2 movs r1, 0x2 strh r1, [r0, 0x8] movs r1, 0x40 strh r1, [r0, 0xE] add r0, sp, 0x4 strb r3, [r0, 0x5] strb r2, [r0, 0x6] strb r2, [r0, 0x7] strb r3, [r0, 0xA] strb r2, [r0, 0xB] adds r3, r0, 0 ldrb r2, [r3, 0xC] subs r1, 0x50 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] adds r2, r3, 0 movs r0, 0xB0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 strb r1, [r2, 0xD] adds r1, r2, 0 movs r0, 0xD0 strb r0, [r1, 0xD] movs r7, 0 ldr r0, =gDisplayedStringBattle mov r9, r0 ldr r1, =gSaveBlock2Ptr mov r8, r1 adds r4, r2, 0 ldr r6, =gUnknown_0860D3F1 movs r5, 0 _08194A1C: mov r2, r8 ldr r0, [r2] adds r0, r5 ldr r1, =0x00000d24 adds r0, r1 ldrh r1, [r0] lsls r1, 22 lsrs r1, 22 mov r0, r9 bl sub_8195898 mov r0, r8 ldr r2, [r0] adds r0, r2, r5 ldr r1, =0x00000d25 adds r0, r1 ldrb r3, [r0] lsls r1, r3, 27 lsrs r1, 30 ldr r0, =0x00000cb2 adds r2, r0 ldrh r0, [r2] subs r0, 0x1 cmp r1, r0 bne _08194A9E lsls r0, r3, 29 cmp r0, 0 bge _08194A9E ldrb r0, [r6] cmp r0, 0 bne _08194A84 ldrb r0, [r4, 0x5] ldrb r3, [r4, 0xA] mov r1, r9 movs r2, 0x3D bl GetStringWidthDifference b _08194A86 .pool _08194A84: movs r0, 0x3 _08194A86: strb r0, [r4, 0x8] mov r1, r9 str r1, [sp, 0x4] ldrb r0, [r6] strb r0, [r4, 0x4] ldrb r0, [r6, 0x1] strb r0, [r4, 0x9] add r0, sp, 0x4 movs r1, 0 movs r2, 0 bl AddTextPrinter _08194A9E: mov r2, r8 ldr r1, [r2] adds r0, r1, r5 ldr r2, =0x00000d25 adds r0, r2 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08194AC4 subs r2, 0x73 adds r0, r1, r2 ldrh r1, [r0] subs r1, 0x1 lsls r0, r7, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 bl sub_81948EC _08194AC4: adds r6, 0x2 adds r5, 0x4 adds r7, 0x1 cmp r7, 0xF ble _08194A1C b _08194B3C .pool _08194AD4: lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r2 ldrh r0, [r1, 0xE] subs r0, 0x1 strh r0, [r1, 0xE] lsls r0, 16 cmp r0, 0 bne _08194B3C movs r0, 0x3 strh r0, [r1, 0x8] b _08194B3C _08194AEE: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08194B3C movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x4 strh r1, [r0, 0x8] b _08194B3C .pool _08194B24: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _08194B3C ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music bl SetMainCallback2 adds r0, r4, 0 bl DestroyTask _08194B3C: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8194950 thumb_func_start sub_8194B54 sub_8194B54: @ 8194B54 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 thumb_func_end sub_8194B54 thumb_func_start sub_8194B70 sub_8194B70: @ 8194B70 push {lr} movs r0, 0x3 movs r1, 0x80 movs r2, 0x1 bl ChangeBgX movs r0, 0x3 movs r1, 0x80 movs r2, 0x2 bl ChangeBgY ldr r0, =gUnknown_02022E14 ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg ldr r0, =gUnknown_02022E16 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r0, =gUnknown_02022E18 ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg ldr r0, =gUnknown_02022E1A ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg ldr r0, =gUnknown_02022E1C ldrh r1, [r0] movs r0, 0x18 bl SetGpuReg ldr r0, =gUnknown_02022E1E ldrh r1, [r0] movs r0, 0x1A bl SetGpuReg bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 .pool thumb_func_end sub_8194B70 thumb_func_start sub_8194BEC sub_8194BEC: @ 8194BEC push {lr} ldr r0, =0x04000006 ldrh r0, [r0] adds r1, r0, 0 cmp r0, 0x29 bls _08194CC8 cmp r0, 0x31 bhi _08194C1C ldr r1, =0x04000048 ldr r2, =0x00003b3b adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r0, =0x989b5558 b _08194CD4 .pool _08194C1C: cmp r0, 0x39 bls _08194CC8 cmp r0, 0x4A bhi _08194C40 ldr r1, =0x04000048 ldr r2, =0x00003b3b adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r0, =0x90985860 b _08194CD4 .pool _08194C40: cmp r0, 0x51 bhi _08194C60 ldr r1, =0x04000048 ldr r2, =0x00003b3b adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r0, =0x989b5558 b _08194CD4 .pool _08194C60: cmp r0, 0x5E bls _08194CC8 cmp r0, 0x66 bhi _08194C84 ldr r1, =0x04000048 ldr r2, =0x00003737 adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r0, =0x989b5558 b _08194CD4 .pool _08194C84: cmp r0, 0x76 bhi _08194CA4 ldr r1, =0x04000048 ldr r2, =0x00003737 adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r0, =0x90985860 b _08194CD4 .pool _08194CA4: cmp r0, 0x7E bls _08194CC8 cmp r1, 0x86 bhi _08194CC8 ldr r1, =0x04000048 ldr r2, =0x00003737 adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 ldr r0, =0x989b5558 b _08194CD4 .pool _08194CC8: ldr r1, =0x04000048 ldr r2, =0x00003f3f adds r0, r2, 0 strh r0, [r1] subs r1, 0x8 movs r0, 0 _08194CD4: str r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_8194BEC thumb_func_start sub_8194CE4 sub_8194CE4: @ 8194CE4 push {lr} ldr r0, =gUnknown_02022E14 ldrh r1, [r0] movs r0, 0x10 bl SetGpuReg ldr r0, =gUnknown_02022E16 ldrh r1, [r0] movs r0, 0x12 bl SetGpuReg ldr r0, =gUnknown_02022E18 ldrh r1, [r0] movs r0, 0x14 bl SetGpuReg ldr r0, =gUnknown_02022E1A ldrh r1, [r0] movs r0, 0x16 bl SetGpuReg movs r0, 0x2 movs r1, 0x80 movs r2, 0x2 bl ChangeBgY movs r0, 0x3 movs r1, 0x80 movs r2, 0x1 bl ChangeBgY bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer bl sub_80BA0A8 pop {r0} bx r0 .pool thumb_func_end sub_8194CE4 thumb_func_start sub_8194D48 sub_8194D48: @ 8194D48 ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons str r0, [r1] ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] bx lr .pool thumb_func_end sub_8194D48 thumb_func_start sub_8194D68 sub_8194D68: @ 8194D68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r3, 0 _08194D76: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =gUnknown_0203CEF8 adds r0, r3, r0 ldrb r0, [r0] subs r0, 0x1 lsls r0, 1 ldr r2, =0x00000caa adds r1, r2 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 mov r10, r0 movs r6, 0 adds r0, r3, 0x1 str r0, [sp] movs r1, 0x64 mov r0, r10 muls r0, r1 movs r2, 0x8E lsls r2, 2 adds r2, r0 mov r9, r2 adds r7, r3, 0 muls r7, r1 _08194DA8: movs r5, 0 adds r0, r6, 0x1 mov r8, r0 b _08194DBE .pool _08194DBC: adds r5, 0x1 _08194DBE: cmp r5, 0x3 bgt _08194DEA ldr r1, =gSaveBlock1Ptr ldr r0, [r1] add r0, r9 adds r1, r5, 0 adds r1, 0xD movs r2, 0 str r3, [sp, 0x4] bl GetMonData adds r4, r0, 0 adds r1, r6, 0 adds r1, 0xD ldr r2, =gPlayerParty adds r0, r7, r2 movs r2, 0 bl GetMonData ldr r3, [sp, 0x4] cmp r4, r0 bne _08194DBC _08194DEA: cmp r5, 0x4 bne _08194E00 lsls r2, r6, 24 lsrs r2, 24 ldr r1, =gPlayerParty adds r0, r7, r1 movs r1, 0xA6 str r3, [sp, 0x4] bl SetMonMoveSlot ldr r3, [sp, 0x4] _08194E00: mov r6, r8 cmp r6, 0x3 ble _08194DA8 ldr r2, =gSaveBlock1Ptr ldr r0, [r2] movs r2, 0x64 mov r1, r10 muls r1, r2 adds r0, r1 movs r1, 0x8E lsls r1, 2 adds r0, r1 adds r1, r3, 0 muls r1, r2 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x64 bl memcpy ldr r3, [sp] cmp r3, 0x1 ble _08194D76 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8194D68 thumb_func_start sub_8194E44 sub_8194E44: @ 8194E44 push {r4-r7,lr} sub sp, 0x4 movs r4, 0 ldr r7, =gSaveBlock1Ptr movs r6, 0x64 movs r5, 0 _08194E50: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =gUnknown_0203CEF8 adds r0, r4, r0 ldrb r0, [r0] subs r0, 0x1 lsls r0, 1 ldr r2, =0x00000caa adds r1, r2 adds r1, r0 ldrh r0, [r1] subs r0, 0x1 adds r1, r0, 0 muls r1, r6 movs r0, 0x8E lsls r0, 2 adds r1, r0 ldr r0, [r7] adds r0, r1 movs r1, 0xC movs r2, 0 bl GetMonData mov r1, sp strh r0, [r1] ldr r0, =gPlayerParty adds r0, r5, r0 movs r1, 0xC mov r2, sp bl SetMonData adds r5, 0x64 adds r4, 0x1 cmp r4, 0x1 ble _08194E50 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8194E44 thumb_func_start sub_8194EB4 sub_8194EB4: @ 8194EB4 push {lr} bl sub_80F94E8 pop {r0} bx r0 thumb_func_end sub_8194EB4 thumb_func_start sub_8194EC0 sub_8194EC0: @ 8194EC0 push {r4,lr} ldr r0, =gTrainerBattleOpponent_A ldrh r0, [r0] bl sub_8195358 adds r4, r0, 0 ldr r0, =0x000003ff bl sub_8195358 cmp r4, r0 ble _08194EE8 ldr r1, =gScriptResult movs r0, 0x1 b _08194EEC .pool _08194EE8: ldr r1, =gScriptResult movs r0, 0x2 _08194EEC: strh r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8194EC0 thumb_func_start sub_8194EF8 sub_8194EF8: @ 8194EF8 push {r4,lr} bl sub_8194D48 movs r2, 0 ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r1, =0x00000d25 adds r0, r1 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _08194F2A adds r4, r3, 0 adds r3, r1, 0 _08194F14: adds r2, 0x1 cmp r2, 0xF bgt _08194F2A ldr r0, [r4] lsls r1, r2, 2 adds r0, r1 adds r0, r3 ldrb r0, [r0] lsls r0, 29 cmp r0, 0 blt _08194F14 _08194F2A: ldr r0, =gStringVar1 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsls r2, 2 adds r1, r2 ldr r2, =0x00000d24 adds r1, r2 ldrh r1, [r1] lsls r1, 22 lsrs r1, 22 bl sub_8195898 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8194EF8 thumb_func_start sub_8194F58 sub_8194F58: @ 8194F58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 movs r0, 0 str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] ldr r4, =gSaveBlock2Ptr ldr r2, [r4] ldr r5, =0x00000d0a adds r0, r2, r5 ldrb r1, [r0] ldr r6, =0x00000d0b adds r0, r2, r6 ldrb r0, [r0] cmn r1, r0 beq _08194F8C ldr r1, =0x00000ca8 adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0x1 beq _08194F8C b _0819533E _08194F8C: movs r0, 0x20 bl AllocZeroed str r0, [sp, 0x18] movs r0, 0x18 bl AllocZeroed str r0, [sp, 0x1C] ldr r1, [r4] ldr r2, =0x00000ca9 adds r1, r2 ldrb r2, [r1] lsls r0, r2, 30 lsrs r0, 30 str r0, [sp, 0x14] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r4] movs r1, 0x1 adds r0, r5 strb r1, [r0] ldr r0, [r4] adds r0, r6 strb r1, [r0] movs r3, 0 mov r10, r3 movs r4, 0 str r4, [sp, 0x38] movs r5, 0 str r5, [sp, 0x3C] _08194FCC: mov r0, r10 cmp r0, 0x4 bgt _08194FFC bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r4, r0, 16 b _08195030 .pool _08194FFC: mov r1, r10 cmp r1, 0xE bgt _0819501A bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r4, r0, 0 adds r4, 0xA b _08195030 _0819501A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r4, r0, 0 adds r4, 0x1E _08195030: movs r6, 0 cmp r6, r10 bge _08195064 ldr r2, =gSaveBlock2Ptr ldr r0, [r2] ldr r3, =0x00000d24 adds r0, r3 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r4 beq _08195064 adds r3, r2, 0 ldr r2, =0x00000d24 _0819504C: adds r6, 0x1 cmp r6, r10 bge _08195064 ldr r0, [r3] lsls r1, r6, 2 adds r0, r1 adds r0, r2 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r4 bne _0819504C _08195064: cmp r6, r10 bne _08194FCC ldr r5, =gSaveBlock2Ptr ldr r3, [r5] ldr r0, [sp, 0x38] adds r3, r0 ldr r1, =0x00000d24 adds r3, r1 ldr r2, =0x000003ff adds r0, r2, 0 adds r2, r4, 0 ands r2, r0 ldrh r0, [r3] ldr r5, =0xfffffc00 adds r1, r5, 0 ands r0, r1 orrs r0, r2 strh r0, [r3] movs r6, 0 lsls r4, 16 str r4, [sp, 0x30] ldr r0, [sp, 0x3C] str r0, [sp, 0x20] _08195092: adds r1, r6, 0x1 str r1, [sp, 0x24] lsls r2, r6, 2 str r2, [sp, 0x2C] lsls r3, r6, 1 str r3, [sp, 0x28] _0819509E: ldr r4, [sp, 0x30] lsrs r0, r4, 16 bl sub_8163524 lsls r0, 16 lsrs r5, r0, 16 movs r7, 0 cmp r7, r6 bge _081950F4 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gUnknown_0203BC8C mov r9, r1 ldr r2, [sp, 0x8] mov r8, r2 ldr r3, [sp, 0xC] mov r12, r3 ldr r4, =0x00000d64 adds r0, r4 ldr r1, [sp, 0x20] adds r4, r1, r0 _081950C8: ldrh r3, [r4] cmp r3, r5 beq _081950F4 mov r2, r9 ldr r1, [r2] lsls r0, r5, 4 adds r2, r0, r1 ldrh r0, [r2] cmp r8, r0 beq _081950F4 cmp r12, r0 beq _081950F4 lsls r0, r3, 4 adds r0, r1 ldrb r0, [r0, 0xA] ldrb r2, [r2, 0xA] cmp r0, r2 beq _081950F4 adds r4, 0x2 adds r7, 0x1 cmp r7, r6 blt _081950C8 _081950F4: cmp r7, r6 bne _0819509E ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r4, [sp, 0x28] ldr r2, [sp, 0x3C] adds r1, r4, r2 ldr r3, =0x00000d64 adds r0, r3 adds r0, r1 strh r5, [r0] ldr r2, [sp, 0x2C] add r2, sp adds r2, 0x8 ldr r3, =gUnknown_0203BC8C ldr r1, [r3] lsls r0, r5, 4 adds r0, r1 ldrh r0, [r0] str r0, [r2] ldr r6, [sp, 0x24] cmp r6, 0x2 ble _08195092 ldr r4, =gSaveBlock2Ptr ldr r2, [r4] ldr r5, [sp, 0x38] adds r2, r5 ldr r0, =0x00000d25 adds r2, r0 ldrb r0, [r2] movs r4, 0x5 negs r4, r4 adds r1, r4, 0 ands r0, r1 strb r0, [r2] ldr r5, =gSaveBlock2Ptr ldr r2, [r5] ldr r0, [sp, 0x38] adds r2, r0 ldr r1, =0x00000d25 adds r2, r1 ldrb r0, [r2] subs r4, 0x14 adds r1, r4, 0 ands r0, r1 strb r0, [r2] ldr r1, [r5] ldr r5, [sp, 0x38] adds r1, r5 ldr r0, =0x00000d25 adds r1, r0 ldrb r2, [r1] movs r0, 0x1F ands r0, r2 strb r0, [r1] adds r5, 0x4 str r5, [sp, 0x38] ldr r1, [sp, 0x3C] adds r1, 0x6 str r1, [sp, 0x3C] movs r2, 0x1 add r10, r2 mov r4, r10 cmp r4, 0xF bgt _08195178 b _08194FCC _08195178: movs r5, 0 mov r10, r5 ldr r5, [sp, 0x18] movs r0, 0 str r0, [sp, 0x34] _08195182: movs r7, 0 strh r7, [r5] ldr r1, =gSaveBlock2Ptr ldr r0, [r1] mov r2, r10 lsls r1, r2, 2 adds r0, r1 ldr r3, =0x00000d24 adds r0, r3 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 bl sub_8190168 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 ldr r4, [sp, 0x34] mov r9, r4 _081951AA: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] mov r4, r9 add r4, r10 adds r4, r6 lsls r4, 1 ldr r2, =0x00000d64 adds r0, r2 adds r0, r4 ldrh r1, [r0] ldr r3, =gUnknown_0203BC8C ldr r0, [r3] lsls r1, 4 adds r1, r0 ldrh r0, [r1] ldrb r3, [r1, 0xB] ldrb r1, [r1, 0xC] str r1, [sp] ldr r1, [sp, 0x1C] str r1, [sp, 0x4] movs r1, 0x32 mov r2, r8 bl sub_818F720 ldr r2, [sp, 0x1C] ldr r1, [r2, 0x4] ldrh r0, [r5] adds r0, r1 ldr r1, [r2, 0x8] adds r0, r1 ldr r1, [r2, 0x10] adds r0, r1 ldr r1, [r2, 0x14] adds r0, r1 ldr r1, [r2, 0xC] adds r0, r1 ldr r1, [r2] adds r0, r1 strh r0, [r5] ldr r3, =gSaveBlock2Ptr ldr r0, [r3] ldr r1, =0x00000d64 adds r0, r1 adds r0, r4 ldrh r0, [r0] ldr r2, =gUnknown_0203BC8C ldr r1, [r2] lsls r0, 4 adds r0, r1 ldrh r0, [r0] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r3, =gBaseStats adds r1, r3 ldrb r0, [r1, 0x6] lsls r0, 2 ldr r4, =gBitTable adds r0, r4 ldr r0, [r0] orrs r7, r0 ldrb r0, [r1, 0x7] lsls r0, 2 adds r0, r4 ldr r0, [r0] orrs r7, r0 adds r6, 0x1 cmp r6, 0x2 ble _081951AA movs r4, 0 movs r1, 0x1 movs r6, 0x1F _0819523A: adds r0, r7, 0 ands r0, r1 cmp r0, 0 beq _08195244 adds r4, 0x1 _08195244: asrs r7, 1 subs r6, 0x1 cmp r6, 0 bge _0819523A movs r1, 0x32 adds r0, r4, 0 muls r0, r1 movs r1, 0x14 bl __divsi3 ldrh r1, [r5] adds r1, r0 strh r1, [r5] adds r5, 0x2 ldr r2, [sp, 0x34] adds r2, 0x2 str r2, [sp, 0x34] movs r3, 0x1 add r10, r3 mov r4, r10 cmp r4, 0xF ble _08195182 movs r5, 0 mov r10, r5 ldr r7, [sp, 0x18] _08195276: mov r6, r10 adds r6, 0x1 cmp r6, 0xF bgt _081952F8 mov r8, r7 ldr r5, =0x00000d24 lsls r0, r6, 1 ldr r1, [sp, 0x18] adds r4, r0, r1 _08195288: mov r2, r8 ldrh r1, [r2] ldrh r0, [r4] cmp r1, r0 bcs _081952C4 mov r0, r10 adds r1, r6, 0 ldr r2, [sp, 0x18] bl sub_818F904 b _081952F0 .pool _081952C4: cmp r1, r0 bne _081952F0 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] mov r3, r10 lsls r0, r3, 2 adds r0, r1, r0 adds r0, r5 ldrh r2, [r0] lsls r2, 22 lsls r0, r6, 2 adds r1, r0 adds r1, r5 ldrh r0, [r1] lsls r0, 22 cmp r2, r0 bls _081952F0 mov r0, r10 adds r1, r6, 0 ldr r2, [sp, 0x18] bl sub_818F904 _081952F0: adds r4, 0x2 adds r6, 0x1 cmp r6, 0xF ble _08195288 _081952F8: adds r7, 0x2 movs r4, 0x1 add r10, r4 mov r5, r10 cmp r5, 0xE ble _08195276 ldr r0, [sp, 0x18] bl Free ldr r0, [sp, 0x1C] bl Free movs r0, 0 mov r10, r0 _08195314: mov r1, r10 lsls r0, r1, 24 lsrs r0, 24 bl sub_8195438 movs r2, 0x1 add r10, r2 mov r3, r10 cmp r3, 0x3 ble _08195314 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r4, =0x00000ca9 adds r1, r4 ldrb r2, [r1] movs r0, 0x4 negs r0, r0 ands r0, r2 ldr r5, [sp, 0x14] orrs r0, r5 strb r0, [r1] _0819533E: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8194F58 thumb_func_start sub_8195358 sub_8195358: @ 8195358 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r3 beq _0819538E adds r5, r4, 0 adds r4, r1, 0 _08195376: adds r2, 0x1 cmp r2, 0xF bgt _0819538E ldr r0, [r5] lsls r1, r2, 2 adds r0, r1 adds r0, r4 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r3 bne _08195376 _0819538E: adds r0, r2, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_8195358 thumb_func_start sub_81953A0 sub_81953A0: @ 81953A0 push {r4,r5,lr} lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r3 beq _081953D6 adds r5, r4, 0 adds r4, r1, 0 _081953BE: adds r2, 0x1 cmp r2, 0xF bgt _081953D6 ldr r0, [r5] lsls r1, r2, 2 adds r0, r1 adds r0, r4 ldrh r0, [r0] lsls r0, 22 lsrs r0, 22 cmp r0, r3 bne _081953BE _081953D6: adds r0, r2, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81953A0 thumb_func_start sub_81953E8 sub_81953E8: @ 81953E8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_0860D1A0 ldr r0, =gUnknown_0860D1C0 adds r0, r4, r0 ldrb r0, [r0] lsrs r0, 1 lsls r0, 2 adds r1, r0 adds r1, r2 ldrb r0, [r1] subs r0, 0x10 lsls r0, 24 lsrs r0, 24 mov r1, sp bl sub_8192F08 mov r0, sp ldrb r0, [r0] cmp r4, r0 beq _0819542C mov r0, sp ldrb r0, [r0] b _08195430 .pool _0819542C: mov r0, sp ldrb r0, [r0, 0x1] _08195430: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81953E8 thumb_func_start sub_8195438 sub_8195438: @ 8195438 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x40 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 str r0, [sp, 0xC] movs r1, 0 str r1, [sp, 0x10] movs r5, 0 movs r1, 0x3 ldr r0, [sp] ands r0, r1 lsls r0, 3 str r0, [sp, 0x14] _0819545E: ldr r2, =gSaveBlock2Ptr ldr r0, [r2] lsls r4, r5, 2 adds r1, r0, r4 ldr r3, =0x00000d25 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 29 adds r2, r5, 0x1 str r2, [sp, 0x24] cmp r0, 0 bge _08195478 b _08195876 _08195478: subs r3, 0x1 adds r0, r1, r3 ldrh r0, [r0] lsls r1, r0, 22 ldr r0, =0xffc00000 cmp r1, r0 bne _08195488 b _08195876 _08195488: str r5, [sp, 0x4] lsrs r1, 22 ldr r0, [sp] bl sub_81901A0 str r0, [sp, 0x8] ldr r0, =gSaveBlock2Ptr ldr r3, [r0] adds r0, r3, r4 ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r0, 22 ldr r1, =0xff800000 cmp r0, r1 bne _08195504 ldr r2, [sp, 0x8] cmp r2, 0xFF beq _08195504 lsls r2, 2 adds r1, r3, r2 ldr r3, =0x00000d25 adds r1, r3 ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r1, r2 ldr r2, =0x00000d25 adds r1, r2 ldrb r0, [r1] subs r3, 0x1D ands r0, r3 ldr r2, [sp, 0x14] orrs r0, r2 strb r0, [r1] adds r0, r5, 0 ldr r1, [sp, 0x8] ldr r2, [sp] bl sub_8193ED0 ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r5, [sp, 0x8] lsls r2, r5, 1 movs r3, 0xEC lsls r3, 4 adds r1, r3 adds r1, r2 b _08195874 .pool _08195504: ldr r4, =gSaveBlock2Ptr ldr r3, [r4] ldr r0, [sp, 0x8] lsls r2, r0, 2 adds r0, r3, r2 ldr r1, =0x00000d24 adds r0, r1 ldrh r0, [r0] lsls r0, 22 ldr r1, =0xff800000 str r2, [sp, 0x30] cmp r0, r1 bne _0819557C ldr r2, [sp, 0x4] cmp r2, 0xFF beq _0819557C lsls r2, 2 adds r1, r3, r2 ldr r3, =0x00000d25 adds r1, r3 ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] ldr r1, [r4] adds r1, r2 ldr r0, =0x00000d25 adds r1, r0 ldrb r0, [r1] movs r2, 0x19 negs r2, r2 ands r0, r2 ldr r3, [sp, 0x14] orrs r0, r3 strb r0, [r1] ldr r0, [sp, 0x8] ldr r1, [sp, 0x4] ldr r2, [sp] bl sub_8193ED0 ldr r1, [r4] ldr r3, [sp, 0x4] lsls r2, r3, 1 movs r3, 0xEC lsls r3, 4 adds r1, r3 adds r1, r2 strh r0, [r1] adds r5, 0x1 str r5, [sp, 0x24] b _08195876 .pool _0819557C: adds r5, 0x1 str r5, [sp, 0x24] ldr r5, [sp, 0x8] cmp r5, 0xFF bne _08195588 b _08195876 _08195588: movs r0, 0 mov r10, r0 lsls r1, r5, 1 str r1, [sp, 0x2C] ldr r2, [sp, 0x4] lsls r2, 1 str r2, [sp, 0x28] ldr r3, [sp, 0x4] adds r0, r2, r3 lsls r0, 1 mov r9, r0 adds r0, r1, r5 lsls r0, 1 str r0, [sp, 0x18] _081955A4: movs r5, 0 mov r0, r9 str r0, [sp, 0x38] _081955AA: movs r6, 0 lsls r7, r5, 1 ldr r4, [sp, 0x18] _081955B0: ldr r2, =gSaveBlock2Ptr ldr r1, [r2] ldr r3, =0x00000d64 adds r1, r3 ldr r2, [sp, 0x38] adds r0, r1, r2 ldrh r0, [r0] ldr r3, =gUnknown_0203BC8C mov r8, r3 ldr r2, [r3] lsls r0, 4 adds r0, r2 adds r0, 0x2 adds r0, r7 ldrh r0, [r0] adds r1, r4 ldrh r1, [r1] lsls r1, 4 adds r1, r2 ldrh r1, [r1] movs r2, 0x2 bl sub_818FFC0 ldr r1, [sp, 0xC] adds r1, r0 str r1, [sp, 0xC] adds r4, 0x2 adds r6, 0x1 cmp r6, 0x2 ble _081955B0 adds r5, 0x1 cmp r5, 0x3 ble _081955AA ldr r2, =gSaveBlock2Ptr ldr r0, [r2] ldr r3, =0x00000d64 adds r0, r3 add r0, r9 ldrh r0, [r0] mov r5, r8 ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrh r2, [r0] ldr r0, =gBaseStats lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] ldrb r2, [r1, 0x1] adds r0, r2 ldrb r2, [r1, 0x2] adds r0, r2 ldrb r2, [r1, 0x3] adds r0, r2 ldrb r3, [r1, 0x4] adds r0, r3 ldrb r1, [r1, 0x5] adds r0, r1 movs r1, 0xA bl __divsi3 ldr r5, [sp, 0xC] adds r5, r0 str r5, [sp, 0xC] movs r0, 0x2 add r9, r0 movs r1, 0x1 add r10, r1 mov r2, r10 cmp r2, 0x2 ble _081955A4 bl Random movs r1, 0x1F ands r1, r0 adds r5, r1 ldr r3, [sp, 0x4] adds r5, r3 str r5, [sp, 0xC] movs r5, 0 mov r10, r5 ldr r1, [sp, 0x2C] ldr r2, [sp, 0x8] adds r0, r1, r2 lsls r0, 1 str r0, [sp, 0x1C] ldr r5, [sp, 0x28] adds r0, r5, r3 lsls r0, 1 str r0, [sp, 0x20] _08195668: movs r5, 0 mov r0, r10 lsls r3, r0, 1 movs r1, 0x1 add r10, r1 ldr r2, [sp, 0x1C] adds r2, r3 mov r8, r2 _08195678: movs r6, 0 lsls r7, r5, 1 adds r5, 0x1 str r5, [sp, 0x3C] ldr r4, [sp, 0x20] _08195682: ldr r5, =gSaveBlock2Ptr ldr r1, [r5] ldr r0, =0x00000d64 adds r1, r0 mov r2, r8 adds r0, r1, r2 ldrh r0, [r0] ldr r5, =gUnknown_0203BC8C mov r9, r5 ldr r2, [r5] lsls r0, 4 adds r0, r2 adds r0, 0x2 adds r0, r7 ldrh r0, [r0] adds r1, r4 ldrh r1, [r1] lsls r1, 4 adds r1, r2 ldrh r1, [r1] movs r2, 0x2 str r3, [sp, 0x34] bl sub_818FFC0 ldr r1, [sp, 0x10] adds r1, r0 str r1, [sp, 0x10] adds r4, 0x2 adds r6, 0x1 ldr r3, [sp, 0x34] cmp r6, 0x2 ble _08195682 ldr r5, [sp, 0x3C] cmp r5, 0x3 ble _08195678 ldr r2, =gSaveBlock2Ptr ldr r0, [r2] ldr r5, [sp, 0x1C] adds r1, r3, r5 ldr r2, =0x00000d64 adds r0, r2 adds r0, r1 ldrh r0, [r0] mov r3, r9 ldr r1, [r3] lsls r0, 4 adds r0, r1 ldrh r2, [r0] ldr r0, =gBaseStats lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1] ldrb r2, [r1, 0x1] adds r0, r2 ldrb r5, [r1, 0x2] adds r0, r5 ldrb r2, [r1, 0x3] adds r0, r2 ldrb r2, [r1, 0x4] adds r0, r2 ldrb r1, [r1, 0x5] adds r0, r1 movs r1, 0xA bl __divsi3 ldr r3, [sp, 0x10] adds r3, r0 str r3, [sp, 0x10] mov r5, r10 cmp r5, 0x2 ble _08195668 bl Random movs r1, 0x1F ands r1, r0 ldr r0, [sp, 0x10] adds r0, r1 ldr r1, [sp, 0x8] adds r0, r1 str r0, [sp, 0x10] ldr r2, [sp, 0xC] cmp r2, r0 ble _08195784 ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r5, [sp, 0x30] adds r1, r5 ldr r0, =0x00000d25 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldr r1, [r3] adds r1, r5 ldr r3, =0x00000d25 adds r1, r3 ldrb r0, [r1] movs r5, 0x19 negs r5, r5 ands r0, r5 ldr r2, [sp, 0x14] orrs r0, r2 strb r0, [r1] ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] ldr r2, [sp] bl sub_8193ED0 ldr r3, =gSaveBlock2Ptr ldr r1, [r3] movs r5, 0xEC lsls r5, 4 adds r1, r5 ldr r2, [sp, 0x2C] adds r1, r2 b _08195874 .pool _08195784: ldr r3, [sp, 0xC] ldr r5, [sp, 0x10] cmp r3, r5 bge _081957DC ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r3, [sp, 0x4] lsls r2, r3, 2 adds r1, r2 ldr r5, =0x00000d25 adds r1, r5 ldrb r0, [r1] movs r3, 0x4 orrs r0, r3 strb r0, [r1] ldr r5, =gSaveBlock2Ptr ldr r1, [r5] adds r1, r2 ldr r0, =0x00000d25 adds r1, r0 ldrb r0, [r1] movs r2, 0x19 negs r2, r2 ands r0, r2 ldr r3, [sp, 0x14] orrs r0, r3 strb r0, [r1] ldr r0, [sp, 0x8] ldr r1, [sp, 0x4] ldr r2, [sp] bl sub_8193ED0 ldr r1, [r5] movs r5, 0xEC lsls r5, 4 adds r1, r5 ldr r2, [sp, 0x28] adds r1, r2 b _08195874 .pool _081957DC: ldr r3, [sp, 0x4] ldr r5, [sp, 0x8] cmp r3, r5 ble _08195830 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, [sp, 0x30] adds r1, r2 ldr r3, =0x00000d25 adds r1, r3 ldrb r0, [r1] movs r5, 0x4 orrs r0, r5 strb r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r1, r2 adds r1, r3 ldrb r0, [r1] movs r2, 0x19 negs r2, r2 ands r0, r2 ldr r3, [sp, 0x14] orrs r0, r3 strb r0, [r1] ldr r0, [sp, 0x4] ldr r1, [sp, 0x8] ldr r2, [sp] bl sub_8193ED0 ldr r5, =gSaveBlock2Ptr ldr r1, [r5] movs r2, 0xEC lsls r2, 4 adds r1, r2 ldr r3, [sp, 0x2C] b _08195872 .pool _08195830: ldr r5, =gSaveBlock2Ptr ldr r1, [r5] ldr r0, [sp, 0x4] lsls r2, r0, 2 adds r1, r2 ldr r3, =0x00000d25 adds r1, r3 ldrb r0, [r1] movs r5, 0x4 orrs r0, r5 strb r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r1, r2 adds r1, r3 ldrb r0, [r1] movs r2, 0x19 negs r2, r2 ands r0, r2 ldr r3, [sp, 0x14] orrs r0, r3 strb r0, [r1] ldr r0, [sp, 0x8] ldr r1, [sp, 0x4] ldr r2, [sp] bl sub_8193ED0 ldr r5, =gSaveBlock2Ptr ldr r1, [r5] movs r2, 0xEC lsls r2, 4 adds r1, r2 ldr r3, [sp, 0x28] _08195872: adds r1, r3 _08195874: strh r0, [r1] _08195876: ldr r5, [sp, 0x24] cmp r5, 0xF bgt _0819587E b _0819545E _0819587E: add sp, 0x40 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8195438 thumb_func_start sub_8195898 sub_8195898: @ 8195898 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 bl sub_8165C40 ldr r0, =0x000003fe cmp r5, r0 bne _081958B8 adds r0, r6, 0 bl sub_8195938 b _08195902 .pool _081958B8: ldr r0, =0x000003ff cmp r5, r0 bne _081958DC ldr r0, =gSaveBlock2Ptr ldr r2, [r0] _081958C2: adds r0, r6, r4 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x6 ble _081958C2 b _081958FC .pool _081958DC: ldr r0, =0x0000012b cmp r5, r0 bhi _081958FC ldr r0, =gUnknown_0203BC88 ldr r1, [r0] movs r0, 0x34 muls r0, r5 adds r0, r1 adds r2, r0, 0x4 _081958EE: adds r0, r6, r4 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r4, 0x1 cmp r4, 0x6 ble _081958EE _081958FC: adds r1, r6, r4 movs r0, 0xFF strb r0, [r1] _08195902: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8195898 thumb_func_start sub_8195910 sub_8195910: @ 8195910 ldr r0, =gTrainers ldr r1, =0x00007df3 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8195910 thumb_func_start sub_8195924 sub_8195924: @ 8195924 ldr r0, =gTrainers ldr r1, =0x00007df1 adds r0, r1 ldrb r0, [r0] bx lr .pool thumb_func_end sub_8195924 thumb_func_start sub_8195938 sub_8195938: @ 8195938 push {r4,lr} adds r3, r0, 0 movs r2, 0 ldr r4, =gTrainers + TRAINER_TUCKER * 0x28 + 0x4 @ Tucker's name _08195940: adds r0, r3, r2 adds r1, r2, r4 ldrb r1, [r1] strb r1, [r0] adds r2, 0x1 cmp r2, 0x6 ble _08195940 adds r1, r3, r2 movs r0, 0xFF strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8195938 thumb_func_start sub_8195960 sub_8195960: @ 8195960 push {lr} ldr r1, =gUnknown_0860DE50 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_8195960 thumb_func_start sub_8195980 sub_8195980: @ 8195980 push {r4-r7,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r7, r0, 16 ldr r0, [r4] ldr r2, =0x00000ca8 adds r0, r2 movs r6, 0 strb r6, [r0] ldr r1, [r4] adds r2, 0xA adds r0, r1, r2 strh r6, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r4] ldr r2, =0x00000ca9 adds r1, r2 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r4, [r4] ldr r0, =0x00000cdc adds r3, r4, r0 ldr r2, =gUnknown_0860DE98 lsls r1, r5, 2 lsls r0, r7, 3 adds r1, r0 adds r1, r2 ldr r0, [r3] ldr r1, [r1] ands r0, r1 cmp r0, 0 bne _081959F2 lsls r0, r5, 1 lsls r1, r7, 2 adds r0, r1 ldr r2, =0x00000dc8 adds r1, r4, r2 adds r1, r0 strh r6, [r1] _081959F2: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] 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 ldr r0, =gTrainerBattleOpponent_A strh r6, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8195980 thumb_func_start sub_8195A38 sub_8195A38: @ 8195A38 push {r4-r7,lr} ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r7, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _08195A90 cmp r0, 0x1 bgt _08195A74 cmp r0, 0 beq _08195A7A b _08195AD0 .pool _08195A74: cmp r0, 0x2 beq _08195AB0 b _08195AD0 _08195A7A: ldr r0, =gScriptResult ldr r1, [r5] ldr r2, =0x00000dc6 adds r1, r2 ldrh r1, [r1] strh r1, [r0] b _08195AD0 .pool _08195A90: ldr r3, =gScriptResult ldr r0, [r5] lsls r1, r7, 1 lsls r2, r6, 2 adds r1, r2 ldr r2, =0x00000dc8 adds r0, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r3] b _08195AD0 .pool _08195AB0: ldr r4, =gScriptResult ldr r2, [r5] ldr r0, =0x00000cdc adds r2, r0 ldr r3, =gUnknown_0860DE98 lsls r0, r7, 2 lsls r1, r6, 3 adds r0, r1 adds r0, r3 ldr r1, [r2] ldr r0, [r0] ands r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 strh r0, [r4] _08195AD0: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8195A38 thumb_func_start sub_8195AE4 sub_8195AE4: @ 8195AE4 push {r4-r6,lr} ldr r6, =gSaveBlock2Ptr ldr r0, [r6] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r4, r0, 16 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _08195B3C cmp r0, 0x1 bgt _08195B20 cmp r0, 0 beq _08195B26 b _08195BA0 .pool _08195B20: cmp r0, 0x2 beq _08195B5C b _08195BA0 _08195B26: ldr r0, [r6] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r2, =0x00000dc6 adds r0, r2 strh r1, [r0] b _08195BA0 .pool _08195B3C: ldr r2, [r6] lsls r0, r5, 1 lsls r1, r4, 2 adds r0, r1 ldr r1, =0x00000dc8 adds r2, r1 adds r2, r0 ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] strh r0, [r2] b _08195BA0 .pool _08195B5C: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _08195B88 ldr r2, [r6] ldr r0, =0x00000cdc adds r2, r0 ldr r3, =gUnknown_0860DE98 lsls r1, r5, 2 lsls r0, r4, 3 adds r1, r0 adds r1, r3 ldr r0, [r2] ldr r1, [r1] orrs r0, r1 b _08195B9E .pool _08195B88: ldr r2, [r6] ldr r1, =0x00000cdc adds r2, r1 ldr r3, =gUnknown_0860DEA8 lsls r1, r5, 2 lsls r0, r4, 3 adds r1, r0 adds r1, r3 ldr r0, [r2] ldr r1, [r1] ands r0, r1 _08195B9E: str r0, [r2] _08195BA0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8195AE4 thumb_func_start sub_8195BB0 sub_8195BB0: @ 8195BB0 push {r4,lr} ldr r0, =0x000040ce bl VarGet lsls r0, 16 ldr r1, =gSaveBlock2Ptr ldr r2, [r1] ldr r3, =0x00000ca9 adds r1, r2, r3 ldrb r1, [r1] lsls r1, 30 lsrs r1, 29 lsrs r0, 14 adds r1, r0 ldr r0, =0x00000dc8 adds r2, r0 adds r2, r1 ldrh r0, [r2] cmp r0, 0x31 bhi _08195C00 ldr r4, =gScriptResult bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 strh r0, [r4] b _08195C16 .pool _08195C00: cmp r0, 0x62 bhi _08195C10 ldr r1, =gScriptResult movs r0, 0x3 b _08195C14 .pool _08195C10: ldr r1, =gScriptResult movs r0, 0x4 _08195C14: strh r0, [r1] _08195C16: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8195BB0 thumb_func_start sub_8195C20 sub_8195C20: @ 8195C20 push {r4,lr} ldr r4, =gTrainerBattleOpponent_A bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xFF bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsrs r1, 6 strh r1, [r4] ldrh r0, [r4] movs r1, 0 bl sub_8162614 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8195C20 thumb_func_start sub_8195C50 sub_8195C50: @ 8195C50 push {lr} ldr r3, =gTrainerBattleOpponent_A ldrh r1, [r3] ldr r0, =0x0000012b cmp r1, r0 bhi _08195C6C ldr r2, =gUnknown_0203BC88 movs r0, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xC bl ConvertBattleFrontierTrainerSpeechToString _08195C6C: pop {r0} bx r0 .pool thumb_func_end sub_8195C50 thumb_func_start sub_8195C7C sub_8195C7C: @ 8195C7C push {r4-r7,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r7, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 24 ldr r4, [r4] lsls r1, r7, 1 lsrs r5, r0, 22 adds r1, r5 ldr r3, =0x00000dc8 adds r6, r4, r3 adds r3, r6, r1 ldrh r2, [r3] ldr r0, =0x0000270e cmp r2, r0 bhi _08195CCA adds r2, 0x1 strh r2, [r3] movs r3, 0xDD lsls r3, 4 adds r0, r4, r3 adds r1, r0, r1 adds r0, r5, 0 ldrh r3, [r1] cmp r7, r3 bls _08195CC0 adds r0, 0x2 _08195CC0: adds r0, r6, r0 ldrh r0, [r0] cmp r0, 0 beq _08195CCA strh r2, [r1] _08195CCA: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8195C7C thumb_func_start sub_8195CE4 sub_8195CE4: @ 8195CE4 push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8195CE4 thumb_func_start sub_8195D28 sub_8195D28: @ 8195D28 push {r4,r5,lr} ldr r0, =0x000040ce bl VarGet lsls r0, 16 ldr r4, =gSaveBlock2Ptr ldr r2, [r4] ldr r3, =0x00000ca9 adds r1, r2, r3 ldrb r1, [r1] lsls r1, 30 lsrs r1, 29 lsrs r0, 14 adds r1, r0 ldr r0, =0x00000dc8 adds r2, r0 adds r2, r1 ldrh r0, [r2] cmp r0, 0x29 bls _08195D88 bl Random ldr r4, [r4] ldr r5, =gUnknown_0860DE84 lsls r0, 16 lsrs r0, 16 movs r1, 0x9 bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r5 ldrh r0, [r0] ldr r1, =0x00000dc6 adds r4, r1 b _08195DA6 .pool _08195D88: bl Random ldr r4, [r4] ldr r5, =gUnknown_0860DE78 lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r5 ldrh r0, [r0] ldr r3, =0x00000dc6 adds r4, r3 _08195DA6: strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8195D28 thumb_func_start sub_8195DB8 sub_8195DB8: @ 8195DB8 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000dc6 adds r0, r1 ldrh r0, [r0] movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _08195E00 ldr r0, [r4] ldr r1, =0x00000dc6 adds r0, r1 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, [r4] ldr r1, =0x00000dc6 adds r0, r1 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r5, [r0] b _08195E06 .pool _08195E00: ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _08195E06: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8195DB8 thumb_func_start sub_8195E10 sub_8195E10: @ 8195E10 push {lr} bl RtcCalcLocalTime ldr r0, =gLocalTime bl sub_8195E34 ldr r1, =gUnknown_0203CD80 adds r0, 0xA str r0, [r1] movs r0, 0 strb r0, [r1, 0x6] pop {r0} bx r0 .pool thumb_func_end sub_8195E10 thumb_func_start sub_8195E34 sub_8195E34: @ 8195E34 adds r3, r0, 0 movs r1, 0 ldrsh r0, [r3, r1] lsls r1, r0, 1 adds r1, r0 lsls r0, r1, 4 subs r0, r1 lsls r0, 5 movs r2, 0x2 ldrsb r2, [r3, r2] lsls r1, r2, 4 subs r1, r2 lsls r1, 2 adds r0, r1 movs r1, 0x3 ldrsb r1, [r3, r1] adds r0, r1 bx lr thumb_func_end sub_8195E34 thumb_func_start sub_8195E58 sub_8195E58: @ 8195E58 push {lr} bl RtcCalcLocalTime ldr r0, =gLocalTime bl sub_8195E34 adds r1, r0, 0 ldr r2, =gUnknown_0203CD80 ldr r0, [r2] cmp r0, r1 bhi _08195E74 subs r0, r1, r0 cmp r0, 0x9 bls _08195E84 _08195E74: str r1, [r2] movs r0, 0x1 b _08195E86 .pool _08195E84: movs r0, 0 _08195E86: pop {r1} bx r1 thumb_func_end sub_8195E58 thumb_func_start sub_8195E8C sub_8195E8C: @ 8195E8C push {r4,r5,lr} movs r5, 0x1 ldr r4, =gPlayerParty adds r0, r4, 0 movs r1, 0x6 bl GetMonData cmp r0, 0 bne _08195EAE adds r0, r4, 0 bl GetMonAbility lsls r0, 24 lsrs r0, 24 cmp r0, 0x1F bne _08195EAE movs r5, 0x2 _08195EAE: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r5, 1 adds r1, r5 cmp r0, r1 blt _08195ED0 movs r0, 0 b _08195ED2 .pool _08195ED0: movs r0, 0x1 _08195ED2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8195E8C thumb_func_start sub_8195ED8 sub_8195ED8: @ 8195ED8 push {r4,lr} ldr r4, =gMapHeader ldrb r0, [r4, 0x17] bl is_light_level_1_2_3_or_6 lsls r0, 24 cmp r0, 0 beq _08195F30 ldrb r0, [r4, 0x14] cmp r0, 0x39 beq _08195F30 cmp r0, 0xE bne _08195F0E movs r0, 0xF9 lsls r0, 2 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08195F0E movs r0, 0xDC bl FlagGet lsls r0, 24 cmp r0, 0 beq _08195F30 _08195F0E: ldr r0, =gMapHeader ldrb r0, [r0, 0x14] cmp r0, 0x38 bne _08195F38 movs r0, 0xCF bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08195F38 movs r0, 0x8B bl FlagGet lsls r0, 24 cmp r0, 0 bne _08195F38 _08195F30: movs r0, 0 b _08195F3A .pool _08195F38: movs r0, 0x1 _08195F3A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8195ED8 thumb_func_start sub_8195F40 sub_8195F40: @ 8195F40 push {lr} ldr r1, =gUnknown_0203CD80 ldrb r0, [r1, 0x6] adds r0, 0x1 strb r0, [r1, 0x6] lsls r0, 24 lsrs r0, 24 cmp r0, 0x9 bhi _08195F5C movs r0, 0 b _08195F62 .pool _08195F5C: movs r0, 0 strb r0, [r1, 0x6] movs r0, 0x1 _08195F62: pop {r1} bx r1 thumb_func_end sub_8195F40 thumb_func_start sub_8195F68 sub_8195F68: @ 8195F68 push {r4,lr} bl sub_8195FCC adds r4, r0, 0 cmp r4, 0 beq _08195FB8 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __umodsi3 bl sub_8195FF8 ldr r2, =gUnknown_0203CD80 movs r1, 0 strh r0, [r2, 0x4] strb r1, [r2, 0x7] lsls r0, 16 lsrs r0, 16 cmp r0, 0x4E beq _08195FB8 ldrh r0, [r2, 0x4] bl sub_8196844 adds r4, r0, 0 bl sub_819672C ldr r1, =gMapHeader lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x14] cmp r0, r1 bne _08195FC4 adds r0, r4, 0 bl sub_8196710 cmp r0, 0 bne _08195FC4 _08195FB8: movs r0, 0 b _08195FC6 .pool _08195FC4: movs r0, 0x1 _08195FC6: pop {r4} pop {r1} bx r1 thumb_func_end sub_8195F68 thumb_func_start sub_8195FCC sub_8195FCC: @ 8195FCC push {r4,r5,lr} movs r4, 0 movs r5, 0 _08195FD2: movs r1, 0xAE lsls r1, 1 adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08195FE8 adds r5, 0x1 _08195FE8: adds r4, 0x1 cmp r4, 0x3F bls _08195FD2 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8195FCC thumb_func_start sub_8195FF8 sub_8195FF8: @ 8195FF8 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 ldr r6, =gUnknown_085500A4 _08196000: movs r1, 0xAE lsls r1, 1 adds r0, r4, r1 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 beq _08196022 cmp r5, 0 bne _08196020 ldrh r0, [r6] b _0819602C .pool _08196020: subs r5, 0x1 _08196022: adds r6, 0x10 adds r4, 0x1 cmp r4, 0x3F bls _08196000 movs r0, 0x4E _0819602C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8195FF8 thumb_func_start sub_8196034 sub_8196034: @ 8196034 push {lr} ldr r0, =0x0000012f bl FlagGet lsls r0, 24 cmp r0, 0 beq _08196078 bl sub_8195F40 cmp r0, 0 beq _08196078 bl sub_8195E58 cmp r0, 0 beq _08196078 bl sub_8195E8C cmp r0, 0 beq _08196078 bl sub_8195ED8 cmp r0, 0 beq _08196078 bl sub_8195F68 cmp r0, 0 beq _08196078 bl task_prev_quest movs r0, 0x1 b _0819607A .pool _08196078: movs r0, 0 _0819607A: pop {r1} bx r1 thumb_func_end sub_8196034 thumb_func_start sub_8196080 sub_8196080: @ 8196080 push {lr} ldr r1, =gUnknown_0203CD80 movs r0, 0x1 strb r0, [r1, 0x7] bl task_prev_quest pop {r0} bx r0 .pool thumb_func_end sub_8196080 thumb_func_start sub_8196094 sub_8196094: @ 8196094 push {lr} ldr r0, =sub_81960E0 bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_8196094 thumb_func_start task_prev_quest task_prev_quest: @ 81960A8 push {lr} ldr r0, =gUnknown_0203CD80 ldrb r0, [r0, 0x7] cmp r0, 0 bne _081960C2 bl ScriptContext2_Enable bl player_bitmagic bl sub_808B864 bl sub_808BCF4 _081960C2: ldr r0, =0x00000107 bl PlaySE ldr r0, =sub_81960E0 movs r1, 0x1 bl CreateTask pop {r0} bx r0 .pool thumb_func_end task_prev_quest thumb_func_start sub_81960E0 sub_81960E0: @ 81960E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r1, =gUnknown_0860EF78 movs r2, 0 ldrsh r0, [r4, r2] lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl _call_via_r1 cmp r0, 0 beq _0819611E ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] movs r1, 0 strh r1, [r4, 0x2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bls _0819611E adds r0, r5, 0 bl DestroyTask _0819611E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81960E0 thumb_func_start sub_819612C sub_819612C: @ 819612C push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r0, =gUnknown_0860EF98 bl AddWindow strh r0, [r5, 0x4] lsls r0, 16 asrs r0, 16 cmp r0, 0xFF bne _0819615C adds r0, r4, 0 b _081961E0 .pool _0819615C: ldr r1, =gUnknown_0860EA6C movs r2, 0x80 lsls r2, 1 movs r3, 0x9C lsls r3, 2 movs r0, 0 bl LoadBgTiles lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 bne _08196188 ldrb r0, [r5, 0x4] bl RemoveWindow adds r0, r4, 0 b _081961E0 .pool _08196188: ldr r1, =gUnknown_0860EB8C ldr r3, =0x00000279 movs r0, 0 str r0, [sp] movs r2, 0 bl decompress_and_copy_tile_data_to_vram cmp r0, 0 beq _081961D8 ldrb r0, [r5, 0x4] movs r1, 0x88 bl FillWindowPixelBuffer ldr r0, =gUnknown_0860EA4C movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_0860EB6C movs r1, 0xF0 movs r2, 0x20 bl LoadPalette ldr r1, =0xffffe000 movs r0, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 b _081961E6 .pool _081961D8: ldrb r0, [r5, 0x4] bl RemoveWindow adds r0, r6, 0 _081961E0: bl DestroyTask movs r0, 0 _081961E6: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_819612C thumb_func_start sub_81961F0 sub_81961F0: @ 81961F0 push {r4,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 bl free_temp_tile_data_buffers_if_possible lsls r0, 24 cmp r0, 0 bne _08196268 ldrb r0, [r4, 0x4] bl PutWindowTilemap movs r1, 0x4 ldrsh r0, [r4, r1] movs r1, 0x9C lsls r1, 2 movs r2, 0xE bl sub_819645C ldr r1, =0x0000f279 movs r0, 0x4 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0x1 str r0, [sp, 0xC] movs r0, 0 movs r2, 0x1 movs r3, 0xF bl WriteSequenceToBgTilemapBuffer ldr r0, =sub_8196694 movs r1, 0xA bl CreateTask lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xA] ldrb r0, [r4, 0x4] movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 b _0819626A .pool _08196268: movs r0, 0 _0819626A: add sp, 0x10 pop {r4} pop {r1} bx r1 thumb_func_end sub_81961F0 thumb_func_start sub_8196274 sub_8196274: @ 8196274 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _08196298 movs r0, 0 b _081962A4 .pool _08196298: movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, =gUnknown_0860EF70 bl sub_81965D8 movs r0, 0x1 _081962A4: pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8196274 thumb_func_start sub_81962B0 sub_81962B0: @ 81962B0 push {lr} movs r1, 0xC0 lsls r1, 3 movs r0, 0 movs r2, 0x1 bl ChangeBgY cmp r0, 0 bge _081962C6 movs r0, 0 b _081962D2 _081962C6: movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 _081962D2: pop {r1} bx r1 thumb_func_end sub_81962B0 thumb_func_start sub_81962D8 sub_81962D8: @ 81962D8 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0x4 ldrsh r0, [r4, r1] bl sub_8196648 cmp r0, 0 bne _08196328 ldrb r0, [r4, 0x4] movs r1, 0x88 bl FillWindowPixelBuffer ldr r1, =gUnknown_0203CD80 ldrb r0, [r1, 0x7] cmp r0, 0 bne _0819630C ldrh r0, [r1, 0x4] ldr r1, =gStringVar4 bl sub_81967AC _0819630C: movs r1, 0x4 ldrsh r0, [r4, r1] ldr r1, =gStringVar4 bl sub_81965D8 movs r0, 0x1 b _0819632A .pool _08196328: movs r0, 0 _0819632A: pop {r4} pop {r1} bx r1 thumb_func_end sub_81962D8 thumb_func_start sub_8196330 sub_8196330: @ 8196330 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0x4 ldrsh r0, [r4, r1] bl sub_8196648 cmp r0, 0 bne _08196388 bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08196388 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _08196388 ldrb r0, [r4, 0x4] movs r1, 0x88 bl FillWindowPixelBuffer ldrb r0, [r4, 0x4] movs r1, 0x2 bl CopyWindowToVram movs r0, 0x84 lsls r0, 1 bl PlaySE movs r0, 0x1 b _0819638A .pool _08196388: movs r0, 0 _0819638A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8196330 thumb_func_start sub_8196390 sub_8196390: @ 8196390 push {r4,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0xC0 lsls r1, 3 movs r0, 0 movs r2, 0x2 bl ChangeBgY ldr r1, =0xffffe000 cmp r0, r1 ble _081963C0 movs r0, 0 b _081963E8 .pool _081963C0: movs r0, 0x1E str r0, [sp] movs r0, 0x6 str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xE bl FillBgTilemapBufferRect_Palette0 ldrb r0, [r4, 0xA] bl DestroyTask ldrb r0, [r4, 0x4] bl RemoveWindow movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0x1 _081963E8: add sp, 0x8 pop {r4} pop {r1} bx r1 thumb_func_end sub_8196390 thumb_func_start sub_81963F0 sub_81963F0: @ 81963F0 push {lr} bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08196454 bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _08196454 movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY ldr r0, =gUnknown_0203CD80 ldrb r0, [r0, 0x7] cmp r0, 0 bne _08196446 bl sub_81973A4 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C bl sub_809757C bl ScriptContext2_Disable _08196446: movs r0, 0x1 b _08196456 .pool _08196454: movs r0, 0 _08196456: pop {r1} bx r1 thumb_func_end sub_81963F0 thumb_func_start sub_819645C sub_819645C: @ 819645C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 adds r4, r0, 0 adds r5, r1, 0 adds r7, r2, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl GetWindowAttribute mov r9, r0 adds r0, r4, 0 movs r1, 0x1 bl GetWindowAttribute str r0, [sp, 0x8] adds r0, r4, 0 movs r1, 0x2 bl GetWindowAttribute str r0, [sp, 0xC] adds r0, r4, 0 movs r1, 0x3 bl GetWindowAttribute adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x4 bl GetWindowAttribute str r0, [sp, 0x10] mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r1, 0xA bl GetBgAttribute lsls r0, 16 lsrs r0, 16 adds r5, r0 lsls r7, 12 movs r1, 0xF0 lsls r1, 8 adds r0, r1, 0 ands r7, r0 adds r1, r7, 0 orrs r1, r5 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x8] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 mov r10, r2 ldr r4, [sp, 0xC] subs r4, 0x1 lsls r4, 24 lsrs r4, 24 movs r3, 0x1 mov r8, r3 str r3, [sp] str r3, [sp, 0x4] mov r0, r9 adds r3, r4, 0 bl FillBgTilemapBufferRect_Palette0 adds r1, r5, 0x1 orrs r1, r7 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x8] lsls r2, r0, 24 lsrs r2, 24 str r2, [sp, 0x14] lsls r0, r6, 24 lsrs r0, 24 str r0, [sp, 0x18] str r0, [sp] mov r2, r8 str r2, [sp, 0x4] mov r0, r9 ldr r2, [sp, 0x14] adds r3, r4, 0 bl FillBgTilemapBufferRect_Palette0 adds r1, r5, 0x2 orrs r1, r7 lsls r1, 16 lsrs r1, 16 ldr r3, [sp, 0x8] adds r0, r3, r6 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] mov r0, r8 str r0, [sp] str r0, [sp, 0x4] mov r0, r9 ldr r2, [sp, 0x1C] adds r3, r4, 0 bl FillBgTilemapBufferRect_Palette0 adds r1, r5, 0x3 orrs r1, r7 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0xC] lsls r6, r2, 24 lsrs r6, 24 mov r3, r8 str r3, [sp] ldr r0, [sp, 0x10] lsls r4, r0, 24 lsrs r4, 24 str r4, [sp, 0x4] mov r0, r9 mov r2, r10 adds r3, r6, 0 bl FillBgTilemapBufferRect_Palette0 adds r1, r5, 0x4 orrs r1, r7 lsls r1, 16 lsrs r1, 16 mov r2, r8 str r2, [sp] str r4, [sp, 0x4] mov r0, r9 ldr r2, [sp, 0x1C] adds r3, r6, 0 bl FillBgTilemapBufferRect_Palette0 adds r1, r5, 0x5 orrs r1, r7 lsls r1, 16 lsrs r1, 16 ldr r3, [sp, 0xC] ldr r2, [sp, 0x10] adds r0, r3, r2 lsls r0, 24 lsrs r4, r0, 24 mov r3, r8 str r3, [sp] str r3, [sp, 0x4] mov r0, r9 mov r2, r10 adds r3, r4, 0 bl FillBgTilemapBufferRect_Palette0 adds r1, r5, 0x6 orrs r1, r7 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x18] str r0, [sp] mov r2, r8 str r2, [sp, 0x4] mov r0, r9 ldr r2, [sp, 0x14] adds r3, r4, 0 bl FillBgTilemapBufferRect_Palette0 adds r5, 0x7 orrs r5, r7 lsls r5, 16 lsrs r5, 16 mov r3, r8 str r3, [sp] str r3, [sp, 0x4] mov r0, r9 adds r1, r5, 0 ldr r2, [sp, 0x1C] adds r3, r4, 0 bl FillBgTilemapBufferRect_Palette0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819645C thumb_func_start sub_81965D8 sub_81965D8: @ 81965D8 push {lr} sub sp, 0x10 str r1, [sp] mov r1, sp movs r3, 0 strb r0, [r1, 0x4] mov r0, sp movs r1, 0x1 strb r1, [r0, 0x5] movs r2, 0x20 strb r2, [r0, 0x6] strb r1, [r0, 0x7] strb r2, [r0, 0x8] strb r1, [r0, 0x9] strb r3, [r0, 0xA] strb r3, [r0, 0xB] mov r3, sp ldrb r2, [r3, 0xC] subs r1, 0x11 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] mov r2, sp movs r3, 0xF movs r0, 0xA0 strb r0, [r2, 0xC] ldrb r0, [r2, 0xD] ands r1, r0 movs r0, 0x8 orrs r1, r0 strb r1, [r2, 0xD] ands r1, r3 movs r0, 0xE0 orrs r1, r0 strb r1, [r2, 0xD] ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] bl sav2_get_text_speed adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 mov r0, sp movs r2, 0 bl AddTextPrinter add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end sub_81965D8 thumb_func_start sub_8196648 sub_8196648: @ 8196648 push {r4,lr} adds r4, r0, 0 ldr r0, =gMain ldrh r1, [r0, 0x2C] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0819666C ldr r0, =gTextFlags ldrb r1, [r0] movs r2, 0x1 orrs r1, r2 strb r1, [r0] b _08196678 .pool _0819666C: ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x2 negs r0, r0 ands r0, r1 strb r0, [r2] _08196678: bl RunTextPrinters lsls r0, r4, 24 lsrs r0, 24 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_8196648 thumb_func_start sub_8196694 sub_8196694: @ 8196694 push {lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r2, r1, r0 ldrh r0, [r2] adds r0, 0x1 strh r0, [r2] lsls r0, 16 asrs r0, 16 cmp r0, 0x8 ble _081966FC movs r1, 0 strh r1, [r2] ldrh r0, [r2, 0x2] adds r0, 0x1 strh r0, [r2, 0x2] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _081966C8 strh r1, [r2, 0x2] _081966C8: movs r0, 0x2 ldrsh r1, [r2, r0] lsls r1, 4 ldr r0, =0x00000279 adds r1, r0 strh r1, [r2, 0x4] ldr r2, =0xfffff000 adds r0, r2, 0 orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x4 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0x1 str r0, [sp, 0xC] movs r0, 0 movs r2, 0x1 movs r3, 0xF bl WriteSequenceToBgTilemapBuffer movs r0, 0 bl CopyBgTilemapBufferToVram _081966FC: add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end sub_8196694 thumb_func_start sub_8196710 sub_8196710: @ 8196710 ldr r1, =gSaveBlock1Ptr ldr r1, [r1] ldr r2, =0x000009ca adds r1, r2 adds r1, r0 ldrb r1, [r1] negs r0, r1 orrs r0, r1 lsrs r0, 31 bx lr .pool thumb_func_end sub_8196710 thumb_func_start sub_819672C sub_819672C: @ 819672C push {lr} ldr r1, =gUnknown_085500A4 lsls r0, 4 adds r0, r1 ldrh r2, [r0, 0xA] ldrh r1, [r0, 0xC] adds r0, r2, 0 bl get_mapheader_by_bank_and_number ldrb r0, [r0, 0x14] pop {r1} bx r1 .pool thumb_func_end sub_819672C thumb_func_start sub_8196748 sub_8196748: @ 8196748 push {r4-r6,lr} movs r5, 0 movs r6, 0 ldr r4, =gUnknown_085500A4 _08196750: ldrh r0, [r4] bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _0819675E adds r6, 0x1 _0819675E: adds r4, 0x10 adds r5, 0x1 cmp r5, 0x3F bls _08196750 adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8196748 thumb_func_start sub_8196774 sub_8196774: @ 8196774 push {r4-r7,lr} adds r7, r0, 0 movs r4, 0 movs r6, 0 ldr r5, =gUnknown_085500A4 _0819677E: ldrh r0, [r5] bl trainer_flag_check lsls r0, 24 cmp r0, 0 beq _0819679A cmp r6, r7 bne _08196798 adds r0, r4, 0 b _081967A4 .pool _08196798: adds r6, 0x1 _0819679A: adds r5, 0x10 adds r4, 0x1 cmp r4, 0x4D bls _0819677E movs r0, 0x4E _081967A4: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8196774 thumb_func_start sub_81967AC sub_81967AC: @ 81967AC push {r4-r7,lr} adds r6, r1, 0 movs r7, 0 bl sub_8196844 adds r5, r0, 0 ldr r0, =gUnknown_0203CD88 strh r7, [r0] adds r0, r5, 0 bl sub_8196710 cmp r0, 0 beq _081967EC adds r0, r5, 0 bl sub_819672C ldr r1, =gMapHeader lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x14] cmp r0, r1 bne _081967EC adds r0, r5, 0 adds r1, r6, 0 bl sub_8196864 b _08196830 .pool _081967EC: adds r0, r5, 0 bl sub_8196D74 cmp r0, 0 beq _0819680A adds r0, r5, 0 adds r1, r6, 0 bl sub_8196890 adds r4, r0, 0 movs r7, 0x1 adds r0, r5, 0 bl sub_80B1E94 b _08196832 _0819680A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 cmp r0, 0 beq _08196828 adds r0, r5, 0 adds r1, r6, 0 bl sub_81968BC b _08196830 _08196828: adds r0, r5, 0 adds r1, r6, 0 bl sub_8196910 _08196830: adds r4, r0, 0 _08196832: adds r0, r5, 0 adds r1, r4, 0 adds r2, r6, 0 bl sub_81969E0 adds r0, r7, 0 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81967AC thumb_func_start sub_8196844 sub_8196844: @ 8196844 push {lr} adds r3, r0, 0 movs r2, 0 ldr r1, =gUnknown_0860DEB8 _0819684C: ldrh r0, [r1] cmp r0, r3 beq _0819685C adds r1, 0x14 adds r2, 0x1 b _0819684C .pool _0819685C: adds r0, r2, 0 pop {r1} bx r1 thumb_func_end sub_8196844 thumb_func_start sub_8196864 sub_8196864: @ 8196864 ldr r2, =gUnknown_0860DEB8 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r1, [r1, 0xE] movs r2, 0xFF lsrs r0, r1, 8 subs r0, 0x1 ands r1, r2 subs r1, 0x1 ldr r2, =gUnknown_0860EA2C lsls r0, 2 adds r0, r2 lsls r1, 3 ldr r0, [r0] adds r0, r1 bx lr .pool thumb_func_end sub_8196864 thumb_func_start sub_8196890 sub_8196890: @ 8196890 ldr r2, =gUnknown_0860DEB8 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r1, [r1, 0x10] movs r2, 0xFF lsrs r0, r1, 8 subs r0, 0x1 ands r1, r2 subs r1, 0x1 ldr r2, =gUnknown_0860EA2C lsls r0, 2 adds r0, r2 lsls r1, 3 ldr r0, [r0] adds r0, r1 bx lr .pool thumb_func_end sub_8196890 thumb_func_start sub_81968BC sub_81968BC: @ 81968BC push {r4,lr} adds r4, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 16 ldr r2, =gUnknown_0860DEB8 lsrs r0, 15 lsls r1, r4, 2 adds r1, r4 lsls r1, 2 adds r0, r1 adds r2, 0x4 adds r0, r2 ldrh r4, [r0] cmp r4, 0 bne _081968EC movs r0, 0 bl SpriteCallbackDummy _081968EC: movs r1, 0xFF lsrs r0, r4, 8 subs r0, 0x1 ands r4, r1 subs r1, r4, 0x1 ldr r2, =gUnknown_0860EA20 lsls r0, 2 adds r0, r2 lsls r1, 3 ldr r0, [r0] adds r0, r1 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81968BC thumb_func_start sub_8196910 sub_8196910: @ 8196910 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _081969AC movs r5, 0 movs r4, 0 lsls r7, r6, 2 _0819692C: lsls r0, r4, 16 lsrs r0, 16 mov r1, sp bl sub_8196E04 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08196940 adds r5, 0x1 _08196940: adds r4, 0x1 cmp r4, 0x6 ble _0819692C cmp r5, 0 beq _081969AC bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 adds r5, r0, 0 movs r4, 0 b _08196962 _0819695E: subs r5, 0x1 _08196960: adds r4, 0x1 _08196962: cmp r4, 0x6 bgt _08196980 lsls r0, r4, 16 lsrs r0, 16 mov r1, sp bl sub_8196E04 ldr r1, =gUnknown_0203CD88 strh r0, [r1, 0x2] lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _08196960 cmp r5, 0 bne _0819695E _08196980: ldr r0, =gUnknown_0203CD88 strh r4, [r0] ldr r1, =gUnknown_0860DEB8 adds r0, r7, r6 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0xC] subs r2, r0, 0x1 ldr r1, =gUnknown_0860EA34 ldr r0, [sp] lsls r0, 2 adds r0, r1 lsls r1, r2, 3 ldr r0, [r0] adds r0, r1 b _081969D0 .pool _081969AC: ldr r1, =gUnknown_0860DEB8 lsls r0, r6, 2 adds r0, r6 lsls r0, 2 adds r0, r1 ldrh r2, [r0, 0xA] lsrs r1, r2, 8 subs r1, 0x1 str r1, [sp] movs r0, 0xFF ands r0, r2 subs r2, r0, 0x1 ldr r0, =gUnknown_0860EA34 lsls r1, 2 adds r1, r0 lsls r2, 3 ldr r0, [r1] adds r0, r2 _081969D0: add sp, 0x4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8196910 thumb_func_start sub_81969E0 sub_81969E0: @ 81969E0 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 adds r1, r4, 0x4 bl sub_81969FC ldr r1, [r4] adds r0, r5, 0 bl StringExpandPlaceholders pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81969E0 thumb_func_start sub_81969FC sub_81969FC: @ 81969FC push {r4-r7,lr} adds r7, r0, 0 adds r6, r1, 0 movs r4, 0 ldr r5, =gUnknown_0860EFA0 _08196A06: adds r1, r6, r4 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 blt _08196A1A adds r1, r0, 0 ldr r2, [r5] adds r0, r7, 0 bl sub_8196A2C _08196A1A: adds r5, 0x4 adds r4, 0x1 cmp r4, 0x2 ble _08196A06 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81969FC thumb_func_start sub_8196A2C sub_8196A2C: @ 8196A2C push {lr} ldr r3, =gUnknown_0860EFAC lsls r1, 2 adds r1, r3 ldr r3, [r1] adds r1, r2, 0 bl _call_via_r3 pop {r0} bx r0 .pool thumb_func_end sub_8196A2C thumb_func_start sub_8196A44 sub_8196A44: @ 8196A44 push {r4-r6,lr} adds r5, r1, 0 ldr r2, =gUnknown_0860DEB8 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r4, [r1] movs r2, 0 ldr r3, =gUnknown_0860EFC4 adds r6, r3, 0 _08196A5A: lsls r1, r2, 3 ldrh r0, [r3] cmp r0, r4 bne _08196A78 adds r0, r6, 0x4 adds r0, r1, r0 ldr r1, [r0] adds r0, r5, 0 bl StringCopy b _08196A90 .pool _08196A78: adds r3, 0x8 adds r2, 0x1 cmp r2, 0x5 bls _08196A5A lsls r1, r4, 2 adds r1, r4 lsls r1, 3 ldr r0, =gTrainers + 0x4 @ name offset adds r1, r0 adds r0, r5, 0 bl StringCopy _08196A90: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8196A44 thumb_func_start sub_8196A9C sub_8196A9C: @ 8196A9C push {r4,lr} adds r4, r1, 0 bl sub_819672C adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 bl GetMapName pop {r4} pop {r0} bx r0 thumb_func_end sub_8196A9C thumb_func_start sub_8196AB8 sub_8196AB8: @ 8196AB8 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x13 bgt _08196AD4 movs r0, 0 b _08196B4A _08196AD4: adds r0, r1, 0 subs r0, 0x14 cmp r0, 0x13 bhi _08196AE0 movs r0, 0x1 b _08196B4A _08196AE0: adds r0, r1, 0 subs r0, 0x28 cmp r0, 0x9 bhi _08196AEC movs r0, 0x2 b _08196B4A _08196AEC: adds r0, r1, 0 subs r0, 0x32 cmp r0, 0x9 bhi _08196AF8 movs r0, 0x3 b _08196B4A _08196AF8: adds r0, r1, 0 subs r0, 0x3C cmp r0, 0x9 bhi _08196B04 movs r0, 0x4 b _08196B4A _08196B04: adds r0, r1, 0 subs r0, 0x46 cmp r0, 0x9 bhi _08196B10 movs r0, 0x5 b _08196B4A _08196B10: adds r0, r1, 0 subs r0, 0x50 cmp r0, 0x4 bhi _08196B1C movs r0, 0x6 b _08196B4A _08196B1C: adds r0, r1, 0 subs r0, 0x55 cmp r0, 0x4 bhi _08196B28 movs r0, 0x7 b _08196B4A _08196B28: adds r0, r1, 0 subs r0, 0x5A cmp r0, 0x3 bhi _08196B34 movs r0, 0x8 b _08196B4A _08196B34: adds r0, r1, 0 subs r0, 0x5E cmp r0, 0x3 bhi _08196B40 movs r0, 0x9 b _08196B4A _08196B40: cmp r1, 0x62 beq _08196B48 movs r0, 0xB b _08196B4A _08196B48: movs r0, 0xA _08196B4A: pop {r1} bx r1 thumb_func_end sub_8196AB8 thumb_func_start sub_8196B50 sub_8196B50: @ 8196B50 push {lr} bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3B bgt _08196B6C movs r0, 0 b _08196B92 _08196B6C: adds r0, r1, 0 subs r0, 0x3C cmp r0, 0x1D bhi _08196B78 movs r0, 0x1 b _08196B92 _08196B78: adds r0, r1, 0 subs r0, 0x5A cmp r0, 0x4 bhi _08196B84 movs r0, 0x2 b _08196B92 _08196B84: adds r0, r1, 0 subs r0, 0x5F cmp r0, 0x3 bls _08196B90 movs r0, 0x4 b _08196B92 _08196B90: movs r0, 0x3 _08196B92: pop {r1} bx r1 thumb_func_end sub_8196B50 thumb_func_start sub_8196B98 sub_8196B98: @ 8196B98 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r2, r0, 0 mov r8, r1 movs r3, 0 ldr r0, =gWildMonHeaders ldrb r1, [r0] adds r7, r0, 0 cmp r1, 0xFF beq _08196C5C ldr r1, =gUnknown_085500A4 lsls r0, r2, 4 adds r2, r0, r1 ldrh r4, [r2, 0xA] adds r1, r7, 0 _08196BBA: ldrb r0, [r1] cmp r0, r4 bne _08196BC8 ldrb r0, [r1, 0x1] ldrh r5, [r2, 0xC] cmp r0, r5 beq _08196BD2 _08196BC8: adds r1, 0x14 adds r3, 0x1 ldrb r0, [r1] cmp r0, 0xFF bne _08196BBA _08196BD2: adds r1, r7, 0 lsls r0, r3, 2 adds r0, r3 lsls r5, r0, 2 adds r0, r5, r1 ldrb r0, [r0] cmp r0, 0xFF beq _08196C5C movs r6, 0 adds r0, r1, 0x4 adds r0, r5, r0 ldr r4, [r0] cmp r4, 0 beq _08196C02 bl sub_8196AB8 lsls r0, 24 mov r2, sp ldr r1, [r4, 0x4] lsrs r0, 22 adds r0, r1 ldrh r0, [r0, 0x2] strh r0, [r2] movs r6, 0x1 _08196C02: adds r0, r7, 0 adds r0, 0x8 adds r0, r5, r0 ldr r4, [r0] cmp r4, 0 beq _08196C26 bl sub_8196B50 lsls r0, 24 lsls r1, r6, 1 mov r3, sp adds r2, r3, r1 ldr r1, [r4, 0x4] lsrs r0, 22 adds r0, r1 ldrh r0, [r0, 0x2] strh r0, [r2] adds r6, 0x1 _08196C26: cmp r6, 0 beq _08196C5C bl Random lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 lsls r0, 1 add r0, sp ldrh r1, [r0] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 mov r0, r8 bl StringCopy b _08196C62 .pool _08196C5C: movs r0, 0xFF mov r5, r8 strb r0, [r5] _08196C62: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8196B98 thumb_func_start sub_8196C70 sub_8196C70: @ 8196C70 push {r4-r7,lr} adds r7, r1, 0 ldr r2, =gUnknown_0860DEB8 lsls r1, r0, 2 adds r1, r0 lsls r1, 2 adds r1, r2 ldrh r0, [r1] bl sub_80B2250 lsls r0, 16 lsrs r0, 16 ldr r5, =gTrainers lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r0, r5, 0 adds r0, 0x24 adds r0, r4, r0 ldr r6, [r0] bl Random lsls r0, 16 lsrs r0, 16 adds r4, r5 adds r1, r4, 0 adds r1, 0x20 ldrb r1, [r1] bl __modsi3 lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] cmp r1, 0x1 beq _08196CD4 cmp r1, 0x1 ble _08196CC2 cmp r1, 0x2 beq _08196CD0 cmp r1, 0x3 beq _08196CD4 _08196CC2: lsls r0, 3 b _08196CD6 .pool _08196CD0: lsls r0, 3 b _08196CD6 _08196CD4: lsls r0, 4 _08196CD6: adds r0, r6 ldrh r1, [r0, 0x4] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r7, 0 bl StringCopy pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8196C70 thumb_func_start sub_8196CF4 sub_8196CF4: @ 8196CF4 push {lr} adds r0, r1, 0 ldr r2, =gUnknown_0860EFF4 ldr r1, =gUnknown_0203CD88 ldrh r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy pop {r0} bx r0 .pool thumb_func_end sub_8196CF4 thumb_func_start sub_8196D14 sub_8196D14: @ 8196D14 push {r4-r6,lr} adds r5, r1, 0 movs r4, 0 ldr r0, =gUnknown_0203CD88 ldrh r1, [r0, 0x2] adds r6, r0, 0 cmp r1, 0 beq _08196D34 _08196D24: adds r0, r1, 0 movs r1, 0xA bl __divsi3 adds r1, r0, 0 adds r4, 0x1 cmp r1, 0 bne _08196D24 _08196D34: ldrh r1, [r6, 0x2] lsls r3, r4, 24 lsrs r3, 24 adds r0, r5, 0 movs r2, 0 bl ConvertIntToDecimalStringN pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8196D14 thumb_func_start sub_8196D4C sub_8196D4C: @ 8196D4C push {r4,r5,lr} movs r4, 0 ldr r5, =gUnknown_0860F010 b _08196D5C .pool _08196D58: adds r5, 0x2 adds r4, 0x1 _08196D5C: cmp r4, 0x7 bhi _08196D6C ldrh r0, [r5] bl FlagGet lsls r0, 24 cmp r0, 0 bne _08196D58 _08196D6C: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_8196D4C thumb_func_start sub_8196D74 sub_8196D74: @ 8196D74 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r7, r0, 0 bl sub_8196D4C cmp r0, 0x4 ble _08196DF4 bl RtcGetLocalDayCount adds r4, r0, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xA bl ReadUnalignedWord adds r6, r0, 0 ldr r0, =0x0000ffff ands r6, r0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00002e6a adds r0, r1 ldrh r5, [r0] bl sub_8196748 mov r9, r0 movs r0, 0xD mov r1, r9 muls r1, r0 adds r0, r1, 0 movs r1, 0xA bl __divsi3 mov r8, r0 movs r0, 0x9 bl GetGameStat eors r4, r5 eors r5, r0 adds r4, r5 eors r4, r6 adds r0, r4, 0 mov r1, r8 bl __modsi3 cmp r0, r9 bge _08196DF4 bl sub_8196774 cmp r0, r7 bne _08196DF4 movs r0, 0x1 b _08196DF6 .pool _08196DF4: movs r0, 0 _08196DF6: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8196D74 thumb_func_start sub_8196E04 sub_8196E04: @ 8196E04 push {r4-r6,lr} adds r5, r1, 0 lsls r0, 16 lsrs r0, 16 movs r4, 0 cmp r0, 0x6 bls _08196E14 b _08196F7E _08196E14: lsls r0, 2 ldr r1, =_08196E24 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _08196E24: .4byte _08196E9C .4byte _08196E40 .4byte _08196ED0 .4byte _08196F38 .4byte _08196E74 .4byte _08196F04 .4byte _08196F60 _08196E40: movs r3, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000d14 adds r0, r1 _08196E4A: lsls r1, r3, 2 adds r3, 0x1 adds r1, r0 movs r2, 0x1 _08196E52: ldrh r6, [r1] cmp r4, r6 bcs _08196E5A ldrh r4, [r1] _08196E5A: adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _08196E52 cmp r3, 0x1 ble _08196E4A movs r0, 0x3 b _08196F7C .pool _08196E74: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e08 adds r0, r1 movs r3, 0x1 _08196E7E: ldrh r6, [r0] cmp r4, r6 bcs _08196E86 ldrh r4, [r0] _08196E86: adds r0, 0x2 subs r3, 0x1 cmp r3, 0 bge _08196E7E movs r0, 0x4 b _08196F7C .pool _08196E9C: movs r3, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xCF lsls r1, 4 adds r0, r1 _08196EA8: lsls r1, r3, 2 adds r3, 0x1 adds r1, r0 movs r2, 0x1 _08196EB0: ldrh r6, [r1] cmp r4, r6 bcs _08196EB8 ldrh r4, [r1] _08196EB8: adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _08196EB0 movs r2, 0x2 cmp r3, 0x3 ble _08196EA8 str r2, [r5] b _08196F7E .pool _08196ED0: movs r3, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xDD lsls r1, 4 adds r0, r1 _08196EDC: lsls r1, r3, 2 adds r3, 0x1 adds r1, r0 movs r2, 0x1 _08196EE4: ldrh r6, [r1] cmp r4, r6 bcs _08196EEC ldrh r4, [r1] _08196EEC: adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _08196EE4 movs r2, 0x2 cmp r3, 0x1 ble _08196EDC str r2, [r5] b _08196F7E .pool _08196F04: movs r3, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000dea adds r0, r1 _08196F0E: lsls r1, r3, 2 adds r3, 0x1 adds r1, r0 movs r2, 0x1 _08196F16: ldrh r6, [r1] cmp r4, r6 bcs _08196F1E ldrh r4, [r1] _08196F1E: adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _08196F16 movs r2, 0x2 cmp r3, 0x1 ble _08196F0E str r2, [r5] b _08196F7E .pool _08196F38: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000dde adds r0, r1 movs r3, 0x1 _08196F42: ldrh r6, [r0] cmp r4, r6 bcs _08196F4A ldrh r4, [r0] _08196F4A: adds r0, 0x2 subs r3, 0x1 cmp r3, 0 bge _08196F42 movs r3, 0x2 str r3, [r5] b _08196F7E .pool _08196F60: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e1e adds r0, r1 movs r3, 0x1 _08196F6A: ldrh r6, [r0] cmp r4, r6 bcs _08196F72 ldrh r4, [r0] _08196F72: adds r0, 0x2 subs r3, 0x1 cmp r3, 0 bge _08196F6A movs r0, 0x5 _08196F7C: str r0, [r5] _08196F7E: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_8196E04 thumb_func_start sub_8196F90 sub_8196F90: @ 8196F90 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x9 bhi _08196F9E movs r0, 0 b _0819707A _08196F9E: cmp r4, 0x13 bhi _08196FA6 movs r0, 0x1 b _0819707A _08196FA6: cmp r4, 0x1D bhi _08196FAE movs r0, 0x2 b _0819707A _08196FAE: cmp r4, 0x27 bhi _08196FB6 movs r0, 0x3 b _0819707A _08196FB6: cmp r4, 0x31 bhi _08196FBE movs r0, 0x4 b _0819707A _08196FBE: cmp r4, 0x3B bhi _08196FC6 movs r0, 0x5 b _0819707A _08196FC6: cmp r4, 0x45 bhi _08196FCE movs r0, 0x6 b _0819707A _08196FCE: cmp r4, 0x4F bhi _08196FD6 movs r0, 0x7 b _0819707A _08196FD6: cmp r4, 0x59 bhi _08196FDE movs r0, 0x8 b _0819707A _08196FDE: cmp r4, 0x63 bhi _08196FE6 movs r0, 0x9 b _0819707A _08196FE6: cmp r4, 0x6D bhi _08196FEE movs r0, 0xA b _0819707A _08196FEE: cmp r4, 0x77 bhi _08196FF6 movs r0, 0xB b _0819707A _08196FF6: cmp r4, 0x81 bhi _08196FFE movs r0, 0xC b _0819707A _08196FFE: cmp r4, 0x8B bhi _08197006 movs r0, 0xD b _0819707A _08197006: cmp r4, 0x95 bhi _0819700E movs r0, 0xE b _0819707A _0819700E: cmp r4, 0x9F bhi _08197016 movs r0, 0xF b _0819707A _08197016: cmp r4, 0xA9 bhi _0819701E movs r0, 0x10 b _0819707A _0819701E: cmp r4, 0xB3 bhi _08197026 movs r0, 0x11 b _0819707A _08197026: cmp r4, 0xBD bhi _0819702E movs r0, 0x12 b _0819707A _0819702E: cmp r4, 0xC7 bls _08197078 movs r0, 0xCD lsls r0, 1 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl pokedex_flag_operation lsls r0, 24 cmp r0, 0 beq _08197050 subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _08197050: ldr r0, =0x00000199 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl pokedex_flag_operation lsls r0, 24 cmp r0, 0 beq _0819706C subs r0, r4, 0x1 lsls r0, 16 lsrs r4, r0, 16 _0819706C: cmp r4, 0xC7 bls _08197078 movs r0, 0x14 b _0819707A .pool _08197078: movs r0, 0x13 _0819707A: pop {r4} pop {r1} bx r1 thumb_func_end sub_8196F90 thumb_func_start sub_8197080 sub_8197080: @ 8197080 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 movs r0, 0xFA lsls r0, 2 bl Alloc adds r7, r0, 0 cmp r7, 0 bne _081970A2 movs r0, 0xFF mov r1, r8 strb r0, [r1] b _0819715C _081970A2: movs r0, 0 bl sub_80C0844 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x1 bl sub_80C0844 lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gStringVar1 mov r10, r0 adds r1, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, =gStringVar2 mov r9, r1 mov r0, r9 adds r1, r6, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r0, r6, 0 bl sub_8196F90 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, =gUnknown_082A5C9C adds r0, r7, 0 bl StringCopy adds r5, r0, 0 movs r6, 0xFB strb r6, [r5] adds r5, 0x1 ldr r1, =gUnknown_082A5D2C adds r0, r5, 0 bl StringCopy adds r5, r0, 0 strb r6, [r5] adds r5, 0x1 ldr r0, =gUnknown_0860F020 lsls r4, 2 adds r4, r0 ldr r1, [r4] adds r0, r5, 0 bl StringCopy mov r0, r8 adds r1, r7, 0 bl StringExpandPlaceholders adds r5, r0, 0 bl IsNationalPokedexEnabled cmp r0, 0 beq _08197156 strb r6, [r5] adds r5, 0x1 movs r0, 0 bl pokedex_count lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x1 bl pokedex_count lsls r0, 16 lsrs r6, r0, 16 mov r0, r10 adds r1, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN mov r0, r9 adds r1, r6, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r1, =gUnknown_082A633D adds r0, r5, 0 bl StringExpandPlaceholders _08197156: adds r0, r7, 0 bl Free _0819715C: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8197080 thumb_func_start sub_8197184 sub_8197184: @ 8197184 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 movs r1, 0 bl GetWindowAttribute lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0860EA6C movs r2, 0x80 lsls r2, 1 lsls r4, 16 lsrs r4, 16 adds r3, r4, 0 bl LoadBgTiles ldr r0, =gUnknown_0860EA4C lsls r5, 20 lsrs r5, 16 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8197184 thumb_func_start sub_81971C4 sub_81971C4: @ 81971C4 push {lr} bl sub_819645C pop {r0} bx r0 thumb_func_end sub_81971C4 thumb_func_start sub_81971D0 sub_81971D0: @ 81971D0 push {lr} ldr r0, =gUnknown_0860F098 bl InitWindows ldr r0, =gUnknown_0203CD8C movs r1, 0xFF strb r1, [r0] ldr r0, =gUnknown_0203CD8D strb r1, [r0] pop {r0} bx r0 .pool thumb_func_end sub_81971D0 thumb_func_start sub_81971F4 sub_81971F4: @ 81971F4 push {lr} bl FreeAllWindowBuffers pop {r0} bx r0 thumb_func_end sub_81971F4 thumb_func_start sub_8197200 sub_8197200: @ 8197200 push {lr} movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY bl DeactivateAllTextPrinters bl sub_81973A4 pop {r0} bx r0 thumb_func_end sub_8197200 thumb_func_start sub_8197224 sub_8197224: @ 8197224 push {lr} bl RunTextPrinters movs r0, 0 bl IsTextPrinterActive lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 thumb_func_end sub_8197224 thumb_func_start AddTextPrinterParametrized @ u16 AddTextPrinterParametrized(u8 windowId, u8 fontId, u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor) AddTextPrinterParametrized: @ 8197238 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 ldr r7, [sp, 0x28] ldr r4, [sp, 0x2C] mov r8, r4 ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] lsls r3, 24 lsrs r3, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 str r2, [sp] mov r2, sp movs r4, 0 strb r0, [r2, 0x4] mov r0, sp strb r1, [r0, 0x5] strb r4, [r0, 0x6] movs r1, 0x1 strb r1, [r0, 0x7] strb r4, [r0, 0x8] strb r1, [r0, 0x9] strb r4, [r0, 0xA] strb r4, [r0, 0xB] mov r4, sp ldrb r2, [r4, 0xC] subs r1, 0x11 adds r0, r1, 0 ands r0, r2 strb r0, [r4, 0xC] mov r0, sp mov r2, r8 lsls r2, 4 movs r4, 0xF strb r2, [r0, 0xC] mov r2, sp ands r5, r4 ldrb r0, [r2, 0xD] ands r1, r0 orrs r1, r5 strb r1, [r2, 0xD] mov r0, sp lsrs r6, 20 ands r1, r4 orrs r1, r6 strb r1, [r0, 0xD] ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x3 negs r0, r0 ands r0, r1 strb r0, [r2] mov r0, sp adds r1, r3, 0 adds r2, r7, 0 bl AddTextPrinter lsls r0, 16 lsrs r0, 16 add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end AddTextPrinterParametrized thumb_func_start AddTextPrinterForMessage @ void AddTextPrinterForMessage(u8 allowSkippingDelayWithButtonPress) AddTextPrinterForMessage: @ 81972C4 push {r4,r5,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 movs r5, 0 ldr r3, =gTextFlags movs r4, 0x1 ands r0, r4 ldrb r2, [r3] movs r1, 0x2 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] bl sav2_get_text_speed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r2, =gStringVar4 str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 bl AddTextPrinterParametrized add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end AddTextPrinterForMessage thumb_func_start AddTextPrinterForMessage_2 @ void AddTextPrinterForMessage_2(u8 allowSkippingDelayWithButtonPress) AddTextPrinterForMessage_2: @ 8197310 push {r4,lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 ldr r3, =gTextFlags movs r4, 0x1 ands r0, r4 ldrb r2, [r3] movs r1, 0x2 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] bl sav2_get_text_speed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r2, =gStringVar4 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 bl AddTextPrinterParametrized add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end AddTextPrinterForMessage_2 thumb_func_start AddTextPrinterWithCustomSpeedForMessage @ void AddTextPrinterWithCustomSpeedForMessage(u8 allowSkippingDelayWithButtonPress, u8 speed) AddTextPrinterWithCustomSpeedForMessage: @ 819735C push {r4,r5,lr} sub sp, 0x10 adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r3, 24 lsrs r3, 24 ldr r4, =gTextFlags movs r5, 0x1 ands r0, r5 ldrb r2, [r4] movs r1, 0x2 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r4] ldr r2, =gStringVar4 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 bl AddTextPrinterParametrized add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end AddTextPrinterWithCustomSpeedForMessage thumb_func_start sub_81973A4 sub_81973A4: @ 81973A4 push {lr} movs r1, 0x80 lsls r1, 2 movs r0, 0 movs r2, 0xF0 bl copy_textbox_border_tile_patterns_to_vram movs r1, 0x85 lsls r1, 2 movs r0, 0 movs r2, 0xE0 bl sub_809882C pop {r0} bx r0 thumb_func_end sub_81973A4 thumb_func_start sub_81973C4 sub_81973C4: @ 81973C4 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, =sub_81975F4 adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl PutWindowTilemap cmp r4, 0x1 bne _081973F2 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _081973F2: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81973C4 thumb_func_start sub_81973FC sub_81973FC: @ 81973FC push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, =sub_81974A4 adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl PutWindowTilemap cmp r4, 0x1 bne _0819742A adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _0819742A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81973FC thumb_func_start sub_8197434 sub_8197434: @ 8197434 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, =sub_8197804 adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl ClearWindowTilemap cmp r4, 0x1 bne _08197462 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _08197462: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8197434 thumb_func_start sub_819746C sub_819746C: @ 819746C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, =sub_81977BC adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl ClearWindowTilemap cmp r4, 0x1 bne _0819749A adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _0819749A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819746C thumb_func_start sub_81974A4 sub_81974A4: @ 81974A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r4, r2, 0 ldr r2, [sp, 0x3C] lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsls r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x10] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x14] movs r3, 0x85 lsls r3, 2 lsrs r0, r1, 24 str r0, [sp, 0xC] movs r2, 0xFF lsls r2, 24 adds r2, r1 mov r8, r2 lsrs r2, 24 lsrs r0, r4, 24 mov r9, r0 movs r0, 0xFF lsls r0, 24 adds r4, r0 lsrs r4, 24 movs r5, 0x1 str r5, [sp] str r5, [sp, 0x4] movs r6, 0xE str r6, [sp, 0x8] adds r0, r7, 0 adds r1, r3, 0 adds r3, r4, 0 bl FillBgTilemapBufferRect ldr r1, =0x00000215 ldr r2, [sp, 0x10] str r2, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] adds r0, r7, 0 ldr r2, [sp, 0xC] adds r3, r4, 0 bl FillBgTilemapBufferRect ldr r1, =0x00000216 ldr r3, [sp, 0xC] ldr r2, [sp, 0x10] adds r0, r3, r2 lsls r0, 24 mov r10, r0 lsrs r2, r0, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] adds r0, r7, 0 adds r3, r4, 0 bl FillBgTilemapBufferRect mov r5, r9 ldr r0, [sp, 0x14] add r0, r9 cmp r9, r0 bge _08197578 mov r3, r8 str r3, [sp, 0x18] movs r6, 0x1 movs r0, 0xE mov r8, r0 _0819753E: lsls r4, r5, 24 lsrs r4, 24 str r6, [sp] str r6, [sp, 0x4] mov r2, r8 str r2, [sp, 0x8] adds r0, r7, 0 ldr r1, =0x00000217 ldr r3, [sp, 0x18] lsrs r2, r3, 24 adds r3, r4, 0 bl FillBgTilemapBufferRect str r6, [sp] str r6, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] adds r0, r7, 0 ldr r1, =0x00000219 mov r3, r10 lsrs r2, r3, 24 adds r3, r4, 0 bl FillBgTilemapBufferRect adds r5, 0x1 ldr r0, [sp, 0x14] add r0, r9 cmp r5, r0 blt _0819753E _08197578: ldr r1, =0x0000021a ldr r2, [sp, 0xC] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r4, [sp, 0x14] add r4, r9 lsls r4, 24 lsrs r4, 24 movs r5, 0x1 str r5, [sp] str r5, [sp, 0x4] movs r6, 0xE str r6, [sp, 0x8] adds r0, r7, 0 adds r3, r4, 0 bl FillBgTilemapBufferRect ldr r1, =0x0000021b ldr r0, [sp, 0x10] str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] adds r0, r7, 0 ldr r2, [sp, 0xC] adds r3, r4, 0 bl FillBgTilemapBufferRect movs r1, 0x87 lsls r1, 2 ldr r3, [sp, 0xC] ldr r0, [sp, 0x10] adds r2, r3, r0 lsls r2, 24 lsrs r2, 24 str r5, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] adds r0, r7, 0 adds r3, r4, 0 bl FillBgTilemapBufferRect add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81974A4 thumb_func_start sub_81975F4 sub_81975F4: @ 81975F4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 adds r6, r0, 0 adds r5, r2, 0 mov r8, r3 ldr r2, [sp, 0x44] lsls r6, 24 lsrs r6, 24 lsls r0, r1, 24 lsls r5, 24 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r1, r2, 24 lsrs r1, 24 str r1, [sp, 0x10] ldr r1, =0x00000201 lsrs r2, r0, 24 str r2, [sp, 0xC] movs r3, 0xFE lsls r3, 24 adds r2, r0, r3 lsrs r2, 24 str r2, [sp, 0x14] lsrs r0, r5, 24 mov r10, r0 movs r2, 0xFF lsls r2, 24 adds r5, r2 lsrs r5, 24 movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] movs r3, 0xF mov r9, r3 str r3, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0x14] adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r1, =0x00000203 ldr r0, [sp, 0xC] subs r0, 0x1 lsls r2, r0, 24 lsrs r2, 24 str r2, [sp, 0x18] str r4, [sp] str r4, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] adds r0, r6, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect movs r1, 0x81 lsls r1, 2 mov r0, r8 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] str r0, [sp] str r4, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0xC] adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r1, =0x00000205 ldr r7, [sp, 0xC] add r7, r8 subs r0, r7, 0x1 lsls r2, r0, 24 lsrs r2, 24 str r2, [sp, 0x20] str r4, [sp] str r4, [sp, 0x4] mov r3, r9 str r3, [sp, 0x8] adds r0, r6, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r1, =0x00000206 lsls r2, r7, 24 lsrs r7, r2, 24 str r4, [sp] str r4, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] adds r0, r6, 0 adds r2, r7, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r1, =0x00000207 str r4, [sp] movs r5, 0x5 str r5, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0x14] mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x00000209 add r8, r4 mov r3, r8 lsls r3, 24 lsrs r3, 24 str r3, [sp] str r5, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0x18] mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x0000020a str r4, [sp] str r5, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r6, 0 adds r2, r7, 0 mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x00000a01 ldr r3, [sp, 0x10] add r10, r3 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 str r4, [sp] str r4, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0x14] mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x00000a03 str r4, [sp] str r4, [sp, 0x4] mov r3, r9 str r3, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0x18] mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x00000a04 ldr r0, [sp, 0x1C] str r0, [sp] str r4, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0xC] mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x00000a05 str r4, [sp] str r4, [sp, 0x4] mov r3, r9 str r3, [sp, 0x8] adds r0, r6, 0 ldr r2, [sp, 0x20] mov r3, r10 bl FillBgTilemapBufferRect ldr r1, =0x00000a06 str r4, [sp] str r4, [sp, 0x4] mov r0, r9 str r0, [sp, 0x8] adds r0, r6, 0 adds r2, r7, 0 mov r3, r10 bl FillBgTilemapBufferRect add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81975F4 thumb_func_start sub_81977BC sub_81977BC: @ 81977BC push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 adds r5, r2, 0 ldr r1, [sp, 0x18] lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsls r5, 24 lsls r3, 24 lsls r1, 24 movs r2, 0xFF lsls r2, 24 adds r4, r2 lsrs r4, 24 adds r5, r2 lsrs r5, 24 movs r2, 0x80 lsls r2, 18 adds r3, r2 lsrs r3, 24 str r3, [sp] adds r1, r2 lsrs r1, 24 str r1, [sp, 0x4] movs r1, 0xE str r1, [sp, 0x8] movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81977BC thumb_func_start sub_8197804 sub_8197804: @ 8197804 push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 adds r5, r2, 0 ldr r1, [sp, 0x18] lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsls r5, 24 lsls r3, 24 lsls r1, 24 movs r2, 0xFD lsls r2, 24 adds r4, r2 lsrs r4, 24 movs r2, 0xFF lsls r2, 24 adds r5, r2 lsrs r5, 24 movs r2, 0xC0 lsls r2, 19 adds r3, r2 lsrs r3, 24 str r3, [sp] movs r2, 0x80 lsls r2, 18 adds r1, r2 lsrs r1, 24 str r1, [sp, 0x4] movs r1, 0xE str r1, [sp, 0x8] movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8197804 thumb_func_start SetStandardWindowBorderStyle @ void SetStandardWindowBorderStyle(u8 windowId, bool copyToVram) SetStandardWindowBorderStyle: @ 8197854 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 movs r2, 0x85 lsls r2, 2 movs r3, 0xE bl SetWindowBorderStyle pop {r0} bx r0 thumb_func_end SetStandardWindowBorderStyle thumb_func_start sub_819786C sub_819786C: @ 819786C push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 movs r6, 0x80 lsls r6, 2 adds r0, r4, 0 adds r1, r6, 0 movs r2, 0xF0 bl copy_textbox_border_tile_patterns_to_vram adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 movs r3, 0xF bl sub_8197B1C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_819786C thumb_func_start sub_819789C sub_819789C: @ 819789C push {lr} ldr r0, =gUnknown_0860F074 movs r1, 0xE0 movs r2, 0x14 bl LoadPalette pop {r0} bx r0 .pool thumb_func_end sub_819789C thumb_func_start sub_81978B0 sub_81978B0: @ 81978B0 push {lr} adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 ldr r0, =gUnknown_0860F074 movs r2, 0x14 bl LoadPalette pop {r0} bx r0 .pool thumb_func_end sub_81978B0 thumb_func_start sub_81978C8 sub_81978C8: @ 81978C8 ldr r0, =gUnknown_0860F074 bx lr .pool thumb_func_end sub_81978C8 thumb_func_start sub_81978D0 sub_81978D0: @ 81978D0 push {lr} lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bls _081978DC movs r1, 0 _081978DC: ldr r0, =gUnknown_0860F074 lsls r1, 1 adds r1, r0 ldrh r0, [r1] pop {r1} bx r1 .pool thumb_func_end sub_81978D0 thumb_func_start DisplayItemMessageOnField @ void DisplayItemMessageOnField(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) DisplayItemMessageOnField: @ 81978EC push {r4-r6,lr} sub sp, 0x10 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 bl sub_81973A4 bl sav2_get_text_speed lsls r0, 24 lsrs r0, 24 movs r2, 0x80 lsls r2, 2 movs r1, 0x1 str r1, [sp] str r0, [sp, 0x4] str r5, [sp, 0x8] str r6, [sp, 0xC] adds r0, r4, 0 movs r1, 0 movs r3, 0xF bl DisplayMessageAndContinueTask movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end DisplayItemMessageOnField thumb_func_start sub_8197930 sub_8197930: @ 8197930 push {lr} ldr r0, =gUnknown_0860F0A8 movs r1, 0x85 lsls r1, 2 movs r2, 0xE movs r3, 0 bl CreateYesNoMenu pop {r0} bx r0 .pool thumb_func_end sub_8197930 thumb_func_start sub_8197948 sub_8197948: @ 8197948 push {lr} adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r0, =gUnknown_0860F0A8 movs r1, 0x85 lsls r1, 2 movs r2, 0xE bl CreateYesNoMenu pop {r0} bx r0 .pool thumb_func_end sub_8197948 thumb_func_start sub_8197964 sub_8197964: @ 8197964 push {lr} ldr r0, =gTextFlags ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 bne _08197988 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x14] lsls r0, 29 lsrs r0, 29 b _0819798A .pool _08197988: movs r0, 0x1 _0819798A: pop {r1} bx r1 thumb_func_end sub_8197964 thumb_func_start sav2_get_text_speed sav2_get_text_speed: @ 8197990 push {lr} ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x14] lsls r0, r1, 29 lsrs r0, 29 cmp r0, 0x2 bls _081979AC movs r0, 0x8 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2, 0x14] _081979AC: bl sub_8197964 ldr r1, =gUnknown_0860F094 adds r0, r1 ldrb r0, [r0] pop {r1} bx r1 .pool thumb_func_end sav2_get_text_speed thumb_func_start sub_81979C4 sub_81979C4: @ 81979C4 push {r4,lr} sub sp, 0xC lsls r0, 24 lsrs r1, r0, 24 ldr r4, =gUnknown_0203CD8C ldrb r0, [r4] cmp r0, 0xFF bne _081979F6 lsls r0, r1, 25 movs r1, 0x80 lsls r1, 18 adds r0, r1 lsrs r0, 24 str r0, [sp] movs r0, 0xF str r0, [sp, 0x4] ldr r0, =0x00000139 str r0, [sp, 0x8] movs r0, 0 movs r1, 0x16 movs r2, 0x1 movs r3, 0x7 bl sub_8198AA4 strb r0, [r4] _081979F6: ldrb r0, [r4] add sp, 0xC pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81979C4 thumb_func_start GetStartMenuWindowId GetStartMenuWindowId: @ 8197A08 ldr r0, =gUnknown_0203CD8C ldrb r0, [r0] bx lr .pool thumb_func_end GetStartMenuWindowId thumb_func_start remove_start_menu_window_maybe remove_start_menu_window_maybe: @ 8197A14 push {r4,lr} ldr r4, =gUnknown_0203CD8C ldrb r0, [r4] cmp r0, 0xFF beq _08197A26 bl RemoveWindow movs r0, 0xFF strb r0, [r4] _08197A26: pop {r4} pop {r0} bx r0 .pool thumb_func_end remove_start_menu_window_maybe thumb_func_start sub_8197A30 sub_8197A30: @ 8197A30 movs r0, 0x80 lsls r0, 2 bx lr thumb_func_end sub_8197A30 thumb_func_start sub_8197A38 sub_8197A38: @ 8197A38 movs r0, 0x85 lsls r0, 2 bx lr thumb_func_end sub_8197A38 thumb_func_start AddMapNamePopUpWindow AddMapNamePopUpWindow: @ 8197A40 push {r4,lr} sub sp, 0xC ldr r4, =gUnknown_0203CD8D ldrb r0, [r4] cmp r0, 0xFF bne _08197A66 movs r0, 0x3 str r0, [sp] movs r0, 0xE str r0, [sp, 0x4] adds r0, 0xF9 str r0, [sp, 0x8] movs r0, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0xA bl sub_8198AA4 strb r0, [r4] _08197A66: ldrb r0, [r4] add sp, 0xC pop {r4} pop {r1} bx r1 .pool thumb_func_end AddMapNamePopUpWindow thumb_func_start GetMapNamePopUpWindowId GetMapNamePopUpWindowId: @ 8197A74 ldr r0, =gUnknown_0203CD8D ldrb r0, [r0] bx lr .pool thumb_func_end GetMapNamePopUpWindowId thumb_func_start RemoveMapNamePopUpWindow RemoveMapNamePopUpWindow: @ 8197A80 push {r4,lr} ldr r4, =gUnknown_0203CD8D ldrb r0, [r4] cmp r0, 0xFF beq _08197A92 bl RemoveWindow movs r0, 0xFF strb r0, [r4] _08197A92: pop {r4} pop {r0} bx r0 .pool thumb_func_end RemoveMapNamePopUpWindow thumb_func_start AddTextPrinterWithCallbackForMessage @ void AddTextPrinterWithCallbackForMessage(u8 allowSkippingDelayWithButtonPress, void ( *callback)(u16, struct TextPrinter *)) AddTextPrinterWithCallbackForMessage: @ 8197A9C push {r4,r5,lr} sub sp, 0x10 adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 ldr r3, =gTextFlags movs r4, 0x1 ands r0, r4 ldrb r2, [r3] movs r1, 0x2 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r3] bl sav2_get_text_speed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r2, =gStringVar4 str r5, [sp] movs r0, 0x2 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0 movs r1, 0x1 bl AddTextPrinterParametrized add sp, 0x10 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end AddTextPrinterWithCallbackForMessage thumb_func_start sub_8197AE8 sub_8197AE8: @ 8197AE8 push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x11 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl FillBgTilemapBufferRect cmp r4, 0x1 bne _08197B12 movs r0, 0 bl CopyBgTilemapBufferToVram _08197B12: add sp, 0xC pop {r4} pop {r0} bx r0 thumb_func_end sub_8197AE8 thumb_func_start sub_8197B1C sub_8197B1C: @ 8197B1C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CD9C strh r2, [r0] ldr r0, =gUnknown_0203CD9E strb r3, [r0] ldr r1, =sub_8197BB4 adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl PutWindowTilemap cmp r4, 0x1 bne _08197B52 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _08197B52: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8197B1C thumb_func_start sub_8197B64 sub_8197B64: @ 8197B64 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CD9C strh r2, [r0] ldr r5, =gUnknown_0203CD9E adds r0, r6, 0 movs r1, 0x5 bl GetWindowAttribute strb r0, [r5] ldr r1, =sub_8197BB4 adds r0, r6, 0 bl CallWindowFunction adds r0, r6, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r6, 0 bl PutWindowTilemap cmp r4, 0x1 bne _08197BA2 adds r0, r6, 0 movs r1, 0x3 bl CopyWindowToVram _08197BA2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8197B64 thumb_func_start sub_8197BB4 sub_8197BB4: @ 8197BB4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 mov r8, r0 adds r5, r2, 0 adds r6, r3, 0 ldr r2, [sp, 0x44] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, r1, 24 lsls r5, 24 lsls r6, 24 lsrs r6, 24 lsls r1, r2, 24 lsrs r1, 24 str r1, [sp, 0x10] ldr r2, =gUnknown_0203CD9C ldrh r1, [r2] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 lsrs r3, r0, 24 str r3, [sp, 0xC] movs r3, 0xFE lsls r3, 24 adds r2, r0, r3 lsrs r2, 24 str r2, [sp, 0x14] lsrs r0, r5, 24 mov r9, r0 movs r2, 0xFF lsls r2, 24 adds r5, r2 lsrs r5, 24 movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] ldr r3, =gUnknown_0203CD9E mov r10, r3 ldrb r0, [r3] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x14] adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r0, =gUnknown_0203CD9C ldrh r1, [r0] adds r1, 0x3 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0xC] subs r0, 0x1 lsls r2, r0, 24 lsrs r2, 24 str r2, [sp, 0x18] str r4, [sp] str r4, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x18] adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r3, =gUnknown_0203CD9C ldrh r1, [r3] adds r1, 0x4 lsls r1, 16 lsrs r1, 16 subs r0, r6, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] str r0, [sp] str r4, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0xC] adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r3, =gUnknown_0203CD9C ldrh r1, [r3] adds r1, 0x5 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0xC] adds r7, r0, r6 subs r0, r7, 0x1 lsls r2, r0, 24 lsrs r2, 24 str r2, [sp, 0x20] str r4, [sp] str r4, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x20] adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r3, =gUnknown_0203CD9C ldrh r1, [r3] adds r1, 0x6 lsls r1, 16 lsrs r1, 16 lsls r2, r7, 24 lsrs r7, r2, 24 str r4, [sp] str r4, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 adds r2, r7, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect ldr r3, =gUnknown_0203CD9C ldrh r1, [r3] adds r1, 0x7 lsls r1, 16 lsrs r1, 16 str r4, [sp] movs r5, 0x5 str r5, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x14] mov r3, r9 bl FillBgTilemapBufferRect ldr r3, =gUnknown_0203CD9C ldrh r1, [r3] adds r1, 0x9 lsls r1, 16 lsrs r1, 16 adds r6, 0x1 lsls r6, 24 lsrs r6, 24 str r6, [sp] str r5, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x18] mov r3, r9 bl FillBgTilemapBufferRect ldr r3, =gUnknown_0203CD9C ldrh r1, [r3] adds r1, 0xA lsls r1, 16 lsrs r1, 16 str r4, [sp] str r5, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 adds r2, r7, 0 mov r3, r9 bl FillBgTilemapBufferRect ldr r3, =0x00000801 adds r1, r3, 0 ldr r0, =gUnknown_0203CD9C ldrh r0, [r0] adds r1, r0 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x10] add r9, r2 mov r3, r9 lsls r3, 24 lsrs r3, 24 mov r9, r3 str r4, [sp] str r4, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x14] bl FillBgTilemapBufferRect ldr r3, =0x00000803 adds r1, r3, 0 ldr r0, =gUnknown_0203CD9C ldrh r0, [r0] adds r1, r0 lsls r1, 16 lsrs r1, 16 str r4, [sp] str r4, [sp, 0x4] mov r2, r10 ldrb r0, [r2] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x18] mov r3, r9 bl FillBgTilemapBufferRect ldr r3, =0x00000804 adds r1, r3, 0 ldr r0, =gUnknown_0203CD9C ldrh r0, [r0] adds r1, r0 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x1C] str r2, [sp] str r4, [sp, 0x4] mov r3, r10 ldrb r0, [r3] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0xC] mov r3, r9 bl FillBgTilemapBufferRect ldr r0, =0x00000805 adds r1, r0, 0 ldr r2, =gUnknown_0203CD9C ldrh r2, [r2] adds r1, r2 lsls r1, 16 lsrs r1, 16 str r4, [sp] str r4, [sp, 0x4] mov r3, r10 ldrb r0, [r3] str r0, [sp, 0x8] mov r0, r8 ldr r2, [sp, 0x20] mov r3, r9 bl FillBgTilemapBufferRect ldr r0, =0x00000806 adds r1, r0, 0 ldr r2, =gUnknown_0203CD9C ldrh r2, [r2] adds r1, r2 lsls r1, 16 lsrs r1, 16 str r4, [sp] str r4, [sp, 0x4] mov r3, r10 ldrb r0, [r3] str r0, [sp, 0x8] mov r0, r8 adds r2, r7, 0 mov r3, r9 bl FillBgTilemapBufferRect add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8197BB4 thumb_func_start sub_8197DF8 sub_8197DF8: @ 8197DF8 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, =sub_8197E30 adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r5, 0 bl ClearWindowTilemap cmp r4, 0x1 bne _08197E26 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _08197E26: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8197DF8 thumb_func_start sub_8197E30 sub_8197E30: @ 8197E30 push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 adds r5, r2, 0 ldr r1, [sp, 0x18] lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsls r5, 24 lsls r3, 24 lsls r1, 24 movs r2, 0xFD lsls r2, 24 adds r4, r2 lsrs r4, 24 movs r2, 0xFF lsls r2, 24 adds r5, r2 lsrs r5, 24 movs r2, 0xC0 lsls r2, 19 adds r3, r2 lsrs r3, 24 str r3, [sp] movs r2, 0x80 lsls r2, 18 adds r1, r2 lsrs r1, 24 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r2, r4, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_8197E30 thumb_func_start SetWindowBorderStyle @ void SetWindowBorderStyle(u8 windowId, bool copyToVram, s16 tileStart, s8 palette) SetWindowBorderStyle: @ 8197E80 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CD9C strh r2, [r0] ldr r0, =gUnknown_0203CD9E strb r3, [r0] ldr r1, =DrawWindowBorder adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r5, 0 bl PutWindowTilemap cmp r4, 0x1 bne _08197EB6 adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _08197EB6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end SetWindowBorderStyle thumb_func_start sub_8197EC8 sub_8197EC8: @ 8197EC8 push {r4-r6,lr} adds r4, r1, 0 lsls r0, 24 lsrs r6, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CD9C strh r2, [r0] ldr r5, =gUnknown_0203CD9E adds r0, r6, 0 movs r1, 0x5 bl GetWindowAttribute strb r0, [r5] ldr r1, =DrawWindowBorder adds r0, r6, 0 bl CallWindowFunction adds r0, r6, 0 movs r1, 0x11 bl FillWindowPixelBuffer adds r0, r6, 0 bl PutWindowTilemap cmp r4, 0x1 bne _08197F06 adds r0, r6, 0 movs r1, 0x3 bl CopyWindowToVram _08197F06: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_8197EC8 thumb_func_start DrawWindowBorder DrawWindowBorder: @ 8197F18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r9, r0 adds r6, r1, 0 adds r4, r2, 0 ldr r0, [sp, 0x38] mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r6, 24 lsls r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x10] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x14] ldr r2, =gUnknown_0203CD9C ldrh r1, [r2] lsrs r0, r6, 24 str r0, [sp, 0xC] movs r2, 0xFF lsls r2, 24 adds r6, r2 lsrs r6, 24 lsrs r0, r4, 24 mov r8, r0 adds r4, r2 lsrs r4, 24 movs r5, 0x1 str r5, [sp] str r5, [sp, 0x4] ldr r7, =gUnknown_0203CD9E ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 adds r2, r6, 0 adds r3, r4, 0 bl FillBgTilemapBufferRect ldr r2, =gUnknown_0203CD9C ldrh r1, [r2] adds r1, 0x1 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x10] str r0, [sp] str r5, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 ldr r2, [sp, 0xC] adds r3, r4, 0 bl FillBgTilemapBufferRect ldr r2, =gUnknown_0203CD9C ldrh r1, [r2] adds r1, 0x2 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0xC] ldr r2, [sp, 0x10] adds r0, r2 lsls r0, 24 lsrs r0, 24 mov r10, r0 str r5, [sp] str r5, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 mov r2, r10 adds r3, r4, 0 bl FillBgTilemapBufferRect ldr r0, =gUnknown_0203CD9C ldrh r1, [r0] adds r1, 0x3 lsls r1, 16 lsrs r1, 16 str r5, [sp] ldr r2, [sp, 0x14] str r2, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 adds r2, r6, 0 mov r3, r8 bl FillBgTilemapBufferRect ldr r0, =gUnknown_0203CD9C ldrh r1, [r0] adds r1, 0x5 lsls r1, 16 lsrs r1, 16 str r5, [sp] ldr r2, [sp, 0x14] str r2, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 mov r2, r10 mov r3, r8 bl FillBgTilemapBufferRect ldr r0, =gUnknown_0203CD9C ldrh r1, [r0] adds r1, 0x6 lsls r1, 16 lsrs r1, 16 ldr r2, [sp, 0x14] add r8, r2 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 str r5, [sp] str r5, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 adds r2, r6, 0 mov r3, r8 bl FillBgTilemapBufferRect ldr r2, =gUnknown_0203CD9C ldrh r1, [r2] adds r1, 0x7 lsls r1, 16 lsrs r1, 16 ldr r0, [sp, 0x10] str r0, [sp] str r5, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 ldr r2, [sp, 0xC] mov r3, r8 bl FillBgTilemapBufferRect ldr r2, =gUnknown_0203CD9C ldrh r1, [r2] adds r1, 0x8 lsls r1, 16 lsrs r1, 16 str r5, [sp] str r5, [sp, 0x4] ldrb r0, [r7] str r0, [sp, 0x8] mov r0, r9 mov r2, r10 mov r3, r8 bl FillBgTilemapBufferRect add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end DrawWindowBorder thumb_func_start sub_8198070 sub_8198070: @ 8198070 push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r1, =sub_81980A8 adds r0, r5, 0 bl CallWindowFunction adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r5, 0 bl ClearWindowTilemap cmp r4, 0x1 bne _0819809E adds r0, r5, 0 movs r1, 0x3 bl CopyWindowToVram _0819809E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_8198070 thumb_func_start sub_81980A8 sub_81980A8: @ 81980A8 push {r4,r5,lr} sub sp, 0xC adds r4, r1, 0 adds r5, r2, 0 ldr r1, [sp, 0x18] lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsls r5, 24 lsls r3, 24 lsls r1, 24 movs r2, 0xFF lsls r2, 24 adds r4, r2 lsrs r4, 24 adds r5, r2 lsrs r5, 24 movs r2, 0x80 lsls r2, 18 adds r3, r2 lsrs r3, 24 str r3, [sp] adds r1, r2 lsrs r1, 24 str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] adds r2, r4, 0 adds r3, r5, 0 bl FillBgTilemapBufferRect add sp, 0xC pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81980A8 thumb_func_start sub_81980F0 sub_81980F0: @ 81980F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 ldr r4, [sp, 0x20] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r5, r3, 24 lsls r4, 16 lsrs r4, 16 mov r0, sp movs r1, 0 movs r2, 0x8 bl memset cmp r6, 0x3 bls _08198126 movs r1, 0 mov r0, sp strb r1, [r0] b _0819812A _08198126: mov r0, sp strb r6, [r0] _0819812A: mov r1, sp mov r0, r8 strb r0, [r1, 0x2] movs r0, 0x2 strb r0, [r1, 0x4] movs r0, 0x1E subs r0, r7 strb r0, [r1, 0x1] strb r7, [r1, 0x3] strb r5, [r1, 0x5] strh r4, [r1, 0x6] ldr r4, =gUnknown_0203CDA0 mov r0, sp bl AddWindow strb r0, [r4] cmp r5, 0xF bls _08198158 movs r5, 0xF0 b _0819815C .pool _08198158: lsls r0, r5, 28 lsrs r5, r0, 24 _0819815C: ldr r0, =gUnknown_0860F0B0 adds r1, r5, 0 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_0203CDA0 ldrb r0, [r0] add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81980F0 thumb_func_start sub_8198180 sub_8198180: @ 8198180 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r6, r0, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldr r5, =gUnknown_0203CDA0 ldrb r0, [r5] cmp r0, 0xFF beq _081981EE bl PutWindowTilemap ldrb r0, [r5] movs r1, 0xFF bl FillWindowPixelBuffer movs r0, 0 adds r1, r6, 0 movs r2, 0 bl GetStringWidth adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] movs r1, 0x1 bl GetWindowAttribute movs r2, 0xEC subs r2, r7 lsls r0, 3 subs r2, r0 subs r2, r4 lsls r2, 24 lsrs r2, 24 ldrb r0, [r5] ldr r1, =gUnknown_0860F0D0 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r6, [sp, 0x8] movs r3, 0x1 bl box_print mov r0, r8 cmp r0, 0 beq _081981EE ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram _081981EE: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8198180 thumb_func_start sub_8198204 sub_8198204: @ 8198204 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r10, r0 adds r6, r1, 0 ldr r0, [sp, 0x38] lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 mov r8, r3 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 ldr r0, =gUnknown_0203CDA0 ldrb r1, [r0] adds r7, r0, 0 cmp r1, 0xFF beq _081982C8 cmp r2, 0 beq _08198244 add r0, sp, 0x14 strb r4, [r0] adds r1, r0, 0 b _0819824A .pool _08198244: add r1, sp, 0x14 movs r0, 0xF strb r0, [r1] _0819824A: movs r0, 0x1 strb r0, [r1, 0x1] movs r0, 0x2 strb r0, [r1, 0x2] adds r5, r7, 0 ldrb r0, [r5] bl PutWindowTilemap ldrb r0, [r5] movs r1, 0xFF bl FillWindowPixelBuffer cmp r6, 0 beq _0819829E movs r0, 0 adds r1, r6, 0 movs r2, 0 bl GetStringWidth lsls r0, 16 lsrs r4, r0, 16 ldrb r0, [r5] movs r1, 0x1 bl GetWindowAttribute movs r2, 0xEC mov r1, r8 subs r2, r1 lsls r0, 3 subs r2, r0 subs r2, r4 lsls r2, 24 lsrs r2, 24 ldrb r0, [r5] add r1, sp, 0x14 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r6, [sp, 0x8] movs r3, 0x1 bl box_print _0819829E: ldrb r0, [r7] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] add r2, sp, 0x14 str r2, [sp, 0x8] str r1, [sp, 0xC] mov r1, r10 str r1, [sp, 0x10] movs r1, 0x1 movs r2, 0x4 movs r3, 0x1 bl AddTextPrinterParametrized2 mov r2, r9 cmp r2, 0 beq _081982C8 ldrb r0, [r7] movs r1, 0x3 bl CopyWindowToVram _081982C8: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8198204 thumb_func_start sub_81982D8 sub_81982D8: @ 81982D8 push {lr} ldr r1, =gUnknown_0203CDA0 ldrb r0, [r1] cmp r0, 0xFF beq _081982E8 movs r1, 0x3 bl CopyWindowToVram _081982E8: pop {r0} bx r0 .pool thumb_func_end sub_81982D8 thumb_func_start sub_81982F0 sub_81982F0: @ 81982F0 push {r4,lr} ldr r4, =gUnknown_0203CDA0 ldrb r0, [r4] cmp r0, 0xFF beq _08198308 movs r1, 0xFF bl FillWindowPixelBuffer ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram _08198308: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81982F0 thumb_func_start sub_8198314 sub_8198314: @ 8198314 push {r4,lr} ldr r4, =gUnknown_0203CDA0 ldrb r0, [r4] cmp r0, 0xFF beq _0819833C movs r1, 0 bl FillWindowPixelBuffer ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF strb r0, [r4] _0819833C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8198314 thumb_func_start sub_8198348 sub_8198348: @ 8198348 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, [sp, 0x18] mov r8, r4 ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] ldr r6, [sp, 0x24] mov r12, r6 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r7, r5, 24 ldr r5, =gUnknown_0203CD90 movs r6, 0 strb r2, [r5] strb r3, [r5, 0x1] strb r6, [r5, 0x3] subs r4, 0x1 strb r4, [r5, 0x4] strb r0, [r5, 0x5] strb r1, [r5, 0x6] mov r0, r8 strb r0, [r5, 0x8] mov r4, r12 strb r4, [r5, 0xB] cmp r7, 0 blt _08198388 movs r0, 0x4 ldrsb r0, [r5, r0] cmp r7, r0 ble _08198390 _08198388: strb r6, [r5, 0x2] b _08198392 .pool _08198390: strb r7, [r5, 0x2] _08198392: movs r0, 0 bl MoveMenuCursor ldr r0, =gUnknown_0203CD90 ldrb r0, [r0, 0x2] pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8198348 thumb_func_start sub_81983AC sub_81983AC: @ 81983AC push {r4-r6,lr} sub sp, 0x10 ldr r4, [sp, 0x20] ldr r5, [sp, 0x24] ldr r6, [sp, 0x28] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] movs r4, 0 str r4, [sp, 0xC] bl sub_8198348 lsls r0, 24 lsrs r0, 24 add sp, 0x10 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81983AC thumb_func_start sub_81983EC sub_81983EC: @ 81983EC push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x14 mov r8, r0 adds r6, r1, 0 ldr r4, [sp, 0x28] ldr r5, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r6, 24 lsrs r6, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0x1 str r2, [sp, 0xC] str r3, [sp, 0x10] bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] mov r0, r8 adds r1, r6, 0 ldr r2, [sp, 0xC] ldr r3, [sp, 0x10] bl sub_81983AC lsls r0, 24 lsrs r0, 24 add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81983EC thumb_func_start RedrawMenuCursor @ void RedrawMenuCursor(s8 oldPos, s8 newPos) RedrawMenuCursor: @ 8198448 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0xC adds r6, r0, 0 mov r8, r1 lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r5, =gUnknown_0203CD90 ldrb r0, [r5, 0x6] movs r1, 0 bl GetMenuCursorDimensionByFont adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5, 0x6] movs r1, 0x1 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 ldrb r1, [r5, 0x5] mov r9, r1 ldrb r2, [r5] ldrb r1, [r5, 0x8] adds r3, r1, 0 muls r3, r6 ldrb r6, [r5, 0x1] adds r3, r6 lsls r3, 16 lsrs r3, 16 str r4, [sp] str r0, [sp, 0x4] mov r0, r9 movs r1, 0x11 bl FillWindowPixelRect ldrb r0, [r5, 0x5] ldrb r1, [r5, 0x6] ldr r2, =gUnknown_085EE498 ldrb r3, [r5] ldrb r4, [r5, 0x8] mov r6, r8 muls r6, r4 adds r4, r6, 0 ldrb r5, [r5, 0x1] adds r4, r5 lsls r4, 24 lsrs r4, 24 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] bl PrintTextOnWindow add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end RedrawMenuCursor thumb_func_start MoveMenuCursor @ s8 MoveMenuCursor(s8 cursorDelta) MoveMenuCursor: @ 81984D8 push {r4,r5,lr} ldr r1, =gUnknown_0203CD90 ldrb r5, [r1, 0x2] movs r2, 0x2 ldrsb r2, [r1, r2] lsls r0, 24 asrs r3, r0, 24 adds r2, r3 movs r0, 0x3 ldrsb r0, [r1, r0] adds r4, r1, 0 cmp r2, r0 bge _081984FC ldrb r0, [r4, 0x4] b _0819850A .pool _081984FC: movs r0, 0x4 ldrsb r0, [r4, r0] cmp r2, r0 ble _08198508 ldrb r0, [r4, 0x3] b _0819850A _08198508: adds r0, r3, r5 _0819850A: strb r0, [r4, 0x2] ldrb r1, [r4, 0x2] adds r0, r5, 0 bl RedrawMenuCursor ldrb r0, [r4, 0x2] pop {r4,r5} pop {r1} bx r1 thumb_func_end MoveMenuCursor thumb_func_start MoveMenuCursorNoWrapAround @ s8 MoveMenuCursorNoWrapAround(s8 cursorDelta) MoveMenuCursorNoWrapAround: @ 819851C push {r4,r5,lr} ldr r1, =gUnknown_0203CD90 ldrb r5, [r1, 0x2] movs r2, 0x2 ldrsb r2, [r1, r2] lsls r0, 24 asrs r3, r0, 24 adds r2, r3 movs r0, 0x3 ldrsb r0, [r1, r0] adds r4, r1, 0 cmp r2, r0 bge _08198540 ldrb r0, [r4, 0x3] b _0819854E .pool _08198540: movs r0, 0x4 ldrsb r0, [r4, r0] cmp r2, r0 ble _0819854C ldrb r0, [r4, 0x4] b _0819854E _0819854C: adds r0, r3, r5 _0819854E: strb r0, [r4, 0x2] ldrb r1, [r4, 0x2] adds r0, r5, 0 bl RedrawMenuCursor ldrb r0, [r4, 0x2] pop {r4,r5} pop {r1} bx r1 thumb_func_end MoveMenuCursorNoWrapAround thumb_func_start GetMenuCursorPos GetMenuCursorPos: @ 8198560 ldr r0, =gUnknown_0203CD90 ldrb r0, [r0, 0x2] bx lr .pool thumb_func_end GetMenuCursorPos thumb_func_start ProcessMenuInput ProcessMenuInput: @ 819856C push {r4,lr} ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08198598 ldr r4, =gUnknown_0203CD90 ldrb r0, [r4, 0xB] cmp r0, 0 bne _08198588 movs r0, 0x5 bl PlaySE _08198588: movs r0, 0x2 ldrsb r0, [r4, r0] b _081985D2 .pool _08198598: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081985A6 movs r0, 0x1 negs r0, r0 b _081985D2 _081985A6: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081985BA movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _081985CA _081985BA: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081985CE movs r0, 0x5 bl PlaySE movs r0, 0x1 _081985CA: bl MoveMenuCursor _081985CE: movs r0, 0x2 negs r0, r0 _081985D2: pop {r4} pop {r1} bx r1 thumb_func_end ProcessMenuInput thumb_func_start ProcessMenuInputNoWrapAround @ int ProcessMenuInputNoWrapAround() ProcessMenuInputNoWrapAround: @ 81985D8 push {r4-r6,lr} ldr r4, =gUnknown_0203CD90 ldrb r5, [r4, 0x2] adds r6, r5, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08198608 ldrb r0, [r4, 0xB] cmp r0, 0 bne _081985F8 movs r0, 0x5 bl PlaySE _081985F8: movs r0, 0x2 ldrsb r0, [r4, r0] b _08198650 .pool _08198608: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08198616 movs r0, 0x1 negs r0, r0 b _08198650 _08198616: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _08198630 movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrapAround lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _0819864C b _08198646 _08198630: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819864C movs r0, 0x1 bl MoveMenuCursorNoWrapAround lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _0819864C _08198646: movs r0, 0x5 bl PlaySE _0819864C: movs r0, 0x2 negs r0, r0 _08198650: pop {r4-r6} pop {r1} bx r1 thumb_func_end ProcessMenuInputNoWrapAround thumb_func_start ProcessMenuInput_other ProcessMenuInput_other: @ 8198658 push {r4,lr} ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08198684 ldr r4, =gUnknown_0203CD90 ldrb r0, [r4, 0xB] cmp r0, 0 bne _08198674 movs r0, 0x5 bl PlaySE _08198674: movs r0, 0x2 ldrsb r0, [r4, r0] b _081986BC .pool _08198684: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08198692 movs r0, 0x1 negs r0, r0 b _081986BC _08198692: ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _081986A8 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _081986B4 _081986A8: cmp r1, 0x80 bne _081986B8 movs r0, 0x5 bl PlaySE movs r0, 0x1 _081986B4: bl MoveMenuCursor _081986B8: movs r0, 0x2 negs r0, r0 _081986BC: pop {r4} pop {r1} bx r1 thumb_func_end ProcessMenuInput_other thumb_func_start ProcessMenuInputNoWrapAround_other ProcessMenuInputNoWrapAround_other: @ 81986C4 push {r4-r6,lr} ldr r4, =gUnknown_0203CD90 ldrb r5, [r4, 0x2] adds r6, r5, 0 ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081986F4 ldrb r0, [r4, 0xB] cmp r0, 0 bne _081986E4 movs r0, 0x5 bl PlaySE _081986E4: movs r0, 0x2 ldrsb r0, [r4, r0] b _0819873A .pool _081986F4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _08198702 movs r0, 0x1 negs r0, r0 b _0819873A _08198702: ldrh r0, [r2, 0x30] movs r1, 0xF0 ands r1, r0 cmp r1, 0x40 bne _0819871E movs r0, 0x1 negs r0, r0 bl MoveMenuCursorNoWrapAround lsls r0, 24 lsrs r0, 24 cmp r5, r0 beq _08198736 b _08198730 _0819871E: cmp r1, 0x80 bne _08198736 movs r0, 0x1 bl MoveMenuCursorNoWrapAround lsls r0, 24 lsrs r0, 24 cmp r6, r0 beq _08198736 _08198730: movs r0, 0x5 bl PlaySE _08198736: movs r0, 0x2 negs r0, r0 _0819873A: pop {r4-r6} pop {r1} bx r1 thumb_func_end ProcessMenuInputNoWrapAround_other thumb_func_start PrintTextArray PrintTextArray: @ 8198740 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r4, [sp, 0x2C] ldr r5, [sp, 0x30] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 mov r8, r3 lsls r4, 24 lsrs r7, r4, 24 lsls r5, 24 lsrs r5, 24 movs r4, 0 cmp r4, r5 bcs _081987A4 _08198774: lsls r0, r4, 3 ldr r1, [sp, 0x34] adds r0, r1 ldr r2, [r0] adds r0, r7, 0 muls r0, r4 add r0, r8 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r6, 0 mov r1, r10 mov r3, r9 bl PrintTextOnWindow adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08198774 _081987A4: adds r0, r6, 0 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end PrintTextArray thumb_func_start sub_81987BC sub_81987BC: @ 81987BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, [sp, 0x40] ldr r5, [sp, 0x44] ldr r6, [sp, 0x4C] ldr r7, [sp, 0x50] mov r8, r7 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x14] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x18] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x1C] lsls r4, 24 lsrs r4, 24 mov r10, r4 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 mov r9, r6 mov r0, r8 lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 cmp r4, r5 bcs _0819883C _08198804: lsls r0, r4, 3 ldr r1, [sp, 0x48] adds r0, r1 ldr r2, [r0] mov r0, r10 muls r0, r4 ldr r1, [sp, 0x1C] adds r0, r1, r0 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] str r6, [sp, 0x10] adds r0, r7, 0 ldr r1, [sp, 0x14] ldr r3, [sp, 0x18] bl sub_8199F74 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _08198804 _0819883C: adds r0, r7, 0 movs r1, 0x2 bl CopyWindowToVram add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81987BC thumb_func_start sub_8198854 sub_8198854: @ 8198854 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC mov r8, r0 adds r6, r1, 0 adds r4, r2, 0 adds r5, r3, 0 ldr r7, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0 bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 str r4, [sp] str r5, [sp, 0x4] str r7, [sp, 0x8] mov r0, r8 adds r1, r6, 0 movs r3, 0x1 bl PrintTextArray add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8198854 thumb_func_start AddItemMenuActionTextPrinters AddItemMenuActionTextPrinters: @ 81988A4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 adds r6, r1, 0 mov r8, r2 ldr r1, [sp, 0x38] mov r9, r1 ldr r1, [sp, 0x3C] ldr r2, [sp, 0x40] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] lsls r6, 24 lsrs r6, 24 mov r4, r8 lsls r4, 24 lsrs r4, 24 mov r8, r4 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r7, r2, 24 mov r0, sp ldrb r1, [r0, 0x10] strb r1, [r0, 0x4] strb r6, [r0, 0x5] adds r0, r6, 0 movs r1, 0x5 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xC] movs r5, 0xF adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] adds r0, r6, 0 movs r1, 0x6 bl GetFontAttribute mov r3, sp adds r1, r5, 0 ands r1, r0 ldrb r2, [r3, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xD] adds r0, r6, 0 movs r1, 0x7 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xD] adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] adds r0, r6, 0 movs r1, 0x4 bl GetFontAttribute mov r1, sp ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] mov r0, sp mov r2, r9 strb r2, [r0, 0xA] adds r0, r6, 0 movs r1, 0x3 bl GetFontAttribute mov r1, sp strb r0, [r1, 0xB] mov r0, sp mov r4, r8 strb r4, [r0, 0x6] strb r4, [r0, 0x8] movs r4, 0 cmp r4, r7 bcs _0819899E mov r5, sp _0819896E: ldr r1, [sp, 0x48] adds r0, r1, r4 ldrb r0, [r0] lsls r0, 3 ldr r2, [sp, 0x44] adds r0, r2 ldr r0, [r0] str r0, [sp] mov r0, r10 muls r0, r4 ldr r1, [sp, 0x14] adds r0, r1, r0 strb r0, [r5, 0x7] strb r0, [r5, 0x9] mov r0, sp movs r1, 0xFF movs r2, 0 bl AddTextPrinter adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _0819896E _0819899E: ldr r0, [sp, 0x10] movs r1, 0x2 bl CopyWindowToVram add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end AddItemMenuActionTextPrinters thumb_func_start sub_81989B8 sub_81989B8: @ 81989B8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r9, r0 adds r4, r1, 0 adds r6, r2, 0 mov r8, r3 ldr r7, [sp, 0x30] lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r4, 0 movs r1, 0 bl GetFontAttribute adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 movs r1, 0x2 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 str r0, [sp] str r6, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] str r7, [sp, 0xC] ldr r0, [sp, 0x34] str r0, [sp, 0x10] mov r0, r9 adds r1, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl AddItemMenuActionTextPrinters add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81989B8 thumb_func_start SetWindowTemplateFields @ void SetWindowTemplateFields(WindowTemplate *template, char bg_id, char x, char y, char w, char h, char a7, s16 a8) SetWindowTemplateFields: @ 8198A24 push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, [sp, 0x18] ldr r5, [sp, 0x1C] ldr r6, [sp, 0x20] ldr r7, [sp, 0x24] mov r8, r7 strb r1, [r0] strb r2, [r0, 0x1] strb r3, [r0, 0x2] strb r4, [r0, 0x3] strb r5, [r0, 0x4] strb r6, [r0, 0x5] mov r1, r8 strh r1, [r0, 0x6] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end SetWindowTemplateFields thumb_func_start sub_8198A50 sub_8198A50: @ 8198A50 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x18 mov r8, r0 ldr r0, [sp, 0x2C] ldr r4, [sp, 0x30] ldr r5, [sp, 0x34] ldr r6, [sp, 0x38] lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 16 lsrs r6, 16 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] str r6, [sp, 0xC] add r0, sp, 0x10 bl SetWindowTemplateFields ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] mov r2, r8 str r0, [r2] str r1, [r2, 0x4] mov r0, r8 add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r6} pop {r2} bx r2 thumb_func_end sub_8198A50 thumb_func_start sub_8198AA4 sub_8198AA4: @ 8198AA4 push {r4-r6,lr} sub sp, 0x18 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 ldr r0, [sp, 0x28] ldr r1, [sp, 0x2C] ldr r2, [sp, 0x30] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 16 lsrs r2, 16 str r3, [sp] str r0, [sp, 0x4] str r1, [sp, 0x8] str r2, [sp, 0xC] add r0, sp, 0x10 adds r1, r4, 0 adds r2, r5, 0 adds r3, r6, 0 bl SetWindowTemplateFields add r0, sp, 0x10 bl AddWindow lsls r0, 16 lsrs r0, 16 add sp, 0x18 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8198AA4 thumb_func_start sub_8198AF8 sub_8198AF8: @ 8198AF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C adds r6, r1, 0 mov r8, r2 mov r9, r3 ldr r4, [sp, 0x3C] ldr r5, [sp, 0x40] ldr r1, [sp, 0x44] mov r10, r1 lsls r6, 24 lsrs r6, 24 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 mov r1, r10 lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r7, =gUnknown_0203CD9F bl AddWindow strb r0, [r7] ldrb r0, [r7] movs r1, 0x1 adds r2, r4, 0 adds r3, r5, 0 bl SetWindowBorderStyle ldr r0, =gUnknown_085EE491 str r0, [sp, 0xC] add r1, sp, 0xC ldrb r0, [r7] strb r0, [r1, 0x4] adds r0, r1, 0 strb r6, [r0, 0x5] adds r0, r6, 0 movs r1, 0 bl GetFontAttribute add r1, sp, 0xC add r0, r8 strb r0, [r1, 0x6] adds r0, r1, 0 mov r1, r9 strb r1, [r0, 0x7] adds r1, r0, 0 ldrb r0, [r0, 0x6] strb r0, [r1, 0x8] adds r0, r1, 0 ldrb r0, [r0, 0x7] strb r0, [r1, 0x9] adds r0, r6, 0 movs r1, 0x5 bl GetFontAttribute add r3, sp, 0xC lsls r0, 4 ldrb r2, [r3, 0xC] movs r5, 0xF adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] adds r0, r6, 0 movs r1, 0x6 bl GetFontAttribute add r3, sp, 0xC adds r1, r5, 0 ands r1, r0 ldrb r2, [r3, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xD] adds r0, r6, 0 movs r1, 0x7 bl GetFontAttribute add r3, sp, 0xC lsls r0, 4 ldrb r2, [r3, 0xD] adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] adds r0, r6, 0 movs r1, 0x4 bl GetFontAttribute add r1, sp, 0xC ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] adds r0, r6, 0 movs r1, 0x2 bl GetFontAttribute add r1, sp, 0xC strb r0, [r1, 0xA] adds r0, r6, 0 movs r1, 0x3 bl GetFontAttribute add r1, sp, 0xC strb r0, [r1, 0xB] adds r0, r1, 0 movs r1, 0xFF movs r2, 0 bl AddTextPrinter adds r0, r6, 0 movs r1, 0x1 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 ldrb r1, [r7] str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] mov r0, r10 str r0, [sp, 0x8] adds r0, r1, 0 adds r1, r6, 0 mov r2, r8 mov r3, r9 bl sub_81983AC add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8198AF8 thumb_func_start sub_8198C34 sub_8198C34: @ 8198C34 push {lr} sub sp, 0xC lsls r1, 24 lsrs r1, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 24 lsrs r3, 24 str r2, [sp] str r3, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] movs r3, 0x1 bl sub_8198AF8 add sp, 0xC pop {r0} bx r0 thumb_func_end sub_8198C34 thumb_func_start sub_8198C58 sub_8198C58: @ 8198C58 push {r4,lr} bl ProcessMenuInputNoWrapAround lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _08198C6E bl sub_8198C78 _08198C6E: adds r0, r4, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_8198C58 thumb_func_start sub_8198C78 sub_8198C78: @ 8198C78 push {r4,lr} ldr r4, =gUnknown_0203CD9F ldrb r0, [r4] movs r1, 0x1 bl sub_8198070 ldrb r0, [r4] bl RemoveWindow pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_8198C78 thumb_func_start sub_8198C94 sub_8198C94: @ 8198C94 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, [sp, 0x40] ldr r5, [sp, 0x44] ldr r6, [sp, 0x48] ldr r7, [sp, 0x4C] mov r8, r7 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x18] lsls r5, 24 lsrs r5, 24 str r5, [sp, 0x1C] lsls r6, 24 lsrs r6, 24 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r5, 0 cmp r5, r9 bcs _08198D3A _08198CE0: movs r4, 0 adds r1, r5, 0x1 mov r8, r1 cmp r4, r6 bcs _08198D30 ldr r7, [sp, 0x1C] adds r0, r7, 0 muls r0, r5 ldr r1, [sp, 0x14] adds r0, r1, r0 lsls r0, 24 lsrs r7, r0, 24 _08198CF8: adds r0, r5, 0 muls r0, r6 adds r0, r4 lsls r0, 3 ldr r1, [sp, 0x50] adds r0, r1 ldr r2, [r0] ldr r0, [sp, 0x18] adds r3, r0, 0 muls r3, r4 ldr r1, [sp, 0x10] adds r3, r1, r3 lsls r3, 24 lsrs r3, 24 str r7, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] mov r0, r10 ldr r1, [sp, 0xC] bl PrintTextOnWindow adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _08198CF8 _08198D30: mov r7, r8 lsls r0, r7, 24 lsrs r5, r0, 24 cmp r5, r9 bcc _08198CE0 _08198D3A: mov r0, r10 movs r1, 0x2 bl CopyWindowToVram add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8198C94 thumb_func_start sub_8198D54 sub_8198D54: @ 8198D54 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x18 mov r9, r0 mov r8, r1 adds r4, r2, 0 adds r5, r3, 0 ldr r6, [sp, 0x34] ldr r3, [sp, 0x38] ldr r7, [sp, 0x3C] lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 movs r1, 0 str r3, [sp, 0x14] bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] ldr r3, [sp, 0x14] str r3, [sp, 0xC] str r7, [sp, 0x10] mov r0, r9 mov r1, r8 movs r3, 0 bl sub_8198C94 add sp, 0x18 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8198D54 thumb_func_start sub_8198DBC sub_8198DBC: @ 8198DBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 ldr r4, [sp, 0x40] ldr r5, [sp, 0x44] ldr r6, [sp, 0x48] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x14] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x18] lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x1C] lsls r5, 24 lsrs r5, 24 mov r8, r5 lsls r6, 24 lsrs r6, 24 mov r10, r6 mov r0, sp ldrb r1, [r0, 0x10] strb r1, [r0, 0x4] strb r7, [r0, 0x5] adds r0, r7, 0 movs r1, 0x5 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xC] movs r5, 0xF adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] adds r0, r7, 0 movs r1, 0x6 bl GetFontAttribute mov r3, sp adds r1, r5, 0 ands r1, r0 ldrb r2, [r3, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xD] adds r0, r7, 0 movs r1, 0x7 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xD] adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] adds r0, r7, 0 movs r1, 0x4 bl GetFontAttribute mov r1, sp ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] adds r0, r7, 0 movs r1, 0x2 bl GetFontAttribute mov r1, sp strb r0, [r1, 0xA] adds r0, r7, 0 movs r1, 0x3 bl GetFontAttribute mov r1, sp strb r0, [r1, 0xB] movs r6, 0 cmp r6, r10 bcs _08198EDE _08198E7A: movs r5, 0 adds r2, r6, 0x1 mov r9, r2 cmp r5, r8 bcs _08198ED4 mov r4, sp _08198E86: mov r0, r8 muls r0, r6 adds r0, r5 ldr r1, [sp, 0x50] adds r0, r1, r0 ldrb r0, [r0] lsls r0, 3 ldr r2, [sp, 0x4C] adds r0, r2 ldr r0, [r0] str r0, [sp] ldr r1, [sp, 0x1C] adds r0, r1, 0 muls r0, r5 ldr r2, [sp, 0x14] adds r0, r2, r0 strb r0, [r4, 0x6] adds r0, r7, 0 movs r1, 0x1 bl GetFontAttribute adds r1, r6, 0 muls r1, r0 ldr r0, [sp, 0x18] adds r1, r0, r1 strb r1, [r4, 0x7] ldrb r0, [r4, 0x6] strb r0, [r4, 0x8] strb r1, [r4, 0x9] mov r0, sp movs r1, 0xFF movs r2, 0 bl AddTextPrinter adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r8 bcc _08198E86 _08198ED4: mov r1, r9 lsls r0, r1, 24 lsrs r6, r0, 24 cmp r6, r10 bcc _08198E7A _08198EDE: ldr r0, [sp, 0x10] movs r1, 0x2 bl CopyWindowToVram add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8198DBC thumb_func_start sub_8198EF8 sub_8198EF8: @ 8198EF8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 mov r8, r0 adds r3, r1, 0 adds r4, r2, 0 ldr r5, [sp, 0x30] ldr r6, [sp, 0x34] ldr r7, [sp, 0x38] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 adds r0, r3, 0 movs r1, 0 str r3, [sp, 0x14] bl GetFontAttribute adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 str r4, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] str r7, [sp, 0xC] ldr r0, [sp, 0x3C] str r0, [sp, 0x10] mov r0, r8 ldr r3, [sp, 0x14] adds r1, r3, 0 movs r3, 0 bl sub_8198DBC add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8198EF8 thumb_func_start sub_8198F58 sub_8198F58: @ 8198F58 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r4, [sp, 0x20] mov r12, r4 ldr r4, [sp, 0x24] mov r8, r4 ldr r4, [sp, 0x28] mov r9, r4 ldr r4, [sp, 0x2C] mov r10, r4 ldr r4, [sp, 0x30] ldr r5, [sp, 0x34] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r7, r5, 24 ldr r5, =gUnknown_0203CD90 movs r6, 0 strb r2, [r5] strb r3, [r5, 0x1] strb r6, [r5, 0x3] subs r4, 0x1 strb r4, [r5, 0x4] strb r0, [r5, 0x5] strb r1, [r5, 0x6] mov r0, r12 strb r0, [r5, 0x7] mov r4, r8 strb r4, [r5, 0x8] mov r0, r9 strb r0, [r5, 0x9] mov r4, r10 strb r4, [r5, 0xA] cmp r7, 0 blt _08198FAC movs r0, 0x4 ldrsb r0, [r5, r0] cmp r7, r0 ble _08198FB4 _08198FAC: strb r6, [r5, 0x2] b _08198FB6 .pool _08198FB4: strb r7, [r5, 0x2] _08198FB6: movs r0, 0 movs r1, 0 bl sub_8199134 ldr r0, =gUnknown_0203CD90 ldrb r0, [r0, 0x2] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8198F58 thumb_func_start sub_8198FD4 sub_8198FD4: @ 8198FD4 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x20 mov r9, r0 mov r8, r1 mov r10, r2 ldr r6, [sp, 0x3C] ldr r4, [sp, 0x40] ldr r5, [sp, 0x44] ldr r2, [sp, 0x48] lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r0, r8 lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r10 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r3, 24 lsrs r3, 24 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r2, 24 lsrs r2, 24 mov r0, r8 movs r1, 0x1 str r2, [sp, 0x18] str r3, [sp, 0x1C] bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 muls r1, r5 lsls r1, 24 lsrs r1, 24 str r6, [sp] str r0, [sp, 0x4] str r4, [sp, 0x8] str r5, [sp, 0xC] str r1, [sp, 0x10] ldr r2, [sp, 0x18] str r2, [sp, 0x14] mov r0, r9 mov r1, r8 mov r2, r10 ldr r3, [sp, 0x1C] bl sub_8198F58 lsls r0, 24 lsrs r0, 24 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8198FD4 thumb_func_start sub_8199060 sub_8199060: @ 8199060 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r8, r0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, r1, 24 lsrs r7, r0, 24 ldr r5, =gUnknown_0203CD90 ldrb r0, [r5, 0x6] movs r1, 0 bl GetMenuCursorDimensionByFont mov r9, r0 mov r1, r9 lsls r1, 24 lsrs r1, 24 mov r9, r1 ldrb r0, [r5, 0x6] movs r1, 0x1 bl GetMenuCursorDimensionByFont adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r5, 0x9] mov r10, r0 mov r0, r8 mov r1, r10 bl __umodsi3 ldrb r1, [r5, 0x7] adds r4, r1, 0 muls r4, r0 ldrb r1, [r5] adds r4, r1 lsls r4, 24 lsrs r4, 24 mov r0, r8 mov r1, r10 bl __udivsi3 ldrb r1, [r5, 0x8] adds r3, r1, 0 muls r3, r0 ldrb r0, [r5, 0x1] adds r3, r0 lsls r3, 24 lsrs r3, 24 ldrb r0, [r5, 0x5] mov r1, r9 str r1, [sp] str r6, [sp, 0x4] movs r1, 0x11 adds r2, r4, 0 bl FillWindowPixelRect ldrb r6, [r5, 0x9] adds r0, r7, 0 adds r1, r6, 0 bl __umodsi3 ldrb r1, [r5, 0x7] adds r4, r1, 0 muls r4, r0 ldrb r0, [r5] adds r4, r0 lsls r4, 24 lsrs r4, 24 adds r0, r7, 0 adds r1, r6, 0 bl __udivsi3 ldrb r1, [r5, 0x8] adds r3, r1, 0 muls r3, r0 ldrb r1, [r5, 0x1] adds r3, r1 lsls r3, 24 lsrs r3, 24 ldrb r0, [r5, 0x5] ldrb r1, [r5, 0x6] ldr r2, =gUnknown_085EE498 str r3, [sp] movs r3, 0 str r3, [sp, 0x4] str r3, [sp, 0x8] adds r3, r4, 0 bl PrintTextOnWindow add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8199060 thumb_func_start sub_8199134 sub_8199134: @ 8199134 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r1, 24 lsrs r1, 24 mov r9, r1 ldr r1, =gUnknown_0203CD90 ldrb r2, [r1, 0x2] mov r8, r2 lsls r0, 24 asrs r6, r0, 24 adds r5, r1, 0 cmp r6, 0 beq _0819918A movs r7, 0x2 ldrsb r7, [r5, r7] ldrb r4, [r5, 0x9] adds r0, r7, 0 adds r1, r4, 0 bl __modsi3 adds r0, r6 cmp r0, 0 bge _08199174 adds r0, r4, 0 adds r0, 0xFF add r0, r8 b _08199188 .pool _08199174: cmp r0, r4 blt _08199184 adds r0, r7, 0 adds r1, r4, 0 bl __divsi3 muls r0, r4 b _08199188 _08199184: mov r1, r8 adds r0, r6, r1 _08199188: strb r0, [r5, 0x2] _0819918A: mov r2, r9 lsls r0, r2, 24 asrs r6, r0, 24 cmp r6, 0 beq _081991CE movs r0, 0x2 ldrsb r0, [r5, r0] ldrb r4, [r5, 0x9] adds r1, r4, 0 bl __divsi3 adds r1, r0, r6 cmp r1, 0 bge _081991B2 ldrb r0, [r5, 0xA] subs r0, 0x1 muls r0, r4 ldrb r1, [r5, 0x2] adds r0, r1 b _081991CC _081991B2: ldrb r0, [r5, 0xA] cmp r1, r0 blt _081991C4 subs r0, 0x1 adds r1, r4, 0 muls r1, r0 ldrb r0, [r5, 0x2] subs r0, r1 b _081991CC _081991C4: adds r0, r4, 0 muls r0, r6 ldrb r2, [r5, 0x2] adds r0, r2 _081991CC: strb r0, [r5, 0x2] _081991CE: movs r1, 0x2 ldrsb r1, [r5, r1] movs r0, 0x4 ldrsb r0, [r5, r0] cmp r1, r0 bgt _081991E4 ldrb r1, [r5, 0x2] mov r0, r8 bl sub_8199060 b _081991E8 _081991E4: mov r0, r8 strb r0, [r5, 0x2] _081991E8: ldrb r0, [r5, 0x2] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_8199134 thumb_func_start sub_81991F8 sub_81991F8: @ 81991F8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r1, 24 lsrs r1, 24 mov r8, r1 ldr r1, =gUnknown_0203CD90 ldrb r7, [r1, 0x2] lsls r0, 24 asrs r4, r0, 24 adds r5, r1, 0 cmp r4, 0 beq _0819922C movs r0, 0x2 ldrsb r0, [r5, r0] ldrb r6, [r5, 0x9] adds r1, r6, 0 bl __modsi3 adds r0, r4 cmp r0, 0 blt _0819922C cmp r0, r6 bge _0819922C adds r0, r4, r7 strb r0, [r5, 0x2] _0819922C: mov r1, r8 lsls r0, r1, 24 asrs r4, r0, 24 cmp r4, 0 beq _08199258 movs r0, 0x2 ldrsb r0, [r5, r0] ldrb r6, [r5, 0x9] adds r1, r6, 0 bl __divsi3 adds r0, r4 cmp r0, 0 blt _08199258 ldrb r1, [r5, 0xA] cmp r0, r1 bge _08199258 adds r0, r6, 0 muls r0, r4 ldrb r1, [r5, 0x2] adds r0, r1 strb r0, [r5, 0x2] _08199258: movs r1, 0x2 ldrsb r1, [r5, r1] movs r0, 0x4 ldrsb r0, [r5, r0] cmp r1, r0 bgt _08199274 ldrb r1, [r5, 0x2] adds r0, r7, 0 bl sub_8199060 b _08199276 .pool _08199274: strb r7, [r5, 0x2] _08199276: ldrb r0, [r5, 0x2] pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81991F8 thumb_func_start sub_8199284 sub_8199284: @ 8199284 push {r4,lr} ldr r4, =gMain ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081992AC movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CD90 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 b _0819932C .pool _081992AC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081992BA movs r0, 0x1 negs r0, r0 b _0819932C _081992BA: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081992D0 movs r0, 0x5 bl PlaySE movs r1, 0x1 negs r1, r1 movs r0, 0 b _08199324 _081992D0: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081992E4 movs r0, 0x5 bl PlaySE movs r0, 0 movs r1, 0x1 b _08199324 _081992E4: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _081992F8 bl GetLRKeysState lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08199304 _081992F8: movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _08199322 _08199304: ldrh r1, [r4, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _0819931A bl GetLRKeysState lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08199328 _0819931A: movs r0, 0x5 bl PlaySE movs r0, 0x1 _08199322: movs r1, 0 _08199324: bl sub_8199134 _08199328: movs r0, 0x2 negs r0, r0 _0819932C: pop {r4} pop {r1} bx r1 thumb_func_end sub_8199284 thumb_func_start sub_8199334 sub_8199334: @ 8199334 push {r4-r6,lr} ldr r5, =gUnknown_0203CD90 ldrb r4, [r5, 0x2] ldr r6, =gMain ldrh r1, [r6, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0819935C movs r0, 0x5 bl PlaySE movs r0, 0x2 ldrsb r0, [r5, r0] b _081993D2 .pool _0819935C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819936A movs r0, 0x1 negs r0, r0 b _081993D2 _0819936A: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0819937A movs r1, 0x1 negs r1, r1 movs r0, 0 b _081993BC _0819937A: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _08199388 movs r0, 0 movs r1, 0x1 b _081993BC _08199388: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _0819939C bl GetLRKeysState lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081993A2 _0819939C: movs r0, 0x1 negs r0, r0 b _081993BA _081993A2: ldrh r1, [r6, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081993B8 bl GetLRKeysState lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _081993CE _081993B8: movs r0, 0x1 _081993BA: movs r1, 0 _081993BC: bl sub_81991F8 lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _081993CE movs r0, 0x5 bl PlaySE _081993CE: movs r0, 0x2 negs r0, r0 _081993D2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8199334 thumb_func_start sub_81993D8 sub_81993D8: @ 81993D8 push {r4,r5,lr} ldr r4, =gMain ldrh r1, [r4, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _08199400 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CD90 ldrb r0, [r0, 0x2] lsls r0, 24 asrs r0, 24 b _0819947C .pool _08199400: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819940E movs r0, 0x1 negs r0, r0 b _0819947C _0819940E: ldrh r0, [r4, 0x30] movs r5, 0xF0 adds r1, r5, 0 ands r1, r0 cmp r1, 0x40 bne _08199428 movs r0, 0x5 bl PlaySE movs r1, 0x1 negs r1, r1 movs r0, 0 b _08199474 _08199428: cmp r1, 0x80 bne _08199438 movs r0, 0x5 bl PlaySE movs r0, 0 movs r1, 0x1 b _08199474 _08199438: cmp r1, 0x20 beq _08199448 bl sub_812210C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _08199454 _08199448: movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _08199472 _08199454: ldrh r1, [r4, 0x30] adds r0, r5, 0 ands r0, r1 cmp r0, 0x10 beq _0819946A bl sub_812210C lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _08199478 _0819946A: movs r0, 0x5 bl PlaySE movs r0, 0x1 _08199472: movs r1, 0 _08199474: bl sub_8199134 _08199478: movs r0, 0x2 negs r0, r0 _0819947C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81993D8 thumb_func_start sub_8199484 sub_8199484: @ 8199484 push {r4-r6,lr} ldr r6, =gUnknown_0203CD90 ldrb r4, [r6, 0x2] ldr r5, =gMain ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081994AC movs r0, 0x5 bl PlaySE movs r0, 0x2 ldrsb r0, [r6, r0] b _0819951E .pool _081994AC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081994BA movs r0, 0x1 negs r0, r0 b _0819951E _081994BA: ldrh r0, [r5, 0x30] movs r6, 0xF0 adds r1, r6, 0 ands r1, r0 cmp r1, 0x40 bne _081994CE movs r1, 0x1 negs r1, r1 movs r0, 0 b _08199508 _081994CE: cmp r1, 0x80 bne _081994D8 movs r0, 0 movs r1, 0x1 b _08199508 _081994D8: cmp r1, 0x20 beq _081994E8 bl sub_812210C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081994EE _081994E8: movs r0, 0x1 negs r0, r0 b _08199506 _081994EE: ldrh r1, [r5, 0x30] adds r0, r6, 0 ands r0, r1 cmp r0, 0x10 beq _08199504 bl sub_812210C lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _0819951A _08199504: movs r0, 0x1 _08199506: movs r1, 0 _08199508: bl sub_81991F8 lsls r0, 24 lsrs r0, 24 cmp r4, r0 beq _0819951A movs r0, 0x5 bl PlaySE _0819951A: movs r0, 0x2 negs r0, r0 _0819951E: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_8199484 thumb_func_start InitMenuInUpperLeftCorner @ int InitMenuInUpperLeftCorner(s8 windowId, s8 numItems, u8 initialCursorPos, bool doNotPlaySoundWhenAPressed) InitMenuInUpperLeftCorner: @ 8199524 push {r4-r6,lr} lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r5, r2, 24 ldr r4, =gUnknown_0203CD90 movs r6, 0 strb r6, [r4] movs r2, 0x1 strb r2, [r4, 0x1] strb r6, [r4, 0x3] subs r1, 0x1 strb r1, [r4, 0x4] strb r0, [r4, 0x5] strb r2, [r4, 0x6] movs r0, 0x10 strb r0, [r4, 0x8] strb r3, [r4, 0xB] cmp r5, 0 blt _08199554 movs r0, 0x4 ldrsb r0, [r4, r0] cmp r5, r0 ble _0819955C _08199554: strb r6, [r4, 0x2] b _0819955E .pool _0819955C: strb r5, [r4, 0x2] _0819955E: movs r0, 0 bl MoveMenuCursor lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 thumb_func_end InitMenuInUpperLeftCorner thumb_func_start InitMenuInUpperLeftCornerPlaySoundWhenAPressed InitMenuInUpperLeftCornerPlaySoundWhenAPressed: @ 8199570 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 movs r3, 0 bl InitMenuInUpperLeftCorner lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end InitMenuInUpperLeftCornerPlaySoundWhenAPressed thumb_func_start PrintMenuTable PrintMenuTable: @ 819958C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r7, r1, 24 movs r5, 0 cmp r5, r7 bcs _081995D0 movs r6, 0x80 lsls r6, 17 adds r4, r2, 0 _081995AA: ldr r2, [r4] lsrs r0, r6, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] mov r0, r8 movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow movs r0, 0x80 lsls r0, 21 adds r6, r0 adds r4, 0x8 adds r5, 0x1 cmp r5, r7 bcc _081995AA _081995D0: mov r0, r8 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end PrintMenuTable thumb_func_start sub_81995E4 sub_81995E4: @ 81995E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 mov r9, r2 mov r8, r3 lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 mov r0, sp movs r1, 0 mov r10, r1 strb r6, [r0, 0x4] mov r1, sp movs r0, 0x1 strb r0, [r1, 0x5] movs r1, 0x5 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xC] movs r5, 0xF adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] movs r0, 0x1 movs r1, 0x6 bl GetFontAttribute mov r3, sp adds r1, r5, 0 ands r1, r0 ldrb r2, [r3, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xD] movs r0, 0x1 movs r1, 0x7 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xD] adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] movs r0, 0x1 movs r1, 0x4 bl GetFontAttribute mov r1, sp ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] mov r0, sp mov r1, r10 strb r1, [r0, 0xA] strb r1, [r0, 0xB] movs r1, 0x8 strb r1, [r0, 0x6] strb r1, [r0, 0x8] movs r4, 0 cmp r4, r7 bcs _081996A6 mov r5, sp _0819967C: mov r1, r8 adds r0, r1, r4 ldrb r0, [r0] lsls r0, 3 add r0, r9 ldr r0, [r0] str r0, [sp] lsls r0, r4, 4 adds r0, 0x1 strb r0, [r5, 0x7] strb r0, [r5, 0x9] mov r0, sp movs r1, 0xFF movs r2, 0 bl AddTextPrinter adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _0819967C _081996A6: adds r0, r6, 0 movs r1, 0x2 bl CopyWindowToVram add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81995E4 thumb_func_start CreateYesNoMenu @ void CreateYesNoMenu(struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos) CreateYesNoMenu: @ 81996C0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 ldr r1, =gUnknown_0203CD9F mov r8, r1 bl AddWindow mov r2, r8 strb r0, [r2] ldrb r0, [r2] movs r1, 0x1 adds r2, r4, 0 adds r3, r5, 0 bl SetWindowBorderStyle ldr r0, =gUnknown_085EE491 str r0, [sp] mov r1, sp mov r2, r8 ldrb r0, [r2] movs r2, 0 mov r9, r2 strb r0, [r1, 0x4] mov r0, sp movs r2, 0x1 strb r2, [r0, 0x5] movs r0, 0x8 strb r0, [r1, 0x6] mov r0, sp strb r2, [r0, 0x7] ldrb r0, [r0, 0x6] strb r0, [r1, 0x8] mov r0, sp ldrb r0, [r0, 0x7] strb r0, [r1, 0x9] movs r0, 0x1 movs r1, 0x5 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xC] movs r5, 0xF adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] movs r0, 0x1 movs r1, 0x6 bl GetFontAttribute mov r3, sp adds r1, r5, 0 ands r1, r0 ldrb r2, [r3, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xD] movs r0, 0x1 movs r1, 0x7 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xD] adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] movs r0, 0x1 movs r1, 0x4 bl GetFontAttribute mov r1, sp ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] mov r0, sp mov r1, r9 strb r1, [r0, 0xA] strb r1, [r0, 0xB] movs r1, 0xFF movs r2, 0 bl AddTextPrinter mov r2, r8 ldrb r0, [r2] movs r1, 0x2 adds r2, r6, 0 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end CreateYesNoMenu thumb_func_start sub_81997AC sub_81997AC: @ 81997AC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 mov r10, r0 lsls r1, 24 lsrs r1, 24 str r1, [sp, 0xC] lsls r2, 24 lsrs r6, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x10] movs r7, 0 cmp r7, r3 bcs _08199824 _081997D4: movs r4, 0 adds r0, r7, 0x1 mov r9, r0 cmp r4, r6 bcs _0819981C lsls r0, r7, 4 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0x80 lsls r5, 20 _081997EC: adds r0, r7, 0 muls r0, r6 adds r0, r4 lsls r0, 3 ldr r1, [sp, 0x34] adds r0, r1 ldr r2, [r0] lsrs r3, r5, 24 mov r0, r8 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] mov r0, r10 movs r1, 0x1 bl PrintTextOnWindow ldr r1, [sp, 0xC] lsls r0, r1, 24 adds r5, r0 adds r4, 0x1 cmp r4, r6 bcc _081997EC _0819981C: mov r7, r9 ldr r4, [sp, 0x10] cmp r7, r4 bcc _081997D4 _08199824: mov r0, r10 movs r1, 0x2 bl CopyWindowToVram add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81997AC thumb_func_start sub_819983C sub_819983C: @ 819983C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x14] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r10, r3 mov r0, sp movs r6, 0 ldrb r1, [r0, 0x10] strb r1, [r0, 0x4] mov r1, sp movs r0, 0x1 strb r0, [r1, 0x5] movs r1, 0x5 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xC] movs r5, 0xF adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] movs r0, 0x1 movs r1, 0x6 bl GetFontAttribute mov r3, sp adds r1, r5, 0 ands r1, r0 ldrb r2, [r3, 0xD] movs r4, 0x10 negs r4, r4 adds r0, r4, 0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0xD] movs r0, 0x1 movs r1, 0x7 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xD] adds r1, r5, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] movs r0, 0x1 movs r1, 0x4 bl GetFontAttribute mov r1, sp ands r5, r0 ldrb r0, [r1, 0xC] ands r4, r0 orrs r4, r5 strb r4, [r1, 0xC] mov r0, sp strb r6, [r0, 0xA] strb r6, [r0, 0xB] movs r7, 0 cmp r7, r10 bcs _0819992A _081998D6: movs r5, 0 adds r2, r7, 0x1 mov r9, r2 cmp r5, r8 bcs _08199920 mov r4, sp lsls r0, r7, 4 adds r6, r0, 0x1 _081998E6: mov r0, r8 muls r0, r7 adds r0, r5 ldr r1, [sp, 0x3C] adds r0, r1, r0 ldrb r0, [r0] lsls r0, 3 ldr r2, [sp, 0x38] adds r0, r2 ldr r0, [r0] str r0, [sp] ldr r1, [sp, 0x14] adds r0, r1, 0 muls r0, r5 adds r0, 0x8 strb r0, [r4, 0x6] strb r6, [r4, 0x7] strb r0, [r4, 0x8] strb r6, [r4, 0x9] mov r0, sp movs r1, 0xFF movs r2, 0 bl AddTextPrinter adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r8 bcc _081998E6 _08199920: mov r2, r9 lsls r0, r2, 24 lsrs r7, r0, 24 cmp r7, r10 bcc _081998D6 _0819992A: ldr r0, [sp, 0x10] movs r1, 0x2 bl CopyWindowToVram add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819983C thumb_func_start sub_8199944 sub_8199944: @ 8199944 push {r4-r7,lr} ldr r4, [sp, 0x14] lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r7, r4, 24 ldr r6, =gUnknown_0203CD90 movs r4, 0 mov r12, r4 mov r4, r12 strb r4, [r6] movs r5, 0x1 strb r5, [r6, 0x1] strb r4, [r6, 0x3] adds r4, r2, 0 muls r4, r3 subs r4, 0x1 strb r4, [r6, 0x4] strb r0, [r6, 0x5] strb r5, [r6, 0x6] strb r1, [r6, 0x7] movs r0, 0x10 strb r0, [r6, 0x8] strb r2, [r6, 0x9] strb r3, [r6, 0xA] cmp r7, 0 blt _08199986 movs r0, 0x4 ldrsb r0, [r6, r0] cmp r7, r0 ble _08199990 _08199986: mov r0, r12 strb r0, [r6, 0x2] b _08199992 .pool _08199990: strb r7, [r6, 0x2] _08199992: movs r0, 0 movs r1, 0 bl sub_8199134 ldr r0, =gUnknown_0203CD90 ldrb r0, [r0, 0x2] pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_8199944 thumb_func_start clear_scheduled_bg_copies_to_vram @ void clear_scheduled_bg_copies_to_vram() clear_scheduled_bg_copies_to_vram: @ 81999A8 push {lr} ldr r0, =gUnknown_0203CDA4 movs r1, 0 movs r2, 0x4 bl memset pop {r0} bx r0 .pool thumb_func_end clear_scheduled_bg_copies_to_vram thumb_func_start schedule_bg_copy_tilemap_to_vram @ void schedule_bg_copy_tilemap_to_vram(u8 bg_id) schedule_bg_copy_tilemap_to_vram: @ 81999BC lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CDA4 adds r0, r1 movs r1, 0x1 strb r1, [r0] bx lr .pool thumb_func_end schedule_bg_copy_tilemap_to_vram thumb_func_start do_scheduled_bg_tilemap_copies_to_vram @ void do_scheduled_bg_tilemap_copies_to_vram() do_scheduled_bg_tilemap_copies_to_vram: @ 81999D0 push {r4,lr} ldr r4, =gUnknown_0203CDA4 ldrb r0, [r4] cmp r0, 0x1 bne _081999E4 movs r0, 0 bl CopyBgTilemapBufferToVram movs r0, 0 strb r0, [r4] _081999E4: ldrb r0, [r4, 0x1] cmp r0, 0x1 bne _081999F4 movs r0, 0x1 bl CopyBgTilemapBufferToVram movs r0, 0 strb r0, [r4, 0x1] _081999F4: ldrb r0, [r4, 0x2] cmp r0, 0x1 bne _08199A04 movs r0, 0x2 bl CopyBgTilemapBufferToVram movs r0, 0 strb r0, [r4, 0x2] _08199A04: ldrb r0, [r4, 0x3] cmp r0, 0x1 bne _08199A14 movs r0, 0x3 bl CopyBgTilemapBufferToVram movs r0, 0 strb r0, [r4, 0x3] _08199A14: pop {r4} pop {r0} bx r0 .pool thumb_func_end do_scheduled_bg_tilemap_copies_to_vram thumb_func_start reset_temp_tile_data_buffers @ void reset_temp_tile_data_buffers() reset_temp_tile_data_buffers: @ 8199A20 push {lr} ldr r3, =gUnknown_0203CDA8 ldr r1, =gUnknown_0203CDAC movs r2, 0 adds r0, r1, 0 adds r0, 0x7C _08199A2C: str r2, [r0] subs r0, 0x4 cmp r0, r1 bge _08199A2C movs r0, 0 strh r0, [r3] pop {r0} bx r0 .pool thumb_func_end reset_temp_tile_data_buffers thumb_func_start free_temp_tile_data_buffers_if_possible free_temp_tile_data_buffers_if_possible: @ 8199A44 push {r4-r6,lr} bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _08199A88 ldr r1, =gUnknown_0203CDA8 ldrh r0, [r1] cmp r0, 0 beq _08199A7C movs r4, 0 ldrh r1, [r1] cmp r4, r1 bge _08199A76 ldr r5, =gUnknown_0203CDAC movs r6, 0 _08199A64: ldr r0, [r5] bl Free stm r5!, {r6} adds r4, 0x1 ldr r0, =gUnknown_0203CDA8 ldrh r0, [r0] cmp r4, r0 blt _08199A64 _08199A76: ldr r1, =gUnknown_0203CDA8 movs r0, 0 strh r0, [r1] _08199A7C: movs r0, 0 b _08199A8A .pool _08199A88: movs r0, 0x1 _08199A8A: pop {r4-r6} pop {r1} bx r1 thumb_func_end free_temp_tile_data_buffers_if_possible thumb_func_start decompress_and_copy_tile_data_to_vram @ int decompress_and_copy_tile_data_to_vram(u8 bg_id, int src, int size, u16 offset, u8 mode) decompress_and_copy_tile_data_to_vram: @ 8199A90 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r4, r1, 0 adds r5, r2, 0 ldr r1, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r3, 16 lsrs r3, 16 mov r9, r3 lsls r1, 24 lsrs r7, r1, 24 ldr r6, =gUnknown_0203CDA8 ldrh r0, [r6] cmp r0, 0x1F bhi _08199AF8 adds r0, r4, 0 add r1, sp, 0x4 bl malloc_and_decompress adds r4, r0, 0 cmp r5, 0 bne _08199AC8 ldr r5, [sp, 0x4] _08199AC8: cmp r4, 0 beq _08199AEC lsls r2, r5, 16 lsrs r2, 16 str r7, [sp] mov r0, r8 adds r1, r4, 0 mov r3, r9 bl copy_decompressed_tile_data_to_vram ldr r2, =gUnknown_0203CDAC ldrh r0, [r6] adds r1, r0, 0x1 strh r1, [r6] lsls r0, 16 lsrs r0, 14 adds r0, r2 str r4, [r0] _08199AEC: adds r0, r4, 0 b _08199AFA .pool _08199AF8: movs r0, 0 _08199AFA: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end decompress_and_copy_tile_data_to_vram thumb_func_start copy_decompressed_tile_data_to_vram_autofree @ void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, int src, u16 size, u16 offset, u8 mode) copy_decompressed_tile_data_to_vram_autofree: @ 8199B08 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r5, r2, 0 ldr r2, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r3, 16 lsrs r3, 16 mov r9, r3 lsls r2, 24 lsrs r7, r2, 24 adds r0, r1, 0 add r1, sp, 0x4 bl malloc_and_decompress adds r6, r0, 0 cmp r5, 0 bne _08199B36 ldr r5, [sp, 0x4] _08199B36: cmp r6, 0 beq _08199B6E ldr r0, =task_free_buf_after_copying_tile_data_to_vram movs r1, 0 bl CreateTask adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r2, r5, 16 lsrs r2, 16 str r7, [sp] mov r0, r8 adds r1, r6, 0 mov r3, r9 bl copy_decompressed_tile_data_to_vram ldr r2, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r2 strh r0, [r1, 0x8] adds r0, r4, 0 movs r1, 0x1 adds r2, r6, 0 bl SetWordTaskArg _08199B6E: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end copy_decompressed_tile_data_to_vram_autofree thumb_func_start task_free_buf_after_copying_tile_data_to_vram @ void task_free_buf_after_copying_tile_data_to_vram(int task_id) task_free_buf_after_copying_tile_data_to_vram: @ 8199B84 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0x8 ldrsh r0, [r0, r1] bl CheckForSpaceForDma3Request lsls r0, 16 cmp r0, 0 bne _08199BB4 adds r0, r4, 0 movs r1, 0x1 bl GetWordTaskArg bl Free adds r0, r4, 0 bl DestroyTask _08199BB4: pop {r4} pop {r0} bx r0 .pool thumb_func_end task_free_buf_after_copying_tile_data_to_vram thumb_func_start malloc_and_decompress @ void *malloc_and_decompress(void *src, int *size) malloc_and_decompress: @ 8199BC0 push {r4,r5,lr} adds r5, r0, 0 ldrb r0, [r5, 0x1] strb r0, [r1] ldrb r0, [r5, 0x2] strb r0, [r1, 0x1] ldrb r0, [r5, 0x3] strb r0, [r1, 0x2] movs r0, 0 strb r0, [r1, 0x3] ldr r0, [r1] bl Alloc adds r4, r0, 0 cmp r4, 0 beq _08199BE8 adds r0, r5, 0 adds r1, r4, 0 bl LZ77UnCompWram _08199BE8: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end malloc_and_decompress thumb_func_start copy_decompressed_tile_data_to_vram @ s16 copy_decompressed_tile_data_to_vram(u8 bg_id, int src, u16 size, u16 offset, u8 mode) copy_decompressed_tile_data_to_vram: @ 8199BF0 push {r4,lr} adds r4, r1, 0 ldr r1, [sp, 0x8] lsls r0, 24 lsrs r0, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 lsls r1, 24 lsrs r1, 24 cmp r1, 0 beq _08199C18 cmp r1, 0x1 beq _08199C20 ldr r0, =0x0000ffff b _08199C2A .pool _08199C18: adds r1, r4, 0 bl LoadBgTiles b _08199C26 _08199C20: adds r1, r4, 0 bl LoadBgTilemap _08199C26: lsls r0, 16 lsrs r0, 16 _08199C2A: pop {r4} pop {r1} bx r1 thumb_func_end copy_decompressed_tile_data_to_vram thumb_func_start sub_8199C30 sub_8199C30: @ 8199C30 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r5, r2, 0 ldr r4, [sp, 0x28] ldr r2, [sp, 0x2C] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 str r1, [sp] lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x4] lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 mov r10, r2 bl GetBgTilemapBuffer mov r8, r0 adds r0, r5, r4 cmp r5, r0 bge _08199CA8 mov r9, r0 _08199C6E: ldr r3, [sp] ldr r1, [sp, 0x4] adds r0, r3, r1 adds r7, r5, 0x1 cmp r3, r0 bge _08199CA0 lsls r6, r5, 5 ldr r1, =0x00000fff mov r12, r1 mov r1, r10 lsls r5, r1, 12 adds r4, r0, 0 _08199C86: adds r1, r6, r3 lsls r1, 1 add r1, r8 ldrh r2, [r1] mov r0, r12 ands r0, r2 orrs r0, r5 strh r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r4 blt _08199C86 _08199CA0: lsls r0, r7, 24 lsrs r5, r0, 24 cmp r5, r9 blt _08199C6E _08199CA8: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8199C30 thumb_func_start sub_8199CBC sub_8199CBC: @ 8199CBC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r10, r1 ldr r1, [sp, 0x24] ldr r4, [sp, 0x28] lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r3, 24 str r3, [sp] lsls r1, 24 lsrs r5, r1, 24 lsls r4, 24 lsrs r4, 24 mov r8, r4 bl GetBgTilemapBuffer adds r7, r0, 0 movs r0, 0 cmp r0, r8 bcs _08199D2A _08199CF4: movs r2, 0 adds r6, r0, 0x1 cmp r2, r5 bcs _08199D22 adds r4, r0, 0 muls r4, r5 ldr r1, [sp] adds r0, r1 lsls r3, r0, 5 _08199D06: adds r1, r4, r2 lsls r1, 1 add r1, r10 adds r0, r3, r2 add r0, r9 lsls r0, 1 adds r0, r7 ldrh r0, [r0] strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r5 bcc _08199D06 _08199D22: lsls r0, r6, 24 lsrs r0, 24 cmp r0, r8 bcc _08199CF4 _08199D2A: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8199CBC thumb_func_start sub_8199D3C sub_8199D3C: @ 8199D3C push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 ldr r0, [sp, 0x14] adds r4, r2, 0 muls r4, r3 cmp r0, 0x1 bne _08199D64 adds r3, r6, 0 movs r2, 0 cmp r2, r4 bge _08199D8C _08199D54: adds r1, r3, r2 ldrb r0, [r1] adds r0, r5 strb r0, [r1] adds r2, 0x1 cmp r2, r4 blt _08199D54 b _08199D8C _08199D64: cmp r4, 0 ble _08199D8C movs r0, 0xFC lsls r0, 8 mov r12, r0 ldr r0, =0x000003ff adds r7, r0, 0 adds r3, r6, 0 adds r2, r4, 0 _08199D76: ldrh r0, [r3] mov r1, r12 ands r1, r0 adds r0, r5 ands r0, r7 orrs r1, r0 strh r1, [r3] adds r3, 0x2 subs r2, 0x1 cmp r2, 0 bne _08199D76 _08199D8C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_8199D3C thumb_func_start sub_8199D98 sub_8199D98: @ 8199D98 push {lr} movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY pop {r0} bx r0 thumb_func_end sub_8199D98 thumb_func_start sub_8199DF0 sub_8199DF0: @ 8199DF0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r8, r2 mov r9, r3 lsls r1, 24 lsrs r6, r1, 24 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0x4 bl GetBgAttribute lsls r0, 16 movs r7, 0x40 cmp r0, 0 bne _08199E16 movs r7, 0x20 _08199E16: adds r0, r5, 0 movs r1, 0x1 bl GetBgAttribute adds r4, r0, 0 adds r0, r5, 0 movs r1, 0xA bl GetBgAttribute lsls r4, 16 lsrs r4, 2 lsls r0, 16 lsrs r0, 16 add r0, r8 muls r0, r7 adds r4, r0 lsls r0, r6, 24 lsls r1, r6, 16 orrs r0, r1 lsls r1, r6, 8 orrs r0, r1 orrs r0, r6 movs r1, 0xC0 lsls r1, 19 adds r4, r1 mov r2, r9 muls r2, r7 lsls r2, 16 lsrs r2, 16 adds r1, r4, 0 movs r3, 0x1 bl RequestDma3Fill pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8199DF0 thumb_func_start box_print box_print: @ 8199E64 push {r4-r6,lr} sub sp, 0x10 adds r4, r1, 0 ldr r6, [sp, 0x20] ldr r5, [sp, 0x24] ldr r1, [sp, 0x28] lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 str r1, [sp] mov r1, sp strb r0, [r1, 0x4] mov r0, sp strb r4, [r0, 0x5] strb r2, [r0, 0x6] strb r3, [r0, 0x7] ldrb r0, [r0, 0x6] strb r0, [r1, 0x8] mov r0, sp ldrb r0, [r0, 0x7] strb r0, [r1, 0x9] adds r0, r4, 0 movs r1, 0x2 bl GetFontAttribute mov r1, sp strb r0, [r1, 0xA] adds r0, r4, 0 movs r1, 0x3 bl GetFontAttribute mov r1, sp strb r0, [r1, 0xB] mov r3, sp ldrb r2, [r3, 0xC] movs r1, 0x10 negs r1, r1 adds r0, r1, 0 ands r0, r2 strb r0, [r3, 0xC] mov r2, sp ldrb r0, [r6, 0x1] lsls r0, 4 movs r4, 0xF strb r0, [r2, 0xC] ldrb r2, [r6] adds r0, r4, 0 ands r0, r2 ldrb r2, [r3, 0xD] ands r1, r2 orrs r1, r0 strb r1, [r3, 0xD] mov r2, sp ldrb r0, [r6, 0x2] lsls r0, 4 ands r1, r4 orrs r1, r0 strb r1, [r2, 0xD] mov r0, sp adds r1, r5, 0 movs r2, 0 bl AddTextPrinter add sp, 0x10 pop {r4-r6} pop {r0} bx r0 thumb_func_end box_print thumb_func_start AddTextPrinterParametrized2 @ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, u8 speed, u8 *str) AddTextPrinterParametrized2: @ 8199EEC push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 adds r5, r1, 0 ldr r1, [sp, 0x28] mov r8, r1 ldr r1, [sp, 0x2C] mov r9, r1 ldr r6, [sp, 0x30] ldr r1, [sp, 0x34] ldr r4, [sp, 0x38] str r4, [sp] mov r4, sp strb r0, [r4, 0x4] mov r0, sp strb r5, [r0, 0x5] strb r2, [r0, 0x6] strb r3, [r0, 0x7] mov r2, sp ldrb r0, [r0, 0x6] strb r0, [r2, 0x8] mov r0, sp ldrb r0, [r0, 0x7] strb r0, [r2, 0x9] mov r0, sp mov r2, r8 strb r2, [r0, 0xA] mov r2, r9 strb r2, [r0, 0xB] ldrb r3, [r4, 0xC] movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r4, 0xC] mov r3, sp ldrb r0, [r6, 0x1] lsls r0, 4 movs r5, 0xF strb r0, [r3, 0xC] ldrb r3, [r6] adds r0, r5, 0 ands r0, r3 ldrb r3, [r4, 0xD] ands r2, r3 orrs r2, r0 strb r2, [r4, 0xD] mov r3, sp ldrb r0, [r6, 0x2] lsls r0, 4 ands r2, r5 orrs r2, r0 strb r2, [r3, 0xD] lsls r1, 24 lsrs r1, 24 mov r0, sp movs r2, 0 bl AddTextPrinter add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 thumb_func_end AddTextPrinterParametrized2 thumb_func_start sub_8199F74 sub_8199F74: @ 8199F74 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x10 adds r6, r1, 0 ldr r4, [sp, 0x2C] ldr r1, [sp, 0x30] mov r8, r1 ldr r7, [sp, 0x34] ldr r5, [sp, 0x38] ldr r1, [sp, 0x3C] mov r9, r1 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 mov r1, r8 lsls r1, 24 lsrs r1, 24 mov r8, r1 str r2, [sp] mov r1, sp strb r0, [r1, 0x4] mov r0, sp strb r6, [r0, 0x5] strb r3, [r0, 0x6] strb r4, [r0, 0x7] strb r3, [r0, 0x8] strb r4, [r0, 0x9] strb r5, [r0, 0xA] mov r1, r9 strb r1, [r0, 0xB] mov r2, sp ldrb r1, [r2, 0xC] movs r5, 0x10 negs r5, r5 adds r0, r5, 0 ands r0, r1 strb r0, [r2, 0xC] adds r0, r6, 0 movs r1, 0x5 bl GetFontAttribute mov r3, sp lsls r0, 4 ldrb r2, [r3, 0xC] movs r4, 0xF adds r1, r4, 0 ands r1, r2 orrs r1, r0 strb r1, [r3, 0xC] adds r0, r6, 0 movs r1, 0x6 bl GetFontAttribute mov r2, sp adds r1, r4, 0 ands r1, r0 ldrb r0, [r2, 0xD] ands r5, r0 orrs r5, r1 strb r5, [r2, 0xD] adds r0, r6, 0 movs r1, 0x7 bl GetFontAttribute mov r2, sp lsls r0, 4 ldrb r1, [r2, 0xD] ands r4, r1 orrs r4, r0 strb r4, [r2, 0xD] mov r0, sp mov r1, r8 adds r2, r7, 0 bl AddTextPrinter add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_8199F74 thumb_func_start sub_819A024 sub_819A024: @ 819A024 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 lsls r2, 16 lsrs r4, r2, 16 lsls r3, 16 lsrs r5, r3, 16 movs r2, 0 ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldrb r0, [r3] ldr r6, =gStringVar4 cmp r0, 0xFF beq _0819A04C _0819A042: adds r2, 0x1 adds r0, r3, r2 ldrb r0, [r0] cmp r0, 0xFF bne _0819A042 _0819A04C: adds r0, r6, 0 bl StringExpandPlaceholders lsls r3, r4, 24 lsrs r3, 24 lsls r0, r5, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r7, 0 movs r1, 0x1 adds r2, r6, 0 bl PrintTextOnWindow add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819A024 thumb_func_start sub_819A080 sub_819A080: @ 819A080 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 str r0, [sp] str r1, [sp, 0x4] ldr r0, [sp, 0x48] ldr r4, [sp, 0x4C] ldr r1, [sp, 0x50] ldr r5, [sp, 0x54] lsls r2, 16 lsrs r2, 16 str r2, [sp, 0x8] lsls r3, 16 lsrs r3, 16 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] lsls r4, 16 lsrs r4, 16 lsls r1, 16 lsrs r1, 16 lsls r5, 16 lsrs r5, 16 ldr r2, [sp, 0x4] ldrh r0, [r2, 0x4] ldr r2, [sp, 0xC] subs r0, r2 ldr r2, [sp, 0x8] adds r2, r1, r2 str r2, [sp, 0x10] cmp r0, r1 bge _0819A0CC ldr r1, [sp, 0x8] adds r0, r1 str r0, [sp, 0x10] _0819A0CC: ldr r2, [sp, 0x4] ldrh r1, [r2, 0x6] subs r0, r1, r4 cmp r0, r5 bge _0819A0DE adds r0, r3, r1 subs r0, r4 str r0, [sp, 0x14] b _0819A0E2 _0819A0DE: adds r5, r3, r5 str r5, [sp, 0x14] _0819A0E2: ldr r0, [sp] ldrh r1, [r0, 0x4] movs r2, 0x7 adds r0, r1, 0 ands r0, r2 adds r1, r0 asrs r1, 3 str r1, [sp, 0x18] ldr r0, [sp, 0x4] ldrh r1, [r0, 0x4] adds r0, r1, 0 ands r0, r2 adds r1, r0 asrs r1, 3 str r1, [sp, 0x1C] mov r12, r3 mov r8, r4 ldr r1, [sp, 0x14] cmp r12, r1 blt _0819A10C b _0819A24A _0819A10C: ldr r5, [sp, 0x8] ldr r6, [sp, 0xC] mov r2, r12 adds r2, 0x1 str r2, [sp, 0x20] mov r0, r8 adds r0, 0x1 str r0, [sp, 0x24] ldr r1, [sp, 0x10] cmp r5, r1 blt _0819A124 b _0819A23A _0819A124: movs r7, 0x1 movs r2, 0xF0 mov r10, r2 movs r0, 0xF mov r9, r0 _0819A12E: asrs r0, r5, 1 movs r1, 0x3 ands r0, r1 ldr r2, [sp] ldr r1, [r2] adds r1, r0 asrs r0, r5, 3 lsls r0, 5 adds r1, r0 mov r2, r12 asrs r0, r2, 3 ldr r2, [sp, 0x18] muls r0, r2 lsls r0, 5 adds r1, r0 mov r2, r12 lsls r0, r2, 29 lsrs r0, 27 adds r3, r1, r0 asrs r0, r6, 1 movs r1, 0x3 ands r0, r1 ldr r2, [sp, 0x4] ldr r1, [r2] adds r1, r0 asrs r0, r6, 3 lsls r0, 5 adds r1, r0 mov r2, r8 asrs r0, r2, 3 ldr r2, [sp, 0x1C] muls r0, r2 lsls r0, 5 adds r1, r0 mov r2, r8 lsls r0, r2, 29 lsrs r0, 27 adds r4, r1, r0 adds r0, r4, 0 ands r0, r7 cmp r0, 0 beq _0819A1DA subs r4, 0x1 adds r0, r6, 0 ands r0, r7 cmp r0, 0 beq _0819A1B2 ldrh r0, [r4] ldr r2, =0x00000fff ands r2, r0 adds r0, r5, 0 ands r0, r7 cmp r0, 0 beq _0819A1A8 ldrb r1, [r3] mov r0, r10 ands r0, r1 lsls r0, 8 b _0819A22A .pool _0819A1A8: ldrb r1, [r3] mov r0, r9 ands r0, r1 lsls r0, 12 b _0819A22A _0819A1B2: ldrh r0, [r4] ldr r2, =0x0000f0ff ands r2, r0 adds r0, r5, 0 ands r0, r7 cmp r0, 0 beq _0819A1D0 ldrb r1, [r3] mov r0, r10 ands r0, r1 lsls r0, 4 b _0819A22A .pool _0819A1D0: ldrb r1, [r3] mov r0, r9 ands r0, r1 lsls r0, 8 b _0819A22A _0819A1DA: adds r0, r6, 0 ands r0, r7 cmp r0, 0 beq _0819A206 ldrh r0, [r4] ldr r2, =0x0000ff0f ands r2, r0 adds r0, r5, 0 ands r0, r7 cmp r0, 0 beq _0819A1FC ldrb r1, [r3] mov r0, r10 b _0819A228 .pool _0819A1FC: ldrb r1, [r3] mov r0, r9 ands r0, r1 lsls r0, 4 b _0819A22A _0819A206: ldrh r0, [r4] ldr r2, =0x0000fff0 ands r2, r0 adds r0, r5, 0 ands r0, r7 cmp r0, 0 beq _0819A224 ldrb r1, [r3] mov r0, r10 ands r0, r1 lsrs r0, 4 b _0819A22A .pool _0819A224: ldrb r1, [r3] mov r0, r9 _0819A228: ands r0, r1 _0819A22A: orrs r2, r0 strh r2, [r4] adds r5, 0x1 adds r6, 0x1 ldr r0, [sp, 0x10] cmp r5, r0 bge _0819A23A b _0819A12E _0819A23A: ldr r1, [sp, 0x20] mov r12, r1 ldr r2, [sp, 0x24] mov r8, r2 ldr r0, [sp, 0x14] cmp r12, r0 bge _0819A24A b _0819A10C _0819A24A: add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819A080 thumb_func_start sub_819A25C sub_819A25C: @ 819A25C push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r0, 16 lsrs r0, 16 bl sub_80D30B0 adds r1, r4, 0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 thumb_func_end sub_819A25C thumb_func_start sub_819A27C sub_819A27C: @ 819A27C push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 adds r0, r1, 0 adds r1, r2, 0 adds r4, r3, 0 ldr r5, [sp, 0x18] lsls r6, 24 lsrs r6, 24 lsls r0, 16 lsrs r0, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 movs r2, 0x1 bl sub_80D2EDC adds r1, r0, 0 movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] adds r0, r6, 0 adds r2, r4, 0 adds r3, r5, 0 bl BlitBitmapToWindow add sp, 0x8 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_819A27C thumb_func_start sub_819A2BC sub_819A2BC: @ 819A2BC push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _0819A2DC cmp r1, 0x1 ble _0819A2D2 cmp r1, 0x2 beq _0819A2E4 _0819A2D2: ldr r0, =gUnknown_08DC4318 b _0819A2E6 .pool _0819A2DC: ldr r0, =gUnknown_08DC4338 b _0819A2E6 .pool _0819A2E4: ldr r0, =gUnknown_08DC4358 _0819A2E6: adds r1, r2, 0 movs r2, 0x20 bl LoadPalette pop {r0} bx r0 .pool thumb_func_end sub_819A2BC thumb_func_start blit_move_info_icon @ void blit_move_info_icon(u8 windowId, u8 a2, u16 x, u16 y) blit_move_info_icon: @ 819A2F8 push {r4,r5,lr} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsls r2, 16 lsrs r2, 16 lsls r3, 16 lsrs r3, 16 ldr r4, =gUnknown_0860F0D4 lsrs r1, 22 adds r1, r4 ldrh r5, [r1, 0x2] lsls r5, 5 ldr r4, =gUnknown_08DC4378 adds r5, r4 movs r4, 0x80 str r4, [sp] str r4, [sp, 0x4] str r2, [sp, 0x8] str r3, [sp, 0xC] ldrb r2, [r1] str r2, [sp, 0x10] ldrb r1, [r1, 0x1] str r1, [sp, 0x14] adds r1, r5, 0 movs r2, 0 movs r3, 0 bl BlitBitmapRectToWindow add sp, 0x18 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end blit_move_info_icon thumb_func_start sub_819A344 sub_819A344: @ 819A344 push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r2, 24 lsrs r2, 24 adds r5, r1, 0 movs r1, 0xFC strb r1, [r5] adds r5, 0x1 movs r0, 0x1 strb r0, [r5] adds r5, 0x1 strb r2, [r5] adds r5, 0x1 strb r1, [r5] adds r5, 0x1 movs r0, 0x3 strb r0, [r5] adds r5, 0x1 adds r2, 0x1 strb r2, [r5] adds r5, 0x1 cmp r3, 0x4 bhi _0819A43C lsls r0, r3, 2 ldr r1, =_0819A384 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819A384: .4byte _0819A398 .4byte _0819A3A8 .4byte _0819A3D6 .4byte _0819A404 .4byte _0819A414 _0819A398: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r5, 0 bl StringCopy b _0819A43C .pool _0819A3A8: bl IsNationalPokedexEnabled cmp r0, 0 beq _0819A3B8 movs r0, 0x1 bl pokedex_count b _0819A3BE _0819A3B8: movs r0, 0x1 bl sub_80C0844 _0819A3BE: adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r5, r0, 0 movs r0, 0xFF strb r0, [r5] b _0819A43C _0819A3D6: ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldrh r1, [r0, 0xE] adds r0, r5, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r5, r0, 0 movs r0, 0xF0 strb r0, [r5] adds r5, 0x1 ldr r0, [r4] ldrb r1, [r0, 0x10] adds r0, r5, 0 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN b _0819A43C .pool _0819A404: ldr r0, =gMapHeader ldrb r1, [r0, 0x14] adds r0, r5, 0 bl sub_81245DC b _0819A43C .pool _0819A414: ldr r4, =0x00000867 movs r6, 0 adds r7, r5, 0x1 _0819A41A: lsls r0, r4, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 beq _0819A42A adds r6, 0x1 _0819A42A: adds r4, 0x1 ldr r0, =0x0000086e cmp r4, r0 ble _0819A41A adds r0, r6, 0 subs r0, 0x5F strb r0, [r5] movs r0, 0xFF strb r0, [r7] _0819A43C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819A344 thumb_func_start sub_819A44C sub_819A44C: @ 819A44C push {r4,r5,lr} adds r5, r0, 0 ldrb r4, [r5, 0x5] lsrs r4, 4 movs r0, 0x65 bl IndexOfSpritePaletteTag lsls r0, 24 lsls r4, 16 lsrs r4, 16 lsrs r0, 24 cmp r4, r0 bne _0819A4BA adds r0, r5, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0819A4B0 ldrh r1, [r5, 0x2E] movs r2, 0x2E ldrsh r0, [r5, r2] cmp r0, 0 beq _0819A484 subs r0, r1, 0x1 strh r0, [r5, 0x2E] b _0819A4C2 _0819A484: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x5 bl __umodsi3 lsls r0, 16 cmp r0, 0 bne _0819A4A6 adds r0, r5, 0 movs r1, 0 bl StartSpriteAnim movs r0, 0x20 strh r0, [r5, 0x2E] b _0819A4C2 _0819A4A6: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnim b _0819A4C2 _0819A4B0: adds r0, r5, 0 movs r1, 0x1 bl StartSpriteAnimIfDifferent b _0819A4C2 _0819A4BA: adds r0, r5, 0 movs r1, 0 bl StartSpriteAnimIfDifferent _0819A4C2: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_819A44C thumb_func_start sub_819A4C8 sub_819A4C8: @ 819A4C8 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 thumb_func_end sub_819A4C8 thumb_func_start sub_819A4E4 sub_819A4E4: @ 819A4E4 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_819A4E4 thumb_func_start sub_819A4F8 sub_819A4F8: @ 819A4F8 push {lr} ldr r0, =gUnknown_0300127C movs r1, 0 str r1, [r0] ldr r0, =sub_819A514 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_819A4F8 thumb_func_start sub_819A514 sub_819A514: @ 819A514 push {r4,r5,lr} sub sp, 0xC ldr r0, =gMain movs r1, 0x87 lsls r1, 3 adds r0, r1 ldrb r0, [r0] cmp r0, 0xA bls _0819A528 b _0819A98E _0819A528: lsls r0, 2 ldr r1, =_0819A53C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819A53C: .4byte _0819A568 .4byte _0819A5C0 .4byte _0819A69C .4byte _0819A77C .4byte _0819A7CC .4byte _0819A868 .4byte _0819A8A4 .4byte _0819A8AC .4byte _0819A8C4 .4byte _0819A8DC .4byte _0819A8FC _0819A568: ldr r4, =gUnknown_0203CE3C ldr r0, [r4] cmp r0, 0 beq _0819A578 bl Free movs r0, 0 str r0, [r4] _0819A578: movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r0, 0 str r0, [sp, 0x8] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 add r0, sp, 0x8 bl CpuSet movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_08610428 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r0, =gUnknown_08610434 bl InitWindows bl DeactivateAllTextPrinters b _0819A8E6 .pool _0819A5C0: ldr r5, =gUnknown_0203CE2C movs r4, 0x88 lsls r4, 3 adds r0, r4, 0 bl Alloc str r0, [r5] ldr r5, =gUnknown_0203CE30 adds r0, r4, 0 bl AllocZeroed str r0, [r5] ldr r5, =gUnknown_0203CE34 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc str r0, [r5] ldr r5, =gUnknown_0203CE38 adds r0, r4, 0 bl AllocZeroed str r0, [r5] movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0x52 movs r1, 0 bl SetGpuReg movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r0, 0x4C movs r1, 0 bl SetGpuReg movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x42 movs r1, 0 bl SetGpuReg movs r0, 0x46 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0819A8EE .pool _0819A69C: bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes ldr r0, =gUnknown_08DC0754 ldr r5, =gUnknown_0203CE2C ldr r1, [r5] movs r2, 0x88 lsls r2, 2 bl CpuSet ldr r0, =gUnknown_0861033C ldr r4, =gUnknown_0203CE30 ldr r1, [r4] movs r2, 0x30 bl CpuSet ldr r1, [r5] movs r2, 0x88 lsls r2, 3 movs r0, 0x1 movs r3, 0 bl LoadBgTiles ldr r1, [r4] movs r0, 0x3 movs r2, 0x60 movs r3, 0 bl LoadBgTiles ldr r0, =gUnknown_08DC0B94 ldr r4, =gUnknown_0203CE34 ldr r1, [r4] movs r2, 0x80 lsls r2, 3 bl CpuSet ldr r1, [r4] movs r2, 0x80 lsls r2, 4 movs r0, 0x1 movs r3, 0 bl LoadBgTilemap ldr r0, =gUnknown_08DC0714 movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r4, =gUnknown_0861046C adds r0, r4, 0 movs r1, 0xF0 movs r2, 0x8 bl LoadPalette adds r0, r4, 0 movs r1, 0xE0 movs r2, 0xA bl LoadPalette ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r0, [r1, 0x6] cmp r0, 0x1 bne _0819A738 ldr r0, =gPlttBufferUnfaded movs r2, 0xA9 lsls r2, 2 adds r1, r2 ldrh r1, [r1] movs r3, 0xE4 lsls r3, 1 adds r0, r3 strh r1, [r0] _0819A738: ldr r0, =gUnknown_0861039C movs r1, 0x20 movs r2, 0x4 bl LoadPalette ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819A8EE .pool _0819A77C: ldr r0, =gUnknown_0203CE38 ldr r1, [r0] movs r0, 0x3 bl SetBgTilemapBuffer ldr r5, =gUnknown_0861023C movs r4, 0x8 str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 adds r1, r5, 0 movs r2, 0xB movs r3, 0x4 bl CopyToBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 adds r1, r5, 0 movs r2, 0x2 movs r3, 0x4 bl CopyToBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] movs r0, 0x3 adds r1, r5, 0 movs r2, 0x14 movs r3, 0x4 bl CopyToBgTilemapBufferRect movs r0, 0x3 bl CopyBgTilemapBufferToVram b _0819A8E6 .pool _0819A7CC: ldr r0, =gUnknown_086103F4 bl LoadSpritePalettes ldr r0, =gUnknown_086103BC bl LoadSpriteSheets ldr r0, =gUnknown_086103E4 bl LoadCompressedObjectPic movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg ldr r0, =sub_819A4E4 bl SetVBlankCallback movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0x9A lsls r1, 5 movs r0, 0 bl SetGpuReg ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _0819A854 movs r0, 0x58 movs r1, 0x98 movs r2, 0x20 movs r3, 0x60 bl sub_819C5D0 movs r0, 0x3 bl ShowBg ldr r1, =0x00001248 movs r0, 0x50 bl SetGpuReg ldr r1, =0x0000040b movs r0, 0x52 bl SetGpuReg b _0819A85A .pool _0819A854: movs r0, 0x3 bl HideBg _0819A85A: ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0819A8EE .pool _0819A868: ldr r4, =gUnknown_0300127C ldr r1, [r4] ldrb r0, [r1, 0x6] cmp r0, 0x1 bne _0819A878 ldr r0, =gUnknown_0203CF20 ldrb r0, [r0] strb r0, [r1, 0x3] _0819A878: bl sub_819A9AC bl sub_819AA18 ldr r0, [r4] ldrb r0, [r0, 0x6] cmp r0, 0x1 bne _0819A88C bl sub_819BE34 _0819A88C: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819A8EE .pool _0819A8A4: bl sub_819BA64 movs r0, 0x2 b _0819A8E2 _0819A8AC: bl sub_819BCF8 movs r0, 0x5 bl PutWindowTilemap ldr r1, =gMain movs r3, 0x87 lsls r3, 3 adds r1, r3 b _0819A8EE .pool _0819A8C4: bl sub_819B9E8 movs r0, 0x1 bl PutWindowTilemap ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819A8EE .pool _0819A8DC: bl sub_819B9B4 movs r0, 0 _0819A8E2: bl PutWindowTilemap _0819A8E6: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _0819A8EE: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0819A98E .pool _0819A8FC: ldr r0, =sub_819C69C movs r1, 0 bl CreateTask ldr r2, =gUnknown_0300127C ldr r1, [r2] ldr r3, =0x000002a1 adds r1, r3 strb r0, [r1] ldr r3, [r2] ldrb r5, [r3, 0x6] cmp r5, 0 bne _0819A954 ldr r4, =gTasks ldr r1, =0x000002a1 adds r0, r3, r1 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 strh r5, [r0, 0x8] ldr r0, =sub_819B378 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 strh r5, [r0, 0x8] b _0819A988 .pool _0819A954: ldr r4, =gTasks ldr r2, =0x000002a1 adds r0, r3, r2 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x8] ldr r1, =0x000002a2 adds r0, r3, r1 strb r2, [r0] ldr r0, =sub_819B124 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0xD strh r1, [r0, 0x8] _0819A988: ldr r0, =sub_819A4C8 bl SetMainCallback2 _0819A98E: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819A514 thumb_func_start sub_819A9AC sub_819A9AC: @ 819A9AC push {r4,r5,lr} ldr r5, =gUnknown_0300127C ldr r4, [r5] cmp r4, 0 bne _0819AA12 movs r0, 0xAB lsls r0, 2 bl AllocZeroed str r0, [r5] strb r4, [r0, 0x3] ldr r1, [r5] movs r0, 0x1 strb r0, [r1, 0x5] ldr r0, [r5] strb r4, [r0, 0x6] movs r2, 0 movs r4, 0x6C movs r3, 0 _0819A9D2: ldr r0, [r5] adds r1, r2, 0 muls r1, r4 adds r0, r1 strb r3, [r0, 0x10] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0819A9D2 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 beq _0819AA0C movs r0, 0 bl sub_819B484 b _0819AA12 .pool _0819AA0C: movs r0, 0 bl sub_819B63C _0819AA12: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_819A9AC thumb_func_start sub_819AA18 sub_819AA18: @ 819AA18 push {r4-r7,lr} mov r7, r8 push {r7} movs r4, 0 mov r8, r4 ldr r7, =gSprites _0819AA24: lsls r1, r4, 3 adds r1, r4 lsls r1, 2 subs r1, r4 adds r1, 0x20 lsls r1, 16 asrs r1, 16 ldr r0, =gUnknown_086105D8 movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r6, =gUnknown_0300127C ldr r2, [r6] movs r5, 0x6C adds r1, r4, 0 muls r1, r5 adds r2, r1 lsls r0, 24 lsrs r0, 24 strh r0, [r2, 0xE] ldrh r1, [r2, 0xE] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 mov r1, r8 strh r1, [r0, 0x2E] adds r0, r4, 0 bl sub_819ADAC adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0819AA24 ldr r0, [r6] ldrb r1, [r0, 0x3] ldr r4, =gSprites muls r1, r5 adds r0, r1 ldrh r0, [r0, 0xE] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldr r0, =gUnknown_086105F0 movs r2, 0x20 ldrsh r1, [r1, r2] movs r2, 0x58 movs r3, 0 bl CreateSprite ldr r1, [r6] movs r5, 0 strb r0, [r1, 0x4] ldr r0, =gUnknown_08610608 movs r1, 0xB0 movs r2, 0x70 movs r3, 0 bl CreateSprite ldr r1, [r6] strb r0, [r1, 0x1] ldr r0, =gUnknown_08610620 movs r1, 0xB0 movs r2, 0x90 movs r3, 0 bl CreateSprite ldr r1, [r6] strb r0, [r1, 0x2] ldr r0, [r6] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r6] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r0, [r6] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x28 strb r5, [r0] ldr r0, [r6] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x29 strb r5, [r0] ldr r0, [r6] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x28 strb r5, [r0] ldr r0, [r6] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x29 strb r5, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819AA18 thumb_func_start sub_819AB40 sub_819AB40: @ 819AB40 push {r4-r6,lr} movs r4, 0 _0819AB44: ldr r6, =gUnknown_0300127C ldr r1, [r6] movs r0, 0x6C muls r0, r4 adds r1, r0 ldrh r1, [r1, 0xE] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r5, =gSprites adds r0, r5 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0819AB44 ldr r0, [r6] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite ldr r0, [r6] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite ldr r0, [r6] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 bl DestroySprite pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819AB40 thumb_func_start sub_819ABA8 sub_819ABA8: @ 819ABA8 push {r4,lr} lsls r0, 24 cmp r0, 0 ble _0819ABC8 ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r3, [r1, 0x3] adds r2, r0, 0 cmp r3, 0x5 beq _0819ABC4 adds r0, r3, 0x1 b _0819ABDE .pool _0819ABC4: movs r0, 0 b _0819ABDE _0819ABC8: ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r3, [r1, 0x3] adds r2, r0, 0 cmp r3, 0 beq _0819ABDC subs r0, r3, 0x1 b _0819ABDE .pool _0819ABDC: movs r0, 0x5 _0819ABDE: strb r0, [r1, 0x3] ldr r2, [r2] ldrb r3, [r2, 0x3] ldr r4, =gSprites ldrb r0, [r2, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 movs r0, 0x6C muls r0, r3 adds r2, r0 ldrh r2, [r2, 0xE] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r1, 0x20] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819ABA8 thumb_func_start sub_819AC10 sub_819AC10: @ 819AC10 push {lr} lsls r0, 24 cmp r0, 0 ble _0819AC30 ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r3, [r1] adds r2, r0, 0 cmp r3, 0x2 beq _0819AC2C adds r0, r3, 0x1 b _0819AC46 .pool _0819AC2C: movs r0, 0 b _0819AC46 _0819AC30: ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r3, [r1] adds r2, r0, 0 cmp r3, 0 beq _0819AC44 subs r0, r3, 0x1 b _0819AC46 .pool _0819AC44: movs r0, 0x2 _0819AC46: strb r0, [r1] ldr r3, =gSprites ldr r2, [r2] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r0, [r2, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] pop {r0} bx r0 .pool thumb_func_end sub_819AC10 thumb_func_start sub_819AC78 sub_819AC78: @ 819AC78 push {lr} lsls r0, 24 cmp r0, 0 ble _0819AC98 ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r3, [r1, 0x7] adds r2, r0, 0 cmp r3, 0x1 beq _0819AC94 adds r0, r3, 0x1 b _0819ACAE .pool _0819AC94: movs r0, 0 b _0819ACAE _0819AC98: ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r3, [r1, 0x7] adds r2, r0, 0 cmp r3, 0 beq _0819ACAC subs r0, r3, 0x1 b _0819ACAE .pool _0819ACAC: movs r0, 0x1 _0819ACAE: strb r0, [r1, 0x7] ldr r3, =gSprites ldr r2, [r2] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2, 0x7] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r0, [r2, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2, 0x7] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] pop {r0} bx r0 .pool thumb_func_end sub_819AC78 thumb_func_start sub_819ACE0 sub_819ACE0: @ 819ACE0 push {r4-r6,lr} ldr r5, =gUnknown_0300127C ldr r0, [r5] ldrb r6, [r0, 0x3] movs r1, 0x6C adds r4, r6, 0 muls r4, r1 adds r0, r4 ldrb r0, [r0, 0x10] cmp r0, 0 beq _0819AD60 movs r0, 0x64 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r3, r0, 24 ldr r1, [r5] ldrb r0, [r1, 0x5] cmp r0, 0x3 bne _0819AD44 adds r0, r1, r4 ldrb r0, [r0, 0x10] cmp r0, 0x1 bne _0819AD44 movs r2, 0 ldrb r0, [r1, 0x10] cmp r0, 0x2 beq _0819AD32 movs r4, 0x6C _0819AD1A: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bhi _0819AD32 ldr r0, [r5] adds r1, r2, 0 muls r1, r4 adds r0, r1 ldrb r0, [r0, 0x10] cmp r0, 0x2 bne _0819AD1A _0819AD32: cmp r2, 0x6 beq _0819AD9C ldr r0, =gUnknown_0300127C ldr r1, [r0] movs r0, 0x6C muls r0, r2 adds r1, r0 movs r0, 0x1 strb r0, [r1, 0x10] _0819AD44: ldr r2, =gUnknown_0300127C ldr r1, [r2] movs r0, 0x6C muls r0, r6 adds r1, r0 movs r0, 0 strb r0, [r1, 0x10] ldr r1, [r2] ldrb r0, [r1, 0x5] subs r0, 0x1 b _0819AD78 .pool _0819AD60: movs r0, 0x65 bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r3, r0, 24 ldr r0, [r5] adds r1, r0, r4 ldrb r0, [r0, 0x5] strb r0, [r1, 0x10] ldr r1, [r5] ldrb r0, [r1, 0x5] adds r0, 0x1 _0819AD78: strb r0, [r1, 0x5] ldr r2, =gSprites ldr r0, =gUnknown_0300127C ldr r0, [r0] movs r1, 0x6C muls r1, r6 adds r0, r1 ldrh r0, [r0, 0xE] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] _0819AD9C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819ACE0 thumb_func_start sub_819ADAC sub_819ADAC: @ 819ADAC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0300127C ldr r0, [r0] movs r1, 0x6C muls r1, r4 adds r0, r1 ldrb r0, [r0, 0x10] cmp r0, 0 beq _0819ADCC movs r0, 0x65 b _0819ADCE .pool _0819ADCC: movs r0, 0x64 _0819ADCE: bl IndexOfSpritePaletteTag lsls r0, 24 lsrs r3, r0, 24 ldr r2, =gSprites ldr r0, =gUnknown_0300127C ldr r0, [r0] movs r1, 0x6C muls r1, r4 adds r0, r1 ldrh r0, [r0, 0xE] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 lsls r3, 4 ldrb r2, [r1, 0x5] movs r0, 0xF ands r0, r2 orrs r0, r3 strb r0, [r1, 0x5] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819ADAC thumb_func_start sub_819AE08 sub_819AE08: @ 819AE08 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r6, r0, r1 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x7 beq _0819AE64 cmp r0, 0x7 bgt _0819AE30 cmp r0, 0x6 beq _0819AE36 b _0819AF50 .pool _0819AE30: cmp r0, 0x8 beq _0819AEE8 b _0819AF50 _0819AE36: ldr r1, =gPlttBufferUnfaded ldr r0, =gPlttBufferFaded movs r2, 0xE4 lsls r2, 1 adds r0, r2 ldrh r0, [r0] adds r1, r2 movs r2, 0 strh r0, [r1] movs r0, 0x1 negs r0, r0 str r2, [sp] movs r1, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x7 strh r0, [r6, 0x8] b _0819AF50 .pool _0819AE64: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0819AF50 ldr r4, =gUnknown_0300127C ldr r0, [r4] ldr r2, =0x000002a1 adds r0, r2 ldrb r0, [r0] bl DestroyTask ldr r1, [r4] movs r3, 0xA6 lsls r3, 2 adds r0, r1, r3 ldr r0, [r0] movs r2, 0xA8 lsls r2, 2 adds r1, r2 bl sub_819F444 bl sub_819AB40 ldr r4, =gUnknown_0203CE2C ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE30 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE34 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE38 ldr r0, [r4] bl Free str r5, [r4] bl FreeAllWindowBuffers movs r0, 0x8 strh r0, [r6, 0x8] b _0819AF50 .pool _0819AEE8: ldr r4, =gUnknown_0300127C ldr r1, [r4] ldr r0, =gPlttBufferUnfaded movs r3, 0xE4 lsls r3, 1 adds r0, r3 ldrh r0, [r0] adds r3, 0xDC adds r1, r3 strh r0, [r1] adds r0, r2, 0 bl DestroyTask ldr r1, [r4] movs r0, 0x1 strb r0, [r1, 0x6] ldr r0, [r4] ldrb r6, [r0, 0x3] ldr r4, =gUnknown_0203CE3C movs r0, 0x96 lsls r0, 2 bl AllocZeroed str r0, [r4] movs r4, 0 _0819AF1A: ldr r5, =gUnknown_0203CE3C ldr r1, [r5] movs r0, 0x64 muls r0, r4 adds r0, r1 ldr r1, =gUnknown_0300127C ldr r1, [r1] movs r2, 0x6C muls r2, r4 adds r1, r2 adds r1, 0x14 movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _0819AF1A ldr r1, [r5] ldr r0, =sub_819A514 str r0, [sp] movs r0, 0x1 adds r2, r6, 0 movs r3, 0x5 bl sub_81BF8EC _0819AF50: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819AE08 thumb_func_start bc_exit_to_overworld bc_exit_to_overworld: @ 819AF68 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gUnknown_0300127C ldr r0, [r7] movs r1, 0xA8 lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0819B00E ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0 beq _0819AFA0 cmp r1, 0x1 beq _0819AFB8 b _0819B00E .pool _0819AFA0: movs r0, 0x1 negs r0, r0 str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0819B00E _0819AFB8: bl UpdatePaletteFade lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0819B00E bl sub_819B764 ldr r0, [r7] ldr r1, =0x000002a1 adds r0, r1 ldrb r0, [r0] bl DestroyTask bl sub_819AB40 ldr r4, =gUnknown_0203CE2C ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE34 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE38 ldr r0, [r4] bl Free str r5, [r4] ldr r0, [r7] bl Free str r5, [r7] bl FreeAllWindowBuffers ldr r0, =sub_80861B0 bl SetMainCallback2 adds r0, r6, 0 bl DestroyTask _0819B00E: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bc_exit_to_overworld thumb_func_start sub_819B02C sub_819B02C: @ 819B02C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r2, r0, 24 ldr r7, =gUnknown_0300127C ldr r0, [r7] movs r1, 0xA8 lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 beq _0819B11A ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x5 beq _0819B084 cmp r0, 0x5 bgt _0819B06C cmp r0, 0x4 beq _0819B07A b _0819B11A .pool _0819B06C: cmp r0, 0xA bne _0819B11A bl sub_819C4B4 movs r0, 0x4 strh r0, [r5, 0x8] b _0819B11A _0819B07A: bl sub_819B8D4 movs r0, 0x5 strh r0, [r5, 0x8] b _0819B11A _0819B084: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 mov r8, r0 movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0819B0B8 movs r0, 0x5 bl PlaySE ldr r0, [r7] ldrb r4, [r0, 0x7] cmp r4, 0 bne _0819B0C6 bl sub_819C568 strh r4, [r5, 0x8] ldr r0, =bc_exit_to_overworld str r0, [r5] b _0819B11A .pool _0819B0B8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819B0EC movs r0, 0x5 bl PlaySE _0819B0C6: movs r0, 0x4 bl sub_819B958 bl sub_819BC9C ldr r0, [r7] ldr r1, =0x000002a2 adds r0, r1 mov r1, r8 strb r1, [r0] strh r6, [r5, 0x8] ldr r0, =sub_819B378 str r0, [r5] b _0819B11A .pool _0819B0EC: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0819B106 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl sub_819AC78 b _0819B11A _0819B106: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819B11A movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_819AC78 _0819B11A: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819B02C thumb_func_start sub_819B124 sub_819B124: @ 819B124 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r0, [r0, 0x8] subs r0, 0x2 lsls r0, 16 asrs r0, 16 adds r6, r1, 0 cmp r0, 0xB bls _0819B144 b _0819B36E _0819B144: lsls r0, 2 ldr r1, =_0819B158 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819B158: .4byte _0819B188 .4byte _0819B1EC .4byte _0819B36E .4byte _0819B36E .4byte _0819B36E .4byte _0819B36E .4byte _0819B36E .4byte _0819B1BC .4byte _0819B36E .4byte _0819B36E .4byte _0819B300 .4byte _0819B35C _0819B188: ldr r0, =gUnknown_0300127C ldr r1, [r0] ldrb r0, [r1, 0x6] cmp r0, 0 bne _0819B1A2 ldr r2, =0x00000299 adds r0, r1, r2 movs r7, 0xA8 lsls r7, 2 adds r1, r7 movs r2, 0 bl sub_819F2B4 _0819B1A2: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0x9 b _0819B36C .pool _0819B1BC: ldr r4, =gUnknown_0300127C ldr r0, [r4] movs r1, 0xA8 lsls r1, 2 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _0819B1CE b _0819B36E _0819B1CE: bl sub_819B844 ldr r1, [r4] movs r0, 0 strb r0, [r1, 0x6] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 b _0819B344 .pool _0819B1EC: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r7, 0x1 movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0819B27C movs r0, 0x5 bl PlaySE bl sub_819BC04 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 bne _0819B228 ldr r0, =gUnknown_0300127C ldr r0, [r0] ldr r2, =0x000002a2 adds r0, r2 b _0819B2AC .pool _0819B228: cmp r0, 0x2 bne _0819B248 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xA strh r1, [r0, 0x8] ldr r1, =sub_819B02C str r1, [r0] b _0819B36E .pool _0819B248: cmp r1, 0x3 bne _0819B260 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xB strh r1, [r0, 0x8] b _0819B2BA .pool _0819B260: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x6 strh r1, [r0, 0x8] ldr r1, =sub_819AE08 str r1, [r0] b _0819B36E .pool _0819B27C: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819B2D0 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0300127C ldr r1, [r4] movs r2, 0xA6 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] adds r2, 0x8 adds r1, r2 movs r2, 0 bl sub_819F3F8 movs r0, 0x3 bl sub_819B958 ldr r0, [r4] ldr r1, =0x000002a2 adds r0, r1 _0819B2AC: strb r7, [r0] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x8] _0819B2BA: ldr r1, =sub_819B378 str r1, [r0] b _0819B36E .pool _0819B2D0: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0819B2EA movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl sub_819AC10 b _0819B36E _0819B2EA: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819B36E movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_819AC10 b _0819B36E _0819B300: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 bne _0819B36E ldr r4, =gUnknown_0300127C ldr r2, [r4] ldrb r0, [r2, 0x6] cmp r0, 0x1 bne _0819B338 ldr r1, =gPlttBufferFaded movs r7, 0xA9 lsls r7, 2 adds r0, r2, r7 ldrh r0, [r0] movs r2, 0xE4 lsls r2, 1 adds r1, r2 strh r0, [r1] ldr r0, =gPlttBufferUnfaded subs r7, 0xBC adds r1, r0, r7 ldrh r1, [r1] adds r0, r2 strh r1, [r0] _0819B338: ldr r0, [r4] strb r3, [r0, 0x6] lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r6 _0819B344: movs r1, 0x3 strh r1, [r0, 0x8] b _0819B36E .pool _0819B35C: bl sub_819B844 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r0, 0xC _0819B36C: strh r0, [r1, 0x8] _0819B36E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819B124 thumb_func_start sub_819B378 sub_819B378: @ 819B378 push {r4-r7,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r5, =gUnknown_0300127C ldr r3, [r5] movs r7, 0xA8 lsls r7, 2 adds r0, r3, r7 ldrb r0, [r0] cmp r0, 0x1 beq _0819B476 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0819B3DC cmp r1, 0x1 bgt _0819B3B4 cmp r1, 0 beq _0819B3BA b _0819B476 .pool _0819B3B4: cmp r1, 0xB beq _0819B440 b _0819B476 _0819B3BA: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0819B476 movs r0, 0x1 movs r1, 0x1 strh r1, [r4, 0x8] ldr r2, =0x000002a2 adds r1, r3, r2 strb r0, [r1] b _0819B476 .pool _0819B3DC: ldr r2, =gMain ldrh r0, [r2, 0x2E] ands r1, r0 cmp r1, 0 beq _0819B40C movs r0, 0x5 bl PlaySE ldr r0, [r5] ldr r1, =0x000002a2 adds r0, r1 movs r1, 0 strb r1, [r0] movs r0, 0x2 strh r0, [r4, 0x8] ldr r0, =sub_819B124 str r0, [r4] b _0819B476 .pool _0819B40C: ldrh r1, [r2, 0x30] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819B422 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _0819B432 _0819B422: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0819B476 movs r0, 0x5 bl PlaySE movs r0, 0x1 _0819B432: bl sub_819ABA8 bl sub_819BCF8 bl sub_819B9E8 b _0819B476 _0819B440: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 beq _0819B476 movs r0, 0x5 bl PlaySE ldr r1, [r5] movs r2, 0xA6 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] adds r1, r7 movs r2, 0 bl sub_819F3F8 bl sub_819BA64 ldr r0, [r5] ldr r1, =0x000002a2 adds r0, r1 movs r1, 0x1 strb r1, [r0] strh r6, [r4, 0x8] _0819B476: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819B378 thumb_func_start sub_819B484 sub_819B484: @ 819B484 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] movs r6, 0 add r0, sp, 0xC strb r6, [r0] ldr r0, =0x000040ce bl VarGet lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r7, =gSaveBlock2Ptr ldr r2, [r7] ldr r0, =0x00000ca9 adds r4, r2, r0 ldrb r0, [r4] lsls r0, 30 lsrs r0, 30 adds r5, r0, 0 lsls r0, r5, 1 lsls r1, r6, 2 adds r0, r1 ldr r1, =0x00000de2 adds r2, r1 adds r2, r0 ldrh r0, [r2] movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x18] ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons str r0, [r1] ldrb r1, [r4] movs r0, 0x3 ands r0, r1 movs r2, 0x32 str r2, [sp, 0x14] cmp r0, 0 beq _0819B4EA movs r3, 0x64 str r3, [sp, 0x14] _0819B4EA: adds r0, r6, 0 adds r1, r5, 0 bl sub_81A6F70 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] ldr r1, [r7] ldrb r0, [r1, 0xA] mov r9, r0 ldrb r0, [r1, 0xB] lsls r0, 8 mov r2, r9 orrs r2, r0 ldrb r0, [r1, 0xC] lsls r0, 16 orrs r2, r0 ldrb r0, [r1, 0xD] lsls r0, 24 orrs r2, r0 mov r9, r2 movs r3, 0 mov r8, r3 _0819B518: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] mov r2, r8 lsls r0, r2, 1 add r0, r8 lsls r0, 2 adds r1, r0 movs r3, 0xE7 lsls r3, 4 adds r1, r3 ldrh r5, [r1] ldr r0, =gUnknown_0300127C ldr r1, [r0] ldr r2, [sp, 0x10] add r2, r8 movs r3, 0x6C adds r0, r2, 0 muls r0, r3 adds r1, r0 strh r5, [r1, 0xC] mov r10, r2 ldr r0, [sp, 0x1C] cmp r8, r0 bcs _0819B570 ldr r0, [sp, 0x18] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 b _0819B572 .pool _0819B570: ldr r0, [sp, 0x18] _0819B572: movs r1, 0 bl sub_81A6CA8 lsls r0, 24 lsrs r6, r0, 24 movs r1, 0x6C mov r4, r10 muls r4, r1 adds r4, 0xC ldr r2, =gUnknown_0300127C ldr r0, [r2] adds r0, r4 adds r0, 0x8 ldr r1, =gUnknown_0203BC8C ldr r2, [r1] lsls r5, 4 adds r2, r5, r2 ldrh r1, [r2] ldrb r3, [r2, 0xC] str r6, [sp] ldrb r2, [r2, 0xB] str r2, [sp, 0x4] mov r2, r9 str r2, [sp, 0x8] ldr r2, [sp, 0x14] bl sub_8068634 movs r1, 0 add r0, sp, 0xC strb r1, [r0] movs r6, 0 adds r7, r5, 0 movs r3, 0x1 add r8, r3 ldr r3, =gUnknown_0300127C _0819B5B8: ldr r0, [r3] adds r0, r4 adds r0, 0x8 ldr r5, =gUnknown_0203BC8C ldr r1, [r5] adds r1, r7, r1 lsls r2, r6, 1 adds r1, 0x2 adds r1, r2 ldrh r1, [r1] adds r2, r6, 0 str r3, [sp, 0x20] bl sub_81A7024 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r3, [sp, 0x20] cmp r6, 0x3 bls _0819B5B8 movs r0, 0x6C mov r4, r10 muls r4, r0 adds r4, 0xC ldr r1, =gUnknown_0300127C ldr r0, [r1] adds r0, r4 adds r0, 0x8 movs r1, 0x20 add r2, sp, 0xC bl SetMonData ldr r2, =gUnknown_0300127C ldr r0, [r2] adds r0, r4 adds r0, 0x8 ldr r1, [r5] adds r1, r7, r1 ldrb r2, [r1, 0xA] lsls r2, 1 ldr r1, =gBattleFrontierHeldItems adds r2, r1 movs r1, 0xC bl SetMonData mov r3, r8 lsls r0, r3, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x5 bhi _0819B620 b _0819B518 _0819B620: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819B484 thumb_func_start sub_819B63C sub_819B63C: @ 819B63C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] add r0, sp, 0xC movs r1, 0 strb r1, [r0] ldr r2, =gUnknown_0203BC8C ldr r0, =gSlateportBattleTentMons str r0, [r2] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldrb r3, [r1, 0xA] ldrb r0, [r1, 0xB] lsls r0, 8 orrs r3, r0 ldrb r0, [r1, 0xC] lsls r0, 16 orrs r3, r0 ldrb r0, [r1, 0xD] lsls r0, 24 orrs r3, r0 mov r10, r3 movs r7, 0 mov r9, r7 _0819B678: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] mov r2, r9 lsls r0, r2, 1 add r0, r9 lsls r0, 2 adds r1, r0 movs r3, 0xE7 lsls r3, 4 adds r1, r3 ldrh r1, [r1] mov r8, r1 ldr r7, =gUnknown_0300127C ldr r0, [r7] ldr r6, [sp, 0x10] add r6, r9 movs r1, 0x6C adds r4, r6, 0 muls r4, r1 adds r1, r0, r4 mov r2, r8 strh r2, [r1, 0xC] adds r4, 0xC adds r0, r4 adds r0, 0x8 ldr r3, =gUnknown_0203BC8C ldr r2, [r3] mov r7, r8 lsls r5, r7, 4 adds r2, r5, r2 ldrh r1, [r2] ldrb r3, [r2, 0xC] movs r7, 0 str r7, [sp] ldrb r2, [r2, 0xB] str r2, [sp, 0x4] mov r2, r10 str r2, [sp, 0x8] movs r2, 0x1E bl sub_8068634 add r0, sp, 0xC movs r3, 0 strb r3, [r0] movs r0, 0x1 add r9, r0 _0819B6D4: ldr r1, =gUnknown_0300127C ldr r0, [r1] adds r0, r4 adds r0, 0x8 ldr r3, =gUnknown_0203BC8C ldr r2, [r3] mov r3, r8 lsls r1, r3, 4 adds r1, r2 lsls r2, r7, 1 adds r1, 0x2 adds r1, r2 ldrh r1, [r1] adds r2, r7, 0 bl sub_81A7024 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _0819B6D4 movs r7, 0x6C adds r4, r6, 0 muls r4, r7 adds r4, 0xC ldr r1, =gUnknown_0300127C ldr r0, [r1] adds r0, r4 adds r0, 0x8 movs r1, 0x20 add r2, sp, 0xC bl SetMonData ldr r2, =gUnknown_0300127C ldr r0, [r2] adds r0, r4 adds r0, 0x8 ldr r3, =gUnknown_0203BC8C ldr r1, [r3] adds r1, r5, r1 ldrb r2, [r1, 0xA] lsls r2, 1 ldr r1, =gBattleFrontierHeldItems adds r2, r1 movs r1, 0xC bl SetMonData mov r7, r9 lsls r0, r7, 24 lsrs r0, 24 mov r9, r0 cmp r0, 0x5 bls _0819B678 add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819B63C thumb_func_start sub_819B764 sub_819B764: @ 819B764 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} movs r7, 0 ldr r0, =gUnknown_0300127C mov r10, r0 ldr r1, =gSaveBlock2Ptr mov r8, r1 _0819B778: movs r2, 0 adds r0, r7, 0x1 mov r9, r0 _0819B77E: mov r1, r10 ldr r0, [r1] movs r1, 0x6C adds r6, r2, 0 muls r6, r1 adds r1, r0, r6 ldrb r0, [r1, 0x10] cmp r0, r9 bne _0819B81C movs r0, 0x64 adds r5, r7, 0 muls r5, r0 ldr r2, =gPlayerParty adds r5, r2 adds r1, 0x14 adds r0, r5, 0 movs r2, 0x64 bl memcpy mov r0, r8 ldr r1, [r0] lsls r4, r7, 1 adds r4, r7 lsls r4, 2 adds r1, r4 mov r2, r10 ldr r0, [r2] adds r0, r6 ldrh r0, [r0, 0xC] movs r2, 0xE7 lsls r2, 4 adds r1, r2 strh r0, [r1] adds r0, r5, 0 movs r1, 0 movs r2, 0 bl GetMonData mov r2, r8 ldr r1, [r2] ldr r2, =0x00000e74 adds r1, r2 adds r1, r4 str r0, [r1] adds r0, r5, 0 movs r1, 0x2E movs r2, 0 bl GetBoxMonData mov r2, r8 ldr r1, [r2] adds r1, r4 ldr r2, =0x00000e79 adds r1, r2 strb r0, [r1] adds r0, r5, 0 movs r1, 0x28 movs r2, 0 bl GetBoxMonData mov r2, r8 ldr r1, [r2] adds r1, r4 ldr r2, =0x00000e78 adds r1, r2 strb r0, [r1] b _0819B826 .pool _0819B81C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0819B77E _0819B826: mov r1, r9 lsls r0, r1, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _0819B778 bl CalculatePlayerPartyCount pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819B764 thumb_func_start sub_819B844 sub_819B844: @ 819B844 push {r4,r5,lr} ldr r5, =gUnknown_0300127C ldr r1, [r5] ldrb r0, [r1, 0x6] cmp r0, 0 bne _0819B852 strb r0, [r1] _0819B852: ldr r4, =gSprites ldr r2, [r5] ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xB0 strh r1, [r0, 0x20] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xD0 strh r1, [r0, 0x20] ldrb r0, [r2, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] bl sub_819BAFC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819B844 thumb_func_start sub_819B8D4 sub_819B8D4: @ 819B8D4 push {r4,r5,lr} ldr r5, =gUnknown_0300127C ldr r1, [r5] movs r0, 0 strb r0, [r1, 0x7] ldr r4, =gSprites ldr r2, [r5] ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xB0 strh r1, [r0, 0x20] ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r3, 0x70 strh r3, [r0, 0x22] ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xD0 strh r1, [r0, 0x20] ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x22] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] bl sub_819BBA8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819B8D4 thumb_func_start sub_819B958 sub_819B958: @ 819B958 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gSprites ldr r3, =gUnknown_0300127C ldr r0, [r3] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r3] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram adds r0, r4, 0 bl ClearWindowTilemap pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819B958 thumb_func_start sub_819B9B4 sub_819B9B4: @ 819B9B4 push {lr} sub sp, 0xC movs r0, 0 movs r1, 0 bl FillWindowPixelBuffer ldr r2, =gUnknown_085EEBB2 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0x1 movs r3, 0x2 bl PrintTextOnWindow movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_819B9B4 thumb_func_start sub_819B9E8 sub_819B9E8: @ 819B9E8 push {r4,r5,lr} sub sp, 0xC ldr r5, =gUnknown_0300127C ldr r0, [r5] ldrb r4, [r0, 0x3] movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x6C muls r0, r4 ldr r1, [r5] adds r0, r1 adds r0, 0x14 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r4, =gStringVar4 movs r1, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0x1 adds r1, r4, 0 movs r2, 0x56 bl GetStringRightAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_08610479 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r3, 0x1 bl box_print movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819B9E8 thumb_func_start sub_819BA64 sub_819BA64: @ 819BA64 push {lr} sub sp, 0xC movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x1 bne _0819BA88 ldr r2, =gUnknown_085EEBC1 b _0819BA9C .pool _0819BA88: cmp r0, 0x2 bne _0819BA94 ldr r2, =gUnknown_085EEBDB b _0819BA9C .pool _0819BA94: ldr r2, =gUnknown_085EEC2D cmp r0, 0x3 bne _0819BA9C ldr r2, =gUnknown_085EEBF6 _0819BA9C: movs r0, 0x5 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x1 movs r3, 0x2 bl PrintTextOnWindow movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_819BA64 thumb_func_start sub_819BAC8 sub_819BAC8: @ 819BAC8 push {lr} sub sp, 0xC movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer ldr r2, =gUnknown_085EEC50 movs r0, 0x5 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x1 movs r3, 0x2 bl PrintTextOnWindow movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_819BAC8 thumb_func_start sub_819BAFC sub_819BAFC: @ 819BAFC push {r4-r6,lr} sub sp, 0xC ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r2, [r0, 0x3] movs r1, 0x6C muls r1, r2 adds r0, r1 ldrb r5, [r0, 0x10] movs r0, 0x3 bl PutWindowTilemap movs r0, 0x3 movs r1, 0 bl FillWindowPixelBuffer ldr r4, =gUnknown_08610476 str r4, [sp] movs r6, 0 str r6, [sp, 0x4] ldr r0, =gUnknown_085EEC15 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0x7 movs r3, 0x1 bl box_print cmp r5, 0 beq _0819BB60 str r4, [sp] str r6, [sp, 0x4] ldr r0, =gUnknown_085EEC24 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0x7 movs r3, 0x11 bl box_print b _0819BB74 .pool _0819BB60: str r4, [sp] str r5, [sp, 0x4] ldr r0, =gUnknown_085EEC10 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0x7 movs r3, 0x11 bl box_print _0819BB74: ldr r0, =gUnknown_08610476 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] ldr r0, =gUnknown_085EEC1D str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0x7 movs r3, 0x21 bl box_print movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819BAFC thumb_func_start sub_819BBA8 sub_819BBA8: @ 819BBA8 push {r4,r5,lr} sub sp, 0xC movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 movs r1, 0 bl FillWindowPixelBuffer ldr r5, =gUnknown_08610476 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r0, =gUnknown_085EEC49 str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 movs r2, 0x7 movs r3, 0x1 bl box_print str r5, [sp] str r4, [sp, 0x4] ldr r0, =gUnknown_085EEC4D str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 movs r2, 0x7 movs r3, 0x11 bl box_print movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819BBA8 thumb_func_start sub_819BC04 sub_819BC04: @ 819BC04 push {lr} ldr r2, =gUnknown_030062E8 ldr r1, =gUnknown_0861041C ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_819BC04 thumb_func_start sub_819BC30 sub_819BC30: @ 819BC30 push {r4,lr} ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r2, [r0, 0x3] movs r1, 0x6C muls r1, r2 adds r0, r1 ldrb r1, [r0, 0x10] ldrh r0, [r0, 0xC] cmp r1, 0 bne _0819BC60 bl sub_819C634 cmp r0, 0 bne _0819BC60 bl sub_819BAC8 movs r0, 0x3 bl sub_819B958 movs r0, 0x3 b _0819BC96 .pool _0819BC60: ldr r4, =gUnknown_0300127C ldr r1, [r4] movs r2, 0xA6 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] adds r2, 0x8 adds r1, r2 movs r2, 0 bl sub_819F3F8 bl sub_819ACE0 bl sub_819BA64 movs r0, 0x3 bl sub_819B958 ldr r0, [r4] ldrb r0, [r0, 0x5] cmp r0, 0x3 bhi _0819BC94 movs r0, 0x1 b _0819BC96 .pool _0819BC94: movs r0, 0x2 _0819BC96: pop {r4} pop {r1} bx r1 thumb_func_end sub_819BC30 thumb_func_start sub_819BC9C sub_819BC9C: @ 819BC9C push {lr} bl sub_819C568 bl sub_819ACE0 bl sub_819BA64 movs r0, 0x3 bl sub_819B958 ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r0, [r0, 0x5] cmp r0, 0x3 bhi _0819BCC4 movs r0, 0x1 b _0819BCC6 .pool _0819BCC4: movs r0, 0x2 _0819BCC6: pop {r1} bx r1 thumb_func_end sub_819BC9C thumb_func_start sub_819BCCC sub_819BCCC: @ 819BCCC movs r0, 0 bx lr thumb_func_end sub_819BCCC thumb_func_start sub_819BCD0 sub_819BCD0: @ 819BCD0 push {lr} ldr r0, =gUnknown_0300127C ldr r1, [r0] movs r2, 0xA6 lsls r2, 2 adds r0, r1, r2 ldr r0, [r0] adds r2, 0x8 adds r1, r2 movs r2, 0 bl sub_819F3F8 movs r0, 0x3 bl sub_819B958 movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end sub_819BCD0 thumb_func_start sub_819BCF8 sub_819BCF8: @ 819BCF8 push {r4,r5,lr} sub sp, 0x2C ldr r5, =gUnknown_0300127C ldr r0, [r5] ldrb r4, [r0, 0x3] cmp r4, 0x5 bhi _0819BD64 movs r0, 0x5 bl PutWindowTilemap movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x6C muls r0, r4 ldr r1, [r5] adds r0, r1 adds r0, 0x14 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 add r1, sp, 0xC bl sub_81DB468 movs r0, 0x1 add r1, sp, 0xC movs r2, 0x76 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x5 movs r1, 0x1 add r2, sp, 0xC bl PrintTextOnWindow movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram _0819BD64: add sp, 0x2C pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819BCF8 thumb_func_start sub_819BD70 sub_819BD70: @ 819BD70 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x10 ldr r6, =gUnknown_0300127C ldr r2, [r6] ldrb r1, [r2, 0x3] movs r0, 0x6C adds r4, r1, 0 muls r4, r0 adds r4, r2 adds r4, 0x14 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData mov r8, r0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl GetMonData adds r1, r0, 0 movs r0, 0x58 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] ldr r0, =0x0000ffff str r0, [sp, 0xC] adds r0, r5, 0 mov r2, r8 movs r3, 0x1 bl sub_818D7D8 ldr r1, [r6] movs r2, 0xA6 lsls r2, 2 adds r1, r2 movs r3, 0 strb r0, [r1] ldr r4, =gSprites ldr r0, [r6] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x28 strb r3, [r0] ldr r0, [r6] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x29 strb r3, [r0] ldr r0, [r6] movs r1, 0xA8 lsls r1, 2 adds r0, r1 strb r3, [r0] add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819BD70 thumb_func_start sub_819BE20 sub_819BE20: @ 819BE20 ldr r1, =gUnknown_0300127C ldr r1, [r1] movs r2, 0xA8 lsls r2, 2 adds r1, r2 strb r0, [r1] bx lr .pool thumb_func_end sub_819BE20 thumb_func_start sub_819BE34 sub_819BE34: @ 819BE34 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r0, =gUnknown_08610638 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r6, =gUnknown_0300127C ldr r1, [r6] ldr r2, =0x00000299 mov r10, r2 add r1, r10 movs r7, 0 strb r0, [r1] ldr r0, [r6] add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites mov r8, r1 add r0, r8 movs r1, 0x2 bl StartSpriteAffineAnim ldr r2, [r6] ldrb r1, [r2, 0x3] movs r0, 0x6C adds r4, r1, 0 muls r4, r0 adds r4, r2 adds r4, 0x14 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData mov r9, r0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl GetMonData adds r1, r0, 0 movs r0, 0x58 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] ldr r0, =0x0000ffff str r0, [sp, 0xC] adds r0, r5, 0 mov r2, r9 movs r3, 0x1 bl sub_818D7D8 ldr r1, [r6] movs r2, 0xA6 lsls r2, 2 adds r1, r2 strb r0, [r1] ldr r0, [r6] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x28 strb r7, [r0] ldr r0, [r6] adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x29 strb r7, [r0] ldr r0, [r6] add r0, r10 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819BE34 thumb_func_start sub_819BF2C sub_819BF2C: @ 819BF2C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r7, 0 ldr r0, =gUnknown_0300127C mov r9, r0 _0819BF3E: movs r2, 0 adds r1, r7, 0x1 mov r10, r1 lsls r0, r7, 2 mov r8, r0 _0819BF48: mov r0, r9 ldr r1, [r0] movs r0, 0x6C adds r4, r2, 0 muls r4, r0 adds r0, r1, r4 ldrb r0, [r0, 0x10] cmp r0, r10 bne _0819C008 adds r4, r1 adds r4, 0x14 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData adds r6, r0, 0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl GetMonData adds r1, r0, 0 lsls r0, r7, 3 adds r0, r7 lsls r0, 19 movs r2, 0x80 lsls r2, 13 adds r0, r2 asrs r0, 16 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] adds r0, r7, 0 adds r0, 0xD lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] ldr r0, =0x0000ffff str r0, [sp, 0xC] adds r0, r5, 0 adds r2, r6, 0 movs r3, 0x1 bl sub_818D7D8 mov r2, r9 ldr r1, [r2] add r1, r8 movs r2, 0xA5 lsls r2, 2 adds r1, r2 strb r0, [r1] mov r1, r9 ldr r0, [r1] add r0, r8 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r2, =gSprites adds r0, r2 adds r0, 0x28 movs r1, 0 strb r1, [r0] mov r2, r9 ldr r0, [r2] add r0, r8 movs r1, 0xA5 lsls r1, 2 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r2, =gSprites adds r0, r2 adds r0, 0x29 movs r1, 0 strb r1, [r0] b _0819C012 .pool _0819C008: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0819BF48 _0819C012: mov r2, r10 lsls r0, r2, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _0819BF3E ldr r0, =gUnknown_0300127C ldr r0, [r0] movs r1, 0xA8 lsls r1, 2 adds r0, r1 movs r1, 0 strb r1, [r0] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819BF2C thumb_func_start sub_819C040 sub_819C040: @ 819C040 push {r4-r6,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819C0DC ldr r3, =gSprites ldr r6, =gUnknown_0300127C ldr r2, [r6] ldr r0, =0x00000295 adds r5, r2, r0 ldrb r0, [r5] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 adds r1, 0x3F ldrb r0, [r1] lsls r0, 26 cmp r0, 0 bge _0819C0DC ldr r1, =0x0000029d adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _0819C0DC adds r1, r4, 0 adds r1, 0x3E ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r0, [r6] ldr r1, =0x0000029d adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r0, =sub_819C1D0 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _0819C0DC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819C040 thumb_func_start sub_819C100 sub_819C100: @ 819C100 push {r4-r7,lr} adds r5, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819C1BA ldr r6, =gSprites ldr r4, =gUnknown_0300127C ldr r2, [r4] ldr r7, =0x00000295 adds r0, r2, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _0819C1BA ldr r1, =0x0000029d adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3F ldrb r0, [r0] lsls r0, 26 cmp r0, 0 bge _0819C1BA ldrb r0, [r5, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] adds r0, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] ldr r1, =0x0000029d adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix ldr r0, [r4] movs r1, 0xA8 lsls r1, 2 adds r0, r1 movs r1, 0 strb r1, [r0] ldr r0, [r4] adds r0, r7 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite ldr r0, [r4] ldr r1, =0x0000029d adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 bl DestroySprite adds r0, r5, 0 bl DestroySprite _0819C1BA: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819C100 thumb_func_start sub_819C1D0 sub_819C1D0: @ 819C1D0 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0819C24E cmp r0, 0x1 bgt _0819C1F8 cmp r0, 0 beq _0819C1FE b _0819C2BA .pool _0819C1F8: cmp r0, 0x2 beq _0819C270 b _0819C2BA _0819C1FE: movs r0, 0x10 strh r0, [r4, 0xE] movs r0, 0xE0 strh r0, [r4, 0x38] movs r0, 0x40 strh r0, [r4, 0x12] movs r0, 0x41 strh r0, [r4, 0x18] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x38] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x37 bl SetGpuReg b _0819C2C6 _0819C24E: movs r0, 0x3 bl ShowBg ldr r1, =0x00001248 movs r0, 0x50 bl SetGpuReg ldr r1, =0x0000040b movs r0, 0x52 bl SetGpuReg b _0819C2C6 .pool _0819C270: ldrh r0, [r4, 0x12] subs r0, 0x4 strh r0, [r4, 0x12] ldrh r1, [r4, 0x18] adds r1, 0x4 strh r1, [r4, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _0819C28C lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x5F ble _0819C29E _0819C28C: movs r0, 0x20 strh r0, [r4, 0x12] movs r0, 0x60 strh r0, [r4, 0x18] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits _0819C29E: ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x20 bne _0819C2CC b _0819C2C6 _0819C2BA: adds r0, r2, 0 bl DestroyTask bl sub_819BF2C b _0819C2CC _0819C2C6: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0819C2CC: pop {r4} pop {r0} bx r0 thumb_func_end sub_819C1D0 thumb_func_start sub_819C2D4 sub_819C2D4: @ 819C2D4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _0819C2F6 b _0819C410 _0819C2F6: cmp r0, 0x1 bne _0819C2FC b _0819C460 _0819C2FC: movs r0, 0x3 bl HideBg ldr r4, =gSprites ldr r0, =gUnknown_0300127C mov r8, r0 ldr r0, [r0] ldr r1, =0x00000299 mov r12, r1 add r0, r12 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x5 negs r3, r3 adds r0, r3, 0 ands r0, r2 strb r0, [r1] mov r0, r8 ldr r2, [r0] mov r1, r12 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r6, r4, 0 adds r6, 0x1C adds r0, r6 ldr r1, =sub_819C100 str r1, [r0] ldr r0, =0x00000295 mov r9, r0 add r2, r9 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] adds r1, r3, 0 ands r1, r2 strb r1, [r0] mov r1, r8 ldr r2, [r1] mov r1, r9 adds r0, r2, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r1, =SpriteCallbackDummy mov r10, r1 str r1, [r0] ldr r5, =0x0000029d adds r2, r5 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r3, r1 strb r3, [r0] mov r0, r8 ldr r2, [r0] adds r0, r2, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 mov r1, r10 str r1, [r0] add r2, r12 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAffineAnim mov r1, r8 ldr r0, [r1] add r0, r9 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAffineAnim mov r1, r8 ldr r0, [r1] adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0x1 bl StartSpriteAffineAnim movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits adds r0, r7, 0 bl DestroyTask b _0819C4A4 .pool _0819C410: movs r0, 0x10 strh r0, [r4, 0xE] movs r0, 0xE0 strh r0, [r4, 0x38] movs r0, 0x20 strh r0, [r4, 0x12] movs r0, 0x60 strh r0, [r4, 0x18] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x38] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x37 bl SetGpuReg b _0819C49E _0819C460: ldrh r0, [r4, 0x12] adds r0, 0x4 strh r0, [r4, 0x12] ldrh r1, [r4, 0x18] subs r1, 0x4 strh r1, [r4, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F bgt _0819C47C lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x41 bgt _0819C484 _0819C47C: movs r0, 0x40 strh r0, [r4, 0x12] movs r0, 0x41 strh r0, [r4, 0x18] _0819C484: ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x40 bne _0819C4A4 _0819C49E: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0819C4A4: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819C2D4 thumb_func_start sub_819C4B4 sub_819C4B4: @ 819C4B4 push {r4-r6,lr} mov r6, r8 push {r6} ldr r4, =gUnknown_08610638 adds r0, r4, 0 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r6, =gUnknown_0300127C ldr r1, [r6] ldr r2, =0x00000299 mov r8, r2 add r1, r8 strb r0, [r1] adds r0, r4, 0 movs r1, 0x2C movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r1, [r6] ldr r5, =0x00000295 adds r1, r5 strb r0, [r1] adds r0, r4, 0 movs r1, 0xC4 movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r1, [r6] ldr r4, =0x0000029d adds r1, r4 strb r0, [r1] ldr r3, =gSprites ldr r2, [r6] add r8, r2 mov r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r3, 0x1C adds r0, r3 ldr r1, =sub_819C040 str r1, [r0] adds r5, r2, r5 ldrb r1, [r5] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldr r5, =SpriteCallbackDummy str r5, [r0] adds r4, r2, r4 ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 str r5, [r0] movs r0, 0xA8 lsls r0, 2 adds r2, r0 movs r0, 0x1 strb r0, [r2] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819C4B4 thumb_func_start sub_819C568 sub_819C568: @ 819C568 push {r4,lr} ldr r4, =gUnknown_0300127C ldr r0, [r4] movs r1, 0xA5 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_818D820 ldr r0, [r4] movs r1, 0xA6 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_818D820 ldr r0, [r4] movs r1, 0xA7 lsls r1, 2 adds r0, r1 ldrb r0, [r0] bl sub_818D820 ldr r0, =sub_819C2D4 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r0, [r4] movs r1, 0xA8 lsls r1, 2 adds r0, r1 movs r1, 0x1 strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819C568 thumb_func_start sub_819C5D0 sub_819C5D0: @ 819C5D0 push {r4-r6,lr} mov r6, r8 push {r6} adds r4, r0, 0 adds r6, r1, 0 adds r5, r2, 0 mov r8, r3 lsls r4, 16 lsrs r4, 16 lsls r6, 16 lsrs r6, 16 lsls r5, 16 lsrs r5, 16 mov r0, r8 lsls r0, 16 lsrs r0, 16 mov r8, r0 movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits lsls r4, 24 lsrs r4, 16 orrs r4, r6 movs r0, 0x40 adds r1, r4, 0 bl SetGpuReg lsls r5, 24 lsrs r5, 16 mov r0, r8 orrs r5, r0 movs r0, 0x44 adds r1, r5, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x37 bl SetGpuReg pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_819C5D0 thumb_func_start sub_819C634 sub_819C634: @ 819C634 push {r4-r7,lr} lsls r0, 16 ldr r2, =gUnknown_0203BC8C ldr r1, [r2] lsrs r0, 12 adds r0, r1 ldrh r6, [r0] ldr r0, =gUnknown_0300127C ldr r0, [r0] ldrb r5, [r0, 0x5] movs r3, 0x1 cmp r3, r5 bcs _0819C694 adds r4, r0, 0 movs r0, 0x6C mov r12, r0 adds r7, r2, 0 _0819C656: movs r2, 0 _0819C658: mov r0, r12 muls r0, r2 adds r1, r4, r0 ldrb r0, [r1, 0x10] cmp r0, r3 bne _0819C680 ldrh r0, [r1, 0xC] ldr r1, [r7] lsls r0, 4 adds r0, r1 ldrh r0, [r0] cmp r0, r6 bne _0819C68A movs r0, 0 b _0819C696 .pool _0819C680: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0819C658 _0819C68A: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r5 bcc _0819C656 _0819C694: movs r0, 0x1 _0819C696: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_819C634 thumb_func_start sub_819C69C sub_819C69C: @ 819C69C push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r0, 0x8 ldrsh r2, [r5, r0] cmp r2, 0x1 beq _0819C6F8 cmp r2, 0x1 bgt _0819C6C4 cmp r2, 0 beq _0819C6CA b _0819C7D8 .pool _0819C6C4: cmp r2, 0x2 beq _0819C7B4 b _0819C7D8 _0819C6CA: ldr r1, =gUnknown_0300127C ldr r0, [r1] ldr r3, =0x000002a7 adds r0, r3 strb r2, [r0] ldr r0, [r1] adds r3, 0x1 adds r0, r3 strb r2, [r0] ldr r0, [r1] ldr r1, =0x000002a6 adds r0, r1 movs r1, 0x1 strb r1, [r0] strh r1, [r5, 0x8] b _0819C7D8 .pool _0819C6F8: ldr r0, =gUnknown_0300127C ldr r3, [r0] ldr r2, =0x000002a2 adds r1, r3, r2 ldrb r1, [r1] adds r7, r0, 0 cmp r1, 0 beq _0819C7D8 ldr r1, =0x000002a9 adds r0, r3, r1 ldrb r4, [r0] cmp r4, 0 beq _0819C724 movs r0, 0x2 strh r0, [r5, 0x8] b _0819C7D8 .pool _0819C724: ldr r2, =0x000002a7 adds r1, r3, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r7] adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x6 bls _0819C764 strb r4, [r1] ldr r1, [r7] subs r2, 0x1 adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0 bne _0819C758 movs r3, 0xAA lsls r3, 2 adds r1, r3 ldrb r0, [r1] subs r0, 0x1 b _0819C762 .pool _0819C758: movs r0, 0xAA lsls r0, 2 adds r1, r0 ldrb r0, [r1] adds r0, 0x1 _0819C762: strb r0, [r1] _0819C764: movs r0, 0x80 lsls r0, 7 ldr r1, [r7] movs r4, 0xAA lsls r4, 2 adds r1, r4 ldrb r1, [r1] movs r2, 0 bl BlendPalettes ldr r2, [r7] adds r4, r2, r4 ldrb r0, [r4] cmp r0, 0x5 bls _0819C790 ldr r3, =0x000002a6 adds r1, r2, r3 movs r0, 0 b _0819C7D6 .pool _0819C790: cmp r0, 0 bne _0819C7D8 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x8] ldr r0, =0x000002a6 adds r1, r2, r0 movs r0, 0x1 b _0819C7D6 .pool _0819C7B4: ldr r0, =gUnknown_0300127C ldr r0, [r0] ldr r2, =0x000002a9 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xE bls _0819C7D4 movs r0, 0 strb r0, [r1] movs r0, 0x1 strh r0, [r5, 0x8] b _0819C7D8 .pool _0819C7D4: adds r0, 0x1 _0819C7D6: strb r0, [r1] _0819C7D8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819C69C thumb_func_start sub_819C7E0 sub_819C7E0: @ 819C7E0 push {lr} bl AnimateSprites bl BuildOamBuffer bl RunTextPrinters bl UpdatePaletteFade bl RunTasks pop {r0} bx r0 thumb_func_end sub_819C7E0 thumb_func_start sub_819C7FC sub_819C7FC: @ 819C7FC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_819C7FC thumb_func_start sub_819C810 sub_819C810: @ 819C810 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x4 ldr r4, =gPlayerParty ldr r5, =gUnknown_03001284 ldr r1, [r5] ldrb r0, [r1, 0x12] movs r6, 0x64 muls r0, r6 adds r0, r4 ldr r2, =gEnemyParty mov r9, r2 ldrb r1, [r1, 0x13] muls r1, r6 add r1, r9 movs r2, 0x64 bl memcpy movs r1, 0 mov r0, sp strb r1, [r0] ldr r0, [r5] ldrb r0, [r0, 0x12] muls r0, r6 adds r0, r4 movs r1, 0x20 mov r2, sp bl SetMonData ldr r3, =gSaveBlock2Ptr mov r8, r3 ldr r3, [r3] ldr r4, [r5] ldrb r0, [r4, 0x12] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r3, r2 ldrb r1, [r4, 0x13] adds r1, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r3, r0 movs r1, 0xE7 lsls r1, 4 adds r0, r1 ldrh r0, [r0] adds r2, r1 strh r0, [r2] ldrb r0, [r4, 0x12] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r3, r2 ldrb r1, [r4, 0x13] adds r1, 0x3 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r3, r0 ldr r0, =0x00000e78 adds r3, r0 ldrb r1, [r3] adds r2, r0 strb r1, [r2] ldr r0, [r5] ldrb r0, [r0, 0x13] muls r0, r6 add r0, r9 movs r1, 0 movs r2, 0 bl GetMonData mov r1, r8 ldr r2, [r1] ldr r4, [r5] ldrb r3, [r4, 0x12] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 ldr r3, =0x00000e74 adds r2, r3 adds r2, r1 str r0, [r2] ldrb r0, [r4, 0x13] muls r0, r6 add r0, r9 movs r1, 0x2E movs r2, 0 bl GetBoxMonData mov r1, r8 ldr r2, [r1] ldr r1, [r5] ldrb r3, [r1, 0x12] lsls r1, r3, 1 adds r1, r3 lsls r1, 2 adds r2, r1 ldr r3, =0x00000e79 adds r2, r3 strb r0, [r2] add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819C810 thumb_func_start sub_819C90C sub_819C90C: @ 819C90C push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r6, r0, r1 movs r1, 0x8 ldrsh r0, [r6, r1] cmp r0, 0x7 beq _0819C950 cmp r0, 0x7 bgt _0819C934 cmp r0, 0x6 beq _0819C93A b _0819C9F0 .pool _0819C934: cmp r0, 0x8 beq _0819C9C4 b _0819C9F0 _0819C93A: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade movs r0, 0x7 strh r0, [r6, 0x8] b _0819C9F0 _0819C950: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0819C9F0 ldr r4, =gUnknown_03001284 ldr r0, [r4] adds r0, 0x21 ldrb r0, [r0] bl DestroyTask ldr r1, [r4] ldr r0, [r1, 0x2C] adds r1, 0x30 bl sub_819F444 bl sub_819E538 ldr r4, =gUnknown_0203CE40 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE44 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE48 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE4C ldr r0, [r4] bl Free str r5, [r4] bl FreeAllWindowBuffers movs r0, 0x8 strh r0, [r6, 0x8] b _0819C9F0 .pool _0819C9C4: adds r0, r2, 0 bl DestroyTask ldr r2, =gUnknown_03001284 ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x15] ldr r2, [r2] ldr r0, =gPlttBufferUnfaded movs r1, 0xF4 lsls r1, 1 adds r0, r1 ldrh r0, [r0] strh r0, [r2, 0x24] ldr r1, =gPlayerParty ldrb r2, [r2, 0x3] ldr r0, =sub_819DC1C str r0, [sp] movs r0, 0 movs r3, 0x2 bl sub_81BF8EC _0819C9F0: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819C90C thumb_func_start sub_819CA08 sub_819CA08: @ 819CA08 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gUnknown_03001284 ldr r2, [r7] adds r0, r2, 0 adds r0, 0x30 ldrb r0, [r0] cmp r0, 0x1 beq _0819CAFE ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0819CA78 cmp r1, 0x1 bgt _0819CA44 cmp r1, 0 beq _0819CA4E b _0819CAFE .pool _0819CA44: cmp r1, 0x2 beq _0819CA8C cmp r1, 0x3 beq _0819CAA4 b _0819CAFE _0819CA4E: adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1 bne _0819CA68 ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldr r0, =gScriptResult strh r1, [r0] b _0819CAFE .pool _0819CA68: movs r0, 0x2 strh r0, [r4, 0x8] ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] b _0819CAFE .pool _0819CA78: adds r0, r2, 0 adds r0, 0x20 ldrb r0, [r0] cmp r0, 0x1 bne _0819CA9C ldrb r0, [r2, 0x3] strb r0, [r2, 0x13] bl sub_819C810 b _0819CA9C _0819CA8C: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0819CA9C: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0819CAFE _0819CAA4: bl UpdatePaletteFade lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _0819CAFE ldr r0, [r7] adds r0, 0x21 ldrb r0, [r0] bl DestroyTask bl sub_819E538 ldr r4, =gUnknown_0203CE40 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE44 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE48 ldr r0, [r4] bl Free str r5, [r4] ldr r4, =gUnknown_0203CE4C ldr r0, [r4] bl Free str r5, [r4] ldr r0, [r7] bl Free str r5, [r7] bl FreeAllWindowBuffers ldr r0, =sub_80861B0 bl SetMainCallback2 adds r0, r6, 0 bl DestroyTask _0819CAFE: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819CA08 thumb_func_start sub_819CB1C sub_819CB1C: @ 819CB1C push {r4-r7,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r7, =gUnknown_03001284 ldr r0, [r7] adds r0, 0x30 ldrb r0, [r0] cmp r0, 0x1 beq _0819CBD6 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x4 beq _0819CB50 cmp r0, 0x5 beq _0819CB5A b _0819CBD6 .pool _0819CB50: bl sub_819E9E0 movs r0, 0x5 strh r0, [r4, 0x8] b _0819CBD6 _0819CB5A: ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r6, 0x1 adds r5, r6, 0 ands r5, r1 cmp r5, 0 beq _0819CB86 movs r0, 0x5 bl PlaySE ldr r0, [r7] ldrb r0, [r0, 0x16] cmp r0, 0 bne _0819CB80 strh r6, [r4, 0xA] b _0819CB9C .pool _0819CB80: movs r0, 0 strh r0, [r4, 0xA] b _0819CB96 _0819CB86: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819CBA8 movs r0, 0x5 bl PlaySE strh r5, [r4, 0xA] _0819CB96: movs r0, 0x4 bl sub_819EA64 _0819CB9C: ldrh r0, [r4, 0x14] ldrh r1, [r4, 0x16] lsls r0, 16 orrs r0, r1 str r0, [r4] b _0819CBD6 _0819CBA8: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0819CBC2 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 bl sub_819E758 b _0819CBD6 _0819CBC2: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819CBD6 movs r0, 0x5 bl PlaySE movs r0, 0x1 bl sub_819E758 _0819CBD6: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819CB1C thumb_func_start sub_819CBDC sub_819CBDC: @ 819CBDC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r2, r1, r2 movs r1, 0xA ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0819CC04 movs r0, 0 strh r0, [r2, 0x8] ldr r0, =sub_819CA08 b _0819CC16 .pool _0819CC04: movs r0, 0 strh r0, [r2, 0x8] ldr r1, =sub_819CE40 lsrs r0, r1, 16 strh r0, [r2, 0x14] strh r1, [r2, 0x16] movs r0, 0x1 strh r0, [r2, 0x12] ldr r0, =sub_819D770 _0819CC16: str r0, [r2] pop {r0} bx r0 .pool thumb_func_end sub_819CBDC thumb_func_start sub_819CC24 sub_819CC24: @ 819CC24 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r5, [r4, r0] cmp r5, 0 bne _0819CC5A ldr r0, =gUnknown_085EECBB bl sub_819EBEC ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x20 strb r5, [r0] movs r0, 0x4 strh r0, [r4, 0x8] ldr r1, =sub_819CBDC lsrs r0, r1, 16 strh r0, [r4, 0x14] strh r1, [r4, 0x16] ldr r0, =sub_819CB1C str r0, [r4] _0819CC5A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819CC24 thumb_func_start sub_819CC74 sub_819CC74: @ 819CC74 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_03001284 ldr r1, [r0] ldr r0, [r1, 0x2C] adds r1, 0x30 movs r2, 0x1 bl sub_819F3F8 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r2, r0, r1 movs r1, 0xA ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0819CCB0 movs r0, 0 strh r0, [r2, 0x8] ldr r0, =sub_819CA08 b _0819CCC2 .pool _0819CCB0: movs r0, 0 strh r0, [r2, 0x8] ldr r1, =sub_819CE40 lsrs r0, r1, 16 strh r0, [r2, 0x14] strh r1, [r2, 0x16] movs r0, 0x1 strh r0, [r2, 0x12] ldr r0, =sub_819D770 _0819CCC2: str r0, [r2] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819CC74 thumb_func_start sub_819CCD4 sub_819CCD4: @ 819CCD4 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r5, r1, r2 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0 bne _0819CD1A ldr r4, =gUnknown_03001284 ldr r1, [r4] adds r0, r1, 0 adds r0, 0x2D adds r1, 0x30 movs r2, 0x1 bl sub_819F2B4 ldr r0, =gUnknown_085EECF0 bl sub_819EBEC ldr r0, [r4] adds r0, 0x20 movs r1, 0x1 strb r1, [r0] movs r0, 0x4 strh r0, [r5, 0x8] ldr r1, =sub_819CC74 lsrs r0, r1, 16 strh r0, [r5, 0x14] strh r1, [r5, 0x16] ldr r0, =sub_819CB1C str r0, [r5] _0819CD1A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819CCD4 thumb_func_start sub_819CD34 sub_819CD34: @ 819CD34 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r5, r0, r1 movs r1, 0x8 ldrsh r0, [r5, r1] cmp r0, 0x3 beq _0819CDA4 cmp r0, 0x3 bgt _0819CD60 cmp r0, 0x2 beq _0819CD66 b _0819CE36 .pool _0819CD60: cmp r0, 0x9 beq _0819CD88 b _0819CE36 _0819CD66: ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x15] cmp r0, 0 bne _0819CD7C adds r0, r1, 0 adds r0, 0x2D adds r1, 0x30 movs r2, 0x1 bl sub_819F2B4 _0819CD7C: movs r0, 0x9 strh r0, [r5, 0x8] b _0819CE36 .pool _0819CD88: ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x30 ldrb r0, [r0] cmp r0, 0x1 beq _0819CE36 bl sub_819E944 movs r0, 0x3 strh r0, [r5, 0x8] b _0819CE36 .pool _0819CDA4: ldr r7, =gUnknown_03001284 ldr r0, [r7] adds r0, 0x30 ldrb r0, [r0] cmp r0, 0x1 beq _0819CE36 ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 mov r8, r0 mov r4, r8 ands r4, r1 cmp r4, 0 beq _0819CDD8 movs r0, 0x5 bl PlaySE adds r0, r6, 0 bl sub_819F0A0 b _0819CE36 .pool _0819CDD8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819CE14 movs r0, 0x5 bl PlaySE ldr r1, [r7] ldr r0, [r1, 0x2C] adds r1, 0x30 movs r2, 0x1 bl sub_819F3F8 movs r0, 0x3 bl sub_819EA64 strh r4, [r5, 0x8] ldr r1, =sub_819CE40 lsrs r0, r1, 16 strh r0, [r5, 0x14] strh r1, [r5, 0x16] mov r1, r8 strh r1, [r5, 0x12] ldr r0, =sub_819D770 str r0, [r5] b _0819CE36 .pool _0819CE14: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0819CE28 movs r0, 0x1 negs r0, r0 bl sub_819E7C0 b _0819CE36 _0819CE28: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819CE36 movs r0, 0x1 bl sub_819E7C0 _0819CE36: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819CD34 thumb_func_start sub_819CE40 sub_819CE40: @ 819CE40 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0819CE64 cmp r0, 0x1 beq _0819CE88 b _0819CF4C .pool _0819CE64: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0819CF4C ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x22 movs r1, 0x1 strb r1, [r0] strh r1, [r4, 0x8] b _0819CF4C .pool _0819CE88: ldr r2, =gMain ldrh r1, [r2, 0x2E] adds r5, r1, 0 ands r5, r0 cmp r5, 0 beq _0819CEBC movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x22 movs r1, 0 strb r1, [r0] bl sub_819EE08 bl sub_819EAC0 adds r0, r6, 0 bl sub_819F184 b _0819CF4C .pool _0819CEBC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819CEF8 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x22 strb r5, [r0] bl sub_819EE08 bl sub_819EAC0 ldr r1, =sub_819CC24 lsrs r0, r1, 16 strh r0, [r4, 0x14] strh r1, [r4, 0x16] strh r5, [r4, 0x8] strh r5, [r4, 0x12] ldr r0, =sub_819D588 str r0, [r4] b _0819CF4C .pool _0819CEF8: ldrh r1, [r2, 0x30] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819CF0C movs r0, 0x1 negs r0, r0 bl sub_819E694 b _0819CF2A _0819CF0C: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0819CF1C movs r0, 0x1 bl sub_819E694 b _0819CF2A _0819CF1C: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _0819CF34 movs r0, 0x1 bl sub_819E6E8 _0819CF2A: bl sub_819EFA8 bl sub_819EB4C b _0819CF4C _0819CF34: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _0819CF4C movs r0, 0x1 negs r0, r0 bl sub_819E6E8 bl sub_819EFA8 bl sub_819EB4C _0819CF4C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_819CE40 thumb_func_start sub_819CF54 sub_819CF54: @ 819CF54 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r4, r0, r1 movs r0, 0x8 ldrsh r2, [r4, r0] cmp r2, 0x1 beq _0819CFA0 cmp r2, 0x1 bgt _0819CF7C cmp r2, 0 beq _0819CF82 b _0819D05C .pool _0819CF7C: cmp r2, 0x2 beq _0819D03C b _0819D05C _0819CF82: ldr r1, =gUnknown_03001284 ldr r0, [r1] adds r0, 0x27 strb r2, [r0] ldr r0, [r1] adds r0, 0x28 strb r2, [r0] ldr r0, [r1] adds r0, 0x26 movs r1, 0x1 strb r1, [r0] strh r1, [r4, 0x8] b _0819D05C .pool _0819CFA0: ldr r1, =gUnknown_03001284 ldr r2, [r1] adds r0, r2, 0 adds r0, 0x22 ldrb r0, [r0] adds r6, r1, 0 cmp r0, 0 beq _0819D05C adds r0, r2, 0 adds r0, 0x29 ldrb r3, [r0] cmp r3, 0 beq _0819CFC4 movs r0, 0x2 strh r0, [r4, 0x8] b _0819D05C .pool _0819CFC4: adds r1, r2, 0 adds r1, 0x27 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r6] adds r1, r0, 0 adds r1, 0x27 ldrb r0, [r1] cmp r0, 0x6 bls _0819CFF8 strb r3, [r1] ldr r1, [r6] adds r0, r1, 0 adds r0, 0x26 ldrb r0, [r0] cmp r0, 0 bne _0819CFF0 adds r1, 0x28 ldrb r0, [r1] subs r0, 0x1 b _0819CFF6 _0819CFF0: adds r1, 0x28 ldrb r0, [r1] adds r0, 0x1 _0819CFF6: strb r0, [r1] _0819CFF8: movs r0, 0x80 lsls r0, 7 ldr r1, [r6] adds r1, 0x28 ldrb r1, [r1] movs r2, 0 bl BlendPalettes ldr r2, [r6] adds r0, r2, 0 adds r0, 0x28 ldrb r0, [r0] cmp r0, 0x5 bls _0819D01C adds r1, r2, 0 adds r1, 0x26 movs r0, 0 b _0819D05A _0819D01C: cmp r0, 0 bne _0819D05C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0x2 strh r1, [r0, 0x8] adds r1, r2, 0 adds r1, 0x26 movs r0, 0x1 b _0819D05A .pool _0819D03C: ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r1, r0, 0 adds r1, 0x29 ldrb r0, [r1] cmp r0, 0xE bls _0819D058 movs r0, 0 strb r0, [r1] movs r0, 0x1 strh r0, [r4, 0x8] b _0819D05C .pool _0819D058: adds r0, 0x1 _0819D05A: strb r0, [r1] _0819D05C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_819CF54 thumb_func_start sub_819D064 sub_819D064: @ 819D064 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 movs r0, 0x8 ldrsh r1, [r4, r0] cmp r1, 0x1 beq _0819D0A4 cmp r1, 0x1 bgt _0819D08C cmp r1, 0 beq _0819D092 b _0819D118 .pool _0819D08C: cmp r1, 0x2 beq _0819D0BC b _0819D118 _0819D092: ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x27 strb r1, [r0] strh r1, [r4, 0x10] b _0819D0AE .pool _0819D0A4: ldr r0, =gPlttBufferUnfaded+ 0x1E0 movs r1, 0xE0 movs r2, 0xA bl LoadPalette _0819D0AE: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0819D118 .pool _0819D0BC: ldr r2, =gUnknown_03001284 ldr r0, [r2] adds r0, 0x28 ldrb r0, [r0] cmp r0, 0xF bls _0819D0D2 movs r0, 0x1 strh r0, [r4, 0x10] ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0819D0D2: ldr r1, [r2] adds r1, 0x27 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r1, r0, 0 adds r1, 0x27 ldrb r0, [r1] cmp r0, 0x3 bls _0819D108 movs r0, 0 strb r0, [r1] ldr r1, =gPlttBufferUnfaded ldr r0, =gPlttBufferFaded movs r3, 0xE4 lsls r3, 1 adds r0, r3 ldrh r0, [r0] adds r3, 0x20 adds r1, r3 strh r0, [r1] ldr r1, [r2] adds r1, 0x28 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _0819D108: movs r0, 0x80 lsls r0, 7 ldr r1, [r2] adds r1, 0x28 ldrb r1, [r1] movs r2, 0 bl BlendPalettes _0819D118: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819D064 thumb_func_start sub_819D12C sub_819D12C: @ 819D12C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r1, =gTasks lsls r0, 2 ldr r2, [sp] adds r0, r2 lsls r0, 3 adds r4, r0, r1 movs r2, 0x8 ldrsh r3, [r4, r2] cmp r3, 0 beq _0819D15C cmp r3, 0x1 beq _0819D168 b _0819D310 .pool _0819D15C: strh r3, [r4, 0xA] strh r3, [r4, 0xC] strh r3, [r4, 0xE] movs r0, 0x1 strh r0, [r4, 0x8] b _0819D310 _0819D168: movs r3, 0 str r3, [sp, 0x4] movs r1, 0x2 str r0, [sp, 0x8] ldr r0, =gTasks str r0, [sp, 0xC] _0819D174: lsls r0, r1, 24 asrs r4, r0, 24 mov r9, r0 cmp r4, 0x2 beq _0819D1F2 ldr r2, =gSprites ldr r3, =gUnknown_03001284 ldr r0, [r3] adds r0, 0x5 mov r8, r0 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r6, r0, r2 ldrh r1, [r6, 0x20] mov r12, r1 mov r7, r12 ldr r1, [sp, 0x4] subs r0, r1, r7 lsls r0, 24 lsrs r5, r0, 24 mov r10, r2 cmp r5, 0x10 beq _0819D1BE adds r0, r4, 0x2 lsls r0, 1 ldr r2, [sp, 0x8] adds r0, r2 ldr r1, =gTasks adds r1, 0x8 adds r0, r1 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0x1 bne _0819D1D8 _0819D1BE: lsls r0, r7, 24 lsrs r0, 24 str r0, [sp, 0x4] mov r0, r12 adds r0, 0xA strh r0, [r6, 0x20] b _0819D210 .pool _0819D1D8: cmp r5, 0x10 bls _0819D210 adds r0, r4, 0x1 add r0, r8 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r10 ldrh r0, [r0, 0x20] subs r0, 0x30 strh r0, [r6, 0x20] b _0819D210 _0819D1F2: ldr r3, =gSprites ldr r4, =gUnknown_03001284 ldr r0, [r4] ldrb r1, [r0, 0x7] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r2, [r0, 0x20] lsls r1, r2, 24 lsrs r1, 24 str r1, [sp, 0x4] adds r2, 0xA strh r2, [r0, 0x20] mov r10, r3 _0819D210: mov r0, r9 asrs r2, r0, 24 adds r0, r2, 0x1 lsls r0, 1 ldr r1, [sp, 0x8] adds r0, r1 ldr r1, =gTasks adds r1, 0x8 adds r0, r1 movs r3, 0 ldrsh r0, [r0, r3] cmp r0, 0x1 bne _0819D26A ldr r1, =gUnknown_03001284 ldr r0, [r1] adds r0, 0x5 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 mov r3, r10 adds r1, r0, r3 movs r0, 0x20 ldrsh r3, [r1, r0] lsls r0, r2, 1 adds r0, r2 lsls r0, 4 adds r0, 0x48 cmp r3, r0 ble _0819D260 strh r0, [r1, 0x20] movs r7, 0x1 b _0819D26C .pool _0819D260: movs r7, 0 cmp r3, r0 bne _0819D26C movs r7, 0x1 b _0819D26C _0819D26A: movs r7, 0 _0819D26C: mov r6, r10 ldr r5, =gUnknown_03001284 ldr r2, [r5] mov r1, r9 asrs r4, r1, 24 adds r0, r2, 0x5 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r0, r6 movs r3, 0x20 ldrsh r0, [r1, r3] subs r0, 0x10 cmp r0, 0xF0 ble _0819D2F8 ldrh r0, [r1, 0x20] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, =0x0000fff0 strh r0, [r1, 0x20] ldrb r0, [r2, 0x14] cmp r0, 0x1 bne _0819D2C0 movs r0, 0x65 bl IndexOfSpritePaletteTag ldr r1, [r5] adds r1, 0x5 adds r1, r4 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 adds r2, r6 b _0819D2D8 .pool _0819D2C0: movs r0, 0x64 bl IndexOfSpritePaletteTag ldr r2, =gUnknown_03001284 ldr r1, [r2] adds r1, 0x5 adds r1, r4 ldrb r1, [r1] lsls r2, r1, 4 adds r2, r1 lsls r2, 2 add r2, r10 _0819D2D8: lsls r0, 4 ldrb r3, [r2, 0x5] movs r1, 0xF ands r1, r3 orrs r1, r0 strb r1, [r2, 0x5] mov r3, r9 asrs r0, r3, 23 adds r0, 0x2 ldr r1, [sp, 0x8] adds r0, r1 ldr r2, [sp, 0xC] adds r2, 0x8 adds r0, r2 movs r1, 0x1 strh r1, [r0] _0819D2F8: movs r0, 0xFF lsls r0, 24 add r0, r9 lsrs r1, r0, 24 cmp r0, 0 blt _0819D306 b _0819D174 _0819D306: cmp r7, 0x1 bne _0819D310 ldr r0, [sp] bl DestroyTask _0819D310: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819D12C thumb_func_start sub_819D324 sub_819D324: @ 819D324 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r7, r0, 24 movs r0, 0 mov r8, r0 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r2, r0, r1 ldrb r4, [r2, 0xE] movs r0, 0xC ldrsh r5, [r2, r0] mov r10, r1 cmp r5, 0x1 bne _0819D352 lsls r0, r4, 24 negs r0, r0 lsrs r4, r0, 24 _0819D352: movs r1, 0x8 ldrsh r0, [r2, r1] cmp r0, 0 beq _0819D368 cmp r0, 0x1 bne _0819D360 b _0819D480 _0819D360: b _0819D570 .pool _0819D368: ldr r3, =gSprites ldr r2, =gUnknown_03001284 ldr r0, [r2] ldrb r1, [r0, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r0, [r0, 0x20] cmp r5, 0 bne _0819D39C lsls r0, 16 asrs r0, 16 lsls r2, r4, 24 asrs r1, r2, 24 adds r0, r1 movs r1, 0x1 cmp r0, 0xEF ble _0819D3B2 movs r1, 0 movs r0, 0xF0 b _0819D3B0 .pool _0819D39C: lsls r0, 16 asrs r0, 16 lsls r2, r4, 24 asrs r1, r2, 24 adds r0, r1 movs r1, 0x1 cmp r0, 0xA0 bgt _0819D3B2 movs r1, 0 movs r0, 0xA0 _0819D3B0: mov r8, r0 _0819D3B2: cmp r1, 0x1 bne _0819D3FC movs r3, 0 ldr r7, =gSprites ldr r6, =gUnknown_03001284 asrs r5, r2, 24 _0819D3BE: movs r4, 0 adds r2, r3, 0x1 _0819D3C2: ldr r1, [r6] lsls r0, r4, 1 adds r0, r4 adds r0, r3, r0 adds r1, 0x8 adds r1, r0 ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, r5 strh r1, [r0, 0x20] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0819D3C2 lsls r0, r2, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _0819D3BE b _0819D570 .pool _0819D3FC: movs r4, 0 lsls r1, r7, 2 mov r12, r1 mov r6, r8 adds r6, 0x10 movs r0, 0x30 add r0, r8 mov r9, r0 ldr r5, =gSprites _0819D40E: ldr r1, =gUnknown_03001284 ldr r2, [r1] lsls r3, r4, 1 adds r3, r4 adds r0, r2, 0 adds r0, 0x8 adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x20] adds r0, r2, 0 adds r0, 0x9 adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x20] adds r2, 0xA adds r2, r3 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r9 strh r1, [r0, 0x20] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0819D40E mov r1, r12 adds r0, r1, r7 lsls r0, 3 add r0, r10 ldrb r1, [r0, 0xA] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 add r0, r10 movs r1, 0x1 strh r1, [r0, 0xE] adds r0, r7, 0 bl DestroyTask b _0819D570 .pool _0819D480: ldr r2, =gSprites ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r1, [r0, 0xE] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x20] cmp r5, 0 bne _0819D4B4 lsls r0, 16 asrs r0, 16 lsls r2, r4, 24 asrs r1, r2, 24 adds r0, r1 movs r1, 0x1 cmp r0, 0xEF ble _0819D4CA movs r1, 0 movs r0, 0xF0 b _0819D4C8 .pool _0819D4B4: lsls r0, 16 asrs r0, 16 lsls r2, r4, 24 asrs r1, r2, 24 adds r0, r1 movs r1, 0x1 cmp r0, 0xC0 bgt _0819D4CA movs r1, 0 movs r0, 0xC0 _0819D4C8: mov r8, r0 _0819D4CA: cmp r1, 0x1 bne _0819D510 movs r3, 0 ldr r7, =gSprites ldr r6, =gUnknown_03001284 asrs r5, r2, 24 _0819D4D6: movs r4, 0 adds r2, r3, 0x1 _0819D4DA: ldr r0, [r6] lsls r1, r4, 1 adds r1, r3, r1 adds r0, 0xE adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 ldrh r1, [r0, 0x20] adds r1, r5 strh r1, [r0, 0x20] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0819D4DA lsls r0, r2, 24 lsrs r3, r0, 24 cmp r3, 0x1 bls _0819D4D6 b _0819D570 .pool _0819D510: movs r4, 0 lsls r1, r7, 2 mov r12, r1 mov r6, r8 adds r6, 0x10 ldr r5, =gSprites ldr r0, =gUnknown_03001284 mov r9, r0 _0819D520: mov r1, r9 ldr r2, [r1] lsls r3, r4, 1 adds r0, r2, 0 adds r0, 0xE adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r8 strh r1, [r0, 0x20] adds r2, 0xF adds r2, r3 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x20] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0819D520 mov r1, r12 adds r0, r1, r7 lsls r0, 3 add r0, r10 ldrb r1, [r0, 0xA] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 add r0, r10 movs r1, 0x1 strh r1, [r0, 0x10] adds r0, r7, 0 bl DestroyTask _0819D570: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819D324 thumb_func_start sub_819D588 sub_819D588: @ 819D588 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r2, 0x8 ldrsh r0, [r0, r2] mov r8, r1 cmp r0, 0x5 bls _0819D5AA b _0819D762 _0819D5AA: lsls r0, 2 ldr r1, =_0819D5BC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819D5BC: .4byte _0819D5D4 .4byte _0819D5F0 .4byte _0819D60C .4byte _0819D63C .4byte _0819D6F0 .4byte _0819D73A _0819D5D4: ldr r0, =gUnknown_08610918 movs r1, 0xE0 movs r2, 0xA bl LoadPalette bl sub_819ED34 movs r0, 0x5 bl PutWindowTilemap b _0819D622 .pool _0819D5F0: movs r0, 0x3 bl sub_819EA64 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0819D762 .pool _0819D60C: movs r0, 0x80 lsls r0, 7 ldr r1, =gUnknown_0860F13C adds r1, 0x4A ldrh r1, [r1] str r1, [sp] movs r1, 0 movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade _0819D622: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] adds r1, 0x1 strh r1, [r0, 0x8] b _0819D762 .pool _0819D63C: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 beq _0819D64E b _0819D762 _0819D64E: movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0x1 bne _0819D6B0 ldr r0, =sub_819D324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gTasks lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r1 strh r6, [r2, 0xE] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0xA] strh r6, [r0, 0x8] strh r6, [r0, 0xC] movs r1, 0x6 strh r1, [r0, 0xE] movs r0, 0x5 strh r0, [r2, 0xC] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _0819D762 .pool _0819D6B0: ldr r0, =sub_819D324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r3, =gTasks lsls r2, r5, 2 adds r2, r5 lsls r2, 3 adds r2, r3 movs r1, 0x1 strh r1, [r2, 0xE] strh r6, [r2, 0x10] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 strh r5, [r0, 0xA] strh r1, [r0, 0x8] strh r6, [r0, 0xC] movs r1, 0x6 strh r1, [r0, 0xE] ldrh r0, [r2, 0x8] adds r0, 0x2 strh r0, [r2, 0x8] b _0819D762 .pool _0819D6F0: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 mov r1, r8 adds r6, r0, r1 ldrh r0, [r6, 0xC] movs r2, 0xC ldrsh r7, [r6, r2] cmp r7, 0 bne _0819D734 ldr r0, =sub_819D324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 strh r7, [r6, 0x10] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 strh r5, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0x8] strh r7, [r0, 0xC] movs r1, 0x6 strh r1, [r0, 0xE] ldrh r0, [r6, 0x8] adds r0, 0x1 strh r0, [r6, 0x8] b _0819D762 .pool _0819D734: subs r0, 0x1 strh r0, [r6, 0xC] b _0819D762 _0819D73A: lsls r0, r5, 2 adds r0, r5 lsls r0, 3 mov r1, r8 adds r2, r0, r1 movs r1, 0xE ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0819D762 movs r1, 0x10 ldrsh r0, [r2, r1] cmp r0, 0x1 bne _0819D762 ldrh r0, [r2, 0x12] strh r0, [r2, 0x8] ldrh r0, [r2, 0x14] ldrh r1, [r2, 0x16] lsls r0, 16 orrs r0, r1 str r0, [r2] _0819D762: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819D588 thumb_func_start sub_819D770 sub_819D770: @ 819D770 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gUnknown_03001284 ldr r0, [r1] adds r0, 0x30 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x1 bne _0819D78C b _0819D9D8 _0819D78C: ldr r0, =gTasks lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r1, r0 movs r4, 0x8 ldrsh r1, [r1, r4] mov r8, r0 adds r5, r2, 0 cmp r1, 0x8 bls _0819D7A4 b _0819D9D8 _0819D7A4: lsls r0, r1, 2 ldr r1, =_0819D7BC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819D7BC: .4byte _0819D7E0 .4byte _0819D868 .4byte _0819D8AE .4byte _0819D8F4 .4byte _0819D910 .4byte _0819D928 .4byte _0819D936 .4byte _0819D948 .4byte _0819D9B0 _0819D7E0: ldr r0, [r3] ldrb r7, [r0, 0x14] cmp r7, 0x1 bne _0819D828 ldr r0, =sub_819D324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r3, =gTasks adds r2, r5, r6 lsls r2, 3 adds r2, r3 movs r1, 0 strh r1, [r2, 0xE] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 strh r6, [r0, 0xA] strh r1, [r0, 0x8] strh r7, [r0, 0xC] movs r1, 0x6 strh r1, [r0, 0xE] movs r0, 0xA strh r0, [r2, 0xC] ldrh r0, [r2, 0x8] adds r0, 0x1 strh r0, [r2, 0x8] b _0819D9D8 .pool _0819D828: ldr r0, =sub_819D324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 ldr r3, =gTasks adds r2, r5, r6 lsls r2, 3 adds r2, r3 movs r0, 0 movs r1, 0x1 strh r1, [r2, 0xE] strh r0, [r2, 0x10] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r3 strh r6, [r0, 0xA] strh r1, [r0, 0x8] strh r1, [r0, 0xC] movs r1, 0x6 strh r1, [r0, 0xE] ldrh r0, [r2, 0x8] adds r0, 0x2 strh r0, [r2, 0x8] b _0819D9D8 .pool _0819D868: adds r0, r5, r6 lsls r0, 3 mov r1, r8 adds r5, r0, r1 ldrh r0, [r5, 0xC] movs r2, 0xC ldrsh r7, [r5, r2] cmp r7, 0 bne _0819D8A8 ldr r0, =sub_819D324 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r4, r0, 24 strh r7, [r5, 0x10] lsls r0, r4, 2 adds r0, r4 lsls r0, 3 add r0, r8 strh r6, [r0, 0xA] movs r1, 0x1 strh r1, [r0, 0x8] strh r1, [r0, 0xC] movs r1, 0x6 strh r1, [r0, 0xE] ldrh r0, [r5, 0x8] adds r0, 0x1 strh r0, [r5, 0x8] b _0819D9D8 .pool _0819D8A8: subs r0, 0x1 strh r0, [r5, 0xC] b _0819D9D8 _0819D8AE: adds r0, r5, r6 lsls r0, 3 mov r1, r8 adds r4, r0, r1 movs r2, 0xE ldrsh r0, [r4, r2] cmp r0, 0x1 beq _0819D8C0 b _0819D9D8 _0819D8C0: movs r1, 0x10 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0819D8CA b _0819D9D8 _0819D8CA: ldr r1, =gPlttBufferFaded ldr r0, =gUnknown_0860F13C adds r0, 0x4A ldrh r0, [r0] movs r2, 0xE2 lsls r2, 1 adds r1, r2 strh r0, [r1] bl sub_819ED34 movs r0, 0x5 bl PutWindowTilemap ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] b _0819D9D8 .pool _0819D8F4: movs r0, 0x80 lsls r0, 7 ldr r1, =gUnknown_0860F13C adds r1, 0x4A ldrh r1, [r1] str r1, [sp] movs r1, 0 movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade b _0819D990 .pool _0819D910: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _0819D9D8 movs r0, 0 bl sub_819EDBC b _0819D990 .pool _0819D928: movs r0, 0x1 bl sub_819EDBC movs r0, 0x3 bl PutWindowTilemap b _0819D990 _0819D936: movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram b _0819D990 _0819D948: ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 bne _0819D964 ldr r0, =gUnknown_085EEC73 bl sub_819EBEC b _0819D96A .pool _0819D964: ldr r0, =gUnknown_085EEC8B bl sub_819EBEC _0819D96A: ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 bhi _0819D98C ldr r2, =gSprites ldrb r1, [r1, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] _0819D98C: bl sub_819EFA8 _0819D990: ldr r0, =gTasks adds r1, r5, r6 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0819D9D8 .pool _0819D9B0: bl sub_819EEF0 bl sub_819EADC ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x22 movs r1, 0x1 strb r1, [r0] ldr r1, =gTasks adds r0, r5, r6 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x12] strh r1, [r0, 0x8] ldrh r1, [r0, 0x14] ldrh r2, [r0, 0x16] lsls r1, 16 orrs r1, r2 str r1, [r0] _0819D9D8: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819D770 thumb_func_start sub_819D9EC sub_819D9EC: @ 819D9EC push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x30 ldrb r0, [r0] cmp r0, 0x1 bne _0819DA00 b _0819DBCA _0819DA00: ldr r0, =gTasks lsls r2, r6, 2 adds r1, r2, r6 lsls r1, 3 adds r1, r0 movs r3, 0x8 ldrsh r1, [r1, r3] adds r3, r0, 0 adds r7, r2, 0 cmp r1, 0x4 bls _0819DA18 b _0819DBCA _0819DA18: lsls r0, r1, 2 ldr r1, =_0819DA30 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819DA30: .4byte _0819DA44 .4byte _0819DA58 .4byte _0819DA8C .4byte _0819DABC .4byte _0819DBB0 _0819DA44: bl sub_819EEF0 ldr r0, =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 b _0819DB96 .pool _0819DA58: bl sub_819EADC ldr r2, =gSprites ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, =gTasks adds r1, r7, r6 lsls r1, 3 adds r1, r0 b _0819DB96 .pool _0819DA8C: ldr r0, =sub_819D12C movs r1, 0 bl CreateTask ldr r2, =gTasks ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x21 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_819D064 str r1, [r0] b _0819DB90 .pool _0819DABC: ldr r0, =sub_819D12C bl FuncIsActiveTask lsls r0, 24 cmp r0, 0 beq _0819DACA b _0819DBCA _0819DACA: ldr r2, =gTasks ldr r4, =gUnknown_03001284 ldr r0, [r4] adds r0, 0x21 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x10 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _0819DBCA bl sub_819EAC0 ldr r0, [r4] ldrb r0, [r0, 0x14] cmp r0, 0 bne _0819DB04 movs r0, 0x1 bl sub_819F048 b _0819DB32 .pool _0819DB04: movs r0, 0 bl sub_819F048 movs r2, 0 ldr r5, =gSprites movs r3, 0x4 _0819DB10: ldr r0, [r4] adds r0, 0xB adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0819DB10 _0819DB32: ldr r5, =gSprites ldr r4, =gUnknown_03001284 ldr r3, [r4] ldrb r0, [r3, 0x4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r0, r3, 0x5 ldrb r2, [r3, 0x3] adds r0, r2 ldrb r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x20] movs r5, 0 strh r0, [r1, 0x20] ldr r2, =gTasks adds r0, r3, 0 adds r0, 0x21 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldr r1, =sub_819CF54 str r1, [r0] adds r3, 0x27 strb r5, [r3] ldr r0, [r4] adds r0, 0x28 movs r1, 0x6 strb r1, [r0] ldr r0, [r4] adds r0, 0x26 strb r5, [r0] ldr r0, [r4] adds r0, 0x21 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 movs r1, 0x1 strh r1, [r0, 0x8] _0819DB90: adds r1, r7, r6 lsls r1, 3 adds r1, r2 _0819DB96: ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0819DBCA .pool _0819DBB0: adds r0, r7, r6 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x8] ldr r2, =sub_819CE40 lsrs r1, r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x12] ldr r1, =sub_819D770 str r1, [r0] _0819DBCA: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819D9EC thumb_func_start sub_819DBD8 sub_819DBD8: @ 819DBD8 push {r4,r5,lr} ldr r5, =gUnknown_03001284 ldr r4, [r5] cmp r4, 0 bne _0819DBF6 movs r0, 0x34 bl AllocZeroed str r0, [r5] strb r4, [r0, 0x3] ldr r0, [r5] adds r0, 0x30 strb r4, [r0] ldr r0, [r5] strb r4, [r0, 0x15] _0819DBF6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819DBD8 thumb_func_start sub_819DC00 sub_819DC00: @ 819DC00 push {lr} ldr r0, =gUnknown_03001284 movs r1, 0 str r1, [r0] ldr r0, =sub_819DC1C bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_819DC00 thumb_func_start sub_819DC1C sub_819DC1C: @ 819DC1C push {r4-r6,lr} sub sp, 0xC ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0xF bls _0819DC32 b _0819E0AA _0819DC32: lsls r0, 2 ldr r1, =_0819DC44 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819DC44: .4byte _0819DC84 .4byte _0819DCD4 .4byte _0819DDA8 .4byte _0819DE68 .4byte _0819DE94 .4byte _0819DECC .4byte _0819DEEC .4byte _0819DF10 .4byte _0819DF30 .4byte _0819DF3C .4byte _0819DF64 .4byte _0819DF70 .4byte _0819DF78 .4byte _0819DF8C .4byte _0819DFA4 .4byte _0819E01C _0819DC84: movs r0, 0 bl SetHBlankCallback movs r0, 0 bl SetVBlankCallback movs r0, 0 str r0, [sp, 0x8] movs r1, 0xC0 lsls r1, 19 ldr r2, =0x05006000 add r0, sp, 0x8 bl CpuSet movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_086108B8 movs r0, 0 movs r2, 0x4 bl InitBgsFromTemplates ldr r0, =gUnknown_086108C8 bl InitWindows bl DeactivateAllTextPrinters ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819E00E .pool _0819DCD4: ldr r5, =gUnknown_0203CE40 movs r4, 0x88 lsls r4, 3 adds r0, r4, 0 bl Alloc str r0, [r5] ldr r5, =gUnknown_0203CE44 adds r0, r4, 0 bl AllocZeroed str r0, [r5] ldr r5, =gUnknown_0203CE48 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc str r0, [r5] ldr r5, =gUnknown_0203CE4C adds r0, r4, 0 bl AllocZeroed str r0, [r5] movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x1 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x2 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgX movs r0, 0x3 movs r1, 0 movs r2, 0 bl ChangeBgY movs r0, 0x54 movs r1, 0 bl SetGpuReg movs r0, 0x4C movs r1, 0 bl SetGpuReg movs r0, 0x40 movs r1, 0 bl SetGpuReg movs r0, 0x44 movs r1, 0 bl SetGpuReg movs r0, 0x42 movs r1, 0 bl SetGpuReg movs r0, 0x46 movs r1, 0 bl SetGpuReg movs r0, 0x48 movs r1, 0 bl SetGpuReg movs r0, 0x4A movs r1, 0 bl SetGpuReg b _0819E006 .pool _0819DDA8: bl ResetPaletteFade bl ResetSpriteData bl ResetTasks bl FreeAllSpritePalettes bl dp13_810BB8C ldr r0, =gUnknown_08DC0754 ldr r5, =gUnknown_0203CE40 ldr r1, [r5] movs r2, 0x88 lsls r2, 2 bl CpuSet ldr r0, =gUnknown_0861033C ldr r4, =gUnknown_0203CE44 ldr r1, [r4] movs r2, 0x30 bl CpuSet ldr r1, [r5] movs r2, 0x88 lsls r2, 3 movs r0, 0x1 movs r3, 0 bl LoadBgTiles ldr r1, [r4] movs r0, 0x3 movs r2, 0x60 movs r3, 0 bl LoadBgTiles ldr r0, =gUnknown_08DC0B94 ldr r4, =gUnknown_0203CE48 ldr r1, [r4] movs r2, 0x80 lsls r2, 3 bl CpuSet ldr r1, [r4] movs r2, 0x80 lsls r2, 4 movs r0, 0x1 movs r3, 0 bl LoadBgTilemap ldr r0, =gUnknown_08DC0714 movs r1, 0 movs r2, 0x40 bl LoadPalette ldr r4, =gUnknown_08610918 adds r0, r4, 0 movs r1, 0xF0 movs r2, 0xA bl LoadPalette adds r0, r4, 0 movs r1, 0xE0 movs r2, 0xA bl LoadPalette ldr r0, =gUnknown_0861039C movs r1, 0x20 movs r2, 0x4 bl LoadPalette ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819E00E .pool _0819DE68: ldr r0, =gUnknown_0203CE4C ldr r1, [r0] movs r0, 0x3 bl SetBgTilemapBuffer ldr r1, =gUnknown_0861023C movs r0, 0x8 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x3 movs r2, 0xB movs r3, 0x4 bl CopyToBgTilemapBufferRect movs r0, 0x3 bl CopyBgTilemapBufferToVram b _0819E006 .pool _0819DE94: ldr r0, =gUnknown_086106B0 bl LoadSpritePalettes ldr r0, =gUnknown_08610650 bl LoadSpriteSheets ldr r0, =gUnknown_086106A0 bl LoadCompressedObjectPic ldr r0, =sub_819C7FC bl SetVBlankCallback ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819E00E .pool _0819DECC: ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x15] cmp r0, 0x1 bne _0819DEDC ldr r0, =gUnknown_0203CF20 ldrb r0, [r0] strb r0, [r1, 0x3] _0819DEDC: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _0819E00E .pool _0819DEEC: bl sub_819DBD8 bl sub_819E0C0 ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0x1 bne _0819DF02 bl sub_819F304 _0819DF02: movs r0, 0 bl sub_819F048 b _0819E006 .pool _0819DF10: ldr r0, =gUnknown_085EEC73 bl sub_819EBEC movs r0, 0x2 bl PutWindowTilemap ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819E00E .pool _0819DF30: bl sub_819EFA8 movs r0, 0x8 bl PutWindowTilemap b _0819E006 _0819DF3C: ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0 bne _0819DF4A bl sub_819EB4C _0819DF4A: movs r0, 0x1 bl PutWindowTilemap ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819E00E .pool _0819DF64: bl sub_819EB18 movs r0, 0 bl PutWindowTilemap b _0819E006 _0819DF70: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _0819E00E _0819DF78: ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0 beq _0819E006 bl sub_819EE08 b _0819E006 .pool _0819DF8C: bl sub_819ED78 movs r0, 0x3 bl PutWindowTilemap ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _0819E00E .pool _0819DFA4: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x15] cmp r0, 0x1 bne _0819E000 movs r0, 0x3 bl ShowBg ldr r1, =0x00001248 movs r0, 0x50 bl SetGpuReg ldr r1, =0x0000040b movs r0, 0x52 bl SetGpuReg b _0819E006 .pool _0819E000: movs r0, 0x3 bl HideBg _0819E006: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _0819E00E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _0819E0AA .pool _0819E01C: ldr r0, =sub_819CF54 movs r1, 0 bl CreateTask ldr r6, =gUnknown_03001284 ldr r1, [r6] adds r1, 0x21 strb r0, [r1] ldr r0, [r6] ldrb r5, [r0, 0x15] cmp r5, 0 bne _0819E06C ldr r4, =gTasks adds r0, 0x21 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 strh r5, [r0, 0x8] ldr r0, =sub_819CE40 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 strh r5, [r0, 0x8] b _0819E0A4 .pool _0819E06C: bl sub_819EAF8 ldr r4, =gTasks ldr r2, [r6] adds r0, r2, 0 adds r0, 0x21 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r3, 0 movs r1, 0x1 strh r1, [r0, 0x8] adds r2, 0x22 strb r3, [r2] ldr r0, =sub_819CD34 movs r1, 0 bl CreateTask lsls r0, 24 lsrs r1, r0, 24 lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r4 movs r1, 0x2 strh r1, [r0, 0x8] _0819E0A4: ldr r0, =sub_819C7E0 bl SetMainCallback2 _0819E0AA: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819DC1C thumb_func_start sub_819E0C0 sub_819E0C0: @ 819E0C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C mov r1, sp ldr r0, =gUnknown_08610834 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r5,r6} stm r1!, {r2,r5,r6} mov r1, sp movs r0, 0x65 strh r0, [r1, 0x2] movs r6, 0 ldr r4, =gUnknown_03001284 movs r7, 0 ldr r5, =gSprites _0819E0E6: lsls r1, r6, 1 adds r1, r6 lsls r1, 20 movs r3, 0x90 lsls r3, 15 adds r1, r3 asrs r1, 16 mov r0, sp movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r1, [r4] adds r1, 0x5 adds r1, r6 strb r0, [r1] ldr r0, [r4] adds r0, 0x5 adds r0, r6 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r7, [r0, 0x2E] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _0819E0E6 ldr r7, =gUnknown_03001284 ldr r1, [r7] adds r0, r1, 0x5 ldrb r1, [r1, 0x3] adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 movs r5, 0x20 ldrsh r1, [r0, r5] ldr r0, =gUnknown_0861084C movs r2, 0x58 movs r3, 0 bl CreateSprite ldr r1, [r7] movs r4, 0 strb r0, [r1, 0x4] ldr r0, =gUnknown_08610864 movs r1, 0xB0 movs r2, 0x70 movs r3, 0 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0x1] ldr r0, =gUnknown_0861087C movs r1, 0xB0 movs r2, 0x90 movs r3, 0 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0x2] ldr r0, [r7] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r6, =gSprites adds r0, r6 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r7] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r0, [r7] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x28 strb r4, [r0] ldr r0, [r7] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x29 strb r4, [r0] ldr r0, [r7] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x28 strb r4, [r0] ldr r0, [r7] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x29 strb r4, [r0] ldr r0, [r7] ldrb r0, [r0, 0x15] movs r1, 0xC0 str r1, [sp, 0x18] cmp r0, 0x1 bne _0819E1E8 movs r2, 0xF0 str r2, [sp, 0x18] _0819E1E8: mov r1, sp ldr r0, =gUnknown_0861084C ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r0, sp movs r4, 0x68 mov r10, r4 mov r5, r10 strh r5, [r0] movs r1, 0xF0 movs r2, 0x78 movs r3, 0xA bl CreateSprite ldr r1, [r7] strb r0, [r1, 0x8] mov r1, sp ldr r0, =gUnknown_08610864 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r4-r6} stm r1!, {r4-r6} mov r0, sp movs r1, 0x69 mov r9, r1 mov r2, r9 strh r2, [r0] movs r4, 0x80 lsls r4, 1 adds r1, r4, 0 movs r2, 0x78 movs r3, 0xA bl CreateSprite ldr r1, [r7] strb r0, [r1, 0x9] movs r5, 0x90 lsls r5, 1 mov r0, sp adds r1, r5, 0 movs r2, 0x78 movs r3, 0xA bl CreateSprite ldr r1, [r7] strb r0, [r1, 0xA] mov r1, sp ldr r0, =gUnknown_0861084C ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r0, sp movs r3, 0x6A mov r8, r3 mov r6, r8 strh r6, [r0] movs r1, 0xF0 movs r2, 0x78 movs r3, 0x1 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0xB] mov r1, sp ldr r0, =gUnknown_08610864 ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} ldm r0!, {r2,r3,r6} stm r1!, {r2,r3,r6} mov r1, sp movs r0, 0x6B strh r0, [r1] mov r0, sp adds r1, r4, 0 movs r2, 0x78 movs r3, 0x1 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0xC] mov r0, sp movs r6, 0x6C strh r6, [r0] adds r1, r5, 0 movs r2, 0x78 movs r3, 0x1 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0xD] mov r1, sp ldr r0, =gUnknown_0861084C ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp mov r4, r10 strh r4, [r0] ldr r1, [sp, 0x18] movs r2, 0x90 movs r3, 0xA bl CreateSprite ldr r1, [r7] strb r0, [r1, 0xE] mov r1, sp ldr r0, =gUnknown_08610864 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r4,r5} stm r1!, {r2,r4,r5} mov r0, sp mov r3, r9 strh r3, [r0] ldr r4, [sp, 0x18] adds r4, 0x10 adds r1, r4, 0 movs r2, 0x90 movs r3, 0xA bl CreateSprite ldr r1, [r7] strb r0, [r1, 0xF] mov r1, sp ldr r0, =gUnknown_0861084C ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp mov r5, r8 strh r5, [r0] ldr r1, [sp, 0x18] movs r2, 0x90 movs r3, 0x1 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0x10] mov r1, sp ldr r0, =gUnknown_08610864 ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} ldm r0!, {r2,r3,r5} stm r1!, {r2,r3,r5} mov r0, sp strh r6, [r0] adds r1, r4, 0 movs r2, 0x90 movs r3, 0x1 bl CreateSprite ldr r1, [r7] strb r0, [r1, 0x11] movs r6, 0 ldr r5, =gSprites adds r4, r7, 0 movs r7, 0 movs r0, 0x4 mov r10, r0 _0819E330: ldr r0, [r4] lsls r3, r6, 1 adds r2, r3, r6 adds r0, 0x8 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x28 strb r7, [r0] ldr r0, [r4] adds r0, 0x8 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x29 strb r7, [r0] ldr r0, [r4] adds r0, 0x9 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x28 strb r7, [r0] ldr r0, [r4] adds r0, 0x9 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x29 strb r7, [r0] ldr r0, [r4] adds r0, 0xA adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x28 strb r7, [r0] ldr r0, [r4] adds r0, 0xA adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x29 strb r7, [r0] ldr r0, [r4] adds r0, 0xE adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x28 strb r7, [r0] ldr r0, [r4] adds r0, 0xE adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x29 strb r7, [r0] ldr r0, [r4] adds r0, 0xF adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x28 strb r7, [r0] ldr r0, [r4] adds r0, 0xF adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x29 strb r7, [r0] ldr r0, [r4] adds r0, 0x8 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E mov r8, r0 ldrb r1, [r0] mov r0, r10 orrs r1, r0 mov r0, r8 strb r1, [r0] ldr r0, [r4] adds r0, 0x9 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E mov r8, r0 ldrb r1, [r0] mov r0, r10 orrs r1, r0 mov r0, r8 strb r1, [r0] ldr r0, [r4] adds r0, 0xA adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] mov r2, r10 orrs r1, r2 strb r1, [r0] ldr r0, [r4] adds r0, 0xE adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] ldr r0, [r4] adds r0, 0xF adds r0, r3 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 ldr r3, =gUnknown_03001284 mov r8, r3 ldr r0, =gSprites mov r9, r0 cmp r6, 0x1 bhi _0819E496 b _0819E330 _0819E496: ldr r0, [r3] ldrb r0, [r0, 0xE] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r9 adds r1, 0x3E ldrb r2, [r1] movs r3, 0x5 negs r3, r3 adds r0, r3, 0 b _0819E4C8 .pool _0819E4C8: ands r0, r2 strb r0, [r1] mov r1, r8 ldr r0, [r1] ldrb r1, [r0, 0xF] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r2, [r0] adds r1, r3, 0 ands r1, r2 strb r1, [r0] mov r2, r8 ldr r0, [r2] ldrb r1, [r0, 0x8] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r2, [r0] adds r1, r3, 0 ands r1, r2 strb r1, [r0] mov r4, r8 ldr r0, [r4] ldrb r1, [r0, 0x9] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r2, [r0] adds r1, r3, 0 ands r1, r2 strb r1, [r0] ldr r0, [r4] ldrb r1, [r0, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r9 adds r0, 0x3E ldrb r1, [r0] ands r3, r1 strb r3, [r0] add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819E0C0 thumb_func_start sub_819E538 sub_819E538: @ 819E538 push {r4-r7,lr} movs r5, 0 _0819E53C: ldr r6, =gUnknown_03001284 ldr r0, [r6] adds r0, 0x5 adds r0, r5 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 bl DestroySprite adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0819E53C ldr r0, [r6] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r0, [r6] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite ldr r0, [r6] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite movs r5, 0 _0819E590: movs r4, 0 lsls r6, r5, 1 _0819E594: ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r1, r6, r5 adds r1, r4, r1 adds r0, 0x8 adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0819E594 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _0819E590 movs r5, 0 _0819E5C6: movs r4, 0 adds r7, r5, 0x1 lsls r6, r5, 1 _0819E5CC: ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r1, r4, r6 adds r0, 0xE adds r0, r1 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bls _0819E5CC lsls r0, r7, 24 lsrs r5, r0, 24 cmp r5, 0x1 bls _0819E5C6 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819E538 thumb_func_start sub_819E608 sub_819E608: @ 819E608 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bhi _0819E65C ldr r4, =gSprites ldr r5, =gUnknown_03001284 ldr r0, [r5] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] bl sub_819E8EC ldr r0, [r5] ldrb r2, [r0, 0x4] lsls r1, r2, 4 adds r1, r2 lsls r1, 2 adds r1, r4 adds r0, 0x5 adds r0, r6 ldrb r2, [r0] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrh r0, [r0, 0x20] strh r0, [r1, 0x20] b _0819E684 .pool _0819E65C: ldr r2, =gSprites ldr r3, =gUnknown_03001284 ldr r0, [r3] ldrb r1, [r0, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r3] ldr r1, [r0, 0x18] lsls r0, r6, 3 adds r0, r1 ldrb r0, [r0] bl sub_819E838 _0819E684: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819E608 thumb_func_start sub_819E694 sub_819E694: @ 819E694 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE lsls r4, 24 cmp r4, 0 ble _0819E6C0 ldr r1, =gUnknown_03001284 ldr r2, [r1] ldrb r0, [r2, 0x3] adds r0, 0x1 ldrb r3, [r2, 0x17] cmp r0, r3 bne _0819E6D8 movs r0, 0 b _0819E6D8 .pool _0819E6C0: ldr r0, =gUnknown_03001284 ldr r2, [r0] ldrb r3, [r2, 0x3] adds r1, r0, 0 cmp r3, 0 beq _0819E6D4 subs r0, r3, 0x1 b _0819E6D8 .pool _0819E6D4: ldrb r0, [r2, 0x17] subs r0, 0x1 _0819E6D8: strb r0, [r2, 0x3] ldr r0, [r1] ldrb r0, [r0, 0x3] bl sub_819E608 pop {r4} pop {r0} bx r0 thumb_func_end sub_819E694 thumb_func_start sub_819E6E8 sub_819E6E8: @ 819E6E8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE lsls r4, 24 cmp r4, 0 ble _0819E728 ldr r0, =gUnknown_03001284 ldr r2, [r0] ldrb r1, [r2, 0x3] adds r4, r0, 0 cmp r1, 0x2 bhi _0819E714 movs r0, 0x3 strb r0, [r2, 0x3] b _0819E74A .pool _0819E714: ldrb r0, [r2, 0x3] adds r0, 0x1 ldrb r1, [r2, 0x17] cmp r0, r1 beq _0819E722 strb r0, [r2, 0x3] b _0819E74A _0819E722: movs r0, 0 strb r0, [r2, 0x3] b _0819E74A _0819E728: ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r3, [r1, 0x3] adds r2, r3, 0 adds r4, r0, 0 cmp r2, 0x2 bls _0819E744 cmp r2, 0 beq _0819E744 subs r0, r3, 0x1 b _0819E748 .pool _0819E744: ldrb r0, [r1, 0x17] subs r0, 0x1 _0819E748: strb r0, [r1, 0x3] _0819E74A: ldr r0, [r4] ldrb r0, [r0, 0x3] bl sub_819E608 pop {r4} pop {r0} bx r0 thumb_func_end sub_819E6E8 thumb_func_start sub_819E758 sub_819E758: @ 819E758 push {lr} lsls r0, 24 cmp r0, 0 ble _0819E778 ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r3, [r1, 0x16] adds r2, r0, 0 cmp r3, 0x1 beq _0819E774 adds r0, r3, 0x1 b _0819E78E .pool _0819E774: movs r0, 0 b _0819E78E _0819E778: ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r3, [r1, 0x16] adds r2, r0, 0 cmp r3, 0 beq _0819E78C subs r0, r3, 0x1 b _0819E78E .pool _0819E78C: movs r0, 0x1 _0819E78E: strb r0, [r1, 0x16] ldr r3, =gSprites ldr r2, [r2] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2, 0x16] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r0, [r2, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2, 0x16] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] pop {r0} bx r0 .pool thumb_func_end sub_819E758 thumb_func_start sub_819E7C0 sub_819E7C0: @ 819E7C0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE lsls r4, 24 cmp r4, 0 ble _0819E7EC ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r3, [r1] adds r2, r0, 0 cmp r3, 0x2 beq _0819E7E8 adds r0, r3, 0x1 b _0819E802 .pool _0819E7E8: movs r0, 0 b _0819E802 _0819E7EC: ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r3, [r1] adds r2, r0, 0 cmp r3, 0 beq _0819E800 subs r0, r3, 0x1 b _0819E802 .pool _0819E800: movs r0, 0x2 _0819E802: strb r0, [r1] ldr r3, =gSprites ldr r2, [r2] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r0, [r2, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819E7C0 thumb_func_start sub_819E838 sub_819E838: @ 819E838 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 movs r0, 0x5 negs r0, r0 mov r9, r0 movs r2, 0x4 mov r8, r2 ldr r0, =gSprites mov r12, r0 ldr r7, =gUnknown_03001284 _0819E856: cmp r6, 0x2 bne _0819E898 ldr r5, =gSprites ldr r3, =gUnknown_03001284 ldr r0, [r3] adds r0, 0xB adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 adds r1, 0x3E ldrb r2, [r1] mov r0, r9 ands r0, r2 strb r0, [r1] cmp r4, 0x1 bhi _0819E8D4 ldr r0, [r3] adds r0, 0x10 adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 b _0819E8CA .pool _0819E898: cmp r6, 0x3 bne _0819E8D4 cmp r4, 0x1 bhi _0819E8BA ldr r0, [r7] adds r0, 0x10 adds r0, r4 ldrb r0, [r0] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 add r1, r12 adds r1, 0x3E ldrb r2, [r1] mov r0, r9 ands r0, r2 strb r0, [r1] _0819E8BA: ldr r0, [r7] adds r0, 0xB adds r0, r4 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r12 _0819E8CA: adds r0, 0x3E ldrb r1, [r0] mov r2, r8 orrs r1, r2 strb r1, [r0] _0819E8D4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0819E856 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_819E838 thumb_func_start sub_819E8EC sub_819E8EC: @ 819E8EC push {r4-r6,lr} movs r2, 0 ldr r5, =gSprites ldr r4, =gUnknown_03001284 adds r6, r5, 0 movs r3, 0x4 _0819E8F8: ldr r0, [r4] adds r0, 0xB adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r6 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] cmp r2, 0x1 bhi _0819E92C ldr r0, [r4] adds r0, 0x10 adds r0, r2 ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r3 strb r1, [r0] _0819E92C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _0819E8F8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819E8EC thumb_func_start sub_819E944 sub_819E944: @ 819E944 push {r4,r5,lr} ldr r0, =gUnknown_03001284 ldr r3, [r0] ldrb r1, [r3, 0x15] adds r5, r0, 0 cmp r1, 0x1 bne _0819E95C movs r0, 0 strb r0, [r3, 0x15] b _0819E960 .pool _0819E95C: movs r0, 0 strb r0, [r3] _0819E960: ldr r4, =gSprites ldr r2, [r5] ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xB0 strh r1, [r0, 0x20] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xD0 strh r1, [r0, 0x20] ldrb r0, [r2, 0x2] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 ldrb r0, [r2] lsls r0, 4 adds r0, 0x70 strh r0, [r1, 0x22] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] bl sub_819EC20 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819E944 thumb_func_start sub_819E9E0 sub_819E9E0: @ 819E9E0 push {r4,r5,lr} ldr r5, =gUnknown_03001284 ldr r1, [r5] movs r0, 0 strb r0, [r1, 0x16] ldr r4, =gSprites ldr r2, [r5] ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xB0 strh r1, [r0, 0x20] ldrb r1, [r2, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r3, 0x70 strh r3, [r0, 0x22] ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 movs r1, 0xD0 strh r1, [r0, 0x20] ldrb r1, [r2, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 strh r3, [r0, 0x22] ldrb r0, [r2, 0x1] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r4 adds r1, 0x3E ldrb r3, [r1] movs r2, 0x5 negs r2, r2 adds r0, r2, 0 ands r0, r3 strb r0, [r1] ldr r0, [r5] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r1, [r0] ands r2, r1 strb r2, [r0] bl sub_819EC94 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819E9E0 thumb_func_start sub_819EA64 sub_819EA64: @ 819EA64 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gSprites ldr r3, =gUnknown_03001284 ldr r0, [r3] ldrb r1, [r0, 0x1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldr r0, [r3] ldrb r1, [r0, 0x2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r0, 0x3E ldrb r1, [r0] orrs r1, r2 strb r1, [r0] adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram adds r0, r4, 0 bl ClearWindowTilemap pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819EA64 thumb_func_start sub_819EAC0 sub_819EAC0: @ 819EAC0 push {lr} movs r0, 0x1 bl PutWindowTilemap movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_819EAC0 thumb_func_start sub_819EADC sub_819EADC: @ 819EADC push {lr} movs r0, 0x7 bl PutWindowTilemap movs r0, 0x7 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x7 movs r1, 0x2 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_819EADC thumb_func_start sub_819EAF8 sub_819EAF8: @ 819EAF8 push {lr} bl sub_819EAC0 movs r0, 0x5 bl PutWindowTilemap movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end sub_819EAF8 thumb_func_start sub_819EB18 sub_819EB18: @ 819EB18 push {lr} sub sp, 0xC movs r0, 0 movs r1, 0x11 bl FillWindowPixelBuffer ldr r2, =gUnknown_085EEC66 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r1, 0x1 movs r3, 0x2 bl PrintTextOnWindow movs r0, 0 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_819EB18 thumb_func_start sub_819EB4C sub_819EB4C: @ 819EB4C push {r4,lr} sub sp, 0xC movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 bls _0819EB70 movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _0819EBD4 .pool _0819EB70: ldrb r2, [r1, 0x3] ldrb r0, [r1, 0x14] cmp r0, 0 bne _0819EB84 movs r0, 0x64 muls r0, r2 ldr r1, =gPlayerParty b _0819EB8A .pool _0819EB84: movs r0, 0x64 muls r0, r2 ldr r1, =gEnemyParty _0819EB8A: adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r1, r0, 16 ldr r4, =gStringVar4 movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0x1 adds r1, r4, 0 movs r2, 0x56 bl GetStringRightAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_08610925 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r3, 0x1 bl box_print movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram _0819EBD4: add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819EB4C thumb_func_start sub_819EBEC sub_819EBEC: @ 819EBEC push {r4,lr} sub sp, 0xC adds r4, r0, 0 movs r0, 0x2 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x5 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x2 bl PrintTextOnWindow movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram add sp, 0xC pop {r4} pop {r0} bx r0 thumb_func_end sub_819EBEC thumb_func_start sub_819EC20 sub_819EC20: @ 819EC20 push {r4,r5,lr} sub sp, 0xC movs r0, 0x3 bl PutWindowTilemap movs r0, 0x3 movs r1, 0 bl FillWindowPixelBuffer ldr r5, =gUnknown_08610922 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r0, =gUnknown_085EECAA str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0xF movs r3, 0x1 bl box_print str r5, [sp] str r4, [sp, 0x4] ldr r0, =gUnknown_085EECA5 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0xF movs r3, 0x11 bl box_print str r5, [sp] str r4, [sp, 0x4] ldr r0, =gUnknown_085EECB2 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0x1 movs r2, 0xF movs r3, 0x21 bl box_print movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819EC20 thumb_func_start sub_819EC94 sub_819EC94: @ 819EC94 push {r4,r5,lr} sub sp, 0xC movs r0, 0x4 bl PutWindowTilemap movs r0, 0x4 movs r1, 0 bl FillWindowPixelBuffer ldr r5, =gUnknown_08610922 str r5, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r0, =gUnknown_085EECCA str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 movs r2, 0x7 movs r3, 0x1 bl box_print str r5, [sp] str r4, [sp, 0x4] ldr r0, =gUnknown_085EECCE str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0x1 movs r2, 0x7 movs r3, 0x11 bl box_print movs r0, 0x4 movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819EC94 thumb_func_start sub_819ECF0 sub_819ECF0: @ 819ECF0 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 adds r5, r1, 0 adds r4, r2, 0 movs r0, 0 adds r1, r6, 0 movs r2, 0x46 bl GetStringRightAlignXOffset adds r2, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r2, 24 lsrs r2, 24 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_08610922 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r6, [sp, 0x8] adds r0, r4, 0 movs r1, 0 adds r3, r5, 0 bl box_print add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819ECF0 thumb_func_start sub_819ED34 sub_819ED34: @ 819ED34 push {lr} movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 beq _0819ED56 cmp r0, 0x1 bne _0819ED60 ldr r0, =gUnknown_085EECD1 movs r1, 0 movs r2, 0x5 bl sub_819ECF0 _0819ED56: ldr r0, =gUnknown_085EECDD movs r1, 0x18 movs r2, 0x5 bl sub_819ECF0 _0819ED60: movs r0, 0x5 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 .pool thumb_func_end sub_819ED34 thumb_func_start sub_819ED78 sub_819ED78: @ 819ED78 push {lr} movs r0, 0x3 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 beq _0819ED9A cmp r0, 0x1 bne _0819EDA4 ldr r0, =gUnknown_085EECD1 movs r1, 0x8 movs r2, 0x3 bl sub_819ECF0 _0819ED9A: ldr r0, =gUnknown_085EECDD movs r1, 0x20 movs r2, 0x3 bl sub_819ECF0 _0819EDA4: movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 .pool thumb_func_end sub_819ED78 thumb_func_start sub_819EDBC sub_819EDBC: @ 819EDBC push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _0819EDCC cmp r0, 0x1 beq _0819EDEC b _0819EDF6 _0819EDCC: ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0x1 bne _0819EDF6 ldr r0, =gUnknown_085EECD1 movs r1, 0x8 movs r2, 0x3 bl sub_819ECF0 b _0819EDF6 .pool _0819EDEC: ldr r0, =gUnknown_085EECDD movs r1, 0x20 movs r2, 0x3 bl sub_819ECF0 _0819EDF6: movs r0, 0x3 movs r1, 0x3 bl CopyWindowToVram pop {r0} bx r0 .pool thumb_func_end sub_819EDBC thumb_func_start sub_819EE08 sub_819EE08: @ 819EE08 push {r4,lr} sub sp, 0x18 ldr r0, =gUnknown_08610918 add r1, sp, 0xC movs r2, 0x4 bl CpuSet ldr r0, =gUnknown_03001284 ldr r2, [r0] ldrb r0, [r2, 0x15] cmp r0, 0 bne _0819EE3C add r0, sp, 0xC ldr r1, =gPlttBufferFaded movs r2, 0xE4 lsls r2, 1 adds r1, r2 ldrh r1, [r1] strh r1, [r0, 0x8] b _0819EE42 .pool _0819EE3C: add r1, sp, 0xC ldrh r0, [r2, 0x24] strh r0, [r1, 0x8] _0819EE42: add r0, sp, 0xC movs r1, 0xF0 movs r2, 0xA bl LoadPalette movs r0, 0x7 bl PutWindowTilemap movs r0, 0x7 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 bls _0819EE74 movs r0, 0x7 movs r1, 0x3 bl CopyWindowToVram b _0819EED8 .pool _0819EE74: ldrb r2, [r1, 0x3] ldrb r0, [r1, 0x14] cmp r0, 0 bne _0819EE88 movs r0, 0x64 muls r0, r2 ldr r1, =gPlayerParty b _0819EE8E .pool _0819EE88: movs r0, 0x64 muls r0, r2 ldr r1, =gEnemyParty _0819EE8E: adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r1, r0, 16 ldr r4, =gStringVar4 movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0x1 adds r1, r4, 0 movs r2, 0x56 bl GetStringRightAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_08610925 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x7 movs r1, 0x1 movs r3, 0x1 bl box_print movs r0, 0x7 movs r1, 0x3 bl CopyWindowToVram _0819EED8: add sp, 0x18 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819EE08 thumb_func_start sub_819EEF0 sub_819EEF0: @ 819EEF0 push {r4,lr} sub sp, 0xC ldr r0, =gUnknown_08610918 movs r1, 0xE0 movs r2, 0xA bl LoadPalette ldr r0, =gPlttBufferUnfaded+ 0x1E0 ldr r1, =gPlttBufferFaded + 0x1C0 movs r2, 0x5 bl CpuSet ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x3] cmp r0, 0x2 bls _0819EF2C movs r0, 0x1 movs r1, 0x2 bl CopyWindowToVram b _0819EF90 .pool _0819EF2C: ldrb r2, [r1, 0x3] ldrb r0, [r1, 0x14] cmp r0, 0 bne _0819EF40 movs r0, 0x64 muls r0, r2 ldr r1, =gPlayerParty b _0819EF46 .pool _0819EF40: movs r0, 0x64 muls r0, r2 ldr r1, =gEnemyParty _0819EF46: adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r1, r0, 16 ldr r4, =gStringVar4 movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0x1 adds r1, r4, 0 movs r2, 0x56 bl GetStringRightAlignXOffset adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_08610925 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r1, 0x1 movs r3, 0x1 bl box_print movs r0, 0x1 movs r1, 0x3 bl CopyWindowToVram _0819EF90: add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819EEF0 thumb_func_start sub_819EFA8 sub_819EFA8: @ 819EFA8 push {r4-r6,lr} sub sp, 0x2C ldr r6, =gUnknown_03001284 ldr r0, [r6] ldrb r4, [r0, 0x3] adds r5, r4, 0 movs r0, 0x8 movs r1, 0 bl FillWindowPixelBuffer cmp r4, 0x2 bls _0819EFD0 movs r0, 0x8 movs r1, 0x2 bl CopyWindowToVram b _0819F03A .pool _0819EFD0: movs r0, 0x8 bl PutWindowTilemap ldr r0, [r6] ldrb r0, [r0, 0x14] cmp r0, 0 bne _0819EFEC movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty b _0819EFF2 .pool _0819EFEC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty _0819EFF2: adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 add r1, sp, 0xC bl sub_81DB468 movs r0, 0x1 add r1, sp, 0xC movs r2, 0x76 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0x8 movs r1, 0x1 add r2, sp, 0xC bl PrintTextOnWindow movs r0, 0x8 movs r1, 0x2 bl CopyWindowToVram _0819F03A: add sp, 0x2C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819EFA8 thumb_func_start sub_819F048 sub_819F048: @ 819F048 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r4, =gUnknown_03001284 ldr r3, [r4] ldrb r0, [r3, 0x15] cmp r0, 0x1 beq _0819F094 cmp r2, 0 beq _0819F068 cmp r2, 0x1 beq _0819F080 b _0819F094 .pool _0819F068: strb r2, [r3, 0x14] ldr r0, [r4] strb r2, [r0, 0x3] ldr r1, [r4] movs r0, 0x4 strb r0, [r1, 0x17] ldr r1, [r4] ldr r0, =gUnknown_08610928 b _0819F092 .pool _0819F080: movs r1, 0 strb r2, [r3, 0x14] ldr r0, [r4] strb r1, [r0, 0x3] ldr r1, [r4] movs r0, 0x5 strb r0, [r1, 0x17] ldr r1, [r4] ldr r0, =gUnknown_08610948 _0819F092: str r0, [r1, 0x18] _0819F094: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819F048 thumb_func_start sub_819F0A0 sub_819F0A0: @ 819F0A0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_03001280 ldr r2, =gUnknown_086108AC ldr r1, =gUnknown_03001284 ldr r1, [r1] ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] str r1, [r3] bl _call_via_r1 pop {r0} bx r0 .pool thumb_func_end sub_819F0A0 thumb_func_start sub_819F0CC sub_819F0CC: @ 819F0CC push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r5, =gUnknown_03001284 ldr r1, [r5] ldr r0, [r1, 0x2C] adds r1, 0x30 movs r2, 0x1 bl sub_819F3F8 ldr r0, [r5] ldrb r1, [r0, 0x3] movs r5, 0 strb r1, [r0, 0x12] movs r0, 0x3 bl sub_819EA64 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 strh r5, [r0, 0x8] ldr r1, =sub_819D9EC str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819F0CC thumb_func_start sub_819F114 sub_819F114: @ 819F114 lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 movs r0, 0x6 strh r0, [r1, 0x8] ldr r0, =sub_819C90C str r0, [r1] bx lr .pool thumb_func_end sub_819F114 thumb_func_start sub_819F134 sub_819F134: @ 819F134 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_03001284 ldr r1, [r0] ldr r0, [r1, 0x2C] adds r1, 0x30 movs r2, 0x1 bl sub_819F3F8 movs r0, 0x3 bl sub_819EA64 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r2, =sub_819CE40 lsrs r1, r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] movs r1, 0x1 strh r1, [r0, 0x12] ldr r1, =sub_819D770 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819F134 thumb_func_start sub_819F184 sub_819F184: @ 819F184 push {lr} lsls r0, 24 lsrs r0, 24 ldr r3, =gUnknown_03001280 ldr r1, =gUnknown_03001284 ldr r2, [r1] ldrb r1, [r2, 0x3] ldr r2, [r2, 0x18] lsls r1, 3 adds r1, r2 ldr r1, [r1, 0x4] str r1, [r3] bl _call_via_r1 pop {r0} bx r0 .pool thumb_func_end sub_819F184 thumb_func_start sub_819F1AC sub_819F1AC: @ 819F1AC lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, =sub_819CC24 lsrs r0, r2, 16 movs r3, 0 strh r0, [r1, 0x14] strh r2, [r1, 0x16] strh r3, [r1, 0x8] strh r3, [r1, 0x12] ldr r0, =sub_819D588 str r0, [r1] bx lr .pool thumb_func_end sub_819F1AC thumb_func_start sub_819F1DC sub_819F1DC: @ 819F1DC lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r2, =sub_819D9EC lsrs r0, r2, 16 movs r3, 0 strh r0, [r1, 0x14] strh r2, [r1, 0x16] strh r3, [r1, 0x12] strh r3, [r1, 0x8] ldr r0, =sub_819D588 str r0, [r1] bx lr .pool thumb_func_end sub_819F1DC thumb_func_start sub_819F20C sub_819F20C: @ 819F20C push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r5, =gUnknown_03001284 ldr r1, [r5] ldrb r0, [r1, 0x14] cmp r0, 0 bne _0819F240 ldr r3, =gTasks lsls r4, r6, 2 adds r0, r4, r6 lsls r0, 3 adds r0, r3 ldr r2, =sub_819CD34 lsrs r1, r2, 16 strh r1, [r0, 0x14] strh r2, [r0, 0x16] movs r1, 0x2 strh r1, [r0, 0x12] b _0819F292 .pool _0819F240: ldrb r0, [r1, 0x3] bl sub_819F59C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 bne _0819F278 ldr r1, [r5] adds r0, r1, 0 adds r0, 0x2D adds r1, 0x30 movs r2, 0x1 bl sub_819F2B4 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] strh r4, [r0, 0x12] ldr r1, =sub_819F488 b _0819F29E .pool _0819F278: ldr r4, =gTasks lsls r5, r6, 2 adds r0, r5, r6 lsls r0, 3 adds r0, r4 ldr r2, =sub_819CCD4 lsrs r1, r2, 16 movs r3, 0 strh r1, [r0, 0x14] strh r2, [r0, 0x16] strh r3, [r0, 0x12] adds r3, r4, 0 adds r4, r5, 0 _0819F292: adds r0, r4, r6 lsls r0, 3 adds r0, r3 movs r1, 0 strh r1, [r0, 0x8] ldr r1, =sub_819D588 _0819F29E: str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819F20C thumb_func_start sub_819F2B4 sub_819F2B4: @ 819F2B4 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 lsls r5, r2, 24 lsrs r5, 24 ldr r0, =gUnknown_08610894 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1 bl CreateSprite strb r0, [r4] ldr r2, =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r2, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_819F600 str r1, [r0] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 strh r5, [r0, 0x3C] movs r0, 0x1 strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819F2B4 thumb_func_start sub_819F304 sub_819F304: @ 819F304 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} sub sp, 0x10 ldr r0, =gUnknown_08610894 movs r1, 0x78 movs r2, 0x40 movs r3, 0x1 bl CreateSprite ldr r6, =gUnknown_03001284 ldr r1, [r6] adds r1, 0x2D movs r2, 0 mov r10, r2 strb r0, [r1] ldr r0, [r6] adds r0, 0x2D ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites mov r8, r1 add r0, r8 movs r1, 0x2 bl StartSpriteAffineAnim ldr r0, [r6] ldrb r1, [r0, 0x3] movs r0, 0x64 adds r4, r1, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData mov r9, r0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0 bl GetMonData adds r2, r0, 0 movs r0, 0x58 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] ldr r0, =0x0000ffff str r0, [sp, 0xC] adds r0, r5, 0 mov r1, r9 movs r3, 0x1 bl sub_818D7D8 ldr r1, [r6] adds r1, 0x2C strb r0, [r1] ldr r0, [r6] adds r0, 0x2C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x28 mov r2, r10 strb r2, [r0] ldr r0, [r6] adds r0, 0x2C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x29 strb r2, [r0] ldr r0, [r6] adds r0, 0x2D ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 add r0, r8 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819F304 thumb_func_start sub_819F3F8 sub_819F3F8: @ 819F3F8 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 lsls r5, r2, 24 lsrs r5, 24 lsls r0, r4, 24 lsrs r0, 24 bl sub_818D820 ldr r0, =sub_819F7B4 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r5, [r1, 0x16] lsrs r4, 8 lsls r4, 24 lsrs r4, 24 strh r4, [r1, 0x14] ldr r1, [r1] bl _call_via_r1 movs r0, 0x1 strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819F3F8 thumb_func_start sub_819F444 sub_819F444: @ 819F444 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 lsls r0, r4, 24 lsrs r0, 24 bl sub_818D820 ldr r5, =gSprites lsls r4, 16 lsrs r1, r4, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r0, [r0, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix lsrs r4, 24 lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r5 bl DestroySprite movs r0, 0 strb r0, [r6] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819F444 thumb_func_start sub_819F488 sub_819F488: @ 819F488 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gUnknown_03001284 ldr r0, [r1] adds r0, 0x30 ldrb r0, [r0] adds r3, r1, 0 cmp r0, 0x1 beq _0819F58A ldr r2, =gTasks lsls r1, r4, 2 adds r0, r1, r4 lsls r0, 3 adds r0, r2 movs r2, 0x8 ldrsh r0, [r0, r2] adds r5, r1, 0 cmp r0, 0x4 bhi _0819F58A lsls r0, 2 ldr r1, =_0819F4C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _0819F4C8: .4byte _0819F4DC .4byte _0819F4F8 .4byte _0819F52C .4byte _0819F548 .4byte _0819F568 _0819F4DC: ldr r0, =gUnknown_085EED0A bl sub_819EBEC ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x20 movs r1, 0 strb r1, [r0] b _0819F54E .pool _0819F4F8: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _0819F50C movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _0819F58A _0819F50C: movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_03001284 ldr r1, [r0] ldr r0, [r1, 0x2C] adds r1, 0x30 movs r2, 0x1 bl sub_819F3F8 b _0819F54E .pool _0819F52C: ldr r0, [r3] adds r0, 0x30 ldrb r0, [r0] cmp r0, 0x1 beq _0819F58A movs r0, 0x5 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x5 movs r1, 0x2 bl CopyWindowToVram b _0819F54E _0819F548: ldr r0, =gUnknown_085EEC8B bl sub_819EBEC _0819F54E: ldr r0, =gTasks adds r1, r5, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x8] adds r0, 0x1 strh r0, [r1, 0x8] b _0819F58A .pool _0819F568: bl sub_819EEF0 bl sub_819EADC ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x22 movs r1, 0x1 strb r1, [r0] ldr r1, =gTasks adds r0, r5, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x12] strh r1, [r0, 0x8] ldr r1, =sub_819CE40 str r1, [r0] _0819F58A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819F488 thumb_func_start sub_819F59C sub_819F59C: @ 819F59C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 movs r1, 0x64 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 movs r4, 0 _0819F5B8: ldr r0, =gUnknown_03001284 ldr r0, [r0] ldrb r0, [r0, 0x12] cmp r4, r0 beq _0819F5EC movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB movs r2, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 cmp r0, r5 bne _0819F5EC movs r0, 0x1 b _0819F5F8 .pool _0819F5EC: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _0819F5B8 movs r0, 0 _0819F5F8: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_819F59C thumb_func_start sub_819F600 sub_819F600: @ 819F600 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819F640 adds r2, r4, 0 adds r2, 0x3E ldrb r0, [r2] movs r1, 0x4 orrs r0, r1 strb r0, [r2] ldr r0, =sub_819F69C movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrh r2, [r4, 0x3C] strh r2, [r1, 0x16] ldr r1, [r1] bl _call_via_r1 ldr r0, =SpriteCallbackDummy str r0, [r4, 0x1C] _0819F640: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_819F600 thumb_func_start sub_819F654 sub_819F654: @ 819F654 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _0819F694 ldrb r0, [r4, 0x3] lsls r0, 26 lsrs r0, 27 bl FreeOamMatrix movs r1, 0x3C ldrsh r0, [r4, r1] cmp r0, 0x1 bne _0819F688 ldr r0, =gUnknown_03001284 ldr r0, [r0] adds r0, 0x30 movs r1, 0 strb r1, [r0] b _0819F68E .pool _0819F688: movs r0, 0 bl sub_819BE20 _0819F68E: adds r0, r4, 0 bl DestroySprite _0819F694: pop {r4} pop {r0} bx r0 thumb_func_end sub_819F654 thumb_func_start sub_819F69C sub_819F69C: @ 819F69C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0x1 beq _0819F71A cmp r0, 0x1 bgt _0819F6C4 cmp r0, 0 beq _0819F6CA b _0819F77C .pool _0819F6C4: cmp r0, 0x2 beq _0819F73C b _0819F77C _0819F6CA: movs r0, 0x58 strh r0, [r4, 0xE] movs r0, 0x98 strh r0, [r4, 0x38] movs r0, 0x40 strh r0, [r4, 0x12] movs r0, 0x41 strh r0, [r4, 0x18] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x38] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x37 bl SetGpuReg b _0819F7A6 _0819F71A: movs r0, 0x3 bl ShowBg ldr r1, =0x00001248 movs r0, 0x50 bl SetGpuReg ldr r1, =0x0000040b movs r0, 0x52 bl SetGpuReg b _0819F7A6 .pool _0819F73C: ldrh r0, [r4, 0x12] subs r0, 0x4 strh r0, [r4, 0x12] ldrh r1, [r4, 0x18] adds r1, 0x4 strh r1, [r4, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x20 ble _0819F758 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x5F ble _0819F760 _0819F758: movs r0, 0x20 strh r0, [r4, 0x12] movs r0, 0x60 strh r0, [r4, 0x18] _0819F760: ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r2, 0x12 ldrsh r0, [r4, r2] cmp r0, 0x20 bne _0819F7AC b _0819F7A6 _0819F77C: adds r0, r5, 0 bl DestroyTask ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 movs r2, 0x16 ldrsh r0, [r1, r2] cmp r0, 0x1 bne _0819F7A0 bl sub_819F8E0 b _0819F7AC .pool _0819F7A0: bl sub_819BD70 b _0819F7AC _0819F7A6: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0819F7AC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_819F69C thumb_func_start sub_819F7B4 sub_819F7B4: @ 819F7B4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks adds r4, r0, r1 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 beq _0819F844 cmp r0, 0x1 beq _0819F894 movs r0, 0x3 bl HideBg ldr r3, =gSprites movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 ldrh r1, [r4, 0x16] strh r1, [r0, 0x3C] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r1, r3, 0 adds r1, 0x1C adds r0, r1 ldr r1, =sub_819F654 str r1, [r0] movs r0, 0x14 ldrsh r1, [r4, r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r1, 0x1 bl StartSpriteAffineAnim movs r1, 0x80 lsls r1, 6 movs r0, 0 bl ClearGpuRegBits adds r0, r5, 0 bl DestroyTask b _0819F8D8 .pool _0819F844: movs r0, 0x58 strh r0, [r4, 0xE] movs r0, 0x98 strh r0, [r4, 0x38] movs r0, 0x20 strh r0, [r4, 0x12] movs r0, 0x60 strh r0, [r4, 0x18] movs r1, 0x80 lsls r1, 6 movs r0, 0 bl SetGpuRegBits ldrh r1, [r4, 0xE] lsls r1, 8 ldrh r0, [r4, 0x38] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x40 bl SetGpuReg ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r0, 0x48 movs r1, 0x3F bl SetGpuReg movs r0, 0x4A movs r1, 0x37 bl SetGpuReg b _0819F8D2 _0819F894: ldrh r0, [r4, 0x12] adds r0, 0x4 strh r0, [r4, 0x12] ldrh r1, [r4, 0x18] subs r1, 0x4 strh r1, [r4, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x3F bgt _0819F8B0 lsls r0, r1, 16 asrs r0, 16 cmp r0, 0x41 bgt _0819F8B8 _0819F8B0: movs r0, 0x40 strh r0, [r4, 0x12] movs r0, 0x41 strh r0, [r4, 0x18] _0819F8B8: ldrh r1, [r4, 0x12] lsls r1, 8 ldrh r0, [r4, 0x18] orrs r1, r0 lsls r1, 16 lsrs r1, 16 movs r0, 0x44 bl SetGpuReg movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0x40 bne _0819F8D8 _0819F8D2: ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _0819F8D8: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_819F7B4 thumb_func_start sub_819F8E0 sub_819F8E0: @ 819F8E0 push {r4-r6,lr} sub sp, 0x10 ldr r0, =gUnknown_03001284 ldr r1, [r0] ldrb r0, [r1, 0x14] cmp r0, 0 bne _0819F900 ldrb r1, [r1, 0x3] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty b _0819F908 .pool _0819F900: ldrb r1, [r1, 0x3] movs r0, 0x64 muls r1, r0 ldr r0, =gEnemyParty _0819F908: adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB movs r2, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0 movs r2, 0 bl GetMonData adds r5, r0, 0 adds r0, r6, 0 movs r1, 0x1 movs r2, 0 bl GetMonData adds r1, r0, 0 movs r0, 0x58 str r0, [sp] movs r0, 0x20 str r0, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] ldr r0, =0x0000ffff str r0, [sp, 0xC] adds r0, r4, 0 adds r2, r5, 0 movs r3, 0x1 bl sub_818D7D8 ldr r2, =gUnknown_03001284 ldr r1, [r2] adds r1, 0x2C movs r3, 0 strb r0, [r1] ldr r4, =gSprites ldr r0, [r2] adds r0, 0x2C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x28 strb r3, [r0] ldr r0, [r2] adds r0, 0x2C ldrb r1, [r0] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x29 strb r3, [r0] ldr r0, [r2] adds r0, 0x30 strb r3, [r0] add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_819F8E0 thumb_func_start sub_819F99C sub_819F99C: @ 819F99C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r2, =gSaveBlock2Ptr ldr r1, [r2] lsls r0, r5, 4 adds r0, r5 lsls r0, 2 adds r1, r0 adds r1, 0xDE ldrb r1, [r1] movs r6, 0 adds r7, r2, 0 ldr r0, =gStringVar1 mov r8, r0 cmp r1, 0 beq _0819F9DC _0819F9C2: adds r0, r1, 0 movs r1, 0xA bl __udivsi3 lsls r0, 24 lsrs r1, r0, 24 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r1, 0 beq _0819F9DC cmp r6, 0x3 bls _0819F9C2 _0819F9DC: lsls r4, r5, 4 adds r4, r5 lsls r4, 2 ldr r1, [r7] adds r1, r4, r1 movs r0, 0x8A lsls r0, 1 adds r1, r0 mov r0, r8 bl StringCopy7 ldr r0, [r7] adds r0, r4 ldr r1, =0x0000011b adds r0, r1 ldrb r1, [r0] mov r0, r8 bl ConvertInternationalString ldr r0, =gStringVar2 ldr r1, [r7] adds r1, r4 adds r1, 0xDE ldrb r1, [r1] movs r2, 0x1 adds r3, r6, 0 bl ConvertIntToDecimalStringN ldr r1, =gUnknown_08611330 ldr r0, [r7] adds r0, r4 adds r0, 0xDC ldrb r0, [r0] lsls r0, 27 lsrs r0, 25 adds r0, r1 ldr r1, [r0] ldr r0, =gStringVar4 bl StringExpandPlaceholders pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819F99C thumb_func_start sub_819FA50 sub_819FA50: @ 819FA50 push {lr} bl EnableBothScriptContexts pop {r0} bx r0 thumb_func_end sub_819FA50 thumb_func_start sub_819FA5C sub_819FA5C: @ 819FA5C push {r4,r5,lr} adds r3, r0, 0 movs r2, 0 adds r4, r3, 0 adds r4, 0x28 ldr r0, =0x0000ffff adds r5, r0, 0 _0819FA6A: lsls r0, r2, 1 adds r0, r4, r0 ldrh r1, [r0] orrs r1, r5 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0819FA6A adds r1, r3, 0 adds r1, 0x38 movs r0, 0xFF strb r0, [r1] ldrb r1, [r3] movs r0, 0x20 negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r3] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_819FA5C thumb_func_start sub_819FAA0 sub_819FAA0: @ 819FAA0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r3, =gSaveBlock2Ptr ldr r1, [r3] adds r1, 0xB2 ldrb r2, [r1] movs r0, 0x19 negs r0, r0 ands r0, r2 strb r0, [r1] movs r0, 0 mov r12, r0 adds r5, r3, 0 mov r8, r0 ldr r1, =0x0000ffff mov r10, r1 _0819FAC6: movs r2, 0 mov r3, r12 lsls r7, r3, 4 movs r4, 0x1 add r4, r12 mov r9, r4 adds r0, r7, r3 lsls r3, r0, 2 _0819FAD6: ldr r1, [r5] lsls r0, r2, 1 adds r0, r3 movs r4, 0x82 lsls r4, 1 adds r1, r4 adds r1, r0 ldrh r0, [r1] mov r4, r10 orrs r0, r4 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _0819FAD6 ldr r2, [r5] mov r0, r12 adds r3, r7, r0 lsls r3, 2 adds r2, r3 adds r2, 0xDC ldrb r1, [r2] movs r0, 0x20 negs r0, r0 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2] ldr r0, [r5] adds r0, r3 movs r1, 0x8A lsls r1, 1 adds r0, r1 movs r1, 0xFF strb r1, [r0] ldr r1, [r5] adds r1, r3 adds r1, 0xDC ldrb r2, [r1] movs r0, 0x61 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, [r5] adds r0, r3 adds r0, 0xDE mov r4, r8 strb r4, [r0] ldr r0, [r5] adds r0, r3 adds r0, 0xDD strb r4, [r0] movs r2, 0 ldr r6, =gSaveBlock2Ptr movs r4, 0x88 lsls r4, 1 _0819FB48: ldr r0, [r6] adds r1, r2, r3 adds r0, r4 adds r0, r1 mov r1, r8 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _0819FB48 ldr r0, [r5] mov r3, r12 adds r2, r7, r3 lsls r2, 2 adds r0, r2 ldr r4, =gGameLanguage ldrb r1, [r4] ldr r3, =0x0000011b adds r0, r3 strb r1, [r0] ldr r0, [r5] movs r4, 0x8E lsls r4, 1 adds r0, r4 adds r0, r2 mov r1, r8 str r1, [r0] mov r3, r9 lsls r0, r3, 24 lsrs r0, 24 mov r12, r0 cmp r0, 0x3 bls _0819FAC6 bl sub_81A087C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819FAA0 thumb_func_start sub_819FBB0 sub_819FBB0: @ 819FBB0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB1 ldrb r0, [r0] movs r1, 0x3 ands r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 bx lr .pool thumb_func_end sub_819FBB0 thumb_func_start sub_819FBC8 sub_819FBC8: @ 819FBC8 push {r4,r5,lr} ldr r2, =gSaveBlock2Ptr ldr r0, [r2] adds r0, 0xDE ldrb r0, [r0] cmp r0, 0 bne _0819FC10 adds r4, r2, 0 ldr r5, =gUnknown_08611548 _0819FBDA: bl Random ldr r2, [r4] lsls r0, 16 movs r1, 0xE0 lsls r1, 11 ands r1, r0 lsrs r1, 16 adds r1, r5 ldrb r0, [r1] adds r2, 0xB0 strb r0, [r2] ldr r0, [r4] adds r1, r0, 0 adds r1, 0xB0 adds r0, 0xDC ldrb r0, [r0] lsls r0, 27 ldrb r1, [r1] lsrs r0, 27 cmp r1, r0 beq _0819FBDA b _0819FC38 .pool _0819FC10: adds r4, r2, 0 _0819FC12: bl Random ldr r2, [r4] lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 adds r2, 0xB0 strb r0, [r2] ldr r0, [r4] adds r1, r0, 0 adds r1, 0xB0 adds r0, 0xDC ldrb r0, [r0] lsls r0, 27 ldrb r1, [r1] lsrs r0, 27 cmp r1, r0 beq _0819FC12 _0819FC38: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_819FBC8 thumb_func_start sub_819FC40 sub_819FC40: @ 819FC40 lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock2Ptr ldr r2, [r1] adds r2, 0xB1 movs r1, 0x3 ands r0, r1 ldrb r3, [r2] subs r1, 0x7 ands r1, r3 orrs r1, r0 strb r1, [r2] bx lr .pool thumb_func_end sub_819FC40 thumb_func_start sub_819FC60 sub_819FC60: @ 819FC60 push {r4-r7,lr} sub sp, 0xC movs r5, 0 _0819FC66: mov r1, sp adds r0, r1, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0819FC66 movs r5, 0 _0819FC78: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r7, sp adds r2, r7, r4 ldrb r3, [r2] adds r1, r7, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x31 bls _0819FC78 movs r5, 0 ldr r6, =gSaveBlock2Ptr movs r4, 0xF _0819FCBC: ldr r3, [r6] adds r3, 0xB4 adds r3, r5 lsls r2, r5, 1 mov r1, sp adds r0, r1, r2 ldrb r0, [r0] adds r1, r4, 0 ands r1, r0 lsls r1, 4 adds r2, 0x1 mov r7, sp adds r0, r7, r2 ldrb r2, [r0] adds r0, r4, 0 ands r0, r2 orrs r1, r0 strb r1, [r3] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0819FCBC add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819FC60 thumb_func_start sub_819FCF8 sub_819FCF8: @ 819FCF8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 movs r5, 0 cmp r0, 0x2 bne _0819FD4C ldr r6, =gUnknown_030062EC _0819FD06: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 movs r2, 0 ldr r1, [r6] lsls r0, r5, 2 adds r0, r5 lsls r4, r0, 1 adds r1, 0x2 _0819FD26: lsls r0, r2, 1 adds r0, r4 adds r0, r1, r0 ldrh r0, [r0] cmp r0, 0 beq _0819FD38 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 _0819FD38: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x4 bls _0819FD26 cmp r3, 0x3 bhi _0819FD06 b _0819FD5A .pool _0819FD4C: cmp r0, 0x1 bne _0819FD5A ldrb r0, [r2] adds r1, r0 ldrb r5, [r1] adds r0, 0x1 strb r0, [r2] _0819FD5A: adds r0, r5, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_819FCF8 thumb_func_start sub_819FD64 sub_819FD64: @ 819FD64 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 movs r5, 0 mov r0, sp adds r0, 0xC str r0, [sp, 0x14] mov r1, sp adds r1, 0x10 str r1, [sp, 0x18] adds r1, r0, 0 _0819FD80: adds r0, r1, r5 strb r5, [r0] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _0819FD80 movs r5, 0 ldr r6, [sp, 0x14] _0819FD92: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r4, r0, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 adds r2, r6, r4 ldrb r3, [r2] adds r1, r6, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0819FD92 movs r5, 0 ldr r2, =gUnknown_086114D3 _0819FDD0: mov r4, sp adds r1, r4, r5 adds r0, r5, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _0819FDD0 movs r5, 0 _0819FDE6: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r4, r0, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xA bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r6, sp adds r2, r6, r4 ldrb r3, [r2] adds r1, r6, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x31 bls _0819FDE6 ldr r4, =gUnknown_030062EC movs r0, 0x30 bl AllocZeroed str r0, [r4] movs r1, 0 strb r1, [r0] movs r5, 0 movs r2, 0x4 _0819FE34: movs r3, 0 _0819FE36: ldr r0, [r4] lsls r1, r3, 2 adds r1, r3 adds r1, r5, r1 adds r0, 0x20 adds r0, r1 strb r2, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _0819FE36 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _0819FE34 movs r0, 0 ldr r7, [sp, 0x18] strb r0, [r7] movs r5, 0 _0819FE60: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] lsls r4, r5, 2 adds r3, r4 mov r1, sp adds r6, r1, r5 ldrb r0, [r6] adds r3, 0xB8 movs r2, 0x3 ands r2, r0 ldrb r0, [r3] movs r7, 0x4 negs r7, r7 adds r1, r7, 0 ands r0, r1 orrs r0, r2 strb r0, [r3] ldrb r0, [r6] adds r5, 0x1 str r5, [sp, 0x1C] mov r8, r4 cmp r0, 0x3 beq _0819FF62 ldrb r0, [r6] ldr r1, [sp, 0x14] ldr r2, [sp, 0x18] bl sub_819FCF8 ldr r1, =gSaveBlock2Ptr ldr r3, [r1] add r3, r8 adds r3, 0xB8 movs r2, 0x3 ands r2, r0 lsls r2, 2 ldrb r0, [r3] movs r4, 0xD negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r2 strb r0, [r3] ldr r7, =gSaveBlock2Ptr ldr r0, [r7] add r0, r8 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 28 lsrs r7, r0, 30 ldrb r0, [r6] cmp r0, 0x2 bne _0819FF62 lsls r0, r7, 2 adds r0, r7 mov r10, r0 ldr r0, =gUnknown_030062EC mov r9, r0 _0819FED2: bl Random lsls r0, 16 lsrs r4, r0, 16 movs r1, 0x3 ands r4, r1 movs r3, 0 mov r6, r9 ldr r2, [r6] ldrb r0, [r2] adds r1, r0, 0x1 lsls r5, r7, 2 cmp r3, r1 bge _0819FF12 adds r2, 0x20 mov r6, r10 adds r0, r2, r6 ldrb r0, [r0] cmp r0, r4 beq _0819FF12 adds r6, r1, 0 adds r1, r5, r7 _0819FEFE: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r6 bge _0819FF12 adds r0, r3, r1 adds r0, r2, r0 ldrb r0, [r0] cmp r0, r4 bne _0819FEFE _0819FF12: mov r1, r9 ldr r0, [r1] ldrb r0, [r0] adds r0, 0x1 ldr r1, =gUnknown_030062EC cmp r3, r0 bne _0819FED2 ldr r0, [r1] orrs r5, r7 ldrb r2, [r0] adds r1, r5, r2 adds r0, 0x20 adds r0, r1 strb r4, [r0] ldr r6, =gSaveBlock2Ptr ldr r2, [r6] add r2, r8 adds r2, 0xB8 movs r7, 0x3 ands r4, r7 lsls r3, r4, 4 ldrb r0, [r2] movs r4, 0x31 negs r4, r4 adds r1, r4, 0 ands r0, r1 orrs r0, r3 strb r0, [r2] ldr r0, [r6] add r0, r8 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 28 lsrs r0, 30 bl sub_819FF98 ldr r1, [r6] add r1, r8 adds r1, 0xBA strh r0, [r1] _0819FF62: ldr r6, [sp, 0x1C] lsls r0, r6, 24 lsrs r5, r0, 24 cmp r5, 0x8 bhi _0819FF6E b _0819FE60 _0819FF6E: ldr r4, =gUnknown_030062EC ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_819FD64 thumb_func_start sub_819FF98 sub_819FF98: @ 819FF98 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0 str r0, [sp, 0xC] movs r7, 0 ldr r1, [sp] cmp r1, 0x2 bhi _0819FFE0 ldr r2, =gSaveBlock2Ptr ldr r1, [r2] adds r0, r1, 0 adds r0, 0xB4 ldr r3, [sp] adds r0, r3 ldrb r4, [r0] adds r1, 0xB2 ldrb r0, [r1] lsls r0, 29 lsrs r0, 29 asrs r0, r3 movs r1, 0x1 ands r0, r1 lsls r0, 2 asrs r4, r0 movs r0, 0xF ands r4, r0 b _0819FFE4 .pool _0819FFE0: movs r4, 0 ldr r2, =gSaveBlock2Ptr _0819FFE4: ldr r3, =gUnknown_08610970 lsls r1, r4, 1 ldr r4, [r2] adds r0, r4, 0 adds r0, 0xB0 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0 adds r3, 0x34 adds r1, r3 ldrh r1, [r1] str r1, [sp, 0x8] ldr r1, =gLevelUpLearnsets ldr r2, [sp, 0x8] lsls r0, r2, 2 adds r0, r1 ldr r6, [r0] movs r3, 0 adds r4, 0xB1 ldrb r1, [r4] movs r0, 0x3 ands r0, r1 movs r5, 0x3C cmp r0, 0x1 bne _081A001A movs r5, 0x32 _081A001A: ldrh r1, [r6] ldr r4, =0x0000ffff cmp r1, r4 beq _081A004C movs r2, 0xFE lsls r2, 8 adds r0, r2, 0 ands r0, r1 lsls r1, r5, 9 cmp r0, r1 bgt _081A004C adds r5, r2, 0 adds r2, r1, 0 _081A0034: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 1 adds r0, r6 ldrh r1, [r0] cmp r1, r4 beq _081A004C adds r0, r5, 0 ands r0, r1 cmp r0, r2 ble _081A0034 _081A004C: adds r5, r3, 0 movs r3, 0 str r3, [sp, 0x4] _081A0052: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081A0068 ldr r0, [sp, 0xC] cmp r0, 0x1 bne _081A00E0 _081A0068: ldr r1, =0x000001ff mov r8, r1 _081A006C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3A bl __umodsi3 lsls r0, 24 lsrs r4, r0, 24 ldr r0, [sp, 0x8] adds r1, r4, 0 bl CanSpeciesLearnTMHM adds r2, r0, 0 cmp r2, 0 beq _081A006C ldr r2, =0x00000121 adds r0, r4, r2 bl ItemIdToBattleMoveId lsls r0, 16 lsrs r7, r0, 16 movs r2, 0x1 cmp r5, 0x4 bhi _081A00BC movs r3, 0 b _081A00C6 .pool _081A00BC: subs r0, r5, 0x4 b _081A00C2 _081A00C0: adds r0, r3, 0x1 _081A00C2: lsls r0, 24 lsrs r3, r0, 24 _081A00C6: cmp r3, r5 bcs _081A00DA lsls r0, r3, 1 adds r0, r6 ldrh r0, [r0] mov r1, r8 ands r0, r1 cmp r0, r7 bne _081A00C0 movs r2, 0 _081A00DA: cmp r2, 0x1 bne _081A006C b _081A0146 _081A00E0: cmp r5, 0x4 bhi _081A00EA movs r2, 0x1 str r2, [sp, 0xC] b _081A0168 _081A00EA: subs r4, r5, 0x4 ldr r3, =0x000001ff mov r10, r3 mov r8, r3 lsls r0, r4, 24 mov r9, r0 _081A00F6: bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 lsls r0, 24 lsrs r0, 23 adds r0, r6 ldrh r0, [r0] mov r7, r8 ands r7, r0 movs r2, 0x1 mov r1, r9 lsrs r3, r1, 24 cmp r3, r5 bcs _081A0142 lsls r0, r3, 1 adds r0, r6 ldrh r1, [r0] mov r0, r8 b _081A013A .pool _081A0128: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r5 bcs _081A0142 lsls r0, r3, 1 adds r0, r6 ldrh r0, [r0] mov r1, r10 _081A013A: ands r0, r1 cmp r0, r7 bne _081A0128 movs r2, 0 _081A0142: cmp r2, 0x1 bne _081A00F6 _081A0146: ldr r0, [sp] adds r1, r7, 0 bl sub_81A0194 lsls r0, 24 cmp r0, 0 beq _081A0168 ldr r0, =gUnknown_08611370 adds r0, r7, r0 ldrb r0, [r0] cmp r0, 0 bne _081A0170 ldr r0, [sp, 0x4] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] _081A0168: ldr r2, [sp, 0x4] cmp r2, 0x4 bhi _081A0170 b _081A0052 _081A0170: ldr r0, =gUnknown_030062EC ldr r1, [r0] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r0, r7, 0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_819FF98 thumb_func_start sub_81A0194 sub_81A0194: @ 81A0194 push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r5, r1, 16 movs r3, 0 ldr r0, =gUnknown_030062EC mov r12, r0 ldr r2, [r0] lsls r1, r4, 2 adds r0, r1, r4 lsls r6, r0, 1 adds r2, 0x2 adds r7, r1, 0 _081A01B0: lsls r0, r3, 1 adds r0, r6 adds r0, r2, r0 ldrh r0, [r0] cmp r0, r5 bne _081A01C4 movs r0, 0 b _081A01E2 .pool _081A01C4: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x4 bls _081A01B0 mov r2, r12 ldr r1, [r2] adds r0, r7, r4 ldrb r2, [r1] adds r0, r2 lsls r0, 1 adds r1, 0x2 adds r1, r0 strh r5, [r1] movs r0, 0x1 _081A01E2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81A0194 thumb_func_start sub_81A01E8 sub_81A01E8: @ 81A01E8 push {r4-r7,lr} mov r12, r1 lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 movs r4, 0x3C cmp r0, 0x1 bne _081A0204 movs r4, 0x32 _081A0204: ldr r1, =gLevelUpLearnsets lsls r0, r2, 2 adds r0, r1 ldr r6, [r0] movs r5, 0 ldrh r1, [r6] ldr r3, =0x0000ffff cmp r1, r3 beq _081A0240 movs r2, 0xFE lsls r2, 8 adds r0, r2, 0 ands r0, r1 lsls r1, r4, 9 cmp r0, r1 bgt _081A0240 adds r4, r2, 0 adds r2, r1, 0 _081A0228: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 1 adds r0, r6 ldrh r1, [r0] cmp r1, r3 beq _081A0240 adds r0, r4, 0 ands r0, r1 cmp r0, r2 ble _081A0228 _081A0240: adds r4, r5, 0 cmp r4, 0x4 bls _081A0248 movs r4, 0x4 _081A0248: movs r2, 0 cmp r2, r4 bcs _081A026C ldr r7, =0x000001ff _081A0250: lsls r3, r2, 1 add r3, r12 adds r2, 0x1 subs r0, r5, r2 lsls r0, 1 adds r0, r6 ldrh r1, [r0] adds r0, r7, 0 ands r0, r1 strh r0, [r3] lsls r2, 24 lsrs r2, 24 cmp r2, r4 bcc _081A0250 _081A026C: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A01E8 thumb_func_start sub_81A0284 sub_81A0284: @ 81A0284 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r5, r2, 24 ldr r1, =gSaveBlock2Ptr ldr r2, [r1] adds r0, r2, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 adds r7, r1, 0 cmp r0, 0x2 bhi _081A02B8 movs r0, 0 b _081A037C .pool _081A02B8: movs r4, 0 movs r3, 0 adds r0, r2, 0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 ldr r1, =gUnknown_08610970 mov r12, r1 lsls r6, 1 lsls r5, 1 mov r9, r5 cmp r0, 0 beq _081A02F4 adds r2, r7, 0 _081A02D4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x8 bhi _081A02F4 ldr r0, [r2] lsls r1, r3, 2 adds r0, r1 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bne _081A02D4 _081A02F4: ldr r0, [r7] adds r0, 0xB0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r6, r0 mov r1, r12 adds r1, 0x34 adds r0, r1 ldrh r0, [r0] mov r1, sp bl sub_81A01E8 movs r3, 0 cmp r3, r4 bcs _081A0376 ldr r1, [r7] adds r0, r1, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 cmp r3, r0 bge _081A0376 adds r6, r7, 0 adds r5, r1, 0 _081A032A: lsls r0, r3, 2 adds r2, r5, r0 adds r0, r2, 0 adds r0, 0xB8 ldrb r1, [r0] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x2 bne _081A035C lsls r0, r1, 28 lsrs r0, 30 cmp r0, r8 bne _081A035C lsrs r0, r1, 6 cmp r0, 0 beq _081A035C lsls r0, r1, 26 lsrs r0, 30 lsls r0, 1 mov r7, sp adds r1, r7, r0 adds r0, r2, 0 adds r0, 0xBA ldrh r0, [r0] strh r0, [r1] _081A035C: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r4 bcs _081A0376 ldr r0, [r6] adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 cmp r3, r0 blt _081A032A _081A0376: mov r0, sp add r0, r9 ldrh r0, [r0] _081A037C: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81A0284 thumb_func_start sub_81A0390 sub_81A0390: @ 81A0390 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r7, =gSaveBlock2Ptr adds r6, r7, 0 movs r4, 0 _081A03A6: ldr r0, [r6] lsls r2, r5, 1 adds r2, r5 lsls r2, 2 adds r0, r2 adds r1, r0, 0 adds r1, 0xE0 strh r4, [r1] adds r0, 0xEA strh r4, [r0] movs r3, 0 _081A03BC: ldr r0, [r6] lsls r1, r3, 1 adds r1, r2 adds r0, 0xE2 adds r0, r1 strh r4, [r0] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _081A03BC adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081A03A6 ldr r0, [r7] adds r0, 0xB1 ldrb r0, [r0] lsrs r3, r0, 6 movs r5, 0 _081A03E6: lsls r0, r3, 2 mov r1, sp adds r2, r1, r0 lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, 0xE0 ldr r1, [r7] adds r1, r0 str r1, [r2] adds r0, r3, 0x1 movs r1, 0x3 bl __modsi3 lsls r0, 24 lsrs r3, r0, 24 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081A03E6 movs r5, 0 ldr r7, =gSaveBlock2Ptr ldr r6, =gUnknown_086109A4 _081A0416: ldr r0, [r7] mov r12, r0 adds r0, 0xB4 adds r0, r5 ldrb r2, [r0] mov r0, r12 adds r0, 0xB2 ldrb r0, [r0] lsls r0, 29 lsrs r0, 29 asrs r0, r5 movs r1, 0x1 ands r0, r1 lsls r0, 2 asrs r2, r0 movs r0, 0xF ands r2, r0 lsls r0, r5, 2 mov r1, sp adds r3, r1, r0 ldr r4, [r3] lsls r2, 1 mov r0, r12 adds r0, 0xB0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r2, r0 adds r2, r6 ldrh r0, [r2] strh r0, [r4] ldr r1, [r3] ldrh r0, [r1] adds r1, 0x2 bl sub_81A01E8 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081A0416 movs r5, 0 cmp r5, r8 bcs _081A04D6 ldr r7, =gSaveBlock2Ptr _081A0470: ldr r1, [r7] lsls r0, r5, 2 adds r4, r1, r0 adds r0, r4, 0 adds r0, 0xB8 ldrb r2, [r0] lsls r0, r2, 30 lsrs r1, r0, 30 lsls r0, r2, 28 lsrs r3, r0, 30 adds r6, r3, 0 cmp r1, 0x1 bne _081A04A8 lsrs r0, r2, 6 cmp r0, 0 beq _081A04CC lsls r0, r3, 2 add r0, sp ldr r1, [r0] adds r0, r4, 0 adds r0, 0xBA ldrh r0, [r0] strh r0, [r1, 0xA] b _081A04CC .pool _081A04A8: cmp r1, 0x2 bne _081A04CC lsls r0, r2, 24 lsrs r0, 30 cmp r0, 0 beq _081A04CC lsls r2, 26 lsrs r2, 30 lsls r0, r6, 2 add r0, sp ldr r1, [r0] lsls r2, 1 adds r1, 0x2 adds r1, r2 adds r0, r4, 0 adds r0, 0xBA ldrh r0, [r0] strh r0, [r1] _081A04CC: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r8 bcc _081A0470 _081A04D6: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81A0390 thumb_func_start sub_81A04E4 sub_81A04E4: @ 81A04E4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 lsls r0, 24 lsrs r0, 24 movs r7, 0x2 cmp r0, 0x6 bls _081A04FC b _081A064C _081A04FC: lsls r0, 2 ldr r1, =_081A050C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A050C: .4byte _081A0528 .4byte _081A0540 .4byte _081A05B4 .4byte _081A05F4 .4byte _081A061C .4byte _081A064C .4byte _081A0634 _081A0528: movs r0, 0x12 mov r10, r0 movs r6, 0x8 ldr r0, =gUnknown_085EAEB1 str r0, [sp, 0xC] ldr r0, =gUnknown_085EAEB8 str r0, [sp, 0x10] b _081A0652 .pool _081A0540: movs r7, 0x3 movs r1, 0x12 mov r10, r1 movs r6, 0x6 movs r4, 0 ldr r0, =gSpeciesNames mov r9, r0 ldr r0, =gSaveBlock2Ptr ldr r3, [r0] movs r1, 0xB2 adds r1, r3 mov r12, r1 adds r5, r3, 0 adds r5, 0xB0 ldr r0, =gUnknown_086109A4 mov r8, r0 _081A0560: adds r0, r3, 0 adds r0, 0xB4 adds r0, r4 ldrb r2, [r0] mov r1, r12 ldrb r0, [r1] lsls r0, 29 lsrs r0, 29 asrs r0, r4 movs r1, 0x1 ands r0, r1 lsls r0, 2 asrs r2, r0 movs r0, 0xF ands r2, r0 lsls r2, 1 ldrb r1, [r5] movs r0, 0x58 muls r0, r1 adds r2, r0 add r2, r8 ldrh r1, [r2] lsls r0, r4, 2 mov r2, sp adds r2, r0 adds r2, 0xC movs r0, 0xB muls r0, r1 add r0, r9 str r0, [r2] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081A0560 b _081A0652 .pool _081A05B4: movs r0, 0x12 mov r10, r0 movs r6, 0x8 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 cmp r0, 0x2 bls _081A05CC b _081A06FA _081A05CC: ldr r0, =gUnknown_030062F0 ldr r3, [r0] ldrh r0, [r3, 0x2] movs r2, 0xB muls r0, r2 ldr r1, =gSpeciesNames adds r0, r1 str r0, [sp, 0x10] ldrh r0, [r3] muls r0, r2 adds r0, r1 str r0, [sp, 0xC] b _081A0652 .pool _081A05F4: movs r1, 0x11 mov r10, r1 movs r6, 0x8 ldr r0, =gUnknown_030062F0 ldr r3, [r0] ldrh r0, [r3, 0x4] movs r2, 0xD muls r0, r2 ldr r1, =gMoveNames adds r0, r1 str r0, [sp, 0xC] ldrh r0, [r3, 0x6] muls r0, r2 adds r0, r1 str r0, [sp, 0x10] b _081A0652 .pool _081A061C: movs r0, 0x12 mov r10, r0 movs r6, 0x8 ldr r0, =gUnknown_085ED193 str r0, [sp, 0xC] ldr r0, =gUnknown_085ED198 str r0, [sp, 0x10] b _081A0652 .pool _081A0634: movs r1, 0x14 mov r10, r1 movs r6, 0x8 ldr r0, =gUnknown_085EAE62 str r0, [sp, 0xC] ldr r0, =gUnknown_085EAE66 str r0, [sp, 0x10] b _081A0652 .pool _081A064C: movs r0, 0 mov r10, r0 movs r6, 0 _081A0652: movs r5, 0 movs r4, 0 lsls r1, r7, 25 mov r8, r1 cmp r4, r7 bcs _081A067E _081A065E: lsls r0, r4, 2 add r0, sp adds r0, 0xC ldr r1, [r0] movs r0, 0x1 movs r2, 0 bl GetStringWidth cmp r0, r5 ble _081A0674 adds r5, r0, 0 _081A0674: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _081A065E _081A067E: adds r0, r5, 0 bl convert_pixel_width_to_tile_width adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r0, r10 adds r1, r4, 0 bl sub_80E2D5C lsls r0, 24 lsrs r0, 24 mov r10, r0 mov r0, r8 lsrs r3, r0, 24 mov r0, r10 adds r1, r6, 0 adds r2, r4, 0 bl sub_81A0784 lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0 bl SetStandardWindowBorderStyle movs r4, 0 cmp r4, r7 bcs _081A06E6 _081A06B8: lsls r0, r4, 2 add r0, sp adds r0, 0xC ldr r2, [r0] lsls r0, r4, 4 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r7 bcc _081A06B8 _081A06E6: adds r0, r5, 0 adds r1, r7, 0 movs r2, 0 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0x1 adds r1, r7, 0 adds r2, r5, 0 bl sub_81A0804 _081A06FA: add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81A04E4 thumb_func_start sub_81A070C sub_81A070C: @ 81A070C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 movs r1, 0xA ldrsh r0, [r4, r1] cmp r0, 0 bne _081A0730 bl ProcessMenuInputNoWrapAround b _081A0734 .pool _081A0730: bl ProcessMenuInput _081A0734: lsls r0, 24 lsrs r0, 24 lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _081A0778 adds r0, 0x1 cmp r1, r0 bne _081A0764 movs r1, 0x8 ldrsh r0, [r4, r1] cmp r0, 0 bne _081A0778 movs r0, 0x5 bl PlaySE ldr r1, =gScriptResult movs r0, 0x7F strh r0, [r1] b _081A0768 .pool _081A0764: ldr r0, =gScriptResult strh r1, [r0] _081A0768: ldrb r0, [r4, 0xC] bl sub_81A07E8 adds r0, r5, 0 bl DestroyTask bl EnableBothScriptContexts _081A0778: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A070C thumb_func_start sub_81A0784 sub_81A0784: @ 81A0784 push {r4,r5,lr} sub sp, 0x20 adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsls r5, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 movs r0, 0x80 lsls r0, 17 adds r4, r0 lsrs r4, 24 adds r5, r0 lsrs r5, 24 str r2, [sp] str r3, [sp, 0x4] movs r0, 0xF str r0, [sp, 0x8] movs r0, 0x64 str r0, [sp, 0xC] add r0, sp, 0x10 movs r1, 0 adds r2, r4, 0 adds r3, r5, 0 bl sub_8198A50 ldr r0, [sp, 0x10] ldr r1, [sp, 0x14] str r0, [sp, 0x18] str r1, [sp, 0x1C] add r0, sp, 0x18 bl AddWindow adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x3 bl CopyWindowToVram adds r0, r4, 0 add sp, 0x20 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81A0784 thumb_func_start sub_81A07E8 sub_81A07E8: @ 81A07E8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0x1 bl sub_8198070 adds r0, r4, 0 bl RemoveWindow pop {r4} pop {r0} bx r0 thumb_func_end sub_81A07E8 thumb_func_start sub_81A0804 sub_81A0804: @ 81A0804 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r0, =sub_81A070C movs r1, 0x50 bl CreateTask lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r1, r0, r1 strh r4, [r1, 0x10] cmp r5, 0x3 bls _081A0840 movs r0, 0x1 b _081A0842 .pool _081A0840: movs r0, 0 _081A0842: strh r0, [r1, 0x12] ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 strh r6, [r0, 0x14] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A0804 thumb_func_start sub_81A085C sub_81A085C: @ 81A085C push {lr} ldr r1, =gUnknown_086114E0 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81A085C thumb_func_start sub_81A087C sub_81A087C: @ 81A087C push {r4-r7,lr} bl sub_819FBC8 ldr r3, =gSaveBlock2Ptr ldr r1, [r3] adds r1, 0xB1 ldrb r2, [r1] movs r0, 0x4 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r3] adds r1, 0xB1 ldrb r2, [r1] movs r0, 0x3D negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r3] adds r1, 0xB1 ldrb r2, [r1] movs r0, 0x3F ands r0, r2 strb r0, [r1] ldr r1, [r3] adds r1, 0xB2 ldrb r2, [r1] movs r0, 0x8 negs r0, r0 ands r0, r2 strb r0, [r1] movs r4, 0 movs r1, 0 _081A08BE: ldr r0, [r3] adds r0, 0xB4 adds r0, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081A08BE movs r4, 0 ldr r5, =gSaveBlock2Ptr movs r0, 0x4 negs r0, r0 mov r12, r0 movs r7, 0xD negs r7, r7 movs r6, 0x31 negs r6, r6 _081A08E2: ldr r1, [r5] lsls r3, r4, 2 adds r1, r3 adds r1, 0xB8 ldrb r2, [r1] mov r0, r12 ands r0, r2 strb r0, [r1] ldr r1, [r5] adds r1, r3 adds r1, 0xB8 ldrb r2, [r1] adds r0, r7, 0 ands r0, r2 strb r0, [r1] ldr r1, [r5] adds r1, r3 adds r1, 0xB8 ldrb r2, [r1] adds r0, r6, 0 ands r0, r2 strb r0, [r1] ldr r1, [r5] adds r1, r3 adds r1, 0xB8 ldrb r2, [r1] movs r0, 0x3F ands r0, r2 strb r0, [r1] ldr r0, [r5] adds r0, r3 adds r0, 0xBA movs r1, 0 strh r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x8 bls _081A08E2 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A087C thumb_func_start sub_81A093C sub_81A093C: @ 81A093C push {lr} bl sub_819FBB0 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _081A0954 ldr r0, =gScriptResult strh r1, [r0] b _081A095A .pool _081A0954: ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _081A095A: pop {r0} bx r0 .pool thumb_func_end sub_81A093C thumb_func_start sub_81A0964 sub_81A0964: @ 81A0964 push {lr} ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] bl sub_819FC40 pop {r0} bx r0 .pool thumb_func_end sub_81A0964 thumb_func_start sub_81A0978 sub_81A0978: @ 81A0978 push {lr} bl sub_819FBC8 pop {r0} bx r0 thumb_func_end sub_81A0978 thumb_func_start sub_81A0984 sub_81A0984: @ 81A0984 push {lr} bl sub_819FD64 pop {r0} bx r0 thumb_func_end sub_81A0984 thumb_func_start sub_81A0990 sub_81A0990: @ 81A0990 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r2, 0xB1 ldrb r3, [r2] lsls r1, r3, 26 lsrs r1, 28 adds r1, 0x1 movs r0, 0xF ands r1, r0 lsls r1, 2 movs r0, 0x3D negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] bx lr .pool thumb_func_end sub_81A0990 thumb_func_start sub_81A09B4 sub_81A09B4: @ 81A09B4 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 strh r0, [r1] bx lr .pool thumb_func_end sub_81A09B4 thumb_func_start sub_81A09D0 sub_81A09D0: @ 81A09D0 push {lr} ldr r3, =gSaveBlock2Ptr ldr r0, [r3] adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r1, r0, 0x3 cmp r1, 0 bge _081A09F4 ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] b _081A0A1C .pool _081A09F4: ldr r2, =gScriptResult cmp r1, 0x8 ble _081A09FE movs r0, 0x1 strh r0, [r2] _081A09FE: ldr r0, [r3] lsls r1, 2 adds r0, r1 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bne _081A0A18 movs r0, 0x1 b _081A0A1A .pool _081A0A18: movs r0, 0 _081A0A1A: strh r0, [r2] _081A0A1C: pop {r0} bx r0 thumb_func_end sub_81A09D0 thumb_func_start sub_81A0A20 sub_81A0A20: @ 81A0A20 push {lr} ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] bl sub_81A04E4 pop {r0} bx r0 .pool thumb_func_end sub_81A0A20 thumb_func_start sub_81A0A34 sub_81A0A34: @ 81A0A34 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8197224 lsls r0, 16 cmp r0, 0 bne _081A0A68 adds r0, r4, 0 bl DestroyTask ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _081A0A64 ldr r0, =EnableBothScriptContexts bl sub_81A172C b _081A0A68 .pool _081A0A64: bl EnableBothScriptContexts _081A0A68: pop {r4} pop {r0} bx r0 thumb_func_end sub_81A0A34 thumb_func_start sub_81A0A70 sub_81A0A70: @ 81A0A70 push {lr} ldr r1, =gSpecialVar_0x8006 ldrh r0, [r1] cmp r0, 0x6 bne _081A0A94 ldr r1, =gUnknown_08610FF0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 b _081A0C66 .pool _081A0A94: cmp r0, 0x7 bne _081A0AB0 ldr r1, =gUnknown_08610FF0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 b _081A0C66 .pool _081A0AB0: cmp r0, 0x8 bne _081A0ACC ldr r1, =gUnknown_086111B0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 b _081A0C66 .pool _081A0ACC: cmp r0, 0x9 bne _081A0AE8 ldr r1, =gUnknown_086111B0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 b _081A0C66 .pool _081A0AE8: cmp r0, 0x4 bne _081A0B04 ldr r1, =gUnknown_08611230 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 b _081A0C66 .pool _081A0B04: cmp r0, 0x5 bne _081A0B20 ldr r1, =gUnknown_08611230 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 b _081A0C66 .pool _081A0B20: cmp r0, 0xA bne _081A0B40 ldr r2, =gUnknown_08611070 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 b _081A0BD6 .pool _081A0B40: cmp r0, 0xB bne _081A0B5C ldr r1, =gUnknown_086112B0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 b _081A0C66 .pool _081A0B5C: cmp r0, 0xC bne _081A0B7C ldr r2, =gUnknown_08611070 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0xC b _081A0BD6 .pool _081A0B7C: cmp r0, 0xD bne _081A0B9C ldr r2, =gUnknown_08611070 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x4 b _081A0BD6 .pool _081A0B9C: ldrh r0, [r1] cmp r0, 0x10 bne _081A0BC0 ldr r2, =gUnknown_08611070 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x10 b _081A0BD6 .pool _081A0BC0: cmp r0, 0xE bne _081A0BE4 ldr r2, =gUnknown_08611070 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 2 adds r2, 0x8 _081A0BD6: adds r0, r2 ldr r1, [r0] b _081A0C7A .pool _081A0BE4: cmp r0, 0xF bne _081A0C00 ldr r1, =gUnknown_086112B0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 b _081A0C66 .pool _081A0C00: cmp r0, 0 bne _081A0C1C ldr r1, =gUnknown_08610EF0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 4 b _081A0C66 .pool _081A0C1C: cmp r0, 0x1 bne _081A0C38 ldr r1, =gUnknown_08610EF0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 4 adds r1, 0x4 b _081A0C66 .pool _081A0C38: cmp r0, 0x2 bne _081A0C54 ldr r1, =gUnknown_08610EF0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 4 adds r1, 0x8 b _081A0C66 .pool _081A0C54: cmp r0, 0x3 bne _081A0C74 ldr r1, =gUnknown_08610EF0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] lsls r0, 4 adds r1, 0xC _081A0C66: adds r0, r1 ldr r1, [r0] b _081A0C7A .pool _081A0C74: bl EnableBothScriptContexts b _081A0C8E _081A0C7A: ldr r0, =gStringVar4 bl StringExpandPlaceholders movs r0, 0x1 bl AddTextPrinterForMessage ldr r0, =sub_81A0A34 movs r1, 0x1 bl CreateTask _081A0C8E: pop {r0} bx r0 .pool thumb_func_end sub_81A0A70 thumb_func_start sub_81A0C9C sub_81A0C9C: @ 81A0C9C push {lr} bl ScriptContext2_Enable bl player_bitmagic bl sub_808B864 bl sub_808BCF4 movs r0, 0 movs r1, 0x1 bl sub_81973C4 bl sub_81A0A70 pop {r0} bx r0 thumb_func_end sub_81A0C9C thumb_func_start sub_81A0CC0 sub_81A0CC0: @ 81A0CC0 push {lr} ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r0, r2, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r1, r0, 26 lsrs r0, r1, 28 cmp r0, 0x2 bhi _081A0CE4 ldr r1, =gScriptResult movs r0, 0x2 b _081A0D34 .pool _081A0CE4: lsrs r0, r1, 28 cmp r0, 0xB bhi _081A0D30 lsrs r0, r1, 28 subs r0, 0x3 lsls r0, 2 adds r0, r2, r0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 cmp r0, 0x2 beq _081A0D18 cmp r0, 0x2 bgt _081A0D08 cmp r0, 0x1 beq _081A0D0E b _081A0D30 _081A0D08: cmp r0, 0x3 beq _081A0D24 b _081A0D30 _081A0D0E: ldr r1, =gScriptResult movs r0, 0x4 b _081A0D34 .pool _081A0D18: ldr r1, =gScriptResult movs r0, 0x3 b _081A0D34 .pool _081A0D24: ldr r1, =gScriptResult movs r0, 0x1 b _081A0D34 .pool _081A0D30: ldr r1, =gScriptResult movs r0, 0x5 _081A0D34: strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_81A0CC0 thumb_func_start sub_81A0D40 sub_81A0D40: @ 81A0D40 push {r4,lr} ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _081A0D6E ldr r4, =gSpecialVar_0x8006 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r2, 0xB2 ldrb r3, [r2] lsls r0, r3, 29 lsrs r0, 29 movs r1, 0x1 ldrb r4, [r4] lsls r1, r4 orrs r1, r0 movs r0, 0x7 ands r1, r0 movs r0, 0x8 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _081A0D6E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A0D40 thumb_func_start sub_81A0D80 sub_81A0D80: @ 81A0D80 push {lr} ldr r0, =gSaveBlock2Ptr ldr r3, [r0] adds r0, r3, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r1, r0, 26 lsrs r0, r1, 28 cmp r0, 0x2 bls _081A0DCE subs r0, 0x3 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _081A0DC0 lsls r2, 2 adds r2, r3, r2 adds r2, 0xB8 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2] b _081A0DCE .pool _081A0DC0: lsls r0, r2, 2 adds r0, r3, r0 adds r0, 0xB8 ldrb r2, [r0] movs r1, 0x3F ands r1, r2 strb r1, [r0] _081A0DCE: pop {r0} bx r0 thumb_func_end sub_81A0D80 thumb_func_start sub_81A0DD4 sub_81A0DD4: @ 81A0DD4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r6, 0 movs r2, 0 ldr r1, =gSaveBlock2Ptr ldr r0, [r1] adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 ldr r3, =gUnknown_030062F0 mov r9, r3 cmp r0, 0 beq _081A0E14 adds r3, r1, 0 _081A0DF4: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x8 bhi _081A0E14 ldr r0, [r3] lsls r1, r2, 2 adds r0, r1 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bne _081A0DF4 _081A0E14: mov r4, r9 movs r0, 0x8 bl AllocZeroed adds r7, r0, 0 str r7, [r4] ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x2 bne _081A0E88 ldr r0, =gSaveBlock2Ptr ldr r5, [r0] adds r6, r5, 0 adds r6, 0xB1 ldrb r0, [r6] lsls r1, r0, 26 lsrs r0, r1, 28 cmp r0, 0x2 bls _081A0E3C b _081A0FCE _081A0E3C: adds r2, r5, 0 adds r2, 0xB4 adds r0, r2, r0 ldrb r0, [r0] lsrs r4, r0, 4 ldr r3, =gUnknown_08610970 lsls r1, r4, 1 adds r5, 0xB0 ldrb r0, [r5] movs r4, 0x58 muls r0, r4 adds r1, r0 adds r3, 0x34 adds r1, r3 ldrh r0, [r1] strh r0, [r7, 0x2] ldrb r0, [r6] lsls r0, 26 lsrs r0, 28 adds r2, r0 ldrb r1, [r2] movs r0, 0xF ands r0, r1 lsls r0, 1 ldrb r1, [r5] muls r1, r4 adds r0, r1 adds r0, r3 b _081A0FCA .pool _081A0E88: cmp r0, 0x3 bne _081A0F54 ldr r0, =gSaveBlock2Ptr mov r8, r0 ldr r5, [r0] movs r1, 0xB1 adds r1, r5 mov r12, r1 ldrb r0, [r1] lsls r2, r0, 26 lsrs r0, r2, 28 cmp r0, 0x2 bhi _081A0EA4 b _081A0FCE _081A0EA4: adds r1, r0, 0 adds r0, r6, 0x3 cmp r1, r0 blt _081A0EAE b _081A0FCE _081A0EAE: adds r0, r1, 0 subs r0, 0x3 lsls r0, 2 adds r0, r5, r0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 cmp r0, 0x2 beq _081A0EC4 b _081A0FCE _081A0EC4: adds r0, r1, 0 subs r0, 0x3 lsls r0, 2 adds r0, r5, r0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 28 lsrs r6, r0, 30 adds r0, r5, 0 adds r0, 0xB2 ldrb r1, [r0] lsls r1, 29 lsrs r1, 29 asrs r1, r6 movs r0, 0x1 ands r1, r0 adds r0, r5, 0 adds r0, 0xB4 adds r0, r6 ldrb r4, [r0] lsls r1, 2 asrs r4, r1 movs r0, 0xF ands r4, r0 ldr r2, =gUnknown_08610970 lsls r1, r4, 1 adds r0, r5, 0 adds r0, 0xB0 ldrb r3, [r0] movs r0, 0x58 muls r0, r3 adds r1, r0 adds r2, 0x34 adds r1, r2 ldrh r0, [r1] strh r0, [r7] mov r3, r12 ldrb r0, [r3] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r0, r5, r0 adds r0, 0xB8 ldrb r2, [r0] lsls r2, 26 lsrs r2, 30 adds r0, r6, 0 adds r1, r4, 0 bl sub_81A0284 mov r1, r9 ldr r2, [r1] strh r0, [r2, 0x4] mov r3, r8 ldr r1, [r3] adds r0, r1, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r1, r0 adds r1, 0xBA ldrh r0, [r1] strh r0, [r2, 0x6] b _081A0FCE .pool _081A0F54: cmp r0, 0x4 bne _081A0FCE ldr r0, =gSaveBlock2Ptr ldr r3, [r0] adds r0, r3, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r2, r0, 26 lsrs r0, r2, 28 cmp r0, 0x2 bls _081A0FCE adds r1, r0, 0 adds r0, r6, 0x3 cmp r1, r0 bge _081A0FCE adds r0, r1, 0 subs r0, 0x3 lsls r0, 2 adds r0, r3, r0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 cmp r0, 0x1 bne _081A0FCE adds r0, r1, 0 subs r0, 0x3 lsls r0, 2 adds r0, r3, r0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 28 lsrs r6, r0, 30 adds r0, r3, 0 adds r0, 0xB2 ldrb r1, [r0] lsls r1, 29 lsrs r1, 29 asrs r1, r6 movs r0, 0x1 ands r1, r0 adds r0, r3, 0 adds r0, 0xB4 adds r0, r6 ldrb r0, [r0] lsls r1, 2 asrs r0, r1 movs r1, 0xF ands r0, r1 ldr r2, =gUnknown_08610970 lsls r0, 1 adds r1, r3, 0 adds r1, 0xB0 ldrb r3, [r1] movs r1, 0x58 muls r1, r3 adds r0, r1 adds r2, 0x34 adds r0, r2 _081A0FCA: ldrh r0, [r0] strh r0, [r7] _081A0FCE: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A0DD4 thumb_func_start sub_81A0FE4 sub_81A0FE4: @ 81A0FE4 push {r4,lr} ldr r4, =gUnknown_030062F0 ldr r0, [r4] bl Free movs r0, 0 str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A0FE4 thumb_func_start sub_81A0FFC sub_81A0FFC: @ 81A0FFC push {r4-r6,lr} sub sp, 0x10 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _081A1028 cmp r0, 0x1 bgt _081A1018 cmp r0, 0 beq _081A101E b _081A11E6 .pool _081A1018: cmp r0, 0x2 beq _081A1030 b _081A11E6 _081A101E: ldr r5, =gStringVar1 b _081A1032 .pool _081A1028: ldr r5, =gStringVar2 b _081A1032 .pool _081A1030: ldr r5, =gStringVar3 _081A1032: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0x9 bls _081A103C b _081A11E6 _081A103C: lsls r0, 2 ldr r1, =_081A1054 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A1054: .4byte _081A107C .4byte _081A1094 .4byte _081A10AC .4byte _081A10C4 .4byte _081A10DC .4byte _081A10F4 .4byte _081A1118 .4byte _081A1164 .4byte _081A1140 .4byte _081A1184 _081A107C: ldr r0, =gUnknown_030062F0 ldr r0, [r0] ldrh r1, [r0] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 b _081A1174 .pool _081A1094: ldr r0, =gUnknown_030062F0 ldr r0, [r0] ldrh r1, [r0, 0x2] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 b _081A1174 .pool _081A10AC: ldr r0, =gUnknown_030062F0 ldr r0, [r0] ldrh r1, [r0] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 b _081A1174 .pool _081A10C4: ldr r0, =gUnknown_030062F0 ldr r0, [r0] ldrh r1, [r0, 0x4] movs r0, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 b _081A1174 .pool _081A10DC: ldr r0, =gUnknown_030062F0 ldr r0, [r0] ldrh r1, [r0, 0x6] movs r0, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 b _081A1174 .pool _081A10F4: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r1, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r1, r0 adds r1, 0xBA ldrh r0, [r1] bl ItemId_GetItem adds r1, r0, 0 b _081A1174 .pool _081A1118: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r0, [r0] movs r1, 0x2 bl sub_81A1650 adds r1, r0, 0 mov r0, sp movs r2, 0x2 bl sub_81DB5E8 adds r0, r5, 0 mov r1, sp bl StringCopy b _081A11E6 .pool _081A1140: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x1 bne _081A115C ldr r1, =gUnknown_085EAEB1 b _081A1174 .pool _081A115C: ldr r1, =gUnknown_085EAEB8 b _081A1174 .pool _081A1164: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0x82 lsls r1, 1 adds r0, r1 bl ConvertBattleFrontierTrainerSpeechToString ldr r1, =gStringVar4 _081A1174: adds r0, r5, 0 bl StringCopy b _081A11E6 .pool _081A1184: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] adds r1, r3, 0 adds r1, 0xB1 ldrb r1, [r1] lsls r4, r1, 24 lsrs r1, r4, 30 adds r6, r0, 0 cmp r1, 0x2 bhi _081A11C0 adds r0, r3, 0 adds r0, 0xB4 adds r0, r1 ldrb r2, [r0] adds r0, r3, 0 adds r0, 0xB2 ldrb r0, [r0] lsls r0, 29 lsrs r0, 29 asrs r0, r1 movs r1, 0x1 ands r0, r1 lsls r0, 2 asrs r2, r0 movs r0, 0xF ands r2, r0 b _081A11C2 .pool _081A11C0: movs r2, 0 _081A11C2: ldr r3, =gUnknown_08610970 lsls r1, r2, 1 ldr r0, [r6] adds r0, 0xB0 ldrb r2, [r0] movs r0, 0x58 muls r0, r2 adds r1, r0 adds r3, 0x34 adds r1, r3 ldrh r1, [r1] movs r0, 0xB muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 adds r0, r5, 0 bl StringCopy _081A11E6: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A0FFC thumb_func_start sub_81A11F8 sub_81A11F8: @ 81A11F8 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gSpecialVar_0x8005 ldrb r1, [r0] adds r2, 0xB1 lsls r1, 6 ldrb r3, [r2] movs r0, 0x3F ands r0, r3 orrs r0, r1 strb r0, [r2] bx lr .pool thumb_func_end sub_81A11F8 thumb_func_start sub_81A1218 sub_81A1218: @ 81A1218 push {lr} bl sub_81AAC28 pop {r0} bx r0 thumb_func_end sub_81A1218 thumb_func_start sub_81A1224 sub_81A1224: @ 81A1224 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r1, =gSaveBlock2Ptr ldr r3, [r1] adds r0, r3, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 adds r7, r1, 0 cmp r0, 0x2 bhi _081A1242 b _081A1362 _081A1242: movs r5, 0 movs r2, 0 adds r0, r3, 0 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 ldr r1, =gSpecialVar_0x8005 mov r12, r1 ldr r1, =gScriptResult mov r8, r1 cmp r0, 0 beq _081A127C adds r3, r7, 0 _081A125C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x8 bhi _081A127C ldr r0, [r3] lsls r1, r2, 2 adds r0, r1 adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bne _081A125C _081A127C: movs r4, 0 cmp r4, r5 bcs _081A1322 ldr r0, [r7] adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 cmp r4, r0 bge _081A1322 adds r6, r7, 0 mov r9, r4 _081A1296: ldr r3, [r6] lsls r0, r4, 2 adds r2, r3, r0 adds r0, r2, 0 adds r0, 0xB8 ldrb r1, [r0] lsls r0, r1, 30 lsrs r0, 30 cmp r0, 0x1 bne _081A1308 lsrs r0, r1, 6 cmp r0, 0 beq _081A1308 adds r0, r2, 0 adds r0, 0xBA ldrh r0, [r0] mov r2, r12 ldrh r2, [r2] cmp r0, r2 bne _081A1308 adds r0, r3, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r0, r3, r0 adds r0, 0xB8 ldrb r2, [r0] movs r1, 0x3F ands r1, r2 strb r1, [r0] ldr r1, [r6] adds r0, r1, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r1, r0 mov r2, r12 ldrh r0, [r2] adds r1, 0xBA strh r0, [r1] mov r1, r9 mov r0, r8 strh r1, [r0] b _081A1362 .pool _081A1308: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcs _081A1322 ldr r0, [r6] adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 cmp r4, r0 blt _081A1296 _081A1322: ldr r2, [r7] adds r0, r2, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r2, r0 adds r2, 0xB8 ldrb r1, [r2] movs r0, 0x3F ands r0, r1 movs r1, 0x40 orrs r0, r1 strb r0, [r2] ldr r1, [r7] adds r0, r1, 0 adds r0, 0xB1 ldrb r0, [r0] lsls r0, 26 lsrs r0, 28 subs r0, 0x3 lsls r0, 2 adds r1, r0 mov r2, r12 ldrh r0, [r2] adds r1, 0xBA strh r0, [r1] movs r0, 0x1 mov r1, r8 strh r0, [r1] _081A1362: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81A1224 thumb_func_start sub_81A1370 sub_81A1370: @ 81A1370 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gSaveBlock2Ptr ldr r1, [r0] movs r2, 0x8A lsls r2, 1 adds r1, r2 ldrb r1, [r1] adds r4, r0, 0 cmp r1, 0xFF beq _081A1422 movs r5, 0 _081A138E: ldr r1, [r4] adds r2, r5, 0x1 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r3, r1, r0 movs r5, 0x8A lsls r5, 1 adds r0, r3, r5 ldrb r0, [r0] cmp r0, 0xFF bne _081A13B8 adds r0, r3, 0 adds r0, 0xDC adds r1, 0xDC movs r2, 0x44 bl memcpy b _081A1422 .pool _081A13B8: adds r5, r2, 0 cmp r5, 0x2 ble _081A138E ldr r0, =0x0000ffff mov r10, r0 movs r2, 0x1 negs r2, r2 mov r9, r2 movs r5, 0x1 ldr r7, =gSaveBlock2Ptr movs r0, 0x90 lsls r0, 1 mov r8, r0 movs r6, 0x44 _081A13D4: ldr r0, [r7] add r0, r8 adds r0, 0x34 bl ReadUnalignedWord adds r4, r0, 0 ldr r0, [r7] adds r0, 0xA bl ReadUnalignedWord cmp r4, r0 bne _081A13FC ldr r0, [r7] adds r0, r6 adds r0, 0xDE ldrb r0, [r0] cmp r0, r10 bge _081A13FC mov r10, r0 mov r9, r5 _081A13FC: movs r2, 0x44 add r8, r2 adds r6, 0x44 adds r5, 0x1 cmp r5, 0x3 ble _081A13D4 mov r5, r9 cmp r5, 0 ble _081A1422 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] lsls r0, r5, 4 add r0, r9 lsls r0, 2 adds r0, r1, r0 adds r0, 0xDC adds r1, 0xDC bl memcpy _081A1422: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A1370 thumb_func_start sub_81A1438 sub_81A1438: @ 81A1438 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r2, [r4] adds r0, r2, 0 adds r0, 0xB0 ldrb r0, [r0] adds r2, 0xDC movs r1, 0x1F ands r1, r0 ldrb r3, [r2] movs r0, 0x20 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldr r2, [r4] adds r0, r2, 0 adds r0, 0xB1 ldrb r1, [r0] lsls r1, 30 adds r2, 0xDC lsrs r1, 25 ldrb r3, [r2] movs r0, 0x61 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] movs r2, 0 ldr r0, [r4] b _081A148C .pool _081A147C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x8 bhi _081A1496 ldr r0, [r4] lsls r1, r2, 2 adds r0, r1 _081A148C: adds r0, 0xB8 ldrb r0, [r0] lsls r0, 30 cmp r0, 0 bne _081A147C _081A1496: ldr r4, =gSaveBlock2Ptr ldr r0, [r4] adds r0, 0xDD strb r2, [r0] ldr r0, [r4] adds r1, r0, 0 adds r1, 0xDE ldrb r0, [r1] cmp r0, 0xFE bhi _081A14AE adds r0, 0x1 strb r0, [r1] _081A14AE: ldr r0, [r4] adds r0, 0xDD ldrb r0, [r0] bl sub_81A0390 movs r2, 0 adds r3, r4, 0 movs r4, 0x88 lsls r4, 1 adds r5, r3, 0 _081A14C2: ldr r0, [r3] adds r1, r0, r4 adds r1, r2 adds r0, 0xA adds r0, r2 ldrb r0, [r0] strb r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _081A14C2 ldr r1, [r5] movs r2, 0x8A lsls r2, 1 adds r0, r1, r2 bl StringCopy ldr r1, [r5] ldr r0, =gGameLanguage ldrb r0, [r0] ldr r2, =0x0000011b adds r1, r2 strb r0, [r1] ldr r0, [r5] adds r0, 0xDC bl sub_8165AE8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A1438 thumb_func_start sub_81A150C sub_81A150C: @ 81A150C push {lr} ldr r2, =gUnknown_08610970 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xDC ldrb r0, [r0] lsls r0, 27 lsrs r0, 27 movs r1, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x32 ldrb r2, [r0] movs r1, 0 ldr r3, =gUnknown_085DCEDC ldrb r0, [r3] cmp r0, r2 beq _081A1542 _081A1530: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1D bhi _081A1542 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081A1530 _081A1542: cmp r1, 0x1E beq _081A1568 ldr r0, =gUnknown_085DCF0E adds r0, r1, r0 ldrb r1, [r0] ldr r0, =0x00004010 bl VarSet b _081A1594 .pool _081A1568: movs r1, 0 ldr r3, =gUnknown_085DCEFA ldrb r0, [r3] cmp r0, r2 beq _081A1584 _081A1572: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bhi _081A1584 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081A1572 _081A1584: cmp r1, 0x14 beq _081A1594 ldr r0, =gUnknown_085DCF2C adds r0, r1, r0 ldrb r1, [r0] ldr r0, =0x00004010 bl VarSet _081A1594: pop {r0} bx r0 .pool thumb_func_end sub_81A150C thumb_func_start sub_81A15A4 sub_81A15A4: @ 81A15A4 push {lr} ldr r2, =gUnknown_08610970 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] adds r0, 0xB0 ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x32 ldrb r2, [r0] movs r1, 0 ldr r3, =gUnknown_085DCEDC ldrb r0, [r3] cmp r0, r2 beq _081A15D6 _081A15C4: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x1D bhi _081A15D6 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081A15C4 _081A15D6: cmp r1, 0x1E beq _081A15FC ldr r0, =gUnknown_085DCF0E adds r0, r1, r0 ldrb r1, [r0] ldr r0, =0x00004010 bl VarSet b _081A1628 .pool _081A15FC: movs r1, 0 ldr r3, =gUnknown_085DCEFA ldrb r0, [r3] cmp r0, r2 beq _081A1618 _081A1606: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x13 bhi _081A1618 adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081A1606 _081A1618: cmp r1, 0x14 beq _081A1628 ldr r0, =gUnknown_085DCF2C adds r0, r1, r0 ldrb r1, [r0] ldr r0, =0x00004010 bl VarSet _081A1628: pop {r0} bx r0 .pool thumb_func_end sub_81A15A4 thumb_func_start sub_81A1638 sub_81A1638: @ 81A1638 ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] bx lr .pool thumb_func_end sub_81A1638 thumb_func_start sub_81A1644 sub_81A1644: @ 81A1644 ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] bx lr .pool thumb_func_end sub_81A1644 thumb_func_start sub_81A1650 sub_81A1650: @ 81A1650 push {lr} movs r2, 0x58 muls r2, r0 ldr r0, =gUnknown_08610970 adds r2, r0 subs r0, r1, 0x1 cmp r0, 0x6 bhi _081A16AC lsls r0, 2 ldr r1, =_081A1674 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A1674: .4byte _081A1690 .4byte _081A1694 .4byte _081A169A .4byte _081A16A0 .4byte _081A16A6 .4byte _081A16AC .4byte _081A16AC _081A1690: adds r0, r2, 0 b _081A16B0 _081A1694: adds r0, r2, 0 adds r0, 0x8 b _081A16B0 _081A169A: adds r0, r2, 0 adds r0, 0x10 b _081A16B0 _081A16A0: adds r0, r2, 0 adds r0, 0x18 b _081A16B0 _081A16A6: adds r0, r2, 0 adds r0, 0x20 b _081A16B0 _081A16AC: adds r0, r2, 0 adds r0, 0x28 _081A16B0: pop {r1} bx r1 thumb_func_end sub_81A1650 thumb_func_start sub_81A16B4 sub_81A16B4: @ 81A16B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081A16CE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081A16D4 _081A16CE: adds r0, r2, 0 bl SwitchTaskToFollowupFunc _081A16D4: pop {r0} bx r0 .pool thumb_func_end sub_81A16B4 thumb_func_start sub_81A16DC sub_81A16DC: @ 81A16DC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081A16F6 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081A1718 _081A16F6: ldr r2, =gUnknown_030062F4 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldrh r1, [r0, 0x8] movs r3, 0xA ldrsh r0, [r0, r3] lsls r0, 16 orrs r1, r0 str r1, [r2] bl _call_via_r1 adds r0, r4, 0 bl DestroyTask _081A1718: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A16DC thumb_func_start sub_81A172C sub_81A172C: @ 81A172C push {r4,lr} adds r4, r0, 0 ldr r0, =sub_81A16DC movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] lsrs r4, 16 strh r4, [r1, 0xA] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A172C thumb_func_start sub_81A175C sub_81A175C: @ 81A175C push {r4,r5,lr} adds r5, r0, 0 ldr r4, =sub_81A16B4 adds r0, r4, 0 movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 adds r2, r5, 0 bl SetTaskFuncWithFollowupFunc pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A175C thumb_func_start sub_81A1780 sub_81A1780: @ 81A1780 push {lr} ldr r1, =gUnknown_08611C18 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81A1780 thumb_func_start sub_81A17A0 sub_81A17A0: @ 81A17A0 push {lr} movs r0, 0x80 lsls r0, 7 movs r1, 0xFF bl VarSet ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca8 adds r0, r1 ldrb r0, [r0] cmp r0, 0x4 bhi _081A1822 lsls r0, 2 ldr r1, =_081A17D0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A17D0: .4byte _081A1822 .4byte _081A17E4 .4byte _081A1810 .4byte _081A17EC .4byte _081A17E8 _081A17E4: movs r0, 0 b _081A17EE _081A17E8: movs r0, 0 b _081A17EE _081A17EC: movs r0, 0x1 _081A17EE: bl sub_813A878 movs r0, 0x80 lsls r0, 7 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r2, =0x00000ca8 adds r1, r2 ldrb r1, [r1] bl VarSet b _081A1822 .pool _081A1810: movs r0, 0x80 lsls r0, 7 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r2, =0x00000ca8 adds r1, r2 ldrb r1, [r1] bl VarSet _081A1822: pop {r0} bx r0 .pool thumb_func_end sub_81A17A0 thumb_func_start sub_81A1830 sub_81A1830: @ 81A1830 push {r4-r6,lr} ldr r0, =0x000040cf bl VarGet lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 bl sub_81A3B30 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bne _081A184C movs r5, 0x1 _081A184C: ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x7 bls _081A1856 b _081A1956 _081A1856: lsls r0, 2 ldr r1, =_081A186C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A186C: .4byte _081A188C .4byte _081A18A8 .4byte _081A18C8 .4byte _081A18E4 .4byte _081A1956 .4byte _081A1900 .4byte _081A1918 .4byte _081A1938 _081A188C: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000ca8 adds r0, r2 ldrb r0, [r0] strh r0, [r1] b _081A1956 .pool _081A18A8: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000ca9 adds r0, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 strh r0, [r1] b _081A1956 .pool _081A18C8: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000cb2 adds r0, r2 ldrh r0, [r0] strh r0, [r1] b _081A1956 .pool _081A18E4: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000ca9 adds r0, r2 ldrb r0, [r0] lsls r0, 29 b _081A1926 .pool _081A1900: ldr r2, =gScriptResult ldr r1, =gBattleOutcome ldrb r0, [r1] strh r0, [r2] movs r0, 0 strb r0, [r1] b _081A1956 .pool _081A1918: ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000ca9 adds r0, r2 ldrb r0, [r0] lsls r0, 28 _081A1926: lsrs r0, 31 strh r0, [r1] b _081A1956 .pool _081A1938: ldr r4, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r2, [r0] movs r0, 0xD0 lsls r0, 4 adds r2, r0 ldr r3, =gUnknown_08611BFC lsls r0, r5, 1 lsls r1, r6, 2 adds r0, r1 adds r0, r3 ldrh r1, [r2] ldrh r0, [r0] ands r0, r1 strh r0, [r4] _081A1956: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A1830 thumb_func_start sub_81A1968 sub_81A1968: @ 81A1968 push {r4,r5,lr} ldr r0, =0x000040cf bl VarGet lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl sub_81A3B30 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bne _081A1984 movs r4, 0x1 _081A1984: ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x7 bls _081A198E b _081A1AC4 _081A198E: lsls r0, 2 ldr r1, =_081A19A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A19A4: .4byte _081A19C4 .4byte _081A19E0 .4byte _081A1A0C .4byte _081A1A28 .4byte _081A1A50 .4byte _081A1AC4 .4byte _081A1A7C .4byte _081A1AA8 _081A19C4: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] b _081A1AC4 .pool _081A19E0: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000ca9 adds r2, r1 movs r1, 0x3 ands r1, r0 ldrb r3, [r2] movs r0, 0x4 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] b _081A1AC4 .pool _081A1A0C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r2, =0x00000cb2 adds r0, r2 strh r1, [r0] b _081A1AC4 .pool _081A1A28: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r1, =0x00000ca9 adds r3, r1 movs r1, 0x1 ands r1, r0 lsls r1, 2 ldrb r2, [r3] movs r0, 0x5 negs r0, r0 b _081A1A94 .pool _081A1A50: movs r2, 0 ldr r5, =gSaveBlock2Ptr ldr r4, =0x00000caa ldr r3, =gUnknown_0203CEF8 _081A1A58: ldr r1, [r5] lsls r0, r2, 1 adds r1, r4 adds r1, r0 adds r0, r2, r3 ldrb r0, [r0] strh r0, [r1] adds r2, 0x1 cmp r2, 0x3 ble _081A1A58 b _081A1AC4 .pool _081A1A7C: ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r0, =gSpecialVar_0x8006 ldrb r0, [r0] ldr r2, =0x00000ca9 adds r3, r2 movs r1, 0x1 ands r1, r0 lsls r1, 3 ldrb r2, [r3] movs r0, 0x9 negs r0, r0 _081A1A94: ands r0, r2 orrs r0, r1 strb r0, [r3] b _081A1AC4 .pool _081A1AA8: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] movs r0, 0xD0 lsls r0, 4 adds r2, r0 ldr r3, =gUnknown_08611BFC lsls r1, r4, 1 lsls r0, r5, 2 adds r1, r0 adds r1, r3 ldrh r0, [r2] ldrh r1, [r1] orrs r0, r1 strh r0, [r2] _081A1AC4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A1968 thumb_func_start sub_81A1AD4 sub_81A1AD4: @ 81A1AD4 push {r4-r7,lr} bl sub_81B8558 movs r3, 0 ldr r4, =gSpecialVar_0x8005 ldrh r0, [r4] cmp r3, r0 bge _081A1B00 ldr r7, =gUnknown_0203CEF8 ldr r6, =gSaveBlock2Ptr ldr r5, =0x00000caa _081A1AEA: adds r2, r3, r7 ldr r0, [r6] lsls r1, r3, 1 adds r0, r5 adds r0, r1 ldrh r0, [r0] strb r0, [r2] adds r3, 0x1 ldrh r0, [r4] cmp r3, r0 blt _081A1AEA _081A1B00: bl sub_80F94E8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A1AD4 thumb_func_start sub_81A1B1C sub_81A1B1C: @ 81A1B1C push {lr} bl DoSoftReset pop {r0} bx r0 thumb_func_end sub_81A1B1C thumb_func_start sub_81A1B28 sub_81A1B28: @ 81A1B28 ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] bx lr .pool thumb_func_end sub_81A1B28 thumb_func_start sub_81A1B38 sub_81A1B38: @ 81A1B38 push {r4,r5,lr} movs r4, 0 movs r5, 0x64 _081A1B3E: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000caa adds r0, r2 adds r1, r0, r1 ldrh r0, [r1] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x5 bhi _081A1B76 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r1] subs r1, 0x1 muls r1, r5 adds r0, r1 movs r1, 0x8E lsls r1, 2 adds r0, r1 ldr r2, =gPlayerParty adds r1, r4, 0 muls r1, r5 adds r1, r2 movs r2, 0x64 bl memcpy _081A1B76: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081A1B3E pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A1B38 thumb_func_start sub_81A1B98 sub_81A1B98: @ 81A1B98 push {lr} ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] adds r2, r0, 0 cmp r1, 0x3 bls _081A1BA8 movs r0, 0 strh r0, [r2] _081A1BA8: ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x7 bhi _081A1C1E lsls r0, 2 ldr r1, =_081A1BC8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A1BC8: .4byte _081A1BE8 .4byte _081A1BF0 .4byte _081A1BF8 .4byte _081A1C0E .4byte _081A1C06 .4byte _081A1C00 .4byte _081A1C14 .4byte _081A1C1A _081A1BE8: ldrb r0, [r2] bl sub_81A1EA8 b _081A1C1E _081A1BF0: ldrb r0, [r2] bl sub_81A2134 b _081A1C1E _081A1BF8: ldrb r0, [r2] bl sub_81A2460 b _081A1C1E _081A1C00: bl sub_81A2698 b _081A1C1E _081A1C06: ldrb r0, [r2] bl sub_81A2C94 b _081A1C1E _081A1C0E: bl sub_81A2968 b _081A1C1E _081A1C14: bl sub_81A2F38 b _081A1C1E _081A1C1A: bl sub_81A2FF8 _081A1C1E: pop {r0} bx r0 thumb_func_end sub_81A1B98 thumb_func_start sub_81A1C24 sub_81A1C24: @ 81A1C24 push {lr} ldr r1, =gSaveBlock2Ptr ldr r1, [r1] ldr r2, =0x00000cdc adds r1, r2 ldr r1, [r1] ands r1, r0 cmp r1, 0 bne _081A1C44 movs r0, 0 b _081A1C46 .pool _081A1C44: movs r0, 0x1 _081A1C46: pop {r1} bx r1 thumb_func_end sub_81A1C24 thumb_func_start sub_81A1C4C sub_81A1C4C: @ 81A1C4C push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x1 adds r1, r4, 0 movs r2, 0xE0 bl GetStringCenterAlignXOffset adds r3, r0, 0 lsls r0, r5, 3 adds r5, r0, 0x1 ldr r0, =gUnknown_0203AB74 ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 lsls r1, r5, 24 lsrs r1, 24 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 bl PrintTextOnWindow add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A1C4C thumb_func_start sub_81A1C90 sub_81A1C90: @ 81A1C90 push {r4,lr} sub sp, 0x34 adds r2, r0, 0 ldr r3, =gUnknown_0203AB74 movs r1, 0xAE mov r0, sp adds r0, 0x2F _081A1C9E: strb r1, [r0] subs r0, 0x1 add r4, sp, 0xC cmp r0, r4 bge _081A1C9E add r1, sp, 0x30 movs r0, 0xFF strb r0, [r1] lsls r0, r2, 3 adds r2, r0, 0x1 ldrb r0, [r3] lsls r1, r2, 24 lsrs r1, 24 str r1, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0x4 bl PrintTextOnWindow add sp, 0x34 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A1C90 thumb_func_start sub_81A1CD8 sub_81A1CD8: @ 81A1CD8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r5, r0, 0 adds r4, r2, 0 ldr r0, [sp, 0x30] lsls r1, 16 lsrs r6, r1, 16 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r7, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 bl PrintTextOnWindow ldr r0, =0x0000270f cmp r6, r0 bls _081A1D24 adds r6, r0, 0 _081A1D24: ldr r0, =gStringVar1 adds r1, r6, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE302 adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r7, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] bl PrintTextOnWindow add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A1CD8 thumb_func_start sub_81A1D78 sub_81A1D78: @ 81A1D78 push {r4,r5,lr} sub sp, 0x4 ldr r5, [sp, 0x10] lsls r0, 24 lsls r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r5, 24 lsrs r5, 24 ldr r4, =gSaveBlock2Ptr ldr r4, [r4] lsrs r1, 23 lsrs r0, 22 adds r1, r0 movs r0, 0xCF lsls r0, 4 adds r4, r0 adds r4, r1 ldrh r1, [r4] ldr r0, =gUnknown_085EE319 str r5, [sp] bl sub_81A1CD8 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A1D78 thumb_func_start sub_81A1DBC sub_81A1DBC: @ 81A1DBC push {lr} lsls r0, 24 lsls r1, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 movs r0, 0xCE lsls r0, 4 adds r2, r0 adds r2, r1 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _081A1DDE adds r0, r1, 0 _081A1DDE: pop {r1} bx r1 .pool thumb_func_end sub_81A1DBC thumb_func_start sub_81A1DEC sub_81A1DEC: @ 81A1DEC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r4, [sp, 0x20] lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r4, 24 lsrs r7, r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_81A1DBC lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0x1 beq _081A1E38 cmp r5, 0x1 ble _081A1E2C cmp r5, 0x2 beq _081A1E48 cmp r5, 0x3 beq _081A1E58 _081A1E2C: cmp r6, 0 beq _081A1E34 movs r0, 0x2 b _081A1E66 _081A1E34: movs r0, 0x1 b _081A1E66 _081A1E38: cmp r6, 0 beq _081A1E42 movs r0, 0x80 lsls r0, 8 b _081A1E66 _081A1E42: movs r0, 0x80 lsls r0, 7 b _081A1E66 _081A1E48: cmp r6, 0 beq _081A1E52 movs r0, 0x80 lsls r0, 10 b _081A1E66 _081A1E52: movs r0, 0x80 lsls r0, 9 b _081A1E66 _081A1E58: cmp r6, 0 beq _081A1E62 movs r0, 0x80 lsls r0, 12 b _081A1E66 _081A1E62: movs r0, 0x80 lsls r0, 11 _081A1E66: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A1E88 ldr r0, =gUnknown_085EE311 str r7, [sp] adds r1, r4, 0 mov r2, r8 mov r3, r9 bl sub_81A1CD8 b _081A1E96 .pool _081A1E88: ldr r0, =gUnknown_085EE320 str r7, [sp] adds r1, r4, 0 mov r2, r8 mov r3, r9 bl sub_81A1CD8 _081A1E96: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A1DEC thumb_func_start sub_81A1EA8 sub_81A1EA8: @ 81A1EA8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer cmp r7, 0 bne _081A1EF0 ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE158 bl StringExpandPlaceholders b _081A1F28 .pool _081A1EF0: cmp r7, 0x1 bne _081A1F08 ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE178 bl StringExpandPlaceholders b _081A1F28 .pool _081A1F08: cmp r7, 0x2 bne _081A1F20 ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE198 bl StringExpandPlaceholders b _081A1F28 .pool _081A1F20: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE1B7 bl StringExpandPlaceholders _081A1F28: ldr r0, =gStringVar4 movs r1, 0x2 bl sub_81A1C4C ldr r6, =gUnknown_0203AB74 ldrb r0, [r6] ldr r2, =gUnknown_085EE2F2 movs r1, 0x31 mov r8, r1 str r1, [sp] movs r5, 0xFF str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 bl PrintTextOnWindow ldrb r0, [r6] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 mov r9, r1 str r1, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 bl PrintTextOnWindow movs r0, 0xA bl sub_81A1C90 mov r0, r8 str r0, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x48 movs r3, 0x84 bl sub_81A1DEC movs r0, 0x41 str r0, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x48 movs r3, 0x84 bl sub_81A1D78 mov r1, r9 str r1, [sp] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x48 movs r3, 0x84 bl sub_81A1DEC movs r0, 0x71 str r0, [sp] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x48 movs r3, 0x84 bl sub_81A1D78 ldrb r0, [r6] bl PutWindowTilemap ldrb r0, [r6] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A1EA8 thumb_func_start sub_81A1FD8 sub_81A1FD8: @ 81A1FD8 push {lr} lsls r0, 24 lsls r1, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 ldr r0, =0x00000d0c adds r2, r0 adds r2, r1 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _081A1FF8 adds r0, r1, 0 _081A1FF8: pop {r1} bx r1 .pool thumb_func_end sub_81A1FD8 thumb_func_start sub_81A2008 sub_81A2008: @ 81A2008 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r12, r0 adds r7, r1, 0 adds r4, r2, 0 ldr r6, [sp, 0x2C] ldr r5, [sp, 0x30] lsls r4, 16 lsrs r4, 16 lsls r3, 24 lsrs r3, 24 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r5, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r12 bl PrintTextOnWindow ldr r0, =gStringVar1 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r7, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r5, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 adds r3, r6, 0 bl PrintTextOnWindow add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2008 thumb_func_start sub_81A2094 sub_81A2094: @ 81A2094 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 ldr r4, [sp, 0x24] lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r7, r3, 24 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_81A1FD8 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r5, 0 beq _081A20CC cmp r5, 0x1 beq _081A20D8 _081A20CC: cmp r6, 0 beq _081A20D4 movs r0, 0x8 b _081A20E6 _081A20D4: movs r0, 0x4 b _081A20E6 _081A20D8: cmp r6, 0 beq _081A20E2 movs r0, 0x80 lsls r0, 14 b _081A20E6 _081A20E2: movs r0, 0x80 lsls r0, 13 _081A20E6: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A210C ldr r0, =gUnknown_085EE311 ldr r1, =gUnknown_085EE338 str r7, [sp] str r4, [sp, 0x4] mov r2, r8 mov r3, r9 bl sub_81A2008 b _081A211C .pool _081A210C: ldr r0, =gUnknown_085EE320 ldr r1, =gUnknown_085EE338 str r7, [sp] str r4, [sp, 0x4] mov r2, r8 mov r3, r9 bl sub_81A2008 _081A211C: add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2094 thumb_func_start sub_81A2134 sub_81A2134: @ 81A2134 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer cmp r7, 0 bne _081A217C ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE1DB bl StringExpandPlaceholders b _081A2184 .pool _081A217C: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE1FE bl StringExpandPlaceholders _081A2184: ldr r0, =gStringVar4 movs r1, 0 bl sub_81A1C4C ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] ldr r2, =gUnknown_085EE2F2 movs r6, 0x21 str r6, [sp] movs r5, 0xFF str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 str r1, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow movs r0, 0xA bl sub_81A1C90 str r6, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x40 movs r3, 0x79 bl sub_81A2094 ldr r4, =gSaveBlock2Ptr ldr r0, [r4] lsls r5, r7, 2 ldr r1, =0x00000d14 adds r0, r1 adds r0, r5 ldrh r2, [r0] movs r0, 0x79 mov r9, r0 str r0, [sp] movs r0, 0x31 str r0, [sp, 0x4] ldr r0, =gUnknown_085EE319 ldr r1, =gUnknown_085EE338 movs r3, 0x40 bl sub_81A2008 ldr r1, =gUnknown_085EE332 mov r10, r1 ldr r0, =gUnknown_085EE349 mov r8, r0 ldr r0, [r4] ldr r1, =0x00000d1c adds r0, r1 adds r0, r5 ldrh r2, [r0] movs r6, 0x70 str r6, [sp] movs r0, 0x41 str r0, [sp, 0x4] mov r0, r10 mov r1, r8 movs r3, 0x40 bl sub_81A2008 movs r0, 0x61 str r0, [sp] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x40 movs r3, 0x79 bl sub_81A2094 ldr r0, [r4] ldr r1, =0x00000d16 adds r0, r1 adds r0, r5 ldrh r2, [r0] mov r0, r9 str r0, [sp] movs r0, 0x71 str r0, [sp, 0x4] ldr r0, =gUnknown_085EE319 ldr r1, =gUnknown_085EE338 movs r3, 0x40 bl sub_81A2008 ldr r0, [r4] ldr r1, =0x00000d1e adds r0, r1 adds r0, r5 ldrh r2, [r0] str r6, [sp] movs r0, 0x81 str r0, [sp, 0x4] mov r0, r10 mov r1, r8 movs r3, 0x40 bl sub_81A2008 ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] bl PutWindowTilemap ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2134 thumb_func_start sub_81A22B8 sub_81A22B8: @ 81A22B8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r5, r0, 0 adds r4, r2, 0 ldr r0, [sp, 0x30] lsls r1, 16 lsrs r6, r1, 16 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r7, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 bl PrintTextOnWindow ldr r0, =0x0000270f cmp r6, r0 bls _081A2304 adds r6, r0, 0 _081A2304: ldr r0, =gStringVar1 adds r1, r6, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE302 adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r7, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] bl PrintTextOnWindow add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A22B8 thumb_func_start sub_81A2358 sub_81A2358: @ 81A2358 push {r4,r5,lr} sub sp, 0x4 ldr r5, [sp, 0x10] lsls r0, 24 lsls r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r5, 24 lsrs r5, 24 ldr r4, =gSaveBlock2Ptr ldr r4, [r4] lsrs r1, 23 lsrs r0, 22 adds r1, r0 movs r0, 0xDD lsls r0, 4 adds r4, r0 adds r4, r1 ldrh r1, [r4] ldr r0, =gUnknown_085EE319 str r5, [sp] bl sub_81A22B8 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A2358 thumb_func_start sub_81A239C sub_81A239C: @ 81A239C push {lr} lsls r0, 24 lsls r1, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 ldr r0, =0x00000dc8 adds r2, r0 adds r2, r1 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _081A23BC adds r0, r1, 0 _081A23BC: pop {r1} bx r1 .pool thumb_func_end sub_81A239C thumb_func_start sub_81A23CC sub_81A23CC: @ 81A23CC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 ldr r4, [sp, 0x20] lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r9, r3 lsls r4, 24 lsrs r7, r4, 24 adds r0, r5, 0 adds r1, r6, 0 bl sub_81A239C lsls r0, 16 lsrs r4, r0, 16 cmp r5, 0 beq _081A2404 cmp r5, 0x1 beq _081A2410 _081A2404: cmp r6, 0 beq _081A240C movs r0, 0x20 b _081A241E _081A240C: movs r0, 0x10 b _081A241E _081A2410: cmp r6, 0 beq _081A241A movs r0, 0x80 lsls r0, 16 b _081A241E _081A241A: movs r0, 0x80 lsls r0, 15 _081A241E: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A2440 ldr r0, =gUnknown_085EE311 str r7, [sp] adds r1, r4, 0 mov r2, r8 mov r3, r9 bl sub_81A22B8 b _081A244E .pool _081A2440: ldr r0, =gUnknown_085EE320 str r7, [sp] adds r1, r4, 0 mov r2, r8 mov r3, r9 bl sub_81A22B8 _081A244E: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A23CC thumb_func_start sub_81A2460 sub_81A2460: @ 81A2460 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer cmp r7, 0 bne _081A24A8 ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE221 bl StringExpandPlaceholders b _081A24B0 .pool _081A24A8: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE241 bl StringExpandPlaceholders _081A24B0: ldr r0, =gStringVar4 movs r1, 0x2 bl sub_81A1C4C ldr r6, =gUnknown_0203AB74 ldrb r0, [r6] ldr r2, =gUnknown_085EE2F2 movs r1, 0x31 mov r8, r1 str r1, [sp] movs r5, 0xFF str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 bl PrintTextOnWindow ldrb r0, [r6] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 mov r9, r1 str r1, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 bl PrintTextOnWindow movs r0, 0xA bl sub_81A1C90 mov r0, r8 str r0, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x48 movs r3, 0x83 bl sub_81A23CC movs r0, 0x41 str r0, [sp] adds r0, r7, 0 movs r1, 0 movs r2, 0x48 movs r3, 0x83 bl sub_81A2358 mov r1, r9 str r1, [sp] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x48 movs r3, 0x83 bl sub_81A23CC movs r0, 0x71 str r0, [sp] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x48 movs r3, 0x83 bl sub_81A2358 ldrb r0, [r6] bl PutWindowTilemap ldrb r0, [r6] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2460 thumb_func_start sub_81A2560 sub_81A2560: @ 81A2560 push {lr} lsls r0, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsrs r0, 23 ldr r2, =0x00000e04 adds r1, r2 adds r1, r0 ldrh r0, [r1] ldr r1, =0x0000270f cmp r0, r1 bls _081A257A adds r0, r1, 0 _081A257A: pop {r1} bx r1 .pool thumb_func_end sub_81A2560 thumb_func_start sub_81A258C sub_81A258C: @ 81A258C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC mov r12, r0 adds r7, r1, 0 adds r4, r2, 0 ldr r6, [sp, 0x2C] ldr r5, [sp, 0x30] lsls r4, 16 lsrs r4, 16 lsls r3, 24 lsrs r3, 24 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r5, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r12 bl PrintTextOnWindow ldr r0, =gStringVar1 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r7, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r5, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 adds r3, r6, 0 bl PrintTextOnWindow add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A258C thumb_func_start sub_81A2618 sub_81A2618: @ 81A2618 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 lsls r2, 24 lsrs r5, r2, 24 lsls r3, 24 lsrs r6, r3, 24 adds r0, r4, 0 bl sub_81A2560 lsls r0, 16 lsrs r7, r0, 16 cmp r4, 0 beq _081A2648 movs r0, 0x80 lsls r0, 4 b _081A264C _081A2648: movs r0, 0x80 lsls r0, 3 _081A264C: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A2674 ldr r0, =gUnknown_085EE311 ldr r1, =gUnknown_085EE35B str r5, [sp] str r6, [sp, 0x4] adds r2, r7, 0 mov r3, r8 bl sub_81A2008 b _081A2684 .pool _081A2674: ldr r0, =gUnknown_085EE320 ldr r1, =gUnknown_085EE35B str r5, [sp] str r6, [sp, 0x4] adds r2, r7, 0 mov r3, r8 bl sub_81A2008 _081A2684: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2618 thumb_func_start sub_81A2698 sub_81A2698: @ 81A2698 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC ldr r6, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r6] ldrb r0, [r6] movs r1, 0 bl sub_81973FC ldrb r0, [r6] movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE261 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81A1C4C ldrb r0, [r6] ldr r2, =gUnknown_085EE2F2 movs r1, 0x21 str r1, [sp] movs r5, 0xFF str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow ldrb r0, [r6] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 str r1, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow movs r0, 0xA bl sub_81A1C90 movs r0, 0 movs r1, 0x40 movs r2, 0x72 movs r3, 0x21 bl sub_81A2618 ldr r0, =gUnknown_085EE319 mov r10, r0 ldr r7, =gUnknown_085EE35B ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldr r1, =0x00000e08 adds r0, r1 ldrh r2, [r0] movs r4, 0x72 str r4, [sp] movs r0, 0x31 str r0, [sp, 0x4] mov r0, r10 adds r1, r7, 0 movs r3, 0x40 bl sub_81A258C ldr r0, =gUnknown_085EE332 mov r8, r0 ldr r1, =gUnknown_085EE36D mov r9, r1 ldr r0, [r5] ldr r1, =0x00000e0c adds r0, r1 ldrh r2, [r0] str r4, [sp] movs r0, 0x41 str r0, [sp, 0x4] mov r0, r8 mov r1, r9 movs r3, 0x40 bl sub_81A258C movs r0, 0x1 movs r1, 0x40 movs r2, 0x72 movs r3, 0x61 bl sub_81A2618 ldr r0, [r5] ldr r1, =0x00000e0a adds r0, r1 ldrh r2, [r0] str r4, [sp] movs r0, 0x71 str r0, [sp, 0x4] mov r0, r10 adds r1, r7, 0 movs r3, 0x40 bl sub_81A258C ldr r0, [r5] ldr r1, =0x00000e0e adds r0, r1 ldrh r2, [r0] str r4, [sp] movs r0, 0x81 str r0, [sp, 0x4] mov r0, r8 mov r1, r9 movs r3, 0x40 bl sub_81A258C ldrb r0, [r6] bl PutWindowTilemap ldrb r0, [r6] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2698 thumb_func_start sub_81A27E8 sub_81A27E8: @ 81A27E8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r5, r0, 0 adds r4, r2, 0 ldr r0, [sp, 0x30] lsls r1, 16 lsrs r6, r1, 16 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r7, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 bl PrintTextOnWindow ldr r0, =0x0000270f cmp r6, r0 bls _081A2834 adds r6, r0, 0 _081A2834: ldr r0, =gStringVar1 adds r1, r6, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE381 adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r7, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] bl PrintTextOnWindow add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A27E8 thumb_func_start sub_81A2888 sub_81A2888: @ 81A2888 push {r4,r5,lr} sub sp, 0x4 adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsrs r0, 23 ldr r2, =0x00000dde adds r1, r2 adds r1, r0 ldrh r1, [r1] ldr r0, =gUnknown_085EE319 str r3, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_81A27E8 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A2888 thumb_func_start sub_81A28CC sub_81A28CC: @ 81A28CC push {lr} lsls r0, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsrs r0, 23 ldr r2, =0x00000dda adds r1, r2 adds r1, r0 ldrh r0, [r1] ldr r1, =0x0000270f cmp r0, r1 bls _081A28E6 adds r0, r1, 0 _081A28E6: pop {r1} bx r1 .pool thumb_func_end sub_81A28CC thumb_func_start sub_81A28F8 sub_81A28F8: @ 81A28F8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 adds r0, r4, 0 bl sub_81A28CC lsls r0, 16 lsrs r5, r0, 16 cmp r4, 0 beq _081A2926 movs r0, 0x80 b _081A2928 _081A2926: movs r0, 0x40 _081A2928: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A2948 ldr r0, =gUnknown_085EE311 str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 mov r3, r8 bl sub_81A27E8 b _081A2956 .pool _081A2948: ldr r0, =gUnknown_085EE320 str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 mov r3, r8 bl sub_81A27E8 _081A2956: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A28F8 thumb_func_start sub_81A2968 sub_81A2968: @ 81A2968 push {r4-r6,lr} sub sp, 0xC ldr r5, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r5] ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldrb r0, [r5] movs r1, 0x11 bl FillWindowPixelBuffer movs r0, 0xA bl sub_81A1C90 ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE27C adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x2 bl sub_81A1C4C ldrb r0, [r5] ldr r2, =gUnknown_085EE2F2 movs r1, 0x31 str r1, [sp] movs r6, 0xFF str r6, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 bl PrintTextOnWindow ldrb r0, [r5] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 str r1, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x10 bl PrintTextOnWindow movs r0, 0 movs r1, 0x48 movs r2, 0x7E movs r3, 0x31 bl sub_81A28F8 movs r0, 0 movs r1, 0x48 movs r2, 0x7E movs r3, 0x41 bl sub_81A2888 movs r0, 0x1 movs r1, 0x48 movs r2, 0x7E movs r3, 0x61 bl sub_81A28F8 movs r0, 0x1 movs r1, 0x48 movs r2, 0x7E movs r3, 0x71 bl sub_81A2888 ldrb r0, [r5] bl PutWindowTilemap ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A2968 thumb_func_start sub_81A2A28 sub_81A2A28: @ 81A2A28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 mov r12, r0 ldr r4, [sp, 0x38] ldr r5, [sp, 0x3C] ldr r0, [sp, 0x40] lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 str r2, [sp, 0xC] lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 str r4, [sp, 0x10] lsls r5, 24 lsrs r5, 24 str r5, [sp, 0x14] lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r6, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r12 bl PrintTextOnWindow ldr r0, =0x0000270f cmp r7, r0 bls _081A2A80 adds r7, r0, 0 _081A2A80: ldr r5, =gStringVar1 adds r0, r5, 0 adds r1, r7, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE302 adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r6, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0x10] bl PrintTextOnWindow adds r0, r5, 0 ldr r1, [sp, 0xC] movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r1, =gUnknown_085EE392 adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r6, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0x14] bl PrintTextOnWindow add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2A28 thumb_func_start sub_81A2B04 sub_81A2B04: @ 81A2B04 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r6, r2, 0 ldr r4, [sp, 0x24] ldr r5, [sp, 0x28] lsls r0, 24 lsls r1, 24 lsls r6, 24 lsrs r6, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 ldr r7, =0x00000dea adds r0, r2, r7 adds r0, r1 ldrh r0, [r0] mov r8, r0 ldr r0, =0x00000dfa adds r2, r0 adds r2, r1 ldrh r2, [r2] ldr r0, =gUnknown_085EE319 str r3, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] mov r1, r8 adds r3, r6, 0 bl sub_81A2A28 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2B04 thumb_func_start sub_81A2B70 sub_81A2B70: @ 81A2B70 push {lr} lsls r0, 24 lsls r1, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 ldr r0, =0x00000de2 adds r2, r0 adds r2, r1 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _081A2B90 adds r0, r1, 0 _081A2B90: pop {r1} bx r1 .pool thumb_func_end sub_81A2B70 thumb_func_start sub_81A2BA0 sub_81A2BA0: @ 81A2BA0 push {lr} lsls r0, 24 lsls r1, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 ldr r0, =0x00000df2 adds r2, r0 adds r2, r1 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _081A2BC0 adds r0, r1, 0 _081A2BC0: pop {r1} bx r1 .pool thumb_func_end sub_81A2BA0 thumb_func_start sub_81A2BD0 sub_81A2BD0: @ 81A2BD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 ldr r4, [sp, 0x30] ldr r5, [sp, 0x34] lsls r0, 24 lsrs r6, r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 str r2, [sp, 0xC] lsls r3, 24 lsrs r3, 24 mov r8, r3 lsls r4, 24 lsrs r4, 24 mov r9, r4 lsls r5, 24 lsrs r5, 24 mov r10, r5 adds r0, r6, 0 adds r1, r7, 0 bl sub_81A2B70 lsls r0, 16 lsrs r5, r0, 16 adds r0, r6, 0 adds r1, r7, 0 bl sub_81A2BA0 lsls r0, 16 lsrs r4, r0, 16 cmp r6, 0 beq _081A2C20 cmp r6, 0x1 beq _081A2C30 _081A2C20: cmp r7, 0 beq _081A2C2A movs r0, 0x80 lsls r0, 2 b _081A2C3E _081A2C2A: movs r0, 0x80 lsls r0, 1 b _081A2C3E _081A2C30: cmp r7, 0 beq _081A2C3A movs r0, 0x80 lsls r0, 18 b _081A2C3E _081A2C3A: movs r0, 0x80 lsls r0, 17 _081A2C3E: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A2C68 ldr r0, =gUnknown_085EE311 mov r1, r8 str r1, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] adds r1, r5, 0 adds r2, r4, 0 ldr r3, [sp, 0xC] bl sub_81A2A28 b _081A2C80 .pool _081A2C68: ldr r0, =gUnknown_085EE320 mov r1, r8 str r1, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r10 str r1, [sp, 0x8] adds r1, r5, 0 adds r2, r4, 0 ldr r3, [sp, 0xC] bl sub_81A2A28 _081A2C80: add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2BD0 thumb_func_start sub_81A2C94 sub_81A2C94: @ 81A2C94 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer cmp r7, 0 bne _081A2CD8 ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE298 bl StringExpandPlaceholders b _081A2CE0 .pool _081A2CD8: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EE2B8 bl StringExpandPlaceholders _081A2CE0: ldr r0, =gStringVar4 movs r1, 0 bl sub_81A1C4C ldr r0, =gUnknown_0203AB74 mov r8, r0 ldrb r0, [r0] ldr r2, =gUnknown_085EE2F2 movs r6, 0x21 str r6, [sp] movs r5, 0xFF str r5, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow mov r1, r8 ldrb r0, [r1] ldr r2, =gUnknown_085EE326 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x98 bl PrintTextOnWindow mov r1, r8 ldrb r0, [r1] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 str r1, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow movs r0, 0xA bl sub_81A1C90 movs r4, 0x9E str r4, [sp] movs r0, 0x31 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0 movs r2, 0x8 movs r3, 0x40 bl sub_81A2BD0 str r4, [sp] movs r0, 0x41 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0 movs r2, 0x8 movs r3, 0x40 bl sub_81A2B04 str r4, [sp] movs r0, 0x71 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x8 movs r3, 0x40 bl sub_81A2BD0 str r4, [sp] movs r0, 0x81 str r0, [sp, 0x4] adds r0, r7, 0 movs r1, 0x1 movs r2, 0x8 movs r3, 0x40 bl sub_81A2B04 mov r1, r8 ldrb r0, [r1] bl PutWindowTilemap mov r1, r8 ldrb r0, [r1] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2C94 thumb_func_start sub_81A2DB4 sub_81A2DB4: @ 81A2DB4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 adds r5, r0, 0 adds r4, r2, 0 ldr r0, [sp, 0x30] lsls r1, 16 lsrs r6, r1, 16 lsls r4, 24 lsrs r4, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp, 0xC] lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r0, =gUnknown_0203AB74 mov r10, r0 ldrb r0, [r0] str r7, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r1, 0 mov r8, r1 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 adds r3, r4, 0 bl PrintTextOnWindow ldr r0, =0x0000270f cmp r6, r0 bls _081A2E00 adds r6, r0, 0 _081A2E00: ldr r0, =gStringVar1 adds r1, r6, 0 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE39C adds r0, r4, 0 bl StringExpandPlaceholders mov r1, r10 ldrb r0, [r1] str r7, [sp] mov r1, r9 str r1, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 ldr r3, [sp, 0xC] bl PrintTextOnWindow add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2DB4 thumb_func_start sub_81A2E54 sub_81A2E54: @ 81A2E54 push {r4,r5,lr} sub sp, 0x4 adds r4, r1, 0 adds r5, r2, 0 lsls r0, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r3, 24 lsrs r3, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsrs r0, 23 ldr r2, =0x00000e1e adds r1, r2 adds r1, r0 ldrh r1, [r1] ldr r0, =gUnknown_085EE319 str r3, [sp] adds r2, r4, 0 adds r3, r5, 0 bl sub_81A2DB4 add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A2E54 thumb_func_start sub_81A2E98 sub_81A2E98: @ 81A2E98 push {lr} lsls r0, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsrs r0, 23 ldr r2, =0x00000e1a adds r1, r2 adds r1, r0 ldrh r0, [r1] ldr r1, =0x0000270f cmp r0, r1 bls _081A2EB2 adds r0, r1, 0 _081A2EB2: pop {r1} bx r1 .pool thumb_func_end sub_81A2E98 thumb_func_start sub_81A2EC4 sub_81A2EC4: @ 81A2EC4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r6, r3, 24 adds r0, r4, 0 bl sub_81A2E98 lsls r0, 16 lsrs r5, r0, 16 cmp r4, 0 beq _081A2EF4 movs r0, 0x80 lsls r0, 6 b _081A2EF8 _081A2EF4: movs r0, 0x80 lsls r0, 5 _081A2EF8: bl sub_81A1C24 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081A2F18 ldr r0, =gUnknown_085EE311 str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 mov r3, r8 bl sub_81A2DB4 b _081A2F26 .pool _081A2F18: ldr r0, =gUnknown_085EE320 str r6, [sp] adds r1, r5, 0 adds r2, r7, 0 mov r3, r8 bl sub_81A2DB4 _081A2F26: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2EC4 thumb_func_start sub_81A2F38 sub_81A2F38: @ 81A2F38 push {r4-r6,lr} sub sp, 0xC ldr r5, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r5] ldrb r0, [r5] movs r1, 0 bl sub_81973FC ldrb r0, [r5] movs r1, 0x11 bl FillWindowPixelBuffer ldr r4, =gStringVar4 ldr r1, =gUnknown_085EE2D8 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x2 bl sub_81A1C4C ldrb r0, [r5] ldr r2, =gUnknown_085EE2F2 movs r1, 0x31 str r1, [sp] movs r6, 0xFF str r6, [sp, 0x4] movs r4, 0 str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow ldrb r0, [r5] ldr r2, =gUnknown_085EE2F9 movs r1, 0x61 str r1, [sp] str r6, [sp, 0x4] str r4, [sp, 0x8] movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow movs r0, 0xA bl sub_81A1C90 movs r0, 0 movs r1, 0x40 movs r2, 0x6F movs r3, 0x31 bl sub_81A2EC4 movs r0, 0 movs r1, 0x40 movs r2, 0x6F movs r3, 0x41 bl sub_81A2E54 movs r0, 0x1 movs r1, 0x40 movs r2, 0x6F movs r3, 0x61 bl sub_81A2EC4 movs r0, 0x1 movs r1, 0x40 movs r2, 0x6F movs r3, 0x71 bl sub_81A2E54 ldrb r0, [r5] bl PutWindowTilemap ldrb r0, [r5] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A2F38 thumb_func_start sub_81A2FF8 sub_81A2FF8: @ 81A2FF8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC ldr r4, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C7C bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, =gStringVar4 mov r9, r0 ldr r1, =gUnknown_085EDF86 bl StringExpandPlaceholders movs r0, 0x1 mov r1, r9 movs r2, 0xD0 bl GetStringCenterAlignXOffset adds r3, r0, 0 ldrb r0, [r4] lsls r3, 24 lsrs r3, 24 movs r1, 0x1 str r1, [sp] movs r6, 0xFF str r6, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] mov r2, r9 bl PrintTextOnWindow ldr r7, =gUnknown_085EDFA0 movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 bl GetStringRightAlignXOffset adds r3, r0, 0 adds r3, 0x32 ldrb r0, [r4] lsls r3, 24 lsrs r3, 24 movs r1, 0x19 mov r8, r1 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow ldr r7, =gUnknown_085EDFA4 movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 bl GetStringRightAlignXOffset adds r3, r0, 0 adds r3, 0x58 ldrb r0, [r4] lsls r3, 24 lsrs r3, 24 mov r2, r8 str r2, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow ldr r7, =gUnknown_085EDFA8 movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 bl GetStringRightAlignXOffset adds r3, r0, 0 adds r3, 0x7E ldrb r0, [r4] lsls r3, 24 lsrs r3, 24 mov r1, r8 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow ldr r7, =gUnknown_085EDFAC movs r0, 0x1 adds r1, r7, 0 movs r2, 0x26 bl GetStringRightAlignXOffset adds r3, r0, 0 adds r3, 0xA4 ldrb r0, [r4] lsls r3, 24 lsrs r3, 24 mov r2, r8 str r2, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 adds r2, r7, 0 bl PrintTextOnWindow ldrb r0, [r4] ldr r2, =gUnknown_085EB0E8 movs r1, 0x29 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] ldr r2, =gUnknown_085EB0ED movs r1, 0x39 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] ldr r2, =gUnknown_085EB0F4 movs r1, 0x49 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] ldr r2, =gUnknown_085EB0F9 movs r1, 0x59 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 bl PrintTextOnWindow ldrb r0, [r4] ldr r2, =gUnknown_085EB0FF movs r1, 0x69 str r1, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 movs r3, 0x6 bl PrintTextOnWindow movs r1, 0 _081A314A: movs r5, 0 adds r0, r1, 0x1 mov r8, r0 lsls r0, r1, 28 movs r2, 0xA4 lsls r2, 22 adds r0, r2 lsrs r7, r0, 24 lsls r4, r1, 3 _081A315C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000624 adds r0, r1 adds r0, r4 ldrh r1, [r0] mov r0, r9 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r6, =gUnknown_0203AB74 ldrb r0, [r6] movs r1, 0x26 adds r3, r5, 0 muls r3, r1 adds r3, 0x40 lsls r3, 24 lsrs r3, 24 str r7, [sp] movs r1, 0xFF str r1, [sp, 0x4] movs r1, 0 str r1, [sp, 0x8] movs r1, 0x1 mov r2, r9 bl PrintTextOnWindow adds r4, 0x2 adds r5, 0x1 cmp r5, 0x3 ble _081A315C mov r1, r8 cmp r1, 0x4 ble _081A314A ldrb r0, [r6] bl PutWindowTilemap ldrb r0, [r6] movs r1, 0x3 bl CopyWindowToVram add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A2FF8 thumb_func_start sub_81A31FC sub_81A31FC: @ 81A31FC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r7, r0, 30 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r4, r0, 16 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r4, 0x6 bls _081A3232 b _081A35CE _081A3232: lsls r0, r4, 2 ldr r1, =_081A3250 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A3250: .4byte _081A326C .4byte _081A33A8 .4byte _081A3414 .4byte _081A347C .4byte _081A34CC .4byte _081A354C .4byte _081A3594 _081A326C: ldr r2, =gSaveBlock2Ptr mov r9, r2 ldr r0, [r2] lsls r3, r7, 1 mov r10, r3 mov r2, r8 lsls r1, r2, 2 add r1, r10 str r1, [sp, 0x20] movs r3, 0xCE lsls r3, 4 adds r1, r0, r3 ldr r2, [sp, 0x20] adds r1, r2 adds r3, 0x10 adds r0, r3 adds r0, r2 ldrh r1, [r1] ldrh r2, [r0] cmp r1, r2 bhi _081A3298 b _081A35CE _081A3298: strh r1, [r0] mov r3, r8 cmp r3, 0x3 bne _081A32F2 ldr r6, =gBattleScripting adds r6, 0x25 ldrb r0, [r6] movs r4, 0x1 eors r0, r4 lsls r1, r0, 3 subs r1, r0 lsls r1, 2 ldr r5, =gLinkPlayers + 8 adds r1, r5 mov r0, sp bl StringCopy mov r0, sp bl StripExtCtrlCodes lsls r1, r7, 3 ldr r0, =0x00000ee1 adds r1, r0 mov r2, r9 ldr r0, [r2] adds r0, r1 mov r1, sp bl StringCopy ldrb r0, [r6] eors r4, r0 lsls r0, r4, 3 subs r0, r4 lsls r0, 2 subs r5, 0x4 adds r0, r5 ldr r0, [r0] lsls r2, r7, 2 ldr r1, =0x00000ef1 adds r2, r1 mov r3, r9 ldr r1, [r3] adds r1, r2 bl WriteUnalignedWord _081A32F2: mov r7, r9 ldr r0, [r7] movs r1, 0xCE lsls r1, 4 adds r0, r1 ldr r2, [sp, 0x20] adds r0, r2 ldrh r0, [r0] cmp r0, 0x1 bhi _081A3308 b _081A35CE _081A3308: bl sub_80EE818 lsls r0, 24 cmp r0, 0 bne _081A3314 b _081A35CE _081A3314: mov r3, r8 cmp r3, 0x1 beq _081A335A cmp r3, 0x1 bgt _081A3338 cmp r3, 0 beq _081A3344 b _081A35CE .pool _081A3338: mov r7, r8 cmp r7, 0x2 beq _081A3374 cmp r7, 0x3 beq _081A338E b _081A35CE _081A3344: mov r1, r9 ldr r0, [r1] movs r2, 0xCE lsls r2, 4 adds r0, r2 add r0, r10 ldrh r0, [r0] movs r1, 0x1 bl sub_80EE8C8 b _081A35CE _081A335A: mov r3, r9 ldr r0, [r3] mov r1, r10 adds r1, 0x4 movs r7, 0xCE lsls r7, 4 adds r0, r7 adds r0, r1 ldrh r0, [r0] movs r1, 0x2 bl sub_80EE8C8 b _081A35CE _081A3374: mov r1, r9 ldr r0, [r1] mov r1, r10 adds r1, 0x8 movs r2, 0xCE lsls r2, 4 adds r0, r2 adds r0, r1 ldrh r0, [r0] movs r1, 0x3 bl sub_80EE8C8 b _081A35CE _081A338E: mov r3, r9 ldr r0, [r3] mov r1, r10 adds r1, 0xC movs r7, 0xCE lsls r7, 4 adds r0, r7 adds r0, r1 ldrh r0, [r0] movs r1, 0x4 bl sub_80EE8C8 b _081A35CE _081A33A8: ldr r6, =gSaveBlock2Ptr ldr r0, [r6] lsls r7, 1 mov r2, r8 lsls r1, r2, 2 adds r4, r7, r1 ldr r5, =0x00000d0c adds r1, r0, r5 adds r1, r4 ldr r3, =0x00000d14 adds r0, r3 adds r0, r4 ldrh r2, [r1] ldrh r3, [r0] cmp r2, r3 bhi _081A33CA b _081A35CE _081A33CA: strh r2, [r0] ldrh r0, [r1] cmp r0, 0x1 bhi _081A33D4 b _081A35CE _081A33D4: bl sub_80EE818 lsls r0, 24 cmp r0, 0 bne _081A33E0 b _081A35CE _081A33E0: mov r0, r8 cmp r0, 0 bne _081A3404 ldr r0, [r6] adds r0, r5 adds r0, r7 ldrh r0, [r0] movs r1, 0x5 bl sub_80EE8C8 b _081A35CE .pool _081A3404: ldr r0, [r6] adds r0, r5 adds r0, r4 ldrh r0, [r0] movs r1, 0x6 bl sub_80EE8C8 b _081A35CE _081A3414: ldr r6, =gSaveBlock2Ptr ldr r0, [r6] lsls r7, 1 mov r2, r8 lsls r1, r2, 2 adds r4, r7, r1 ldr r5, =0x00000dc8 adds r1, r0, r5 adds r1, r4 movs r3, 0xDD lsls r3, 4 adds r0, r3 adds r0, r4 ldrh r2, [r1] ldrh r3, [r0] cmp r2, r3 bhi _081A3438 b _081A35CE _081A3438: strh r2, [r0] ldrh r0, [r1] cmp r0, 0x1 bhi _081A3442 b _081A35CE _081A3442: bl sub_80EE818 lsls r0, 24 cmp r0, 0 bne _081A344E b _081A35CE _081A344E: mov r0, r8 cmp r0, 0 bne _081A346C ldr r0, [r6] adds r0, r5 adds r0, r7 ldrh r0, [r0] movs r1, 0xB bl sub_80EE8C8 b _081A35CE .pool _081A346C: ldr r0, [r6] adds r0, r5 adds r0, r4 ldrh r0, [r0] movs r1, 0xC bl sub_80EE8C8 b _081A35CE _081A347C: ldr r6, =gSaveBlock2Ptr ldr r1, [r6] lsls r4, r7, 1 ldr r5, =0x00000dda adds r0, r1, r5 adds r0, r4 ldr r2, =0x00000dde adds r1, r2 adds r1, r4 ldrh r2, [r0] ldrh r3, [r1] cmp r2, r3 bhi _081A3498 b _081A35CE _081A3498: strh r2, [r1] ldrh r0, [r0] cmp r0, 0x1 bhi _081A34A2 b _081A35CE _081A34A2: bl sub_80EE818 lsls r0, 24 cmp r0, 0 bne _081A34AE b _081A35CE _081A34AE: ldr r0, [r6] adds r0, r5 adds r0, r4 ldrh r0, [r0] movs r1, 0xA bl sub_80EE8C8 b _081A35CE .pool _081A34CC: ldr r6, =gSaveBlock2Ptr ldr r2, [r6] lsls r7, 1 mov r9, r7 mov r7, r8 lsls r0, r7, 2 mov r1, r9 adds r4, r1, r0 ldr r5, =0x00000de2 adds r0, r2, r5 adds r3, r0, r4 ldr r7, =0x00000dea adds r0, r2, r7 adds r0, r4 ldrh r1, [r3] ldrh r7, [r0] cmp r1, r7 bls _081A35CE strh r1, [r0] ldr r0, =0x00000dfa adds r1, r2, r0 adds r1, r4 ldr r7, =0x00000df2 adds r0, r2, r7 adds r0, r4 ldrh r0, [r0] strh r0, [r1] ldrh r0, [r3] cmp r0, 0x1 bls _081A35CE bl sub_80EE818 lsls r0, 24 cmp r0, 0 beq _081A35CE mov r0, r8 cmp r0, 0 bne _081A353C ldr r0, [r6] adds r0, r5 add r0, r9 ldrh r0, [r0] movs r1, 0x7 bl sub_80EE8C8 b _081A35CE .pool _081A353C: ldr r0, [r6] adds r0, r5 adds r0, r4 ldrh r0, [r0] movs r1, 0x8 bl sub_80EE8C8 b _081A35CE _081A354C: ldr r6, =gSaveBlock2Ptr ldr r1, [r6] lsls r4, r7, 1 ldr r5, =0x00000e04 adds r0, r1, r5 adds r0, r4 ldr r2, =0x00000e08 adds r1, r2 adds r1, r4 ldrh r2, [r0] ldrh r3, [r1] cmp r2, r3 bls _081A35CE strh r2, [r1] ldrh r0, [r0] cmp r0, 0x1 bls _081A35CE bl sub_80EE818 lsls r0, 24 cmp r0, 0 beq _081A35CE ldr r0, [r6] adds r0, r5 adds r0, r4 ldrh r0, [r0] movs r1, 0x9 bl sub_80EE8C8 b _081A35CE .pool _081A3594: ldr r6, =gSaveBlock2Ptr ldr r1, [r6] lsls r4, r7, 1 ldr r5, =0x00000e1a adds r0, r1, r5 adds r0, r4 ldr r7, =0x00000e1e adds r1, r7 adds r1, r4 ldrh r2, [r0] ldrh r3, [r1] cmp r2, r3 bls _081A35CE strh r2, [r1] ldrh r0, [r0] cmp r0, 0x1 bls _081A35CE bl sub_80EE818 lsls r0, 24 cmp r0, 0 beq _081A35CE ldr r0, [r6] adds r0, r5 adds r0, r4 ldrh r0, [r0] movs r1, 0xD bl sub_80EE8C8 _081A35CE: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A31FC thumb_func_start sub_81A35EC sub_81A35EC: @ 81A35EC push {r4,lr} ldr r0, =0x000040cf bl VarGet ldr r4, =gScriptResult bl sub_81A3610 lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A35EC thumb_func_start sub_81A3610 sub_81A3610: @ 81A3610 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r0, 0 mov r8, r0 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r6, r0, 16 ldr r0, =0x000040ce bl VarGet adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 bl sub_81A39C4 lsls r0, 16 ldr r1, =gUnknown_08611550 mov r9, r1 lsls r7, r6, 2 adds r1, 0x3 adds r1, r7, r1 lsrs r0, 16 ldrb r1, [r1] adds r5, r0, r1 cmp r4, 0 beq _081A365C movs r0, 0 b _081A36C2 .pool _081A365C: lsls r0, r6, 24 lsrs r0, 24 bl sub_81A3B30 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 blt _081A3680 cmp r1, 0x1 bgt _081A3680 adds r0, r1, r7 add r0, r9 ldrb r0, [r0] cmp r5, r0 bne _081A36BC adds r1, 0x1 mov r8, r1 b _081A36BC _081A3680: ldr r1, =gUnknown_08611550 lsls r2, r6, 2 adds r0, r2, r1 ldrb r0, [r0] cmp r5, r0 bne _081A3694 movs r0, 0x3 b _081A36BA .pool _081A3694: adds r0, r1, 0x1 adds r0, r2, r0 ldrb r0, [r0] cmp r5, r0 bne _081A36A4 movs r1, 0x4 mov r8, r1 b _081A36BC _081A36A4: cmp r5, r0 ble _081A36BC subs r0, r5, r0 adds r1, 0x2 adds r1, r2, r1 ldrb r1, [r1] bl __modsi3 cmp r0, 0 bne _081A36BC movs r0, 0x4 _081A36BA: mov r8, r0 _081A36BC: mov r1, r8 lsls r0, r1, 24 lsrs r0, 24 _081A36C2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81A3610 thumb_func_start sub_81A36D0 sub_81A36D0: @ 81A36D0 push {lr} lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 lsls r1, 16 lsrs r3, r1, 16 cmp r0, 0x1 beq _081A3766 cmp r0, 0x1 bgt _081A36EA cmp r0, 0 beq _081A36F2 b _081A38F8 _081A36EA: cmp r2, 0x2 bne _081A36F0 b _081A3818 _081A36F0: b _081A38F8 _081A36F2: movs r0, 0xFA lsls r0, 1 cmp r3, r0 bne _081A370C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000bfc b _081A38C4 .pool _081A370C: ldr r0, =0x000003fe cmp r3, r0 beq _081A3786 ldr r0, =0x0000012b cmp r3, r0 bhi _081A3738 ldr r2, =gUnknown_0203BC88 movs r0, 0x34 adds r1, r3, 0 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xC bl ConvertBattleFrontierTrainerSpeechToString b _081A38F8 .pool _081A3738: ldr r0, =0x0000018f cmp r3, r0 bhi _081A3758 ldr r1, =gSaveBlock2Ptr movs r0, 0xEC muls r0, r3 ldr r1, [r1] adds r0, r1 ldr r1, =0xfffef2b8 b _081A38C4 .pool _081A3758: adds r0, r3, 0 adds r0, 0x70 lsls r0, 24 lsrs r0, 24 bl sub_819F99C b _081A38F8 _081A3766: movs r0, 0xFA lsls r0, 1 cmp r3, r0 bne _081A3780 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000c08 b _081A38C4 .pool _081A3780: ldr r0, =0x000003fe cmp r3, r0 bne _081A3794 _081A3786: movs r0, 0 bl sub_81A51A8 b _081A38F8 .pool _081A3794: ldr r0, =0x0000012b cmp r3, r0 bhi _081A37B8 ldr r2, =gUnknown_0203BC88 movs r0, 0x34 adds r1, r3, 0 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0x18 bl ConvertBattleFrontierTrainerSpeechToString b _081A38F8 .pool _081A37B8: ldr r0, =0x0000018f cmp r3, r0 bhi _081A37EC ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne _081A387C ldr r1, =gSaveBlock2Ptr movs r0, 0xEC muls r0, r3 ldr r1, [r1] adds r0, r1 ldr r1, =0xfffef2c4 b _081A38C4 .pool _081A37EC: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 bne _081A387C ldr r1, =gSaveBlock2Ptr lsls r0, r3, 4 adds r0, r3 lsls r0, 2 ldr r1, [r1] adds r0, r1 ldr r1, =0xffff96c4 b _081A38C4 .pool _081A3818: movs r0, 0xFA lsls r0, 1 cmp r3, r0 bne _081A3830 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000c14 b _081A38C4 .pool _081A3830: ldr r0, =0x000003fe cmp r3, r0 bne _081A3844 movs r0, 0x1 bl sub_81A51A8 b _081A38F8 .pool _081A3844: ldr r0, =0x0000012b cmp r3, r0 bhi _081A3868 ldr r2, =gUnknown_0203BC88 movs r0, 0x34 adds r1, r3, 0 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0x24 bl ConvertBattleFrontierTrainerSpeechToString b _081A38F8 .pool _081A3868: ldr r0, =0x0000018f cmp r3, r0 bhi _081A38A8 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _081A3890 _081A387C: bl sub_81864E0 bl ConvertBattleFrontierTrainerSpeechToString b _081A38F8 .pool _081A3890: ldr r1, =gSaveBlock2Ptr movs r0, 0xEC muls r0, r3 ldr r1, [r1] adds r0, r1 ldr r1, =0xfffef2d0 b _081A38C4 .pool _081A38A8: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _081A38D4 bl sub_81864A8 lsls r0, 24 lsrs r3, r0, 24 movs r0, 0x58 muls r0, r3 ldr r1, =gUnknown_086109BA _081A38C4: adds r0, r1 bl ConvertBattleFrontierTrainerSpeechToString b _081A38F8 .pool _081A38D4: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 adds r2, r3, r0 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r1, r0 adds r1, 0xDC ldrb r0, [r1] lsls r0, 27 lsrs r3, r0, 27 movs r0, 0x58 muls r0, r3 ldr r1, =gUnknown_086109BA adds r0, r1 bl ConvertBattleFrontierTrainerSpeechToString _081A38F8: pop {r0} bx r0 .pool thumb_func_end sub_81A36D0 thumb_func_start sub_81A3908 sub_81A3908: @ 81A3908 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, =0x00000cdc adds r1, r2 movs r2, 0 str r2, [r1] movs r4, 0 mov r9, r0 mov r8, r9 movs r6, 0 _081A3926: movs r5, 0 lsls r7, r4, 2 mov r10, r7 adds r0, r4, 0x1 mov r12, r0 _081A3930: mov r1, r8 ldr r2, [r1] lsls r3, r5, 1 mov r7, r10 adds r1, r3, r7 movs r7, 0xCE lsls r7, 4 adds r0, r2, r7 adds r0, r1 strh r6, [r0] cmp r4, 0x1 bgt _081A3960 adds r7, 0x2C adds r0, r2, r7 adds r0, r1 strh r6, [r0] adds r7, 0xBC adds r0, r2, r7 adds r0, r1 strh r6, [r0] adds r7, 0x1A adds r0, r2, r7 adds r0, r1 strh r6, [r0] _081A3960: cmp r4, 0 bne _081A3980 mov r1, r8 ldr r0, [r1] ldr r2, =0x00000dda adds r1, r0, r2 adds r1, r3 strh r4, [r1] ldr r7, =0x00000e04 adds r1, r0, r7 adds r1, r3 strh r4, [r1] ldr r1, =0x00000e1a adds r0, r1 adds r0, r3 strh r4, [r0] _081A3980: adds r5, 0x1 cmp r5, 0x1 ble _081A3930 mov r4, r12 cmp r4, 0x3 ble _081A3926 mov r2, r9 ldr r0, [r2] ldr r7, =0x00000ca8 adds r1, r0, r7 ldrb r0, [r1] cmp r0, 0 beq _081A399E movs r0, 0x1 strb r0, [r1] _081A399E: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A3908 thumb_func_start sub_81A39C4 sub_81A39C4: @ 81A39C4 push {r4,r5,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r4, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bhi _081A3AC4 lsls r0, 2 ldr r1, =_081A3A0C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A3A0C: .4byte _081A3A28 .4byte _081A3A3C .4byte _081A3A54 .4byte _081A3A6C .4byte _081A3A80 .4byte _081A3A98 .4byte _081A3AAC _081A3A28: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r5, 2 adds r1, r2 movs r2, 0xCE lsls r2, 4 b _081A3AB4 .pool _081A3A3C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r5, 2 adds r1, r2 ldr r2, =0x00000d0c b _081A3AB4 .pool _081A3A54: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r5, 2 adds r1, r2 ldr r2, =0x00000dc8 b _081A3AB4 .pool _081A3A6C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000dda b _081A3AB4 .pool _081A3A80: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r5, 2 adds r1, r2 ldr r2, =0x00000de2 b _081A3AB4 .pool _081A3A98: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000e04 b _081A3AB4 .pool _081A3AAC: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000e1a _081A3AB4: adds r0, r2 adds r0, r1 ldrh r0, [r0] b _081A3AC6 .pool _081A3AC4: movs r0, 0 _081A3AC6: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81A39C4 thumb_func_start sub_81A3ACC sub_81A3ACC: @ 81A3ACC push {r4,r5,lr} movs r2, 0 ldr r5, =gSaveBlock2Ptr ldr r4, =0x00000cb4 ldr r0, =0x0000ffff adds r3, r0, 0 _081A3AD8: ldr r0, [r5] lsls r1, r2, 1 adds r0, r4 adds r0, r1 ldrh r1, [r0] orrs r1, r3 strh r1, [r0] adds r2, 0x1 cmp r2, 0x13 ble _081A3AD8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A3ACC thumb_func_start sub_81A3B00 sub_81A3B00: @ 81A3B00 push {lr} ldr r0, =gTrainerBattleOpponent_A ldrh r1, [r0] ldr r0, =0x000003fe cmp r1, r0 bne _081A3B20 ldr r1, =gScriptResult movs r0, 0x1 b _081A3B24 .pool _081A3B20: ldr r1, =gScriptResult movs r0, 0 _081A3B24: strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_81A3B00 thumb_func_start sub_81A3B30 sub_81A3B30: @ 81A3B30 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 23 ldr r1, =0x000008c4 adds r0, r4, r1 bl FlagGet adds r5, r0, 0 ldr r0, =0x000008c5 adds r4, r0 adds r0, r4, 0 bl FlagGet adds r5, r0 lsls r5, 24 lsrs r5, 24 adds r0, r5, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81A3B30 thumb_func_start sub_81A3B64 sub_81A3B64: @ 81A3B64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} movs r5, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r4, r0, 30 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r7, r0, 16 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r6, r0, 16 cmp r7, 0x6 bhi _081A3C78 lsls r0, r7, 2 ldr r1, =_081A3BB4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A3BB4: .4byte _081A3BD0 .4byte _081A3BE4 .4byte _081A3C00 .4byte _081A3C18 .4byte _081A3C2C .4byte _081A3C44 .4byte _081A3C60 _081A3BD0: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r6, 2 adds r1, r2 movs r2, 0xCE lsls r2, 4 b _081A3C68 .pool _081A3BE4: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r6, 2 adds r1, r2 ldr r2, =0x00000d0c adds r0, r2 adds r0, r1 ldrh r5, [r0] b _081A3C78 .pool _081A3C00: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r6, 2 adds r1, r2 ldr r2, =0x00000dc8 b _081A3C68 .pool _081A3C18: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000dda b _081A3C68 .pool _081A3C2C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 lsls r2, r6, 2 adds r1, r2 ldr r2, =0x00000de2 b _081A3C68 .pool _081A3C44: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000e04 adds r0, r2 adds r0, r1 ldrh r0, [r0] movs r1, 0xE b _081A3C70 .pool _081A3C60: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000e1a _081A3C68: adds r0, r2 adds r0, r1 ldrh r0, [r0] movs r1, 0x7 _081A3C70: bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 _081A3C78: cmp r5, 0 beq _081A3C7E subs r5, 0x1 _081A3C7E: cmp r5, 0x1D bls _081A3C84 movs r5, 0x1D _081A3C84: ldr r2, =gUnknown_086118B4 lsls r1, r7, 2 adds r1, r6, r1 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 adds r1, r0 adds r7, r1, r2 ldrb r5, [r7] ldr r0, =gTrainerBattleOpponent_A mov r9, r0 ldrh r0, [r0] ldr r1, =0x000003fe mov r8, r1 cmp r0, r8 bne _081A3CA6 adds r5, 0xA _081A3CA6: ldr r6, =gSaveBlock2Ptr ldr r1, [r6] ldr r4, =0x00000eb8 adds r1, r4 ldrh r0, [r1] adds r0, r5 strh r0, [r1] ldr r0, =gStringVar1 adds r1, r5, 0 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r0, [r6] adds r2, r0, r4 ldrh r0, [r2] ldr r1, =0x0000270f cmp r0, r1 bls _081A3CCE strh r1, [r2] _081A3CCE: ldr r0, [r6] ldr r4, =0x00000eba adds r0, r4 ldrh r5, [r0] ldrb r0, [r7] adds r5, r0 bl sub_80EED60 mov r2, r9 ldrh r0, [r2] cmp r0, r8 bne _081A3CEE adds r5, 0xA movs r0, 0xA bl sub_80EED60 _081A3CEE: ldr r0, =0x0000ffff cmp r5, r0 ble _081A3CF6 adds r5, r0, 0 _081A3CF6: ldr r0, [r6] adds r0, r4 strh r5, [r0] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A3B64 thumb_func_start sub_81A3D30 sub_81A3D30: @ 81A3D30 push {r4,lr} ldr r0, =0x000040cf bl VarGet ldr r4, =gScriptResult lsls r0, 24 lsrs r0, 24 bl sub_81A3B30 lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A3D30 thumb_func_start sub_81A3D58 sub_81A3D58: @ 81A3D58 push {r4,lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r4, r0, 16 lsls r0, r4, 24 lsrs r0, 24 bl sub_81A3B30 lsls r0, 24 cmp r0, 0 bne _081A3D88 lsls r0, r4, 17 ldr r1, =0x8C4 << 16 adds r0, r1 lsrs r0, 16 bl FlagSet b _081A3D94 .pool _081A3D88: lsls r0, r4, 17 ldr r1, =0x8C5 << 16 adds r0, r1 lsrs r0, 16 bl FlagSet _081A3D94: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A3D58 thumb_func_start sub_81A3DA0 sub_81A3DA0: @ 81A3DA0 push {lr} ldr r0, =gBattleTypeFlags ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, [r0] ands r2, r1 cmp r2, 0 beq _081A3DC4 ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] b _081A3DC8 .pool _081A3DC4: ldr r0, =gScriptResult strh r2, [r0] _081A3DC8: pop {r0} bx r0 .pool thumb_func_end sub_81A3DA0 thumb_func_start sub_81A3DD0 sub_81A3DD0: @ 81A3DD0 push {r4-r6,lr} adds r5, r2, 0 lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r4, r1, 24 adds r0, r6, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl pokedex_flag_operation lsls r0, 24 cmp r0, 0 beq _081A3ED6 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 subs r0, r4, 0x1 cmp r0, 0xA bhi _081A3EA0 lsls r0, 2 ldr r1, =_081A3E0C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A3E0C: .4byte _081A3E38 .4byte _081A3E68 .4byte _081A3E38 .4byte _081A3EA0 .4byte _081A3E38 .4byte _081A3EA0 .4byte _081A3E38 .4byte _081A3EA0 .4byte _081A3E38 .4byte _081A3EA0 .4byte _081A3E38 _081A3E38: cmp r5, r4 bne _081A3E50 ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB79 bl StringAppend b _081A3EC8 .pool _081A3E50: cmp r5, r4 ble _081A3EC8 ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB7F bl StringAppend b _081A3EC8 .pool _081A3E68: cmp r4, r5 bne _081A3E80 ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB79 bl StringAppend b _081A3E88 .pool _081A3E80: ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB7F bl StringAppend _081A3E88: ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB86 bl StringAppend b _081A3EC8 .pool _081A3EA0: cmp r4, r5 bne _081A3EB8 ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB79 bl StringAppend b _081A3EC0 .pool _081A3EB8: ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB7F bl StringAppend _081A3EC0: ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB84 bl StringAppend _081A3EC8: ldr r0, =gStringVar1 movs r1, 0xB muls r1, r6 ldr r2, =gSpeciesNames adds r1, r2 bl StringAppend _081A3ED6: adds r0, r4, 0 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81A3DD0 thumb_func_start sub_81A3EF0 sub_81A3EF0: @ 81A3EF0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r2, [sp, 0x20] ldr r4, [sp, 0x24] mov r9, r4 ldr r4, [sp, 0x28] mov r10, r4 ldr r7, [sp, 0x2C] lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r3, 24 lsrs r3, 24 mov r12, r3 lsls r2, 24 lsrs r2, 24 mov r8, r2 movs r2, 0 movs r0, 0xCE lsls r0, 1 cmp r4, r0 beq _081A3FBE cmp r4, 0 beq _081A3FBE ldr r0, =gUnknown_08611C9A ldrh r1, [r0] ldr r5, =0x0000ffff adds r3, r0, 0 cmp r1, r5 beq _081A3F54 cmp r1, r4 beq _081A3F48 adds r1, r3, 0 _081A3F3A: adds r1, 0x2 adds r2, 0x1 ldrh r0, [r1] cmp r0, r5 beq _081A3F54 cmp r0, r4 bne _081A3F3A _081A3F48: lsls r0, r2, 1 adds r0, r3 ldrh r1, [r0] ldr r0, =0x0000ffff cmp r1, r0 bne _081A3FBE _081A3F54: mov r0, r12 cmp r0, 0 bne _081A3F60 mov r1, r8 cmp r1, 0x32 bhi _081A3FBE _081A3F60: movs r2, 0 ldrb r3, [r7] cmp r2, r3 bge _081A3F80 mov r1, r9 ldrh r0, [r1] cmp r0, r4 beq _081A3F80 adds r5, r3, 0 _081A3F72: adds r1, 0x2 adds r2, 0x1 cmp r2, r5 bge _081A3F80 ldrh r0, [r1] cmp r0, r4 bne _081A3F72 _081A3F80: cmp r2, r3 bne _081A3FBE cmp r6, 0 beq _081A3FAA movs r2, 0 cmp r2, r3 bge _081A3FA6 mov r1, r10 ldrh r0, [r1] cmp r0, r6 beq _081A3FA6 adds r5, r3, 0 _081A3F98: adds r1, 0x2 adds r2, 0x1 cmp r2, r5 bge _081A3FA6 ldrh r0, [r1] cmp r0, r6 bne _081A3F98 _081A3FA6: cmp r2, r3 bne _081A3FBE _081A3FAA: lsls r0, r3, 1 add r0, r9 strh r4, [r0] ldrb r0, [r7] lsls r0, 1 add r0, r10 strh r6, [r0] ldrb r0, [r7] adds r0, 0x1 strb r0, [r7] _081A3FBE: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A3EF0 thumb_func_start sub_81A3FD4 sub_81A3FD4: @ 81A3FD4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 movs r0, 0 str r0, [sp, 0x2C] add r4, sp, 0x28 strb r0, [r4] ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r0, 16 mov r10, r4 cmp r0, 0x1 beq _081A4016 cmp r0, 0x1 bgt _081A4008 cmp r0, 0 beq _081A4010 b _081A402A .pool _081A4008: cmp r0, 0x3 bgt _081A402A movs r0, 0x2 b _081A4028 _081A4010: movs r1, 0x3 str r1, [sp, 0x2C] b _081A402A _081A4016: ldr r0, =0x000040cf bl VarGet lsls r0, 16 movs r1, 0x3 str r1, [sp, 0x2C] cmp r0, 0 bne _081A402A movs r0, 0x4 _081A4028: str r0, [sp, 0x2C] _081A402A: movs r1, 0 mov r9, r1 b _081A4040 .pool _081A4034: mov r1, r10 ldrb r0, [r1] ldr r1, [sp, 0x2C] cmp r0, r1 blt _081A4040 b _081A41E0 _081A4040: mov r5, r9 movs r0, 0 mov r1, r10 strb r0, [r1] mov r0, r9 adds r0, 0x1 str r0, [sp, 0x30] _081A404E: movs r0, 0x64 adds r4, r5, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 adds r0, r4, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r7, r0, 16 adds r0, r4, 0 movs r1, 0x38 bl GetMonData lsls r0, 24 lsrs r6, r0, 24 adds r0, r4, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bne _081A40C8 cmp r7, 0 bne _081A40E4 ldr r0, =gScriptResult ldrb r3, [r0] str r6, [sp] add r1, sp, 0x10 str r1, [sp, 0x4] add r0, sp, 0x1C str r0, [sp, 0x8] mov r0, r10 str r0, [sp, 0xC] mov r0, r8 movs r1, 0 adds r2, r4, 0 bl sub_81A3EF0 b _081A40E4 .pool _081A40C8: ldr r0, =gScriptResult ldrb r3, [r0] str r6, [sp] add r1, sp, 0x10 str r1, [sp, 0x4] add r0, sp, 0x1C str r0, [sp, 0x8] mov r0, r10 str r0, [sp, 0xC] mov r0, r8 adds r1, r7, 0 adds r2, r4, 0 bl sub_81A3EF0 _081A40E4: adds r5, 0x1 cmp r5, 0x5 ble _081A40EC movs r5, 0 _081A40EC: cmp r5, r9 bne _081A404E ldr r1, [sp, 0x30] mov r9, r1 cmp r1, 0x5 ble _081A4034 mov r1, r10 ldrb r0, [r1] ldr r1, [sp, 0x2C] cmp r0, r1 bge _081A41E0 movs r6, 0 ldr r0, =gUnknown_08611C9A ldrh r2, [r0] ldr r1, =0x0000ffff mov r8, r0 cmp r2, r1 beq _081A4134 mov r4, r8 _081A4112: adds r0, r2, 0 bl SpeciesToNationalPokedexNum lsls r0, 16 lsrs r0, 16 movs r1, 0x1 bl pokedex_flag_operation lsls r0, 24 cmp r0, 0 beq _081A412A adds r6, 0x1 _081A412A: adds r4, 0x2 ldrh r2, [r4] ldr r0, =0x0000ffff cmp r2, r0 bne _081A4112 _081A4134: ldr r1, =gStringVar1 movs r0, 0xFF strb r0, [r1] ldr r1, =gSpecialVar_0x8004 movs r0, 0x1 strh r0, [r1] movs r0, 0 mov r1, r10 strb r0, [r1] mov r1, r8 ldrh r0, [r1] ldr r1, =0x0000ffff cmp r0, r1 beq _081A416A mov r5, r10 adds r7, r1, 0 mov r4, r8 _081A4156: ldrh r0, [r4] ldrb r1, [r5] adds r2, r6, 0 bl sub_81A3DD0 strb r0, [r5] adds r4, 0x2 ldrh r0, [r4] cmp r0, r7 bne _081A4156 _081A416A: mov r0, r10 ldrb r4, [r0] cmp r4, 0 bne _081A41A4 ldr r4, =gStringVar1 ldr r1, =gUnknown_085CCB82 adds r0, r4, 0 bl StringAppend ldr r1, =gUnknown_085CCB88 adds r0, r4, 0 bl StringAppend b _081A4202 .pool _081A41A4: movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081A41C0 ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB84 bl StringAppend b _081A41C8 .pool _081A41C0: ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB82 bl StringAppend _081A41C8: ldr r0, =gStringVar1 ldr r1, =gUnknown_085CCB8C bl StringAppend b _081A4202 .pool _081A41E0: ldr r1, =gSpecialVar_0x8004 movs r0, 0 strh r0, [r1] ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gScriptResult ldrb r0, [r0] ldr r1, =0x00000ca9 adds r2, r1 movs r1, 0x3 ands r1, r0 ldrb r3, [r2] movs r0, 0x4 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] _081A4202: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A3FD4 thumb_func_start sub_81A4224 sub_81A4224: @ 81A4224 push {lr} bl sub_81652B4 pop {r0} bx r0 thumb_func_end sub_81A4224 thumb_func_start sub_81A4230 sub_81A4230: @ 81A4230 push {r4-r7,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r4, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x6 bls _081A425A b _081A4394 _081A425A: lsls r0, 2 ldr r1, =_081A4278 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A4278: .4byte _081A4294 .4byte _081A42DC .4byte _081A431C .4byte _081A4338 .4byte _081A434C .4byte _081A4368 .4byte _081A437C _081A4294: ldr r7, =gSaveBlock2Ptr ldr r0, [r7] lsls r4, 1 lsls r1, r5, 2 adds r1, r4, r1 movs r6, 0xCE lsls r6, 4 adds r3, r0, r6 adds r2, r3, r1 ldrh r1, [r2] ldr r0, =0x0000270e cmp r1, r0 bhi _081A4394 adds r0, r1, 0x1 strh r0, [r2] cmp r5, 0 bne _081A4394 adds r0, r3, r4 ldrh r1, [r0] movs r0, 0x20 bl sav12_xor_set ldr r1, [r7] adds r0, r1, r6 adds r0, r4 ldrh r0, [r0] ldr r2, =0x00000d02 adds r1, r2 b _081A4392 .pool _081A42DC: ldr r6, =gSaveBlock2Ptr ldr r0, [r6] lsls r2, r4, 1 lsls r1, r5, 2 adds r1, r2, r1 ldr r3, =0x00000d0c adds r0, r3 adds r3, r0, r1 ldrh r0, [r3] ldr r2, =0x0000270e cmp r0, r2 bhi _081A42F8 adds r0, 0x1 strh r0, [r3] _081A42F8: ldr r0, [r6] ldr r3, =0x00000d1c adds r0, r3 adds r1, r0, r1 ldrh r0, [r1] cmp r0, r2 bhi _081A4394 adds r0, 0x1 b _081A4392 .pool _081A431C: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] lsls r0, r4, 1 lsls r1, r5, 2 adds r0, r1 ldr r1, =0x00000dc8 adds r2, r1 adds r1, r2, r0 b _081A4388 .pool _081A4338: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000dda adds r0, r2 b _081A4386 .pool _081A434C: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] lsls r0, r4, 1 lsls r1, r5, 2 adds r0, r1 ldr r3, =0x00000de2 adds r2, r3 adds r1, r2, r0 b _081A4388 .pool _081A4368: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000e04 adds r0, r2 b _081A4386 .pool _081A437C: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r3, =0x00000e1a adds r0, r3 _081A4386: adds r1, r0, r1 _081A4388: ldrh r3, [r1] ldr r0, =0x0000270e cmp r3, r0 bhi _081A4394 adds r0, r3, 0x1 _081A4392: strh r0, [r1] _081A4394: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A4230 thumb_func_start sub_81A43A8 sub_81A43A8: @ 81A43A8 push {r4-r6,lr} sub sp, 0x4 movs r4, 0 ldr r6, =gSaveBlock1Ptr movs r5, 0x64 _081A43B2: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000caa adds r0, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 beq _081A43EE adds r1, r0, 0 muls r1, r5 movs r0, 0xEA lsls r0, 1 adds r1, r0 ldr r0, [r6] adds r0, r1 movs r1, 0xC movs r2, 0 bl GetMonData mov r1, sp strh r0, [r1] adds r0, r4, 0 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC mov r2, sp bl SetMonData _081A43EE: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081A43B2 add sp, 0x4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A43A8 thumb_func_start sub_81A4410 sub_81A4410: @ 81A4410 push {r4,lr} ldr r4, =gScriptResult bl sub_8185338 strh r0, [r4] ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x8 orrs r0, r2 strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A4410 thumb_func_start sub_81A443C sub_81A443C: @ 81A443C push {lr} ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _081A4450 cmp r0, 0x1 beq _081A4464 b _081A446E .pool _081A4450: ldr r0, =gStringVar1 ldr r1, =gTrainerBattleOpponent_A ldrh r1, [r1] bl sub_8162E20 b _081A446E .pool _081A4464: ldr r0, =gStringVar2 ldr r1, =gTrainerBattleOpponent_A ldrh r1, [r1] bl sub_8162E20 _081A446E: pop {r0} bx r0 .pool thumb_func_end sub_81A443C thumb_func_start sub_81A447C sub_81A447C: @ 81A447C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r0, 0 str r0, [sp] _081A448C: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, [sp] lsls r1, r2, 1 ldr r4, =0x00000caa adds r0, r4 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r1 adds r2, 0x1 str r2, [sp, 0x4] cmp r0, 0x5 bhi _081A454E movs r6, 0 ldr r0, [sp] movs r2, 0x64 adds r1, r0, 0 muls r1, r2 ldr r0, =gPlayerParty adds r7, r1, r0 _081A44BA: movs r5, 0 movs r4, 0xD adds r4, r6 mov r8, r4 adds r0, r6, 0x1 mov r10, r0 _081A44C6: ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000caa adds r0, r2 add r0, r9 ldrh r0, [r0] movs r4, 0x64 adds r1, r0, 0 muls r1, r4 movs r0, 0xEA lsls r0, 1 adds r1, r0 ldr r2, =gSaveBlock1Ptr ldr r0, [r2] adds r0, r1 adds r1, r5, 0 adds r1, 0xD movs r2, 0 bl GetMonData adds r4, r0, 0 adds r0, r7, 0 mov r1, r8 movs r2, 0 bl GetMonData cmp r4, r0 beq _081A4508 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081A44C6 _081A4508: cmp r5, 0x4 bne _081A4516 adds r0, r7, 0 movs r1, 0xA6 adds r2, r6, 0 bl SetMonMoveSlot _081A4516: mov r4, r10 lsls r0, r4, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _081A44BA ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =gSaveBlock2Ptr ldr r1, [r2] ldr r4, =0x00000caa adds r1, r4 add r1, r9 ldrh r1, [r1] subs r1, 0x1 movs r3, 0x64 muls r1, r3 adds r0, r1 movs r1, 0x8E lsls r1, 2 adds r0, r1 ldr r2, =gPlayerParty ldr r4, [sp] adds r1, r4, 0 muls r1, r3 adds r1, r2 movs r2, 0x64 bl memcpy _081A454E: ldr r1, [sp, 0x4] lsls r0, r1, 24 lsrs r0, 24 str r0, [sp] cmp r0, 0x3 bls _081A448C add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A447C thumb_func_start sub_81A457C sub_81A457C: @ 81A457C push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 24 lsrs r0, 24 bl sub_81A5030 pop {r0} bx r0 .pool thumb_func_end sub_81A457C thumb_func_start sub_81A4594 sub_81A4594: @ 81A4594 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C mov r8, r1 adds r6, r3, 0 ldr r1, =gUnknown_0203AB74 ldrb r5, [r1] lsls r4, r0, 1 adds r4, r0 ldr r1, =gUnknown_085EE424 adds r4, r1 mov r1, r8 lsls r3, r1, 27 lsrs r3, 24 lsls r1, r0, 2 adds r1, r0 adds r2, r1 lsls r2, 3 adds r2, 0x1 lsls r2, 24 lsrs r7, r2, 24 str r7, [sp] movs r0, 0xFF mov r10, r0 str r0, [sp, 0x4] movs r1, 0 mov r9, r1 str r1, [sp, 0x8] adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl PrintTextOnWindow movs r0, 0xFF strb r0, [r6, 0xD] ldrh r0, [r6, 0x4] cmp r0, 0 beq _081A465C adds r1, r6, 0x6 ldrb r2, [r6, 0xE] add r0, sp, 0xC bl sub_81DB5E8 ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] mov r3, r8 adds r3, 0x2 lsls r3, 27 lsrs r3, 24 str r7, [sp] mov r1, r10 str r1, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC bl PrintTextOnWindow ldrh r1, [r6, 0x4] ldr r0, =0x0000270f cmp r1, r0 bls _081A4618 adds r1, r0, 0 _081A4618: ldr r0, =gStringVar2 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 ldr r1, =gUnknown_08611D08 ldr r0, [sp, 0x4C] lsls r0, 2 adds r0, r1 ldr r4, [r0] adds r0, r5, 0 adds r1, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 adds r1, r4, 0 movs r2, 0xC8 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] str r7, [sp] mov r1, r10 str r1, [sp, 0x4] mov r1, r9 str r1, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow _081A465C: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A4594 thumb_func_start sub_81A4684 sub_81A4684: @ 81A4684 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C adds r6, r0, 0 adds r7, r1, 0 mov r10, r2 adds r5, r3, 0 ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] lsls r2, r6, 1 adds r2, r6 ldr r1, =gUnknown_085EE424 adds r2, r1 lsls r3, r7, 27 lsrs r3, 24 mov r12, r3 lsls r1, r6, 2 adds r1, r6 mov r3, r10 adds r4, r3, r1 lsls r1, r4, 3 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] movs r1, 0xFF mov r9, r1 str r1, [sp, 0x4] movs r3, 0 mov r8, r3 str r3, [sp, 0x8] movs r1, 0x1 mov r3, r12 bl PrintTextOnWindow ldrh r0, [r5, 0x8] cmp r0, 0 beq _081A47BC movs r0, 0xFF strb r0, [r5, 0x11] movs r0, 0x1 negs r0, r0 strb r0, [r5, 0x19] adds r1, r5, 0 adds r1, 0xA ldrb r2, [r5, 0x1A] add r0, sp, 0xC bl sub_81DB5E8 ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] adds r3, r7, 0x2 lsls r3, 27 lsrs r3, 24 subs r1, r4, 0x1 lsls r1, 3 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] mov r2, r9 str r2, [sp, 0x4] mov r1, r8 str r1, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC bl PrintTextOnWindow adds r4, r5, 0 adds r4, 0x12 adds r0, r4, 0 bl sub_8009228 cmp r0, 0 beq _081A4734 add r0, sp, 0xC adds r1, r4, 0 movs r2, 0x1 bl sub_81DB5E8 b _081A473C .pool _081A4734: add r0, sp, 0xC adds r1, r4, 0 bl StringCopy _081A473C: ldr r2, =gUnknown_0203AB74 mov r9, r2 ldrb r0, [r2] adds r3, r7, 0x4 lsls r3, 27 lsrs r3, 24 lsls r1, r6, 2 adds r1, r6 mov r2, r10 adds r6, r2, r1 adds r1, r6, 0x1 lsls r1, 3 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] movs r1, 0xFF mov r8, r1 str r1, [sp, 0x4] movs r7, 0 str r7, [sp, 0x8] movs r1, 0x1 add r2, sp, 0xC bl PrintTextOnWindow ldrh r1, [r5, 0x8] ldr r0, =0x0000270f cmp r1, r0 bls _081A4778 adds r1, r0, 0 _081A4778: ldr r0, =gStringVar2 movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r5, =gStringVar4 ldr r0, =gUnknown_08611D08 ldr r4, [r0, 0x24] adds r0, r5, 0 adds r1, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 adds r1, r4, 0 movs r2, 0xC8 bl GetStringRightAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 mov r2, r9 ldrb r0, [r2] lsls r1, r6, 3 adds r1, 0x1 lsls r1, 24 lsrs r1, 24 str r1, [sp] mov r1, r8 str r1, [sp, 0x4] str r7, [sp, 0x8] movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow _081A47BC: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A4684 thumb_func_start sub_81A47E0 sub_81A47E0: @ 81A47E0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 mov r9, r0 mov r10, r1 str r2, [sp, 0x40] movs r0, 0xAC lsls r0, 1 bl AllocZeroed mov r8, r0 bl sub_80E8260 add r0, sp, 0x30 mov r12, r0 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r3, [sp, 0x40] lsls r1, r3, 1 adds r1, r3 lsls r1, 4 mov r4, r10 lsls r0, r4, 1 add r0, r10 lsls r0, 5 adds r1, r0 adds r4, r1, r2 mov r3, sp movs r2, 0x2 _081A4820: adds r0, r3, 0 movs r5, 0x87 lsls r5, 2 adds r1, r4, r5 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r1] str r1, [r0] adds r4, 0x10 adds r3, 0x10 subs r2, 0x1 cmp r2, 0 bge _081A4820 ldr r6, [sp, 0x40] lsls r0, r6, 4 mov r7, r10 lsls r1, r7, 5 adds r0, r1 mov r1, r12 add r0, r8 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldr r0, [r0] str r0, [r1] movs r2, 0 _081A4852: movs r1, 0 movs r4, 0 movs r3, 0 lsls r5, r2, 4 adds r6, r2, 0x1 mov r2, sp _081A485E: ldrh r0, [r2, 0x4] cmp r0, r1 ble _081A4868 adds r4, r3, 0 adds r1, r0, 0 _081A4868: adds r2, 0x10 adds r3, 0x1 cmp r3, 0x3 ble _081A485E mov r0, sp ldrh r0, [r0, 0x34] cmp r0, r1 blt _081A487A movs r4, 0x3 _081A487A: lsls r0, r4, 4 mov r7, sp adds r2, r7, r0 mov r0, r9 adds r1, r5, r0 adds r0, r2, 0 ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, [r0] str r0, [r1] movs r0, 0 strh r0, [r2, 0x4] adds r2, r6, 0 cmp r2, 0x2 ble _081A4852 mov r0, r8 bl Free add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A47E0 thumb_func_start sub_81A48B4 sub_81A48B4: @ 81A48B4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x74 mov r9, r0 mov r10, r1 movs r0, 0xAC lsls r0, 1 bl AllocZeroed mov r8, r0 bl sub_80E8260 mov r0, sp adds r0, 0x54 str r0, [sp, 0x70] add r1, sp, 0x5C mov r12, r1 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0x54 mov r2, r10 muls r2, r0 adds r0, r2, 0 adds r3, r0, r1 mov r2, sp movs r4, 0x2 _081A48EE: adds r0, r2, 0 ldr r5, =0x0000057c adds r1, r3, r5 ldm r1!, {r5-r7} stm r0!, {r5-r7} ldm r1!, {r5-r7} stm r0!, {r5-r7} ldr r1, [r1] str r1, [r0] adds r3, 0x1C adds r2, 0x1C subs r4, 0x1 cmp r4, 0 bge _081A48EE mov r6, r10 lsls r0, r6, 3 subs r0, r6 lsls r0, 2 add r0, r8 ldr r1, [sp, 0x70] movs r7, 0x90 lsls r7, 1 adds r0, r7 ldm r0!, {r2-r4} stm r1!, {r2-r4} ldm r0!, {r5-r7} stm r1!, {r5-r7} ldr r0, [r0] str r0, [r1] movs r4, 0 _081A492A: movs r1, 0 movs r5, 0 movs r3, 0 lsls r6, r4, 3 adds r7, r4, 0x1 mov r2, sp _081A4936: ldrh r0, [r2, 0x8] cmp r0, r1 ble _081A4940 adds r5, r3, 0 adds r1, r0, 0 _081A4940: adds r2, 0x1C adds r3, 0x1 cmp r3, 0x2 ble _081A4936 mov r2, r12 ldrh r0, [r2] cmp r0, r1 blt _081A4952 movs r5, 0x3 _081A4952: subs r1, r6, r4 lsls r1, 2 lsls r0, r5, 3 subs r0, r5 lsls r0, 2 mov r3, sp adds r2, r3, r0 add r1, r9 adds r0, r2, 0 ldm r0!, {r4-r6} stm r1!, {r4-r6} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, [r0] str r0, [r1] movs r0, 0 strh r0, [r2, 0x8] adds r4, r7, 0 cmp r4, 0x2 ble _081A492A mov r0, r8 bl Free add sp, 0x74 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A48B4 thumb_func_start sub_81A4998 sub_81A4998: @ 81A4998 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x94 adds r7, r0, 0 str r1, [sp, 0x90] ldr r0, =gStringVar1 ldr r4, =gUnknown_08611CB0 lsls r5, r7, 3 adds r1, r5, r4 ldr r1, [r1] bl StringCopy ldr r6, =gStringVar4 adds r4, 0x4 adds r5, r4 ldr r1, [r5] adds r0, r6, 0 bl StringExpandPlaceholders ldr r0, =gUnknown_0203AB74 mov r8, r0 ldrb r0, [r0] movs r1, 0x1 mov r10, r1 str r1, [sp] movs r2, 0xFF mov r9, r2 str r2, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] adds r2, r6, 0 movs r3, 0 bl PrintTextOnWindow ldr r1, =gUnknown_08611D00 ldr r2, [sp, 0x90] lsls r0, r2, 2 adds r0, r1 ldr r4, [r0] movs r0, 0x1 adds r1, r4, 0 movs r2, 0xD0 bl GetStringRightAlignXOffset adds r3, r0, 0 mov r1, r8 ldrb r0, [r1] lsls r3, 24 lsrs r3, 24 mov r2, r10 str r2, [sp] mov r1, r9 str r1, [sp, 0x4] str r5, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 bl PrintTextOnWindow cmp r7, 0x9 bne _081A4A6C ldr r2, =gSaveBlock2Ptr ldr r0, [r2] ldr r1, =0x00000ee8 adds r0, r1 movs r1, 0xFF strb r1, [r0] ldr r0, [r2] movs r2, 0xEF lsls r2, 4 adds r0, r2 movs r1, 0x1 negs r1, r1 strb r1, [r0] add r4, sp, 0x3C adds r0, r4, 0 ldr r1, [sp, 0x90] bl sub_81A48B4 _081A4A3A: adds r0, r5, 0 movs r1, 0x1 movs r2, 0x4 adds r3, r4, 0 bl sub_81A4684 adds r4, 0x1C adds r5, 0x1 cmp r5, 0x2 ble _081A4A3A b _081A4A90 .pool _081A4A6C: add r0, sp, 0xC adds r1, r7, 0 ldr r2, [sp, 0x90] bl sub_81A47E0 movs r5, 0 add r4, sp, 0xC _081A4A7A: str r7, [sp] adds r0, r5, 0 movs r1, 0x1 movs r2, 0x4 adds r3, r4, 0 bl sub_81A4594 adds r4, 0x10 adds r5, 0x1 cmp r5, 0x2 ble _081A4A7A _081A4A90: add sp, 0x94 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81A4998 thumb_func_start sub_81A4AA0 sub_81A4AA0: @ 81A4AA0 push {r4,lr} ldr r4, =gUnknown_0203AB74 ldr r0, =gUnknown_08611C84 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 bl sub_81973FC ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] movs r1, 0 bl sub_81A4998 ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] movs r1, 0x3 bl CopyWindowToVram pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A4AA0 thumb_func_start sub_81A4AE8 sub_81A4AE8: @ 81A4AE8 push {r4,lr} ldr r4, =gUnknown_0203AB74 ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] movs r1, 0x1 bl sub_81A4998 ldrb r0, [r4] movs r1, 0x2 bl CopyWindowToVram pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A4AE8 thumb_func_start sub_81A4B14 sub_81A4B14: @ 81A4B14 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r1, 0 ldr r3, =gSaveBlock2Ptr _081A4B24: movs r6, 0 lsls r0, r1, 1 adds r2, r1, 0x1 mov r10, r2 adds r0, r1 lsls r0, 5 mov r8, r0 movs r7, 0 movs r0, 0x87 lsls r0, 2 add r0, r8 mov r9, r0 _081A4B3C: movs r5, 0 adds r2, r7, 0 mov r1, r8 adds r4, r7, r1 _081A4B44: ldr r0, [r3] add r0, r9 adds r0, r2 lsls r1, r5, 4 adds r0, r1 movs r1, 0 str r2, [sp] str r3, [sp, 0x4] bl CopyUnalignedWord ldr r3, [sp, 0x4] ldr r0, [r3] adds r0, r4 ldr r1, =0x00000222 adds r0, r1 movs r1, 0xFF strb r1, [r0] ldr r0, [r3] adds r0, r4 movs r1, 0x88 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] adds r4, 0x10 adds r5, 0x1 ldr r2, [sp] cmp r5, 0x2 ble _081A4B44 adds r7, 0x30 adds r6, 0x1 cmp r6, 0x1 ble _081A4B3C mov r1, r10 cmp r1, 0x8 ble _081A4B24 movs r6, 0 ldr r7, =gSaveBlock2Ptr movs r2, 0x54 mov r10, r2 movs r3, 0xFF mov r9, r3 _081A4B98: adds r0, r6, 0x1 mov r8, r0 mov r1, r10 muls r1, r6 movs r0, 0x54 adds r4, r6, 0 muls r4, r0 movs r2, 0 ldr r3, =0x0000057c adds r6, r1, r3 movs r5, 0x2 _081A4BAE: ldr r0, [r7] adds r0, r6 adds r0, r2 movs r1, 0 str r2, [sp] bl CopyUnalignedWord ldr r0, [r7] adds r0, r6 ldr r2, [sp] adds r0, r2 adds r0, 0x4 movs r1, 0 bl CopyUnalignedWord ldr r1, [r7] adds r1, r4 ldr r0, =0x00000586 adds r1, r0 ldrb r0, [r1] mov r3, r9 orrs r0, r3 strb r0, [r1] ldr r1, [r7] adds r1, r4 ldr r0, =0x0000058e adds r1, r0 ldrb r0, [r1] orrs r0, r3 strb r0, [r1] ldr r0, [r7] adds r0, r4 ldr r1, =0x00000584 adds r0, r1 movs r1, 0 strh r1, [r0] adds r4, 0x1C ldr r2, [sp] adds r2, 0x1C subs r5, 0x1 cmp r5, 0 bge _081A4BAE mov r6, r8 cmp r6, 0x1 ble _081A4B98 add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A4B14 thumb_func_start sub_81A4C30 sub_81A4C30: @ 81A4C30 push {r4-r7,lr} mov r7, r8 push {r7} movs r0, 0x96 lsls r0, 2 bl AllocZeroed adds r7, r0, 0 adds r4, r7, 0 movs r5, 0 movs r0, 0xFA lsls r0, 1 adds r6, r7, r0 ldr r0, =gPlayerParty mov r8, r0 _081A4C4E: mov r0, r8 adds r1, r5, r0 adds r0, r4, 0 movs r2, 0x64 bl memcpy adds r4, 0x64 adds r5, 0x64 cmp r4, r6 ble _081A4C4E ldr r4, =gPlayerPartyCount ldrb r5, [r4] bl copy_player_party_from_sav1 bl sub_8076D5C movs r0, 0x1 bl TrySavingData bl sav2_gender2_inplace_and_xFE strb r5, [r4] adds r4, r7, 0 ldr r5, =gPlayerParty movs r0, 0xFA lsls r0, 1 adds r6, r7, r0 _081A4C84: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x64 bl memcpy adds r4, 0x64 adds r5, 0x64 cmp r4, r6 ble _081A4C84 adds r0, r7, 0 bl Free pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A4C30 thumb_func_start sub_81A4CB0 sub_81A4CB0: @ 81A4CB0 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _081A4CD0 bl sub_8185EA0 lsls r0, 24 lsrs r0, 24 b _081A4CDA .pool _081A4CD0: ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 _081A4CDA: ldr r2, =gTrainers ldr r1, =gUnknown_08611D30 lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x3] pop {r1} bx r1 .pool thumb_func_end sub_81A4CB0 thumb_func_start sub_81A4D00 sub_81A4D00: @ 81A4D00 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _081A4D20 bl sub_8185EA0 lsls r0, 24 lsrs r0, 24 b _081A4D2A .pool _081A4D20: ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 _081A4D2A: ldr r2, =gTrainers ldr r1, =gUnknown_08611D30 lsls r0, 1 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x1] pop {r1} bx r1 .pool thumb_func_end sub_81A4D00 thumb_func_start sub_81A4D50 sub_81A4D50: @ 81A4D50 push {r4,lr} adds r4, r0, 0 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _081A4D70 bl sub_8185EA0 lsls r0, 24 lsrs r0, 24 b _081A4D7A .pool _081A4D70: ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 _081A4D7A: movs r3, 0 lsls r0, 1 ldr r2, =gTrainers ldr r1, =gUnknown_08611D30 adds r0, r1 ldrh r1, [r0] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x4 adds r2, r0, r2 _081A4D90: adds r1, r4, r3 ldrb r0, [r2] strb r0, [r1] adds r2, 0x1 adds r3, 0x1 cmp r3, 0x6 ble _081A4D90 adds r1, r4, r3 movs r0, 0xFF strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A4D50 thumb_func_start sub_81A4DB8 sub_81A4DB8: @ 81A4DB8 push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 ldr r1, =gUnknown_08611C8C lsrs r0, 15 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] pop {r1} bx r1 .pool thumb_func_end sub_81A4DB8 thumb_func_start sub_81A4DD8 sub_81A4DD8: @ 81A4DD8 push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 ldr r2, =0x00004010 ldr r1, =gUnknown_08611C8C lsrs r0, 15 adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 bl VarSet pop {r0} bx r0 .pool thumb_func_end sub_81A4DD8 thumb_func_start sub_81A4E04 sub_81A4E04: @ 81A4E04 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x44 ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x20] bl sub_81A513C str r0, [sp, 0x24] ldr r0, [sp, 0x20] cmp r0, 0x1 bne _081A4E44 ldr r0, =0x000003fe bl sub_81953A0 lsls r0, 16 lsrs r0, 16 bl sub_818FC78 adds r4, r0, 0 b _081A4E46 .pool _081A4E44: movs r4, 0x7 _081A4E46: bl ZeroEnemyPartyMons movs r1, 0 str r1, [sp, 0x18] bl sub_8165C40 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x1C] movs r2, 0 str r2, [sp, 0x14] _081A4E5C: movs r0, 0x1 ands r0, r4 asrs r4, 1 str r4, [sp, 0x30] ldr r3, [sp, 0x14] adds r3, 0x1 str r3, [sp, 0x28] cmp r0, 0 bne _081A4E70 b _081A4FC4 _081A4E70: ldr r4, [sp, 0x14] lsls r4, 2 mov r9, r4 ldr r0, [sp, 0x24] lsls r0, 4 str r0, [sp, 0x38] ldr r1, [sp, 0x20] lsls r1, 4 str r1, [sp, 0x34] ldr r2, [sp, 0x1C] lsls r2, 24 str r2, [sp, 0x3C] ldr r3, [sp, 0x18] adds r3, 0x1 str r3, [sp, 0x2C] ldr r0, [sp, 0x14] add r0, r9 lsls r0, 2 mov r8, r0 _081A4E96: bl Random adds r4, r0, 0 bl Random lsls r4, 16 lsrs r7, r4, 16 lsls r0, 16 orrs r7, r0 ldr r0, =0x0000ef2a adds r1, r7, 0 bl IsShinyOtIdPersonality lsls r0, 24 cmp r0, 0 bne _081A4E96 ldr r4, [sp, 0x38] ldr r1, [sp, 0x24] subs r0, r4, r1 lsls r5, r0, 2 mov r2, r8 adds r4, r2, r5 ldr r3, [sp, 0x34] ldr r1, [sp, 0x20] subs r0, r3, r1 lsls r6, r0, 3 adds r4, r6 ldr r2, =gUnknown_0861156C adds r4, r2 adds r0, r7, 0 bl GetNatureFromPersonality ldrb r1, [r4, 0x5] lsls r0, 24 lsrs r0, 24 cmp r1, r0 bne _081A4E96 ldr r4, [sp, 0x18] movs r0, 0x64 adds r3, r4, 0 muls r3, r0 mov r8, r3 ldr r1, =gEnemyParty add r1, r8 mov r10, r1 ldr r4, [sp, 0x14] add r4, r9 lsls r4, 2 adds r0, r4, r5 adds r0, r6 ldr r2, =gUnknown_0861156C adds r0, r2 ldrh r1, [r0] ldr r3, [sp, 0x3C] lsrs r2, r3, 24 ldrb r3, [r0, 0x4] movs r0, 0x1 str r0, [sp] str r7, [sp, 0x4] str r0, [sp, 0x8] ldr r0, =0x0000ef2a str r0, [sp, 0xC] mov r0, r10 bl CreateMon ldr r0, =gUnknown_0861156C adds r5, r0 adds r5, r6, r5 adds r4, r5, r4 adds r4, 0x2 mov r0, r10 movs r1, 0xC adds r2, r4, 0 bl SetMonData movs r7, 0 mov r6, r8 ldr r3, =gEnemyParty _081A4F32: adds r1, r7, 0 adds r1, 0x1A ldr r0, [sp, 0x14] add r0, r9 lsls r4, r0, 2 adds r2, r5, r4 adds r0, r7, 0x6 adds r2, r0 adds r0, r6, r3 str r3, [sp, 0x40] bl SetMonData adds r7, 0x1 ldr r3, [sp, 0x40] cmp r7, 0x5 ble _081A4F32 movs r1, 0xFF add r0, sp, 0x10 strb r1, [r0] movs r7, 0 ldr r1, [sp, 0x18] movs r2, 0x64 adds r6, r1, 0 muls r6, r2 ldr r3, =gUnknown_08611578 mov r8, r3 ldr r3, =gEnemyParty adds r5, r4, 0 _081A4F6A: ldr r4, [sp, 0x38] ldr r0, [sp, 0x24] subs r1, r4, r0 lsls r1, 2 adds r1, r5, r1 ldr r2, [sp, 0x34] ldr r4, [sp, 0x20] subs r0, r2, r4 lsls r0, 3 adds r1, r0 add r1, r8 ldrh r4, [r1] lsls r2, r7, 24 lsrs r2, 24 adds r0, r6, r3 adds r1, r4, 0 str r3, [sp, 0x40] bl SetMonMoveSlot ldr r3, [sp, 0x40] cmp r4, 0xDA bne _081A4F9C movs r1, 0 add r0, sp, 0x10 strb r1, [r0] _081A4F9C: adds r5, 0x2 adds r7, 0x1 cmp r7, 0x3 ble _081A4F6A ldr r0, [sp, 0x18] movs r1, 0x64 adds r4, r0, 0 muls r4, r1 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x20 add r2, sp, 0x10 bl SetMonData adds r0, r4, 0 bl CalculateMonStats ldr r2, [sp, 0x2C] str r2, [sp, 0x18] _081A4FC4: ldr r4, [sp, 0x30] ldr r3, [sp, 0x28] str r3, [sp, 0x14] cmp r3, 0x2 bgt _081A4FD0 b _081A4E5C _081A4FD0: add sp, 0x44 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A4E04 thumb_func_start sub_81A4FF0 sub_81A4FF0: @ 81A4FF0 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =0x000040cf bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 bl sub_81A513C ldr r3, =gUnknown_0861156C lsls r2, r4, 2 adds r2, r4 lsls r1, r0, 4 subs r1, r0 adds r1, r2 lsls r1, 2 lsls r0, r5, 4 subs r0, r5 lsls r0, 3 adds r1, r0 adds r1, r3 ldrh r0, [r1] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81A4FF0 thumb_func_start sub_81A5030 sub_81A5030: @ 81A5030 push {lr} lsls r0, 24 ldr r2, =gTrainerBattleOpponent_A ldr r3, =0x000003fe adds r1, r3, 0 strh r1, [r2] ldr r2, =0x00004010 ldr r1, =gUnknown_08611C8C lsrs r0, 23 adds r0, r1 ldrb r1, [r0] adds r0, r2, 0 bl VarSet pop {r0} bx r0 .pool thumb_func_end sub_81A5030 thumb_func_start sub_81A5060 sub_81A5060: @ 81A5060 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 ldr r0, =0x000040cf bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 bl sub_81A513C ldr r2, =gUnknown_0861156C lsls r4, 1 lsls r1, r6, 2 adds r1, r6 lsls r1, 2 adds r4, r1 lsls r1, r0, 4 subs r1, r0 lsls r1, 2 adds r4, r1 lsls r0, r5, 4 subs r0, r5 lsls r0, 3 adds r4, r0 adds r2, 0xC adds r4, r2 ldrh r0, [r4] pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81A5060 thumb_func_start sub_81A50B0 sub_81A50B0: @ 81A50B0 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =0x000040cf bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 bl sub_81A513C ldr r3, =gUnknown_0861156C lsls r2, r4, 2 adds r2, r4 lsls r1, r0, 4 subs r1, r0 adds r1, r2 lsls r1, 2 lsls r0, r5, 4 subs r0, r5 lsls r0, 3 adds r1, r0 adds r1, r3 ldrb r0, [r1, 0x5] pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81A50B0 thumb_func_start sub_81A50F0 sub_81A50F0: @ 81A50F0 push {r4-r6,lr} adds r6, r0, 0 adds r4, r1, 0 lsls r6, 24 lsrs r6, 24 lsls r4, 24 lsrs r4, 24 ldr r0, =0x000040cf bl VarGet adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 bl sub_81A513C ldr r2, =gUnknown_0861156C lsls r1, r6, 2 adds r1, r6 lsls r1, 2 adds r4, r1 lsls r1, r0, 4 subs r1, r0 lsls r1, 2 adds r4, r1 lsls r0, r5, 4 subs r0, r5 lsls r0, 3 adds r4, r0 adds r2, 0x6 adds r4, r2 ldrb r0, [r4] pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81A50F0 thumb_func_start sub_81A513C sub_81A513C: @ 81A513C push {r4,r5,lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r5, r0, 16 lsls r0, r5, 24 lsrs r0, 24 bl sub_81A3B30 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bne _081A51A0 bl sub_81A39C4 lsls r0, 16 ldr r3, =gUnknown_08611550 lsls r2, r5, 2 adds r1, r3, 0x3 adds r1, r2, r1 lsrs r0, 16 ldrb r1, [r1] adds r1, r0, r1 adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 bne _081A5180 movs r4, 0 b _081A51A0 .pool _081A5180: adds r0, r3, 0x1 adds r0, r2, r0 ldrb r0, [r0] cmp r1, r0 beq _081A519E cmp r1, r0 ble _081A51A0 subs r0, r1, r0 adds r1, r3, 0x2 adds r1, r2, r1 ldrb r1, [r1] bl __modsi3 cmp r0, 0 bne _081A51A0 _081A519E: movs r4, 0x1 _081A51A0: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81A513C thumb_func_start sub_81A51A8 sub_81A51A8: @ 81A51A8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 17 ands r0, r1 cmp r0, 0 beq _081A51D4 bl sub_8185EA0 lsls r0, 24 lsrs r4, r0, 24 bl sub_8185EAC lsls r0, 24 lsrs r1, r0, 24 b _081A51E4 .pool _081A51D4: ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r4, r0, 16 bl sub_81A513C adds r1, r0, 0 _081A51E4: cmp r5, 0 beq _081A51F4 cmp r5, 0x1 beq _081A5214 b _081A5228 .pool _081A51F4: ldr r0, =gStringVar4 ldr r2, =gUnknown_08611DB0 lsls r1, 2 adds r1, r2 ldr r2, [r1] lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] bl StringCopy b _081A5228 .pool _081A5214: ldr r0, =gStringVar4 ldr r2, =gUnknown_08611DB8 lsls r1, 2 adds r1, r2 ldr r2, [r1] lsls r1, r4, 2 adds r1, r2 ldr r1, [r1] bl StringCopy _081A5228: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A51A8 thumb_func_start sub_81A5238 sub_81A5238: @ 81A5238 push {lr} ldr r1, =gUnknown_08611F84 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81A5238 thumb_func_start sub_81A5258 sub_81A5258: @ 81A5258 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r6, 0 ldrb r0, [r5] cmp r0, 0xA bls _081A5268 b _081A5544 _081A5268: lsls r0, 2 ldr r1, =_081A5278 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A5278: .4byte _081A52A4 .4byte _081A52F4 .4byte _081A531C .4byte _081A53B4 .4byte _081A540C .4byte _081A542C .4byte _081A544C .4byte _081A5490 .4byte _081A553E .4byte _081A54D4 .4byte _081A5520 _081A52A4: ldr r0, =0x7fffff1c movs r1, 0 str r1, [sp] movs r1, 0x4 movs r2, 0 movs r3, 0x8 bl BeginNormalPaletteFade ldr r1, =0x00003f3e movs r0, 0x48 bl SetGpuReg ldr r0, =gUnknown_08611F74 bl LoadCompressedObjectPic ldr r0, =gUnknown_08D855E8 movs r1, 0xF8 lsls r1, 1 movs r2, 0x20 bl LoadCompressedPalette ldr r1, =gUnknown_02022E24 movs r0, 0xFF strh r0, [r1] ldr r1, =gUnknown_02022E26 movs r0, 0x70 strh r0, [r1] b _081A553E .pool _081A52F4: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081A5306 b _081A5544 _081A5306: str r0, [sp] movs r0, 0x5 movs r1, 0 movs r2, 0x18 movs r3, 0xD bl sub_8056A3C b _081A553E .pool _081A531C: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _081A5328 b _081A5544 _081A5328: ldr r1, =gBattleTextBuff1 movs r2, 0xA1 strb r2, [r1] movs r0, 0xFF strb r0, [r1, 0x1] ldr r1, =gBattleTextBuff2 strb r2, [r1] movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x1] ldr r0, =gUnknown_085CCDB2 bl StrCpyDecodeToDisplayedStringBattle ldr r4, =gDisplayedStringBattle adds r0, r4, 0 movs r1, 0xF bl battle_show_message_maybe ldr r0, =gUnknown_085CCDB5 movs r1, 0x10 bl battle_show_message_maybe ldr r0, =gUnknown_085CCDB8 bl StrCpyDecodeToDisplayedStringBattle adds r0, r4, 0 movs r1, 0x11 bl battle_show_message_maybe ldr r0, =gUnknown_085CCDBB movs r1, 0x12 bl battle_show_message_maybe ldr r0, =gUnknown_085CCDC0 movs r1, 0x13 bl battle_show_message_maybe ldr r0, =gUnknown_085CCDC6 movs r1, 0x14 bl battle_show_message_maybe ldr r0, =gUnknown_085CCDCB bl StrCpyDecodeToDisplayedStringBattle adds r0, r4, 0 movs r1, 0x15 bl battle_show_message_maybe b _081A553E .pool _081A53B4: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 beq _081A53C0 b _081A5544 _081A53C0: ldr r1, =0x00003f3f movs r0, 0x48 bl SetGpuReg movs r6, 0x80 lsls r6, 15 movs r4, 0x7 _081A53CE: asrs r1, r6, 16 ldr r0, =gUnknown_08611F5C movs r2, 0x54 movs r3, 0 bl CreateSprite adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x3 bl StartSpriteAnim movs r0, 0x80 lsls r0, 13 adds r6, r0 subs r4, 0x1 cmp r4, 0 bge _081A53CE b _081A553C .pool _081A540C: ldr r0, =0x00000109 bl PlaySE movs r0, 0x50 movs r1, 0x28 movs r2, 0 movs r3, 0 bl sub_81A5558 movs r0, 0xA0 movs r1, 0x28 movs r2, 0 b _081A5464 .pool _081A542C: ldr r0, =0x00000109 bl PlaySE movs r0, 0x50 movs r1, 0x38 movs r2, 0x1 movs r3, 0 bl sub_81A5558 movs r0, 0xA0 movs r1, 0x38 movs r2, 0x1 b _081A5464 .pool _081A544C: ldr r0, =0x00000109 bl PlaySE movs r0, 0x50 movs r1, 0x48 movs r2, 0x2 movs r3, 0 bl sub_81A5558 movs r0, 0xA0 movs r1, 0x48 movs r2, 0x2 _081A5464: movs r3, 0x1 bl sub_81A5558 ldr r0, =gUnknown_085CCDCB bl StrCpyDecodeToDisplayedStringBattle ldr r0, =gDisplayedStringBattle movs r1, 0x15 bl battle_show_message_maybe ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] movs r6, 0x1 b _081A5544 .pool _081A5490: movs r0, 0x85 lsls r0, 1 bl PlaySE ldr r0, =gBattleTextBuff1 ldr r1, =gBattleTextBuff2 ldrb r2, [r0] ldrb r0, [r1] cmp r2, r0 bls _081A54BC movs r6, 0x2 ldr r1, =gBattleScripting movs r0, 0 strb r0, [r1, 0x17] b _081A553E .pool _081A54BC: cmp r2, r0 bcs _081A54D0 movs r6, 0x3 ldr r1, =gBattleScripting movs r0, 0x1 strb r0, [r1, 0x17] b _081A553E .pool _081A54D0: movs r6, 0x4 b _081A553E _081A54D4: ldr r1, =0x00003f3e movs r0, 0x48 bl SetGpuReg movs r0, 0x1 str r0, [sp] movs r0, 0x5 movs r1, 0 movs r2, 0x18 movs r3, 0xD bl sub_8056A3C movs r0, 0 bl CopyBgTilemapBufferToVram ldr r0, =gMPlay_BGM ldr r1, =0x0000ffff movs r2, 0x80 lsls r2, 1 bl m4aMPlayVolumeControl ldr r0, =0x7fffff1c movs r1, 0 str r1, [sp] movs r1, 0x4 movs r2, 0x8 movs r3, 0 bl BeginNormalPaletteFade b _081A553E .pool _081A5520: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081A5544 ldr r1, =0x00003f3f movs r0, 0x48 bl SetGpuReg movs r0, 0xFA lsls r0, 2 bl FreeSpriteTilesByTag _081A553C: movs r6, 0x1 _081A553E: ldrb r0, [r5] adds r0, 0x1 strb r0, [r5] _081A5544: adds r0, r6, 0 add sp, 0x4 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81A5258 thumb_func_start sub_81A5558 sub_81A5558: @ 81A5558 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 mov r10, r1 lsls r2, 24 lsrs r2, 24 mov r9, r2 lsls r3, 24 lsrs r7, r3, 24 movs r6, 0 movs r1, 0 ldr r0, =gBattleStruct ldr r0, [r0] movs r3, 0xA6 lsls r3, 2 adds r4, r0, r3 ldr r5, =0x0000029a adds r3, r0, r5 adds r5, 0x2 adds r5, r0 mov r8, r5 cmp r2, 0x1 beq _081A55C4 cmp r2, 0x1 bgt _081A55A8 cmp r2, 0 beq _081A55B0 b _081A5612 .pool _081A55A8: mov r0, r9 cmp r0, 0x2 beq _081A55D8 b _081A5612 _081A55B0: adds r0, r4, r7 movs r6, 0 ldrsb r6, [r0, r6] movs r1, 0x1 adds r0, r7, 0 eors r0, r1 adds r0, r4, r0 movs r1, 0 ldrsb r1, [r0, r1] b _081A5612 _081A55C4: adds r0, r3, r7 movs r6, 0 ldrsb r6, [r0, r6] movs r1, 0x1 adds r0, r7, 0 eors r0, r1 adds r0, r3, r0 movs r1, 0 ldrsb r1, [r0, r1] b _081A5612 _081A55D8: ldr r3, =gBattleMons mov r9, r3 movs r5, 0x58 adds r0, r7, 0 muls r0, r5 add r0, r9 ldrh r0, [r0, 0x28] movs r4, 0x64 muls r0, r4 lsls r1, r7, 1 add r1, r8 ldrh r1, [r1] bl __divsi3 adds r6, r0, 0 movs r0, 0x1 adds r1, r7, 0 eors r1, r0 adds r0, r1, 0 muls r0, r5 add r0, r9 ldrh r0, [r0, 0x28] muls r0, r4 lsls r1, 1 add r1, r8 ldrh r1, [r1] bl __divsi3 adds r1, r0, 0 _081A5612: cmp r6, r1 ble _081A5638 movs r4, 0x2 cmp r7, 0 beq _081A5628 ldr r1, =gBattleTextBuff2 b _081A562A .pool _081A5628: ldr r1, =gBattleTextBuff1 _081A562A: ldrb r0, [r1] adds r0, 0x2 strb r0, [r1] b _081A565E .pool _081A5638: cmp r6, r1 bne _081A565C movs r4, 0x1 cmp r7, 0 beq _081A564C ldr r1, =gBattleTextBuff2 b _081A564E .pool _081A564C: ldr r1, =gBattleTextBuff1 _081A564E: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081A565E .pool _081A565C: movs r4, 0 _081A565E: ldr r0, =gUnknown_08611F5C ldr r1, [sp] mov r2, r10 movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 ldr r1, =gSprites adds r0, r1 adds r1, r4, 0 bl StartSpriteAnim 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_81A5558 thumb_func_start sub_81A5698 sub_81A5698: @ 81A5698 push {lr} adds r1, r0, 0 ldr r0, =gBattleCommunication ldrb r0, [r0] cmp r0, 0x8 bls _081A56AA adds r0, r1, 0 bl DestroySprite _081A56AA: pop {r0} bx r0 .pool thumb_func_end sub_81A5698 thumb_func_start sub_81A56B4 sub_81A56B4: @ 81A56B4 ldr r0, =gBattleStruct ldr r2, [r0] movs r0, 0xA6 lsls r0, 2 adds r1, r2, r0 adds r0, 0x2 adds r3, r2, r0 adds r0, 0x2 adds r2, r0 movs r0, 0 strb r0, [r1] strb r0, [r1, 0x1] strb r0, [r3] strb r0, [r3, 0x1] ldr r0, =gBattleMons ldrh r1, [r0, 0x28] strh r1, [r2] adds r0, 0x80 ldrh r0, [r0] strh r0, [r2, 0x2] bx lr .pool thumb_func_end sub_81A56B4 thumb_func_start sub_81A56E8 sub_81A56E8: @ 81A56E8 lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleStruct ldr r1, [r1] movs r2, 0xA6 lsls r2, 2 adds r1, r2 adds r1, r0 ldr r2, =gBattleArenaMoveMindRatings ldr r0, =gCurrentMove ldrh r0, [r0] adds r0, r2 ldrb r0, [r0] ldrb r2, [r1] adds r0, r2 strb r0, [r1] bx lr .pool thumb_func_end sub_81A56E8 thumb_func_start sub_81A5718 sub_81A5718: @ 81A5718 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 adds r6, r3, 0 ldr r0, =gBattleStruct ldr r2, [r0] ldr r0, =0x0000029a adds r5, r2, r0 ldr r0, =gHitMarker ldr r0, [r0] movs r1, 0x80 lsls r1, 18 ands r0, r1 cmp r0, 0 beq _081A57DA ldr r0, =0x000002a2 adds r4, r2, r0 ldrb r2, [r4] ldr r0, =gBitTable lsls r1, r3, 2 adds r1, r0 ldr r1, [r1] adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _081A576C bics r2, r1 strb r2, [r4] adds r1, r5, r3 ldrb r0, [r1] subs r0, 0x2 b _081A57D8 .pool _081A576C: ldr r0, =gBattleMoveFlags ldrb r1, [r0] movs r0, 0x29 ands r0, r1 cmp r0, 0 beq _081A5798 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081A5788 ldr r0, =gBattleCommunication ldrb r0, [r0, 0x6] cmp r0, 0x1 beq _081A57DA _081A5788: adds r1, r5, r3 ldrb r0, [r1] subs r0, 0x2 b _081A57D8 .pool _081A5798: movs r0, 0x6 ands r0, r1 cmp r0, 0x6 bne _081A57A4 adds r1, r5, r3 b _081A57D4 _081A57A4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081A57B4 adds r1, r5, r3 ldrb r0, [r1] adds r0, 0x2 b _081A57D8 _081A57B4: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081A57C4 adds r1, r5, r3 ldrb r0, [r1] subs r0, 0x1 b _081A57D8 _081A57C4: ldr r0, =gProtectStructs lsls r1, r6, 4 adds r1, r0 ldrb r0, [r1] lsls r0, 31 cmp r0, 0 bne _081A57DA adds r1, r5, r6 _081A57D4: ldrb r0, [r1] adds r0, 0x1 _081A57D8: strb r0, [r1] _081A57DA: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A5718 thumb_func_start sub_81A57E4 sub_81A57E4: @ 81A57E4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r1, 16 adds r2, r1, 0 ldr r0, =gBattleStruct ldr r0, [r0] ldr r5, =0x0000029a adds r3, r0, r5 movs r0, 0x99 lsls r0, 1 cmp r1, r0 bgt _081A582A subs r0, 0x1 cmp r1, r0 bge _081A585C cmp r1, 0xC5 bgt _081A581C cmp r1, 0xC3 bge _081A585C cmp r1, 0x77 beq _081A585C b _081A5864 .pool _081A581C: cmp r1, 0xC7 blt _081A5864 cmp r1, 0xCC ble _081A585C cmp r1, 0xCE beq _081A585C b _081A5864 _081A582A: ldr r0, =0x00000147 cmp r1, r0 beq _081A585C cmp r1, r0 bgt _081A5848 subs r0, 0x12 cmp r1, r0 beq _081A585C adds r0, 0x2 cmp r1, r0 beq _081A585C b _081A5864 .pool _081A5848: movs r0, 0xAD lsls r0, 1 cmp r2, r0 blt _081A5864 adds r0, 0x1 cmp r2, r0 ble _081A585C adds r0, 0x3 cmp r2, r0 bne _081A5864 _081A585C: adds r1, r3, r4 ldrb r0, [r1] subs r0, 0x3 strb r0, [r1] _081A5864: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81A57E4 thumb_func_start sub_81A586C sub_81A586C: @ 81A586C push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleStruct ldr r3, [r1] movs r1, 0xA7 lsls r1, 2 adds r3, r1 lsls r2, r0, 1 adds r2, r3 ldr r5, =gBattleMons movs r4, 0x58 adds r1, r0, 0 muls r1, r4 adds r1, r5 ldrh r1, [r1, 0x28] strh r1, [r2] movs r1, 0x1 eors r0, r1 lsls r1, r0, 1 adds r1, r3 muls r0, r4 adds r0, r5 ldrh r2, [r0, 0x28] ldrh r0, [r1] cmp r0, r2 bls _081A58A4 strh r2, [r1] _081A58A4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A586C thumb_func_start sub_81A58B4 sub_81A58B4: @ 81A58B4 push {r4-r6,lr} ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldr r3, =0x00000ca9 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x00000ca8 adds r1, r0 movs r2, 0 strb r2, [r1] ldr r1, [r4] ldr r6, =0x00000cb2 adds r0, r1, r6 strh r2, [r0] adds r1, r3 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r4] adds r1, r3 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] cmp r5, 0 beq _081A5914 ldr r0, [r4] ldr r1, =0x00000cdc adds r0, r1 ldr r2, [r0] movs r0, 0x80 b _081A591E .pool _081A5914: ldr r0, [r4] ldr r3, =0x00000cdc adds r0, r3 ldr r2, [r0] movs r0, 0x40 _081A591E: ands r2, r0 cmp r2, 0 bne _081A5930 ldr r0, [r4] lsls r1, r5, 1 ldr r6, =0x00000dda adds r0, r6 adds r0, r1 strh r2, [r0] _081A5930: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] 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 ldr r1, =gTrainerBattleOpponent_A movs r0, 0 strh r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A58B4 thumb_func_start sub_81A5964 sub_81A5964: @ 81A5964 push {r4,lr} ldr r0, =gSaveBlock2Ptr ldr r3, [r0] ldr r1, =0x00000ca9 adds r0, r3, r1 ldrb r0, [r0] lsls r0, 30 lsrs r1, r0, 30 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _081A59B0 cmp r0, 0x1 bgt _081A5994 cmp r0, 0 beq _081A599A b _081A59EE .pool _081A5994: cmp r0, 0x2 beq _081A59C8 b _081A59EE _081A599A: ldr r0, =gScriptResult ldr r2, =0x00000dd8 adds r1, r3, r2 ldrh r1, [r1] strh r1, [r0] b _081A59EE .pool _081A59B0: ldr r2, =gScriptResult lsls r1, 1 ldr r4, =0x00000dda adds r0, r3, r4 adds r0, r1 ldrh r0, [r0] b _081A59EC .pool _081A59C8: cmp r1, 0 beq _081A59E0 ldr r2, =gScriptResult ldr r1, =0x00000cdc adds r0, r3, r1 ldr r0, [r0] movs r1, 0x80 b _081A59EA .pool _081A59E0: ldr r2, =gScriptResult ldr r4, =0x00000cdc adds r0, r3, r4 ldr r0, [r0] movs r1, 0x40 _081A59EA: ands r0, r1 _081A59EC: strh r0, [r2] _081A59EE: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A5964 thumb_func_start sub_81A59FC sub_81A59FC: @ 81A59FC push {lr} ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, =0x00000ca9 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 30 lsrs r1, r0, 30 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _081A5A48 cmp r0, 0x1 bgt _081A5A2C cmp r0, 0 beq _081A5A32 b _081A5ABA .pool _081A5A2C: cmp r0, 0x2 beq _081A5A60 b _081A5ABA _081A5A32: ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] ldr r3, =0x00000dd8 adds r0, r2, r3 strh r1, [r0] b _081A5ABA .pool _081A5A48: lsls r1, 1 ldr r3, =0x00000dda adds r0, r2, r3 adds r0, r1 ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] strh r1, [r0] b _081A5ABA .pool _081A5A60: cmp r1, 0 beq _081A5A90 ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A5A80 ldr r1, =0x00000cdc adds r0, r2, r1 ldr r1, [r0] movs r2, 0x80 orrs r1, r2 b _081A5AB8 .pool _081A5A80: ldr r3, =0x00000cdc adds r0, r2, r3 ldr r1, [r0] movs r2, 0x81 negs r2, r2 b _081A5AB6 .pool _081A5A90: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A5AAC ldr r1, =0x00000cdc adds r0, r2, r1 ldr r1, [r0] movs r2, 0x40 orrs r1, r2 b _081A5AB8 .pool _081A5AAC: ldr r3, =0x00000cdc adds r0, r2, r3 ldr r1, [r0] movs r2, 0x41 negs r2, r2 _081A5AB6: ands r1, r2 _081A5AB8: str r1, [r0] _081A5ABA: pop {r0} bx r0 .pool thumb_func_end sub_81A59FC thumb_func_start sub_81A5AC4 sub_81A5AC4: @ 81A5AC4 push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A5AC4 thumb_func_start sub_81A5B08 sub_81A5B08: @ 81A5B08 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r2, =0x00000dda adds r1, r2 adds r1, r0 ldrh r0, [r1] cmp r0, 0x29 bls _081A5B58 bl Random ldr r4, [r4] ldr r5, =gUnknown_08611FAC lsls r0, 16 lsrs r0, 16 movs r1, 0x9 bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r5 ldrh r0, [r0] ldr r1, =0x00000dd8 adds r4, r1 b _081A5B76 .pool _081A5B58: bl Random ldr r4, [r4] ldr r5, =gUnknown_08611FA0 lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r5 ldrh r0, [r0] ldr r2, =0x00000dd8 adds r4, r2 _081A5B76: strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A5B08 thumb_func_start sub_81A5B88 sub_81A5B88: @ 81A5B88 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000dd8 adds r0, r1 ldrh r0, [r0] movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _081A5BD0 ldr r0, [r4] ldr r1, =0x00000dd8 adds r0, r1 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, [r4] ldr r1, =0x00000dd8 adds r0, r1 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r5, [r0] b _081A5BD6 .pool _081A5BD0: ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _081A5BD6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A5B88 thumb_func_start sub_81A5BE0 sub_81A5BE0: @ 81A5BE0 push {lr} ldr r0, =gStringVar1 ldr r1, =gTrainerBattleOpponent_A ldrh r1, [r1] bl sub_8162E20 pop {r0} bx r0 .pool thumb_func_end sub_81A5BE0 thumb_func_start sub_81A5BF8 sub_81A5BF8: @ 81A5BF8 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC movs r0, 0x1B mov r8, r0 movs r5, 0x7 movs r4, 0x1 str r4, [sp] movs r6, 0x6 str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0xFE movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x20 movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x31 movs r2, 0 movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x33 movs r2, 0x1 movs r3, 0xE bl FillBgTilemapBufferRect mov r0, r8 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x34 movs r2, 0x2 movs r3, 0xE bl FillBgTilemapBufferRect movs r0, 0x1C mov r8, r0 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x35 movs r2, 0x1C movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x36 movs r2, 0x1D movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] movs r6, 0x5 str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x37 movs r2, 0 movs r3, 0xF bl FillBgTilemapBufferRect mov r0, r8 str r0, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x39 movs r2, 0x1 movs r3, 0xF bl FillBgTilemapBufferRect str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x3A movs r2, 0x1D movs r3, 0xF bl FillBgTilemapBufferRect ldr r1, =0x00000831 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0 movs r3, 0x13 bl FillBgTilemapBufferRect ldr r1, =0x00000833 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0x1 movs r3, 0x13 bl FillBgTilemapBufferRect ldr r1, =0x00000834 movs r0, 0x1A str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0x2 movs r3, 0x13 bl FillBgTilemapBufferRect ldr r1, =0x00000835 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0x1C movs r3, 0x13 bl FillBgTilemapBufferRect ldr r1, =0x00000836 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r2, 0x1D movs r3, 0x13 bl FillBgTilemapBufferRect add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A5BF8 thumb_func_start sub_81A5D44 sub_81A5D44: @ 81A5D44 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0xC movs r5, 0 movs r4, 0x1 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x3 movs r2, 0 movs r3, 0xE bl FillBgTilemapBufferRect movs r6, 0x4 str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x4 movs r2, 0x1 movs r3, 0xE bl FillBgTilemapBufferRect movs r0, 0x1B mov r8, r0 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x5 movs r2, 0x2 movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x6 movs r2, 0x1C movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x7 movs r2, 0x1D movs r3, 0xE bl FillBgTilemapBufferRect str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x8 movs r2, 0 movs r3, 0xF bl FillBgTilemapBufferRect str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x9 movs r2, 0x1 movs r3, 0xF bl FillBgTilemapBufferRect mov r0, r8 str r0, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0xA movs r2, 0x2 movs r3, 0xF bl FillBgTilemapBufferRect str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0xB movs r2, 0x1C movs r3, 0xF bl FillBgTilemapBufferRect str r4, [sp] str r6, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0xC movs r2, 0x1D movs r3, 0xF bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0xD movs r2, 0 movs r3, 0x13 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0xE movs r2, 0x1 movs r3, 0x13 bl FillBgTilemapBufferRect mov r0, r8 str r0, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0xF movs r2, 0x2 movs r3, 0x13 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x10 movs r2, 0x1C movs r3, 0x13 bl FillBgTilemapBufferRect str r4, [sp] str r4, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0 movs r1, 0x11 movs r2, 0x1D movs r3, 0x13 bl FillBgTilemapBufferRect add sp, 0xC pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81A5D44 thumb_func_start sub_81A5E74 sub_81A5E74: @ 81A5E74 push {lr} ldr r1, =gUnknown_08612120 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81A5E74 thumb_func_start sub_81A5E94 sub_81A5E94: @ 81A5E94 push {r4-r7,lr} ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldr r4, =0x00000ca9 adds r0, r4 ldrb r0, [r0] lsls r0, 30 lsrs r7, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r6, r0, 16 ldr r0, [r5] ldr r1, =0x00000ca8 adds r0, r1 movs r2, 0 strb r2, [r0] ldr r1, [r5] ldr r3, =0x00000cb2 adds r0, r1, r3 strh r2, [r0] adds r1, r4 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r1, [r5] adds r1, r4 ldrb r2, [r1] movs r0, 0x9 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r4, [r5] ldr r0, =0x00000cdc adds r3, r4, r0 ldr r2, =gUnknown_08612164 lsls r0, r7, 2 lsls r1, r6, 3 adds r0, r1 adds r0, r2 ldr r3, [r3] ldr r0, [r0] ands r3, r0 cmp r3, 0 bne _081A5F0A lsls r1, r7, 1 lsls r0, r6, 2 adds r1, r0 ldr r2, =0x00000de2 adds r0, r4, r2 adds r0, r1 strh r3, [r0] adds r2, 0x10 adds r0, r4, r2 adds r0, r1 strh r3, [r0] _081A5F0A: ldr r1, =gUnknown_03001288 movs r0, 0 strb r0, [r1] movs r2, 0 ldr r6, =gSaveBlock1Ptr movs r4, 0xE7 lsls r4, 4 ldr r0, =0x0000ffff adds r3, r0, 0 _081A5F1C: ldr r1, [r5] lsls r0, r2, 1 adds r0, r2 lsls r0, 2 adds r1, r0 adds r1, r4 ldrh r0, [r1] orrs r0, r3 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x5 bls _081A5F1C movs r2, 0 ldr r4, =gUnknown_03006298 ldr r1, =0x0000ffff adds r3, r1, 0 _081A5F40: lsls r0, r2, 1 adds r0, r4 ldrh r1, [r0] orrs r1, r3 strh r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x2 bls _081A5F40 ldr r0, [r6] 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 ldr r1, =gTrainerBattleOpponent_A movs r0, 0 strh r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A5E94 thumb_func_start sub_81A5FA8 sub_81A5FA8: @ 81A5FA8 push {r4-r7,lr} ldr r7, =gSaveBlock2Ptr ldr r0, [r7] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r6, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r5, r0, 16 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x2 beq _081A6000 cmp r0, 0x2 bgt _081A5FE4 cmp r0, 0x1 beq _081A5FEA b _081A6044 .pool _081A5FE4: cmp r0, 0x3 beq _081A6030 b _081A6044 _081A5FEA: ldr r3, =gScriptResult ldr r0, [r7] lsls r1, r6, 1 lsls r2, r5, 2 adds r1, r2 ldr r2, =0x00000de2 b _081A603C .pool _081A6000: ldr r4, =gScriptResult ldr r2, [r7] ldr r0, =0x00000cdc adds r2, r0 ldr r3, =gUnknown_08612164 lsls r0, r6, 2 lsls r1, r5, 3 adds r0, r1 adds r0, r3 ldr r1, [r2] ldr r0, [r0] ands r1, r0 negs r0, r1 orrs r0, r1 lsrs r0, 31 strh r0, [r4] b _081A6044 .pool _081A6030: ldr r3, =gScriptResult ldr r0, [r7] lsls r1, r6, 1 lsls r2, r5, 2 adds r1, r2 ldr r2, =0x00000df2 _081A603C: adds r0, r2 adds r0, r1 ldrh r0, [r0] strh r0, [r3] _081A6044: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A5FA8 thumb_func_start sub_81A6054 sub_81A6054: @ 81A6054 push {r4-r6,lr} ldr r6, =gSaveBlock2Ptr ldr r0, [r6] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x000040ce bl VarGet lsls r0, 16 lsrs r4, r0, 16 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x2 beq _081A60B4 cmp r0, 0x2 bgt _081A6090 cmp r0, 0x1 beq _081A6096 b _081A6128 .pool _081A6090: cmp r0, 0x3 beq _081A6108 b _081A6128 _081A6096: ldr r2, [r6] lsls r0, r5, 1 lsls r1, r4, 2 adds r0, r1 ldr r1, =0x00000de2 adds r2, r1 adds r2, r0 ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] strh r0, [r2] b _081A6128 .pool _081A60B4: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A60E4 ldr r2, [r6] ldr r0, =0x00000cdc adds r2, r0 ldr r3, =gUnknown_08612164 lsls r1, r5, 2 lsls r0, r4, 3 adds r1, r0 adds r1, r3 ldr r0, [r2] ldr r1, [r1] orrs r0, r1 str r0, [r2] b _081A6128 .pool _081A60E4: ldr r2, [r6] ldr r1, =0x00000cdc adds r2, r1 ldr r3, =gUnknown_08612174 lsls r1, r5, 2 lsls r0, r4, 3 adds r1, r0 adds r1, r3 ldr r0, [r2] ldr r1, [r1] ands r0, r1 str r0, [r2] b _081A6128 .pool _081A6108: ldr r3, =gUnknown_03001288 ldrb r0, [r3] cmp r0, 0x1 bne _081A6128 ldr r2, [r6] lsls r0, r5, 1 lsls r1, r4, 2 adds r0, r1 ldr r1, =0x00000df2 adds r2, r1 adds r2, r0 ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] movs r1, 0 strh r0, [r2] strb r1, [r3] _081A6128: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A6054 thumb_func_start sub_81A613C sub_81A613C: @ 81A613C push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A613C thumb_func_start nullsub_75 nullsub_75: @ 81A6180 bx lr thumb_func_end nullsub_75 thumb_func_start nullsub_123 nullsub_123: @ 81A6184 bx lr thumb_func_end nullsub_123 thumb_func_start sub_81A6188 sub_81A6188: @ 81A6188 push {lr} bl ZeroPlayerPartyMons bl sub_819A4F8 pop {r0} bx r0 thumb_func_end sub_81A6188 thumb_func_start sub_81A6198 sub_81A6198: @ 81A6198 push {lr} bl sub_819DC00 pop {r0} bx r0 thumb_func_end sub_81A6198 thumb_func_start sub_81A61A4 sub_81A61A4: @ 81A61A4 ldr r1, =gUnknown_03001288 movs r0, 0x1 strb r0, [r1] bx lr .pool thumb_func_end sub_81A61A4 thumb_func_start sub_81A61B0 sub_81A61B0: @ 81A61B0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x28 ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 str r0, [sp, 0x10] ldr r0, =0x000040ce bl VarGet lsls r0, 16 ldr r1, [r4] ldr r3, [sp, 0x10] lsls r2, r3, 1 lsrs r0, 14 adds r2, r0 ldr r6, =0x00000de2 adds r1, r6 adds r1, r2 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 ldr r2, =gUnknown_0203BC88 ldr r1, =gBattleFrontierTrainers str r1, [r2] ldr r5, =0x00000cb2 lsls r0, 24 str r0, [sp, 0x20] mov r8, r0 _081A61FA: ldr r0, [r4] adds r0, r5 ldrb r1, [r0] mov r2, r8 lsrs r0, r2, 24 bl sub_8162548 lsls r0, 16 lsrs r3, r0, 16 movs r7, 0 ldr r1, [r4] adds r0, r1, r5 ldr r6, [sp, 0x10] lsls r6, 24 str r6, [sp, 0x1C] ldrh r0, [r0] cmp r7, r0 bge _081A6244 ldr r2, =0x00000cb4 adds r0, r1, r2 ldrh r0, [r0] ldr r6, =gSaveBlock2Ptr cmp r0, r3 beq _081A6244 ldr r1, [r6] ldr r6, =0x00000cb2 adds r0, r1, r6 ldrh r2, [r0] ldr r0, =0x00000cb4 adds r1, r0 _081A6236: adds r1, 0x2 adds r7, 0x1 cmp r7, r2 bge _081A6244 ldrh r0, [r1] cmp r0, r3 bne _081A6236 _081A6244: ldr r0, [r4] ldr r1, =0x00000cb2 adds r0, r1 ldr r6, =gSaveBlock2Ptr ldrh r0, [r0] cmp r7, r0 bne _081A61FA ldr r0, =gTrainerBattleOpponent_A strh r3, [r0] ldr r2, [r6] adds r1, r2, r1 ldrh r0, [r1] cmp r0, 0x5 bhi _081A626C adds r1, r0, 0 lsls r1, 1 ldr r4, =0x00000cb4 adds r0, r2, r4 adds r0, r1 strh r3, [r0] _081A626C: movs r7, 0 mov r10, sp movs r6, 0 lsls r6, 1 str r6, [sp, 0x14] add r6, sp str r6, [sp, 0x18] _081A627A: ldr r1, [sp, 0x1C] lsrs r0, r1, 24 ldr r2, [sp, 0x20] lsrs r1, r2, 24 movs r2, 0 bl sub_81A6EF0 lsls r0, 16 lsrs r0, 16 mov r9, r0 ldr r4, =gUnknown_0203BC8C ldr r2, [r4] lsls r1, r0, 4 adds r0, r1, r2 ldrh r0, [r0] cmp r0, 0xC9 beq _081A636E movs r3, 0 ldr r6, =gSaveBlock2Ptr mov r8, r1 adds r5, r0, 0 ldr r1, [r6] _081A62A6: movs r4, 0xE7 lsls r4, 4 adds r0, r1, r4 ldrh r0, [r0] lsls r0, 4 adds r0, r2 ldrh r0, [r0] cmp r5, r0 beq _081A62C0 adds r1, 0xC adds r3, 0x1 cmp r3, 0x5 ble _081A62A6 _081A62C0: cmp r3, 0x6 bne _081A636E ldr r6, [sp, 0x10] cmp r6, 0 bne _081A62D0 ldr r0, =0x00000351 cmp r9, r0 bhi _081A636E _081A62D0: movs r2, 0 adds r4, r2, r7 cmp r2, r4 bge _081A6302 ldr r1, [sp, 0x18] ldrh r0, [r1] cmp r0, r5 beq _081A6302 adds r6, r4, 0 ldr r3, =gUnknown_0203BC8C mov r12, r3 mov r5, r8 ldr r3, [sp, 0x14] add r3, sp _081A62EC: adds r3, 0x2 adds r2, 0x1 cmp r2, r6 bge _081A6302 mov r1, r12 ldr r0, [r1] adds r0, r5, r0 ldrh r1, [r3] ldrh r0, [r0] cmp r1, r0 bne _081A62EC _081A6302: cmp r2, r4 bne _081A636E movs r2, 0 cmp r2, r4 bge _081A633E ldr r3, =gBattleFrontierHeldItems mov r12, r3 add r0, sp, 0x8 ldr r6, [sp, 0x14] adds r3, r0, r6 mov r0, r8 str r0, [sp, 0x24] adds r5, r4, 0 _081A631C: ldrh r1, [r3] cmp r1, 0 beq _081A6336 ldr r6, =gUnknown_0203BC8C ldr r0, [r6] ldr r6, [sp, 0x24] adds r0, r6, r0 ldrb r0, [r0, 0xA] lsls r0, 1 add r0, r12 ldrh r0, [r0] cmp r1, r0 beq _081A633E _081A6336: adds r3, 0x2 adds r2, 0x1 cmp r2, r5 blt _081A631C _081A633E: cmp r2, r4 bne _081A636E lsls r4, r7, 1 ldr r0, =gUnknown_0203BC8C ldr r1, [r0] add r1, r8 ldrh r0, [r1] mov r2, r10 strh r0, [r2] add r2, sp, 0x8 adds r2, r4 ldr r3, =gBattleFrontierHeldItems ldrb r0, [r1, 0xA] lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r2] ldr r0, =gUnknown_03006298 adds r4, r0 mov r3, r9 strh r3, [r4] movs r4, 0x2 add r10, r4 adds r7, 0x1 _081A636E: cmp r7, 0x3 bne _081A627A add sp, 0x28 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A61B0 thumb_func_start sub_81A63B8 sub_81A63B8: @ 81A63B8 push {lr} ldr r0, =gTrainerBattleOpponent_A ldrh r0, [r0] movs r1, 0 bl sub_8162614 pop {r0} bx r0 .pool thumb_func_end sub_81A63B8 thumb_func_start sub_81A63CC sub_81A63CC: @ 81A63CC push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 beq _081A63FC ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons b _081A6400 .pool _081A63FC: ldr r1, =gUnknown_0203BC8C ldr r0, =gSlateportBattleTentMons _081A6400: str r0, [r1] movs r7, 0 ldr r2, =gSaveBlock2Ptr mov r8, r2 _081A6408: mov r0, r8 ldr r1, [r0] adds r0, r7, 0x3 lsls r4, r0, 1 adds r4, r0 lsls r4, 2 adds r1, r4 ldr r0, =gUnknown_03006298 lsls r6, r7, 1 adds r6, r0 ldrh r0, [r6] movs r2, 0xE7 lsls r2, 4 adds r1, r2 strh r0, [r1] movs r0, 0x64 adds r5, r7, 0 muls r5, r0 ldr r0, =gEnemyParty adds r5, r0 adds r0, r5, 0 movs r1, 0x28 movs r2, 0 bl GetBoxMonData mov r2, r8 ldr r1, [r2] adds r1, r4 ldr r2, =0x00000e78 adds r1, r2 strb r0, [r1] adds r0, r5, 0 movs r1, 0 movs r2, 0 bl GetMonData mov r2, r8 ldr r1, [r2] ldr r2, =0x00000e74 adds r1, r2 adds r1, r4 str r0, [r1] adds r0, r5, 0 movs r1, 0x2E movs r2, 0 bl GetBoxMonData mov r2, r8 ldr r1, [r2] adds r1, r4 ldr r2, =0x00000e79 adds r1, r2 strb r0, [r1] ldrh r1, [r6] ldr r0, =gUnknown_0203BC8C ldr r0, [r0] lsls r1, 4 adds r1, r0 ldrb r2, [r1, 0xA] lsls r2, 1 ldr r0, =gBattleFrontierHeldItems adds r2, r0 adds r0, r5, 0 movs r1, 0xC bl SetMonData adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x2 bls _081A6408 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A63CC thumb_func_start sub_81A64C4 sub_81A64C4: @ 81A64C4 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x24 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r2, r0, r1 ldrb r1, [r2] movs r3, 0x3 adds r0, r3, 0 ands r0, r1 cmp r0, 0x2 bne _081A6500 ldr r1, =gUnknown_0203BC8C ldr r0, =gSlateportBattleTentMons str r0, [r1] movs r2, 0x1E str r2, [sp, 0x14] b _081A6518 .pool _081A6500: ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons str r0, [r1] ldrb r1, [r2] adds r0, r3, 0 ands r0, r1 movs r4, 0x32 str r4, [sp, 0x14] cmp r0, 0 beq _081A6518 movs r5, 0x64 str r5, [sp, 0x14] _081A6518: ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 bls _081A6522 b _081A666C _081A6522: bl ZeroPlayerPartyMons movs r0, 0 mov r8, r0 mov r1, sp adds r1, 0x12 str r1, [sp, 0x1C] ldr r2, =gUnknown_0203BC8C mov r9, r2 _081A6534: ldr r4, =gSaveBlock2Ptr ldr r2, [r4] mov r5, r8 lsls r5, 1 mov r10, r5 mov r3, r10 add r3, r8 lsls r3, 2 adds r1, r2, r3 movs r4, 0xE7 lsls r4, 4 adds r0, r1, r4 ldrh r7, [r0] ldr r5, =0x00000e78 adds r1, r5 ldrb r6, [r1] movs r1, 0x64 mov r0, r8 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 mov r4, r9 ldr r1, [r4] lsls r4, r7, 4 adds r1, r4, r1 ldrh r1, [r1] movs r5, 0x1 str r5, [sp] ldr r5, =0x00000e74 adds r2, r5 adds r2, r3 ldr r2, [r2] str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] ldr r2, [sp, 0x14] adds r3, r6, 0 bl CreateMon movs r1, 0 mov r2, r9 ldr r0, [r2] adds r4, r0 ldrb r4, [r4, 0xB] mov r5, r8 adds r5, 0x1 str r5, [sp, 0x18] movs r5, 0x5 _081A6596: adds r0, r4, 0 movs r2, 0x1 ands r0, r2 cmp r0, 0 beq _081A65A2 adds r1, 0x1 _081A65A2: lsrs r4, 1 subs r5, 0x1 cmp r5, 0 bge _081A6596 movs r0, 0xFF lsls r0, 1 bl __divsi3 add r1, sp, 0x10 strh r0, [r1] movs r4, 0x1 movs r5, 0 lsls r7, 4 movs r0, 0x64 mov r6, r8 muls r6, r0 ldr r3, =gPlayerParty _081A65C4: mov r1, r9 ldr r0, [r1] adds r0, r7, r0 ldrb r0, [r0, 0xB] ands r0, r4 cmp r0, 0 beq _081A65E2 adds r1, r5, 0 adds r1, 0x1A adds r0, r6, r3 add r2, sp, 0x10 str r3, [sp, 0x20] bl SetMonData ldr r3, [sp, 0x20] _081A65E2: lsls r0, r4, 25 lsrs r4, r0, 24 adds r5, 0x1 cmp r5, 0x5 ble _081A65C4 movs r2, 0x64 mov r4, r8 muls r4, r2 ldr r5, =gPlayerParty adds r0, r4, r5 bl CalculateMonStats movs r0, 0 ldr r1, [sp, 0x1C] strb r0, [r1] movs r6, 0 _081A6602: mov r2, r9 ldr r0, [r2] adds r0, r7, r0 lsls r1, r6, 1 adds r0, 0x2 adds r0, r1 ldrh r1, [r0] lsls r2, r6, 24 lsrs r2, 24 adds r0, r4, r5 bl sub_81A7024 adds r6, 0x1 cmp r6, 0x3 ble _081A6602 movs r5, 0x64 mov r4, r8 muls r4, r5 ldr r0, =gPlayerParty adds r4, r0 adds r0, r4, 0 movs r1, 0x20 ldr r2, [sp, 0x1C] bl SetMonData mov r1, r9 ldr r0, [r1] adds r0, r7, r0 ldrb r2, [r0, 0xA] lsls r2, 1 ldr r0, =gBattleFrontierHeldItems adds r2, r0 adds r0, r4, 0 movs r1, 0xC bl SetMonData mov r2, r10 add r2, r8 lsls r2, 2 ldr r5, =gSaveBlock2Ptr ldr r0, [r5] adds r2, r0 ldr r0, =0x00000e79 adds r2, r0 adds r0, r4, 0 movs r1, 0x2E bl SetMonData ldr r1, [sp, 0x18] mov r8, r1 cmp r1, 0x2 bgt _081A666C b _081A6534 _081A666C: ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 beq _081A667A cmp r0, 0x2 beq _081A667A b _081A67AE _081A667A: movs r2, 0 mov r8, r2 ldr r4, =gUnknown_0203BC8C mov r9, r4 _081A6682: ldr r5, =gSaveBlock2Ptr ldr r3, [r5] mov r0, r8 adds r0, 0x3 lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r1, r3, r2 movs r4, 0xE7 lsls r4, 4 adds r0, r1, r4 ldrh r7, [r0] ldr r5, =0x00000e78 adds r1, r5 ldrb r6, [r1] movs r1, 0x64 mov r0, r8 muls r0, r1 ldr r1, =gEnemyParty adds r0, r1 mov r4, r9 ldr r1, [r4] lsls r4, r7, 4 adds r1, r4, r1 ldrh r1, [r1] movs r5, 0x1 str r5, [sp] ldr r5, =0x00000e74 adds r3, r5 adds r3, r2 ldr r2, [r3] str r2, [sp, 0x4] movs r2, 0 str r2, [sp, 0x8] str r2, [sp, 0xC] ldr r2, [sp, 0x14] adds r3, r6, 0 bl CreateMon movs r1, 0 mov r2, r9 ldr r0, [r2] adds r4, r0 ldrb r4, [r4, 0xB] mov r5, r8 lsls r5, 1 mov r10, r5 mov r0, r8 adds r0, 0x1 str r0, [sp, 0x18] movs r5, 0x5 _081A66E8: adds r0, r4, 0 movs r2, 0x1 ands r0, r2 cmp r0, 0 beq _081A66F4 adds r1, 0x1 _081A66F4: lsrs r4, 1 subs r5, 0x1 cmp r5, 0 bge _081A66E8 add r4, sp, 0x10 movs r0, 0xFF lsls r0, 1 bl __divsi3 strh r0, [r4] movs r4, 0x1 movs r5, 0 lsls r7, 4 movs r0, 0x64 mov r6, r8 muls r6, r0 ldr r3, =gEnemyParty _081A6716: mov r1, r9 ldr r0, [r1] adds r0, r7, r0 ldrb r0, [r0, 0xB] ands r0, r4 cmp r0, 0 beq _081A6734 adds r1, r5, 0 adds r1, 0x1A adds r0, r6, r3 add r2, sp, 0x10 str r3, [sp, 0x20] bl SetMonData ldr r3, [sp, 0x20] _081A6734: lsls r0, r4, 25 lsrs r4, r0, 24 adds r5, 0x1 cmp r5, 0x5 ble _081A6716 movs r2, 0x64 mov r4, r8 muls r4, r2 ldr r5, =gEnemyParty adds r0, r4, r5 bl CalculateMonStats movs r6, 0 _081A674E: mov r1, r9 ldr r0, [r1] adds r0, r7, r0 lsls r1, r6, 1 adds r0, 0x2 adds r0, r1 ldrh r1, [r0] lsls r2, r6, 24 lsrs r2, 24 adds r0, r4, r5 bl sub_81A7024 adds r6, 0x1 cmp r6, 0x3 ble _081A674E movs r2, 0x64 mov r4, r8 muls r4, r2 ldr r0, =gEnemyParty adds r4, r0 mov r5, r9 ldr r0, [r5] adds r0, r7, r0 ldrb r2, [r0, 0xA] lsls r2, 1 ldr r0, =gBattleFrontierHeldItems adds r2, r0 adds r0, r4, 0 movs r1, 0xC bl SetMonData mov r2, r10 add r2, r8 lsls r2, 2 ldr r1, =gSaveBlock2Ptr ldr r0, [r1] adds r2, r0 ldr r5, =0x00000e9d adds r2, r5 adds r0, r4, 0 movs r1, 0x2E bl SetMonData ldr r0, [sp, 0x18] mov r8, r0 cmp r0, 0x2 bgt _081A67AE b _081A6682 _081A67AE: add sp, 0x24 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A64C4 thumb_func_start sub_81A67EC sub_81A67EC: @ 81A67EC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4C ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] mov r0, sp adds r0, 0xC str r0, [sp, 0x38] mov r1, sp adds r1, 0x18 str r1, [sp, 0x3C] ldr r2, =gSaveBlock2Ptr mov r9, r2 movs r2, 0 adds r3, r1, 0 adds r1, r0, 0 mov r0, sp movs r4, 0x5 mov r8, r4 _081A681A: strh r2, [r0] strh r2, [r1] strh r2, [r3] adds r3, 0x2 adds r1, 0x2 adds r0, 0x2 movs r5, 0x1 negs r5, r5 add r8, r5 mov r4, r8 cmp r4, 0 bge _081A681A mov r5, r9 ldr r0, [r5] ldr r7, =0x00000ca9 adds r0, r7 ldrb r4, [r0] lsls r4, 30 lsrs r4, 30 ldr r6, =0x000040ce adds r0, r6, 0 bl VarGet lsls r0, 24 ldr r1, [r5] lsls r4, 1 lsrs r0, 22 adds r4, r0 ldr r5, =0x00000de2 adds r1, r5 adds r1, r4 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] adds r0, r6, 0 bl VarGet lsls r0, 16 lsrs r0, 16 movs r2, 0 cmp r0, 0x1 bne _081A6878 movs r2, 0x1 _081A6878: ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons str r0, [r1] mov r1, r9 ldr r0, [r1] adds r0, r7 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081A68B4 movs r4, 0x1 str r4, [sp, 0x28] b _081A68B8 .pool _081A68B4: movs r5, 0 str r5, [sp, 0x28] _081A68B8: adds r0, r2, 0 ldr r1, [sp, 0x28] bl sub_81A6F70 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x2C] movs r0, 0 mov r10, r0 mov r8, r0 ldr r1, [sp, 0x3C] str r1, [sp, 0x40] mov r2, sp str r2, [sp, 0x44] lsls r4, r0, 1 str r4, [sp, 0x30] ldr r5, [sp, 0x38] adds r5, r4 str r5, [sp, 0x34] _081A68DE: ldr r0, [sp, 0x2C] cmp r8, r0 bge _081A68EC ldr r0, [sp, 0x28] ldr r1, [sp, 0x24] movs r2, 0x1 b _081A68F2 _081A68EC: ldr r0, [sp, 0x28] ldr r1, [sp, 0x24] movs r2, 0 _081A68F2: bl sub_81A6EF0 lsls r0, 16 lsrs r7, r0, 16 ldr r0, =gUnknown_0203BC8C ldr r1, [r0] lsls r2, r7, 4 adds r4, r2, r1 ldrh r1, [r4] mov r9, r2 cmp r1, 0xC9 beq _081A69E2 movs r3, 0 mov r2, r8 adds r6, r3, r2 cmp r3, r6 bge _081A6950 ldr r5, [sp, 0x34] ldrh r0, [r5] cmp r0, r7 beq _081A6950 mov r12, r4 adds r2, r1, 0 lsls r4, r3, 1 ldr r1, [sp, 0x30] add r1, sp str r6, [sp, 0x48] _081A6928: ldrh r0, [r1] cmp r0, r2 bne _081A693A mov r0, r10 cmp r0, 0 bne _081A6950 mov r5, r12 ldrh r5, [r5] mov r10, r5 _081A693A: adds r4, 0x2 adds r1, 0x2 adds r3, 0x1 ldr r0, [sp, 0x48] cmp r3, r0 bge _081A6950 ldr r5, [sp, 0x38] adds r0, r5, r4 ldrh r0, [r0] cmp r0, r7 bne _081A6928 _081A6950: cmp r3, r6 bne _081A69E2 movs r3, 0 cmp r3, r6 bge _081A699C ldr r0, =gBattleFrontierHeldItems mov r12, r0 ldr r1, [sp, 0x30] ldr r2, [sp, 0x3C] adds r5, r1, r2 _081A6964: ldrh r4, [r5] cmp r4, 0 beq _081A6994 ldr r1, =gUnknown_0203BC8C ldr r0, [r1] mov r2, r9 adds r1, r2, r0 ldrb r0, [r1, 0xA] lsls r0, 1 add r0, r12 ldrh r0, [r0] cmp r4, r0 bne _081A6994 ldrh r0, [r1] cmp r0, r10 bne _081A699C movs r4, 0 mov r10, r4 b _081A699C .pool _081A6994: adds r5, 0x2 adds r3, 0x1 cmp r3, r6 blt _081A6964 _081A699C: cmp r3, r6 bne _081A69E2 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] mov r5, r8 lsls r3, r5, 1 adds r0, r3, r5 lsls r0, 2 adds r1, r0 movs r0, 0xE7 lsls r0, 4 adds r1, r0 strh r7, [r1] ldr r2, =gUnknown_0203BC8C ldr r1, [r2] add r1, r9 ldrh r0, [r1] ldr r4, [sp, 0x44] strh r0, [r4] ldr r2, =gBattleFrontierHeldItems ldrb r0, [r1, 0xA] lsls r0, 1 adds r0, r2 ldrh r0, [r0] ldr r5, [sp, 0x40] strh r0, [r5] ldr r0, [sp, 0x38] adds r3, r0, r3 strh r7, [r3] adds r5, 0x2 str r5, [sp, 0x40] adds r4, 0x2 str r4, [sp, 0x44] movs r1, 0x1 add r8, r1 _081A69E2: mov r2, r8 cmp r2, 0x6 beq _081A69EA b _081A68DE _081A69EA: add sp, 0x4C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A67EC thumb_func_start sub_81A6A08 sub_81A6A08: @ 81A6A08 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons str r0, [r1] movs r4, 0 add r5, sp, 0x14 ldr r7, =gScriptResult movs r1, 0 _081A6A1E: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x11 bls _081A6A1E movs r4, 0 ldr r0, =gUnknown_03006298 mov r8, r0 ldr r0, =gUnknown_0203BC8C ldr r6, [r0] ldr r1, =gBaseStats mov r12, r1 _081A6A3C: lsls r0, r4, 1 add r0, r8 ldrh r0, [r0] lsls r0, 4 adds r0, r6 ldrh r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 mov r2, r12 adds r3, r0, r2 ldrb r2, [r3, 0x6] mov r0, sp adds r1, r0, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldrb r1, [r3, 0x7] cmp r2, r1 beq _081A6A70 ldrb r0, [r3, 0x7] mov r2, sp adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081A6A70: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081A6A3C movs r0, 0 strb r0, [r5] strb r0, [r5, 0x1] movs r4, 0x1 adds r3, r5, 0 _081A6A84: ldrb r0, [r3] add r0, sp mov r2, sp adds r1, r2, r4 ldrb r2, [r0] ldrb r0, [r1] cmp r2, r0 bcs _081A6AAC strb r4, [r5] b _081A6AB2 .pool _081A6AAC: cmp r2, r0 bne _081A6AB2 strb r4, [r3, 0x1] _081A6AB2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x11 bls _081A6A84 ldrb r1, [r5] mov r4, sp adds r0, r4, r1 ldrb r2, [r0] cmp r2, 0 beq _081A6ADA ldrb r3, [r5, 0x1] adds r0, r4, r3 ldrb r0, [r0] cmp r2, r0 bhi _081A6AD6 cmp r1, r3 bne _081A6ADA _081A6AD6: strh r1, [r7] b _081A6ADE _081A6ADA: movs r0, 0x12 strh r0, [r7] _081A6ADE: add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81A6A08 thumb_func_start sub_81A6AEC sub_81A6AEC: @ 81A6AEC push {r4-r7,lr} sub sp, 0x8 movs r7, 0 ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons str r0, [r1] movs r4, 0 movs r1, 0 _081A6AFC: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _081A6AFC movs r4, 0 _081A6B0E: ldr r1, =gUnknown_03006298 lsls r0, r4, 1 adds r0, r1 ldrh r6, [r0] movs r5, 0 _081A6B18: ldr r0, =gUnknown_0203BC8C ldr r1, [r0] lsls r0, r6, 4 adds r0, r1 lsls r1, r5, 1 adds r0, 0x2 adds r0, r1 ldrh r0, [r0] bl sub_81A6BA4 lsls r0, 24 lsrs r0, 24 mov r2, sp adds r1, r2, r0 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081A6B18 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081A6B0E ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] movs r4, 0x1 adds r5, r1, 0 ldr r3, =gBattleFactoryStyleRequiredMoveCounts adds r2, r5, 0 _081A6B5C: mov r1, sp adds r0, r1, r4 subs r1, r4, 0x1 adds r1, r3 ldrb r0, [r0] ldrb r1, [r1] cmp r0, r1 bcc _081A6B74 strh r4, [r2] adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _081A6B74: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x7 bls _081A6B5C cmp r7, 0x2 bls _081A6B86 movs r0, 0x8 strh r0, [r5] _081A6B86: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A6AEC thumb_func_start sub_81A6BA4 sub_81A6BA4: @ 81A6BA4 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 movs r2, 0 ldr r6, =gBattleFactoryStyleMoveListPointers _081A6BAE: movs r3, 0 lsls r0, r2, 2 adds r0, r6 ldr r1, [r0] ldrh r0, [r1] adds r4, r2, 0x1 cmp r0, 0 beq _081A6BE4 lsls r0, r4, 24 lsrs r2, r0, 24 _081A6BC2: lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, r5 bne _081A6BD4 adds r0, r2, 0 b _081A6BEE .pool _081A6BD4: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 1 adds r0, r1 ldrh r0, [r0] cmp r0, 0 bne _081A6BC2 _081A6BE4: lsls r0, r4, 24 lsrs r2, r0, 24 cmp r2, 0x6 bls _081A6BAE movs r0, 0 _081A6BEE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81A6BA4 thumb_func_start sub_81A6BF4 sub_81A6BF4: @ 81A6BF4 push {lr} movs r2, 0 ldr r1, =gMapHeader ldr r3, =0xfffffea5 adds r0, r3, 0 ldrh r1, [r1, 0x12] adds r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _081A6C0C movs r2, 0x1 _081A6C0C: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_81A6BF4 thumb_func_start sub_81A6C1C sub_81A6C1C: @ 81A6C1C push {r4,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca9 adds r0, r1 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0x2 beq _081A6C48 ldr r1, =gUnknown_0203BC8C ldr r0, =gBattleFrontierMons b _081A6C4C .pool _081A6C48: ldr r1, =gUnknown_0203BC8C ldr r0, =gSlateportBattleTentMons _081A6C4C: str r0, [r1] movs r4, 0 _081A6C50: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gSaveBlock2Ptr ldr r2, [r1] lsls r1, r4, 1 adds r1, r4 lsls r1, 2 adds r2, r1 movs r1, 0xE7 lsls r1, 4 adds r2, r1 ldrh r2, [r2] ldr r1, =gUnknown_0203BC8C ldr r1, [r1] lsls r2, 4 adds r2, r1 ldrb r2, [r2, 0xA] lsls r2, 1 ldr r1, =gBattleFrontierHeldItems adds r2, r1 movs r1, 0xC bl SetMonData adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081A6C50 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A6C1C thumb_func_start sub_81A6CA8 sub_81A6CA8: @ 81A6CA8 push {lr} lsls r0, 24 lsls r1, 24 lsrs r1, 24 negs r2, r1 orrs r2, r1 lsrs r2, 31 lsrs r1, r0, 24 cmp r1, 0x8 bls _081A6CBE movs r1, 0x7 _081A6CBE: ldr r0, =gUnknown_08612184 lsls r1, 1 adds r1, r2, r1 adds r1, r0 ldrb r0, [r1] pop {r1} bx r1 .pool thumb_func_end sub_81A6CA8 thumb_func_start sub_81A6CD0 sub_81A6CD0: @ 81A6CD0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 str r0, [sp, 0x2C] ldr r0, =0x000040ce bl VarGet lsls r0, 24 ldr r1, [r4] ldr r3, [sp, 0x2C] lsls r2, r3, 1 lsrs r0, 22 adds r2, r0 ldr r7, =0x00000de2 adds r1, r7 adds r1, r2 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 24 lsrs r1, r0, 24 str r1, [sp, 0x30] movs r2, 0x80 lsls r2, 18 adds r0, r2 lsrs r0, 24 movs r1, 0 bl sub_81A6CA8 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x24] bl sub_8165C40 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x20] movs r3, 0 mov r9, r3 ldr r1, [r4] ldrb r4, [r1, 0xA] ldrb r0, [r1, 0xB] lsls r0, 8 orrs r4, r0 ldrb r0, [r1, 0xC] lsls r0, 16 orrs r4, r0 ldrb r0, [r1, 0xD] lsls r0, 24 orrs r4, r0 str r4, [sp, 0x28] _081A6D4C: ldr r0, [sp, 0x2C] ldr r1, [sp, 0x30] movs r2, 0 bl sub_81A6EF0 lsls r0, 16 lsrs r5, r0, 16 ldr r7, =gUnknown_0203BC8C ldr r1, [r7] lsls r0, r5, 4 adds r0, r1 ldrh r0, [r0] cmp r0, 0xC9 bne _081A6D6A b _081A6EB8 _081A6D6A: ldr r0, [sp, 0x20] cmp r0, 0x32 bne _081A6D78 ldr r0, =0x00000351 cmp r5, r0 bls _081A6D78 b _081A6EB8 _081A6D78: movs r2, 0 ldr r1, =gSaveBlock2Ptr ldr r0, [r1] movs r3, 0xE7 lsls r3, 4 adds r0, r3 ldrh r0, [r0] cmp r5, r0 beq _081A6DA2 adds r4, r1, 0 movs r1, 0 _081A6D8E: adds r1, 0xC adds r2, 0x1 cmp r2, 0x5 bgt _081A6DA2 ldr r0, [r4] adds r0, r1 adds r0, r3 ldrh r0, [r0] cmp r5, r0 bne _081A6D8E _081A6DA2: cmp r2, 0x6 beq _081A6DA8 b _081A6EB8 _081A6DA8: movs r4, 0 cmp r4, r9 bge _081A6DDC add r2, sp, 0xC ldr r7, =gUnknown_0203BC8C ldr r0, [r7] lsls r1, r5, 4 adds r0, r1, r0 ldrh r2, [r2] adds r7, r1, 0 ldrh r0, [r0] cmp r2, r0 beq _081A6DDC ldr r6, =gUnknown_0203BC8C adds r3, r7, 0 add r2, sp, 0xC _081A6DC8: adds r2, 0x2 adds r4, 0x1 cmp r4, r9 bge _081A6DDC ldr r0, [r6] adds r0, r3, r0 ldrh r1, [r2] ldrh r0, [r0] cmp r1, r0 bne _081A6DC8 _081A6DDC: cmp r4, r9 bne _081A6EB8 movs r4, 0 cmp r4, r9 bge _081A6E0C ldr r7, =gBattleFrontierHeldItems ldr r6, =gUnknown_0203BC8C add r2, sp, 0x14 lsls r3, r5, 4 _081A6DEE: ldrh r1, [r2] cmp r1, 0 beq _081A6E04 ldr r0, [r6] adds r0, r3, r0 ldrb r0, [r0, 0xA] lsls r0, 1 adds r0, r7 ldrh r0, [r0] cmp r1, r0 beq _081A6E0C _081A6E04: adds r2, 0x2 adds r4, 0x1 cmp r4, r9 blt _081A6DEE _081A6E0C: cmp r4, r9 bne _081A6EB8 mov r0, r9 lsls r2, r0, 1 mov r1, sp adds r1, r2 adds r1, 0xC ldr r3, =gUnknown_0203BC8C ldr r4, [r3] lsls r5, 4 mov r8, r5 add r4, r8 ldrh r0, [r4] strh r0, [r1] add r1, sp, 0x14 adds r1, r2 ldr r2, =gBattleFrontierHeldItems ldrb r0, [r4, 0xA] lsls r0, 1 adds r0, r2 ldrh r0, [r0] strh r0, [r1] movs r0, 0x64 mov r5, r9 muls r5, r0 ldr r6, =gEnemyParty adds r0, r5, r6 ldrh r1, [r4] ldr r7, [sp, 0x20] lsls r2, r7, 24 ldrb r3, [r4, 0xC] ldr r7, [sp, 0x24] str r7, [sp] ldrb r4, [r4, 0xB] str r4, [sp, 0x4] ldr r4, [sp, 0x28] str r4, [sp, 0x8] lsrs r2, 24 bl sub_8068634 add r0, sp, 0x1C movs r7, 0 strb r7, [r0] movs r4, 0 mov r7, r8 mov r10, r0 movs r0, 0x1 add r0, r9 mov r8, r0 _081A6E6E: ldr r1, =gUnknown_0203BC8C ldr r0, [r1] adds r0, r7, r0 lsls r1, r4, 1 adds r0, 0x2 adds r0, r1 ldrh r1, [r0] lsls r2, r4, 24 lsrs r2, 24 adds r0, r5, r6 bl sub_81A7024 adds r4, 0x1 cmp r4, 0x3 ble _081A6E6E movs r0, 0x64 mov r4, r9 muls r4, r0 ldr r0, =gEnemyParty adds r4, r0 adds r0, r4, 0 movs r1, 0x20 mov r2, r10 bl SetMonData ldr r2, =gUnknown_0203BC8C ldr r0, [r2] adds r0, r7, r0 ldrb r2, [r0, 0xA] lsls r2, 1 ldr r0, =gBattleFrontierHeldItems adds r2, r0 adds r0, r4, 0 movs r1, 0xC bl SetMonData mov r9, r8 _081A6EB8: mov r3, r9 cmp r3, 0x3 beq _081A6EC0 b _081A6D4C _081A6EC0: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A6CD0 thumb_func_start sub_81A6EF0 sub_81A6EF0: @ 81A6EF0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r2, 24 lsrs r2, 24 movs r4, 0x8 negs r1, r0 orrs r1, r0 asrs r1, 31 ands r1, r4 adds r4, r1, 0 cmp r3, 0x6 bhi _081A6F2C cmp r2, 0 beq _081A6F20 ldr r2, =gUnknown_08612194 adds r1, r3 adds r1, 0x1 b _081A6F38 .pool _081A6F20: ldr r2, =gUnknown_08612194 adds r1, r3 b _081A6F38 .pool _081A6F2C: adds r1, r3, 0 cmp r1, 0x7 beq _081A6F34 movs r1, 0x7 _081A6F34: ldr r2, =gUnknown_08612194 adds r1, r4, r1 _081A6F38: lsls r1, 2 adds r0, r2, 0x2 adds r0, r1, r0 adds r1, r2 ldrh r0, [r0] ldrh r4, [r1] subs r0, r4 adds r0, 0x1 lsls r0, 16 lsrs r5, r0, 16 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r4, r0, r4 lsls r4, 16 lsrs r0, r4, 16 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81A6EF0 thumb_func_start sub_81A6F70 sub_81A6F70: @ 81A6F70 push {lr} lsls r0, 24 lsls r1, 24 ldr r2, =gSaveBlock2Ptr ldr r2, [r2] lsrs r1, 23 lsrs r0, 22 adds r1, r0 ldr r0, =0x00000df2 adds r2, r0 adds r2, r1 ldrb r1, [r2] movs r0, 0 cmp r1, 0xE bls _081A6FA8 movs r0, 0x1 cmp r1, 0x15 bls _081A6FA8 movs r0, 0x2 cmp r1, 0x1C bls _081A6FA8 movs r0, 0x3 cmp r1, 0x23 bls _081A6FA8 movs r0, 0x5 cmp r1, 0x2A bhi _081A6FA8 movs r0, 0x4 _081A6FA8: pop {r1} bx r1 .pool thumb_func_end sub_81A6F70 thumb_func_start GetAiScriptsInBattleFactory GetAiScriptsInBattleFactory: @ 81A6FB4 push {r4,r5,lr} ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldr r1, =0x00000ca9 adds r0, r1 ldrb r0, [r0] lsls r0, 30 lsrs r4, r0, 30 cmp r4, 0x2 beq _081A6FF8 ldr r0, =0x000040ce bl VarGet lsls r0, 16 ldr r1, [r5] lsls r2, r4, 1 lsrs r0, 14 adds r2, r0 ldr r0, =0x00000de2 adds r1, r0 adds r1, r2 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gTrainerBattleOpponent_A ldrh r1, [r0] ldr r0, =0x000003fe cmp r1, r0 beq _081A7018 cmp r2, 0x1 bgt _081A7014 _081A6FF8: movs r0, 0 b _081A701E .pool _081A7014: cmp r2, 0x3 ble _081A701C _081A7018: movs r0, 0x7 b _081A701E _081A701C: movs r0, 0x1 _081A701E: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetAiScriptsInBattleFactory thumb_func_start sub_81A7024 sub_81A7024: @ 81A7024 push {lr} lsls r1, 16 lsls r2, 24 lsrs r2, 24 lsrs r1, 16 cmp r1, 0xD8 bne _081A7034 movs r1, 0xDA _081A7034: bl SetMonMoveSlot pop {r0} bx r0 thumb_func_end sub_81A7024 thumb_func_start sub_81A703C sub_81A703C: @ 81A703C push {lr} ldr r1, =gUnknown_086125F8 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81A703C thumb_func_start sub_81A705C sub_81A705C: @ 81A705C push {lr} bl sub_81A79EC ldr r1, =gUnknown_0300128C strb r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_81A705C thumb_func_start sub_81A7070 sub_81A7070: @ 81A7070 push {r4-r7,lr} ldr r0, =0x00004010 movs r1, 0x1C bl VarSet ldr r0, =0x00004011 movs r1, 0xE2 bl VarSet movs r4, 0x1 movs r6, 0 movs r5, 0 movs r7, 0 ldr r0, =gUnknown_0300128C ldrb r0, [r0] cmp r0, 0x8 bhi _081A7132 lsls r0, 2 ldr r1, =_081A70AC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A70AC: .4byte _081A70D0 .4byte _081A70DA .4byte _081A70DE .4byte _081A70E8 .4byte _081A70FC .4byte _081A70D6 .4byte _081A7100 .4byte _081A7108 .4byte _081A710E _081A70D0: movs r0, 0 bl sub_81A82A4 _081A70D6: movs r4, 0 b _081A711A _081A70DA: movs r5, 0x1C b _081A711A _081A70DE: bl sub_81A7B58 lsls r0, 24 lsrs r5, r0, 24 b _081A711A _081A70E8: movs r5, 0x30 ldr r0, =gUnknown_0300128D ldrb r0, [r0] movs r7, 0xE1 cmp r0, 0x1 bne _081A7118 movs r7, 0xE2 b _081A7118 .pool _081A70FC: movs r5, 0x30 b _081A711A _081A7100: movs r0, 0x1 bl sub_81A82A4 b _081A7114 _081A7108: bl sub_81A8374 b _081A70D6 _081A710E: movs r0, 0x5 bl sub_81A5030 _081A7114: movs r7, 0x1C movs r4, 0 _081A7118: movs r6, 0x1 _081A711A: cmp r4, 0x1 bne _081A7126 ldr r0, =0x00004010 adds r1, r5, 0 bl VarSet _081A7126: cmp r6, 0x1 bne _081A7132 ldr r0, =0x00004011 adds r1, r7, 0 bl VarSet _081A7132: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A7070 thumb_func_start sub_81A7140 sub_81A7140: @ 81A7140 push {lr} ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000ca9 adds r0, r2 ldrb r0, [r0] lsls r0, 30 lsrs r2, r0, 30 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0x4 bhi _081A723A lsls r0, 2 ldr r1, =_081A7174 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A7174: .4byte _081A7188 .4byte _081A71A0 .4byte _081A71C4 .4byte _081A71E8 .4byte _081A720C _081A7188: ldr r0, =gScriptResult ldr r1, [r3] ldr r3, =0x00000e02 adds r1, r3 ldrh r1, [r1] strh r1, [r0] b _081A723A .pool _081A71A0: ldr r2, =gScriptResult ldr r1, [r3] ldr r3, =0x00000ca9 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r3, =0x00000e04 adds r1, r3 adds r1, r0 ldrh r0, [r1] b _081A7238 .pool _081A71C4: ldr r2, =gScriptResult ldr r1, [r3] ldr r3, =0x00000ca9 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r3, =0x00000e08 adds r1, r3 adds r1, r0 ldrh r0, [r1] b _081A7238 .pool _081A71E8: ldr r2, =gScriptResult ldr r1, [r3] ldr r3, =0x00000ca9 adds r0, r1, r3 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r3, =0x00000e0c adds r1, r3 adds r1, r0 ldrh r0, [r1] b _081A7238 .pool _081A720C: cmp r2, 0 beq _081A7228 ldr r2, =gScriptResult ldr r0, [r3] ldr r1, =0x00000cdc adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 4 b _081A7236 .pool _081A7228: ldr r2, =gScriptResult ldr r0, [r3] ldr r3, =0x00000cdc adds r0, r3 ldr r0, [r0] movs r1, 0x80 lsls r1, 3 _081A7236: ands r0, r1 _081A7238: strh r0, [r2] _081A723A: pop {r0} bx r0 .pool thumb_func_end sub_81A7140 thumb_func_start sub_81A7248 sub_81A7248: @ 81A7248 push {r4,r5,lr} ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000ca9 adds r0, r2 ldrb r0, [r0] lsls r0, 30 lsrs r3, r0, 30 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] adds r2, r1, 0 cmp r0, 0x4 bls _081A7264 b _081A73AA _081A7264: lsls r0, 2 ldr r1, =_081A7280 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A7280: .4byte _081A7294 .4byte _081A72AC .4byte _081A72D8 .4byte _081A7314 .4byte _081A7344 _081A7294: ldr r0, [r2] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r5, =0x00000e02 adds r0, r5 strh r1, [r0] b _081A73AA .pool _081A72AC: ldr r0, =gSpecialVar_0x8006 ldrh r3, [r0] ldr r0, =0x0000270f cmp r3, r0 bls _081A72B8 b _081A73AA _081A72B8: ldr r0, [r2] ldr r2, =0x00000ca9 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 30 lsrs r1, 29 ldr r5, =0x00000e04 b _081A732C .pool _081A72D8: ldr r0, =gSpecialVar_0x8006 ldrh r4, [r0] adds r3, r4, 0 ldr r0, =0x0000270f cmp r3, r0 bhi _081A73AA ldr r1, [r2] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r2, r0, 30 lsrs r0, r2, 29 ldr r5, =0x00000e08 adds r1, r5 adds r0, r1, r0 ldrh r0, [r0] cmp r0, r3 bcs _081A73AA lsrs r0, r2, 29 adds r0, r1, r0 strh r4, [r0] b _081A73AA .pool _081A7314: ldr r0, =gSpecialVar_0x8006 ldrh r3, [r0] ldr r0, =0x0000270f cmp r3, r0 bhi _081A73AA ldr r0, [r2] ldr r2, =0x00000ca9 adds r1, r0, r2 ldrb r1, [r1] lsls r1, 30 lsrs r1, 29 ldr r5, =0x00000e0c _081A732C: adds r0, r5 adds r0, r1 strh r3, [r0] b _081A73AA .pool _081A7344: cmp r3, 0 beq _081A737C ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A7368 ldr r0, [r2] ldr r1, =0x00000cdc adds r0, r1 ldr r1, [r0] movs r2, 0x80 lsls r2, 4 orrs r1, r2 b _081A73A8 .pool _081A7368: ldr r0, [r2] ldr r2, =0x00000cdc adds r0, r2 ldr r1, [r0] ldr r2, =0xfffff7ff b _081A73A6 .pool _081A737C: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A739C ldr r0, [r2] ldr r5, =0x00000cdc adds r0, r5 ldr r1, [r0] movs r2, 0x80 lsls r2, 3 orrs r1, r2 b _081A73A8 .pool _081A739C: ldr r0, [r2] ldr r1, =0x00000cdc adds r0, r1 ldr r1, [r0] ldr r2, =0xfffffbff _081A73A6: ands r1, r2 _081A73A8: str r1, [r0] _081A73AA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A7248 thumb_func_start sub_81A73B8 sub_81A73B8: @ 81A73B8 push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] cmp r0, 0xE bls _081A73DC ldr r1, =gScriptResult movs r0, 0x1 b _081A73E0 .pool _081A73DC: ldr r1, =gScriptResult movs r0, 0 _081A73E0: strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_81A73B8 thumb_func_start sub_81A73EC sub_81A73EC: @ 81A73EC ldr r0, =gScriptResult ldr r1, =gUnknown_0300128C ldrb r1, [r1] strh r1, [r0] bx lr .pool thumb_func_end sub_81A73EC thumb_func_start sub_81A7400 sub_81A7400: @ 81A7400 ldr r1, =gUnknown_0300128E movs r0, 0x1 strb r0, [r1] bx lr .pool thumb_func_end sub_81A7400 thumb_func_start sub_81A740C sub_81A740C: @ 81A740C ldr r1, =gUnknown_0300128E movs r0, 0 strb r0, [r1] bx lr .pool thumb_func_end sub_81A740C thumb_func_start sub_81A7418 sub_81A7418: @ 81A7418 push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl save_serialize_map movs r0, 0x1 bl TrySavingData pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A7418 thumb_func_start nullsub_76 nullsub_76: @ 81A7460 bx lr thumb_func_end nullsub_76 thumb_func_start nullsub_124 nullsub_124: @ 81A7464 bx lr thumb_func_end nullsub_124 thumb_func_start sub_81A7468 sub_81A7468: @ 81A7468 push {lr} ldr r0, =gUnknown_03001290 ldr r0, [r0] cmp r0, 0x20 beq _081A748E cmp r0, 0x20 bhi _081A7484 cmp r0, 0x7 beq _081A74BC cmp r0, 0x10 beq _081A7498 b _081A74C2 .pool _081A7484: cmp r0, 0x40 beq _081A74B0 cmp r0, 0x80 beq _081A74A4 b _081A74C2 _081A748E: ldr r1, =gScriptResult movs r0, 0 b _081A74C0 .pool _081A7498: ldr r1, =gScriptResult movs r0, 0x1 b _081A74C0 .pool _081A74A4: ldr r1, =gScriptResult movs r0, 0x2 b _081A74C0 .pool _081A74B0: ldr r1, =gScriptResult movs r0, 0x3 b _081A74C0 .pool _081A74BC: ldr r1, =gScriptResult movs r0, 0x4 _081A74C0: strh r0, [r1] _081A74C2: pop {r0} bx r0 .pool thumb_func_end sub_81A7468 thumb_func_start sub_81A74CC sub_81A74CC: @ 81A74CC ldr r0, =gScriptResult ldr r1, =gUnknown_0300128D ldrb r1, [r1] strh r1, [r0] bx lr .pool thumb_func_end sub_81A74CC thumb_func_start sub_81A74E0 sub_81A74E0: @ 81A74E0 push {r4,lr} bl Random adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0x1 ands r4, r0 adds r4, 0x1 adds r0, r4, 0 bl sub_81A7F38 ldr r0, =gScriptResult strh r4, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A74E0 thumb_func_start sub_81A7508 sub_81A7508: @ 81A7508 push {lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] cmp r0, 0x4 bhi _081A7538 ldr r1, =gUnknown_0861231C ldr r0, =gUnknown_03001294 ldrb r0, [r0] lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x2] b _081A7560 .pool _081A7538: cmp r0, 0xA bhi _081A7554 ldr r1, =gUnknown_0861231C ldr r0, =gUnknown_03001294 ldrb r0, [r0] lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x3] b _081A7560 .pool _081A7554: ldr r1, =gUnknown_0861231C ldr r0, =gUnknown_03001294 ldrb r0, [r0] lsls r0, 3 adds r0, r1 ldrb r1, [r0, 0x4] _081A7560: lsls r0, r1, 1 adds r0, r1 lsls r0, 2 ldr r1, =gUnknown_086123E4 adds r0, r1 bl ConvertBattleFrontierTrainerSpeechToString pop {r0} bx r0 .pool thumb_func_end sub_81A7508 thumb_func_start sub_81A7580 sub_81A7580: @ 81A7580 push {lr} ldr r0, =sub_81A7EE4 movs r1, 0x2 bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81A7580 thumb_func_start sub_81A7594 sub_81A7594: @ 81A7594 push {r4-r6,lr} sub sp, 0x4 adds r5, r0, 0 movs r4, 0 movs r1, 0 _081A759E: mov r2, sp adds r0, r2, r4 strb r1, [r0] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081A759E adds r0, r5, 0 movs r1, 0x3A bl GetMonData lsls r2, r0, 16 mov r1, sp strb r0, [r1] mov r0, sp lsrs r2, 24 strb r2, [r0, 0x1] adds r0, r5, 0 movs r1, 0x39 mov r2, sp bl SetMonData adds r0, r5, 0 movs r1, 0x15 bl GetMonData lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 _081A75DA: adds r1, r4, 0 adds r1, 0xD adds r0, r5, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 adds r2, r4, 0 bl CalculatePPWithBonus mov r1, sp strb r0, [r1] adds r1, r4, 0 adds r1, 0x11 adds r0, r5, 0 mov r2, sp bl SetMonData adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081A75DA mov r0, sp movs r1, 0 strb r1, [r0] strb r1, [r0, 0x1] strb r1, [r0, 0x2] strb r1, [r0, 0x3] adds r0, r5, 0 movs r1, 0x37 mov r2, sp bl SetMonData add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81A7594 thumb_func_start sub_81A7628 sub_81A7628: @ 81A7628 push {r4,lr} adds r4, r1, 0 bl GetMonAbility lsls r0, 24 lsrs r0, 24 movs r1, 0 cmp r4, 0x20 beq _081A7652 cmp r4, 0x20 bhi _081A7648 cmp r4, 0x7 beq _081A7664 cmp r4, 0x10 beq _081A7658 b _081A7674 _081A7648: cmp r4, 0x40 beq _081A765E cmp r4, 0x80 beq _081A766E b _081A7674 _081A7652: cmp r0, 0x28 bne _081A7674 b _081A7672 _081A7658: cmp r0, 0x29 bne _081A7674 b _081A7672 _081A765E: cmp r0, 0x7 bne _081A7674 b _081A7672 _081A7664: cmp r0, 0xF beq _081A7672 cmp r0, 0x48 bne _081A7674 b _081A7672 _081A766E: cmp r0, 0x11 bne _081A7674 _081A7672: movs r1, 0x1 _081A7674: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81A7628 thumb_func_start sub_81A767C sub_81A767C: @ 81A767C push {lr} lsls r0, 16 lsrs r2, r0, 16 movs r3, 0 cmp r1, 0x20 beq _081A76C4 cmp r1, 0x20 bhi _081A7696 cmp r1, 0x7 beq _081A771C cmp r1, 0x10 beq _081A7704 b _081A771C _081A7696: cmp r1, 0x40 beq _081A76E0 cmp r1, 0x80 bne _081A771C ldr r1, =gBaseStats lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x6] cmp r2, 0x8 beq _081A771A cmp r2, 0x3 beq _081A771A ldrb r0, [r0, 0x7] cmp r0, 0x8 beq _081A771A cmp r0, 0x3 bne _081A771C b _081A771A .pool _081A76C4: ldr r0, =gBaseStats lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, 0xF beq _081A771A ldrb r0, [r1, 0x7] cmp r0, 0xF bne _081A771C b _081A771A .pool _081A76E0: ldr r1, =gBaseStats lsls r0, r2, 3 subs r0, r2 lsls r0, 2 adds r0, r1 ldrb r2, [r0, 0x6] cmp r2, 0x4 beq _081A771A cmp r2, 0xD beq _081A771A ldrb r0, [r0, 0x7] cmp r0, 0x4 beq _081A771A cmp r0, 0xD bne _081A771C b _081A771A .pool _081A7704: ldr r0, =gBaseStats lsls r1, r2, 3 subs r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x6] cmp r0, 0xA beq _081A771A ldrb r0, [r1, 0x7] cmp r0, 0xA bne _081A771C _081A771A: movs r3, 0x1 _081A771C: adds r0, r3, 0 pop {r1} bx r1 .pool thumb_func_end sub_81A767C thumb_func_start sub_81A7728 sub_81A7728: @ 81A7728 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 movs r6, 0 _081A7736: mov r1, sp adds r0, r1, r6 strb r6, [r0] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _081A7736 movs r4, 0 mov r8, r4 _081A774A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r6, r0, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r1, sp adds r2, r1, r6 ldrb r3, [r2] adds r1, r0 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x9 bls _081A774A ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r4, =0x00000cb2 adds r0, r4 ldrh r0, [r0] movs r1, 0x1 mov r10, r1 cmp r0, 0x4 bls _081A77A8 movs r4, 0x3 mov r10, r4 cmp r0, 0x9 bhi _081A77A8 movs r0, 0x2 mov r10, r0 _081A77A8: movs r1, 0 str r1, [sp, 0x4] ldr r7, =gUnknown_03001290 _081A77AE: movs r4, 0 mov r9, r4 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x22 bhi _081A77DC movs r0, 0x80 b _081A77FC .pool _081A77DC: cmp r0, 0x3B bhi _081A77E4 movs r0, 0x20 b _081A77FC _081A77E4: cmp r0, 0x4F bhi _081A77EC movs r0, 0x40 b _081A77FC _081A77EC: cmp r1, 0x59 bhi _081A77FA movs r0, 0x7 b _081A77FC _081A77F4: movs r0, 0x1 mov r9, r0 b _081A786E _081A77FA: movs r0, 0x10 _081A77FC: str r0, [r7] ldr r0, =gUnknown_03001290 ldr r0, [r0] ldr r1, [sp, 0x4] cmp r1, r0 beq _081A7874 str r0, [sp, 0x4] movs r4, 0 mov r8, r4 movs r6, 0 _081A7810: mov r1, sp adds r0, r1, r6 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 cmp r0, 0 bne _081A7860 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081A7860 mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r1, [r7] adds r0, r4, 0 bl sub_81A767C lsls r0, 24 cmp r0, 0 beq _081A77F4 _081A7860: cmp r8, r10 beq _081A786E adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _081A7810 _081A786E: mov r4, r8 cmp r4, 0 beq _081A78CC _081A7874: mov r0, r9 cmp r0, 0 beq _081A77AE ldr r0, =gUnknown_03001290 ldr r0, [r0] cmp r0, 0x20 beq _081A7898 cmp r0, 0x20 bhi _081A78D0 cmp r0, 0x7 beq _081A78D0 cmp r0, 0x10 beq _081A78A4 b _081A78D0 .pool _081A7898: ldr r1, =gUnknown_0300128D movs r0, 0x1 b _081A78D4 .pool _081A78A4: bl Random lsls r0, 16 lsrs r1, r0, 16 movs r2, 0x1 ands r1, r2 cmp r1, 0 beq _081A78C0 ldr r0, =gUnknown_0300128D strb r2, [r0] b _081A78D6 .pool _081A78C0: ldr r0, =gUnknown_0300128D strb r1, [r0] b _081A78D6 .pool _081A78CC: movs r0, 0 b _081A7956 _081A78D0: ldr r1, =gUnknown_0300128D movs r0, 0 _081A78D4: strb r0, [r1] _081A78D6: movs r1, 0 mov r8, r1 movs r6, 0 _081A78DC: mov r4, sp adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 cmp r0, 0 bne _081A7946 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081A7946 mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r7, =gUnknown_03001290 ldr r1, [r7] adds r0, r5, 0 bl sub_81A7628 lsls r0, 24 cmp r0, 0 bne _081A7946 ldr r1, [r7] adds r0, r4, 0 bl sub_81A767C lsls r0, 24 cmp r0, 0 bne _081A7946 adds r0, r5, 0 movs r1, 0x37 adds r2, r7, 0 bl SetMonData _081A7946: cmp r8, r10 beq _081A7954 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x2 bls _081A78DC _081A7954: movs r0, 0x1 _081A7956: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81A7728 thumb_func_start sub_81A7974 sub_81A7974: @ 81A7974 push {r4-r7,lr} ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] movs r7, 0x1 cmp r0, 0x4 bls _081A798E movs r7, 0x3 cmp r0, 0x9 bhi _081A798E movs r7, 0x2 _081A798E: movs r6, 0 movs r5, 0 b _081A79A2 .pool _081A799C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 _081A79A2: cmp r5, 0x2 bhi _081A79D8 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 cmp r0, 0 bne _081A79D4 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081A79D4 adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _081A79D4: cmp r6, r7 bne _081A799C _081A79D8: cmp r6, 0 beq _081A79E4 movs r0, 0x1 b _081A79E6 .pool _081A79E4: movs r0, 0 _081A79E6: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81A7974 thumb_func_start sub_81A79EC sub_81A79EC: @ 81A79EC push {r4-r6,lr} sub sp, 0x8 ldr r1, =gSaveBlock2Ptr ldr r0, [r1] movs r4, 0xE1 lsls r4, 4 adds r0, r4 ldrb r2, [r0] movs r3, 0x78 ands r3, r2 adds r5, r1, 0 cmp r3, 0x40 bne _081A7A10 lsls r0, r2, 25 lsrs r0, 28 b _081A7B48 .pool _081A7A10: ldr r0, =gSpecialVar_0x8007 lsls r1, r2, 29 ldrh r0, [r0] lsrs r1, 29 cmp r0, r1 bne _081A7A34 cmp r3, 0x18 bne _081A7A24 bl sub_81A7728 _081A7A24: ldr r0, [r5] adds r0, r4 ldrb r0, [r0] lsls r0, 25 lsrs r0, 28 b _081A7B48 .pool _081A7A34: movs r2, 0 ldr r3, =gUnknown_0861266C movs r1, 0 _081A7A3A: mov r4, sp adds r0, r4, r2 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _081A7A3A movs r4, 0x8 ldr r0, [r5] movs r6, 0xE1 lsls r6, 4 adds r0, r6 ldrb r0, [r0] lsls r0, 25 lsrs r0, 28 adds r0, r3 ldrb r1, [r0] movs r2, 0 adds r5, r3, 0 movs r3, 0x1 _081A7A64: adds r0, r2, r5 ldrb r0, [r0] cmp r0, r1 bne _081A7A78 mov r6, sp adds r0, r6, r2 strb r3, [r0] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081A7A78: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _081A7A64 mov r0, sp ldrb r0, [r0, 0x7] cmp r0, 0x1 beq _081A7AA0 bl sub_81A8554 lsls r0, 24 cmp r0, 0 bne _081A7AA0 mov r1, sp movs r0, 0x1 strb r0, [r1, 0x7] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081A7AA0: mov r0, sp ldrb r0, [r0, 0x3] cmp r0, 0x1 beq _081A7ABE bl sub_81A7974 lsls r0, 24 cmp r0, 0 bne _081A7ABE mov r1, sp movs r0, 0x1 strb r0, [r1, 0x3] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081A7ABE: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xE1 lsls r1, 4 adds r0, r1 ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081A7AFA mov r0, sp ldrb r0, [r0, 0x1] cmp r0, 0x1 beq _081A7AE6 mov r1, sp movs r0, 0x1 strb r0, [r1, 0x1] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081A7AE6: mov r0, sp ldrb r0, [r0, 0x4] cmp r0, 0x1 beq _081A7AFA mov r1, sp movs r0, 0x1 strb r0, [r1, 0x4] subs r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081A7AFA: adds r0, r4, 0 bl AllocZeroed adds r5, r0, 0 movs r3, 0 movs r2, 0 _081A7B06: mov r6, sp adds r0, r6, r2 ldrb r0, [r0] cmp r0, 0 bne _081A7B1C adds r1, r3, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r1, r5, r1 strb r2, [r1] _081A7B1C: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x7 bls _081A7B06 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl __modsi3 adds r0, r5, r0 ldrb r4, [r0] adds r0, r5, 0 bl Free cmp r4, 0x3 bne _081A7B46 bl sub_81A7728 _081A7B46: adds r0, r4, 0 _081A7B48: add sp, 0x8 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81A79EC thumb_func_start sub_81A7B58 sub_81A7B58: @ 81A7B58 push {r4,lr} ldr r4, =gUnknown_03001294 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x19 bl __umodsi3 strb r0, [r4] ldr r1, =gUnknown_0861231C ldrb r0, [r4] lsls r0, 3 adds r0, r1 ldrh r0, [r0] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81A7B58 thumb_func_start sub_81A7B84 sub_81A7B84: @ 81A7B84 ldr r0, =gUnknown_0300128E ldrb r0, [r0] bx lr .pool thumb_func_end sub_81A7B84 thumb_func_start sub_81A7B90 sub_81A7B90: @ 81A7B90 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 mov r8, r0 bl sub_81A7D00 lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gSaveBlock2Ptr ldr r0, [r7] ldr r4, =0x00000ca9 adds r0, r4 ldrb r0, [r0] lsls r0, 30 ldr r1, =gUnknown_08612314 lsrs r0, 28 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x4] ldr r0, =gEnemyParty movs r1, 0xB movs r2, 0 bl GetMonData adds r5, r0, 0 lsls r0, r5, 16 lsrs r0, 16 bl sub_81A890C lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r7] adds r0, r4 ldrb r1, [r0] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081A7C1C bl sub_8165CB4 adds r7, r0, 0 cmp r7, 0x3B ble _081A7C08 lsls r0, r6, 2 ldr r1, [sp, 0x4] adds r0, r1 ldr r1, [r0] lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r0, [r0, 0x2] subs r7, r0 cmp r7, 0x3B bgt _081A7C32 _081A7C08: movs r7, 0x3C b _081A7C32 .pool _081A7C1C: lsls r0, r6, 2 ldr r2, [sp, 0x4] adds r0, r2 ldr r1, [r0] lsls r0, r5, 1 adds r0, r5 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x2] movs r0, 0x32 subs r7, r0, r1 _081A7C32: mov r0, r8 cmp r0, 0x1 bne _081A7C4A lsls r0, r7, 24 lsrs r0, 24 bl sub_81A88B0 lsls r0, 24 cmp r0, 0 bne _081A7C4A movs r0, 0 b _081A7CE2 _081A7C4A: ldr r0, =gEnemyParty ldr r1, =gBaseStats mov r8, r1 lsls r6, 2 mov r9, r6 ldr r2, [sp, 0x4] add r2, r9 mov r10, r2 ldr r1, [r2] lsls r6, r5, 1 adds r4, r6, r5 lsls r4, 2 adds r1, r4, r1 ldrh r2, [r1] lsls r1, r2, 3 subs r1, r2 lsls r1, 2 add r1, r8 ldrb r2, [r1, 0x13] movs r1, 0xCA lsls r1, 1 muls r2, r1 lsls r1, r7, 2 ldr r3, =gExperienceTables adds r1, r3 adds r2, r1 movs r1, 0x19 bl SetMonData mov r1, r10 ldr r0, [r1] adds r4, r0 ldrh r1, [r4] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 add r0, r8 ldrb r0, [r0, 0x17] mov r7, r9 cmp r0, 0 beq _081A7CA8 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 _081A7CA8: str r0, [sp] ldr r0, =gEnemyParty movs r1, 0x2E mov r2, sp bl SetMonData movs r4, 0 adds r0, r6, r5 lsls r6, r0, 2 _081A7CBA: ldr r2, [sp, 0x4] adds r0, r7, r2 ldr r0, [r0] adds r0, r6, r0 lsls r1, r4, 1 adds r0, 0x4 adds r0, r1 ldrh r1, [r0] lsls r2, r4, 24 lsrs r2, 24 ldr r0, =gEnemyParty bl SetMonMoveSlot adds r4, 0x1 cmp r4, 0x3 ble _081A7CBA ldr r0, =gEnemyParty bl CalculateMonStats movs r0, 0x1 _081A7CE2: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81A7B90 thumb_func_start sub_81A7D00 sub_81A7D00: @ 81A7D00 push {lr} ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r2, =0x00000e04 adds r1, r2 adds r1, r0 ldrh r1, [r1] adds r2, r1, 0 movs r0, 0x8C lsls r0, 1 cmp r1, r0 bhi _081A7D34 movs r1, 0 b _081A7D4C .pool _081A7D34: movs r0, 0x8C lsls r0, 2 cmp r1, r0 bhi _081A7D40 movs r1, 0x1 b _081A7D4C _081A7D40: movs r0, 0xD2 lsls r0, 2 movs r1, 0x3 cmp r2, r0 bhi _081A7D4C movs r1, 0x2 _081A7D4C: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_81A7D00 thumb_func_start sub_81A7D54 sub_81A7D54: @ 81A7D54 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 ldr r5, =gUnknown_08612688 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r4, r1, r2 _081A7D66: movs r1, 0x8 ldrsh r0, [r4, r1] lsls r0, 2 adds r0, r5 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 lsls r0, 24 cmp r0, 0 bne _081A7D66 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A7D54 thumb_func_start sub_81A7D8C sub_81A7D8C: @ 81A7D8C push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _081A7DA4 subs r0, r1, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _081A7DC8 _081A7DA4: ldrh r0, [r4, 0xA] strh r0, [r4, 0x14] ldrh r0, [r4, 0x10] ldrh r1, [r4, 0x16] adds r0, r1 strh r0, [r4, 0x16] lsls r0, 16 asrs r0, 16 cmp r0, 0x10 ble _081A7DBC movs r0, 0x10 strh r0, [r4, 0x16] _081A7DBC: movs r0, 0x1 negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, =0x00002d6b bl BlendPalettes _081A7DC8: movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0xF ble _081A7DDA ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] ldrh r0, [r4, 0xC] strh r0, [r4, 0x14] _081A7DDA: movs r0, 0 pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81A7D8C thumb_func_start sub_81A7DE8 sub_81A7DE8: @ 81A7DE8 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x14] movs r2, 0x14 ldrsh r0, [r4, r2] cmp r0, 0 beq _081A7E00 subs r0, r1, 0x1 strh r0, [r4, 0x14] lsls r0, 16 cmp r0, 0 bne _081A7E22 _081A7E00: ldrh r0, [r4, 0xC] strh r0, [r4, 0x14] ldrh r0, [r4, 0x16] ldrh r1, [r4, 0x12] subs r0, r1 strh r0, [r4, 0x16] lsls r0, 16 cmp r0, 0 bge _081A7E16 movs r0, 0 strh r0, [r4, 0x16] _081A7E16: movs r0, 0x1 negs r0, r0 ldrb r1, [r4, 0x16] ldr r2, =0x00002d6b bl BlendPalettes _081A7E22: movs r0, 0x16 ldrsh r1, [r4, r0] cmp r1, 0 bne _081A7E56 ldrh r0, [r4, 0xE] subs r0, 0x1 strh r0, [r4, 0xE] lsls r0, 16 cmp r0, 0 bne _081A7E50 ldr r0, =sub_81A7D54 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 bl DestroyTask b _081A7E56 .pool _081A7E50: ldrh r0, [r4, 0xA] strh r0, [r4, 0x14] strh r1, [r4, 0x8] _081A7E56: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81A7DE8 thumb_func_start sub_81A7E60 sub_81A7E60: @ 81A7E60 push {r4-r6,lr} mov r6, r8 push {r6} sub sp, 0x4 mov r8, r0 adds r4, r1, 0 adds r5, r2, 0 adds r6, r3, 0 ldr r3, [sp, 0x18] lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r4, 16 lsrs r4, 16 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 lsls r3, 16 lsrs r3, 16 ldr r0, =sub_81A7D54 movs r1, 0x3 str r3, [sp] bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 mov r0, r8 strh r0, [r1, 0xA] strh r4, [r1, 0xC] strh r5, [r1, 0xE] strh r6, [r1, 0x10] ldr r3, [sp] strh r3, [r1, 0x12] strh r0, [r1, 0x14] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A7E60 thumb_func_start sub_81A7EC4 sub_81A7EC4: @ 81A7EC4 push {lr} ldr r0, =sub_81A7D54 bl FindTaskIdByFunc lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081A7EDC movs r0, 0 b _081A7EDE .pool _081A7EDC: movs r0, 0x1 _081A7EDE: pop {r1} bx r1 thumb_func_end sub_81A7EC4 thumb_func_start sub_81A7EE4 sub_81A7EE4: @ 81A7EE4 push {r4,lr} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r1, r0, r1 ldrh r2, [r1, 0x8] movs r3, 0x8 ldrsh r0, [r1, r3] cmp r0, 0 bne _081A7F1C adds r0, r2, 0x1 strh r0, [r1, 0x8] movs r0, 0x2 str r0, [sp] movs r0, 0 movs r1, 0 movs r2, 0x3 movs r3, 0x2 bl sub_81A7E60 b _081A7F30 .pool _081A7F1C: bl sub_81A7EC4 lsls r0, 24 cmp r0, 0 beq _081A7F30 bl EnableBothScriptContexts adds r0, r4, 0 bl DestroyTask _081A7F30: add sp, 0x4 pop {r4} pop {r0} bx r0 thumb_func_end sub_81A7EE4 thumb_func_start sub_81A7F38 sub_81A7F38: @ 81A7F38 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] cmp r0, 0 bne _081A7F50 b _081A807A _081A7F50: movs r0, 0 mov r8, r0 _081A7F54: mov r0, sp add r0, r8 mov r1, r8 strb r1, [r0] mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x2 bls _081A7F54 movs r5, 0 _081A7F6C: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r0, 24 mov r8, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 lsls r0, 24 lsrs r4, r0, 24 mov r2, sp add r2, r8 ldrb r3, [r2] mov r0, sp adds r1, r0, r4 ldrb r0, [r1] strb r0, [r2] strb r3, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x9 bls _081A7F6C movs r1, 0 mov r8, r1 _081A7FB0: movs r0, 0 mov r10, r0 mov r4, sp add r4, r8 ldrb r1, [r4] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 adds r0, r7, 0 movs r1, 0x3A bl GetMonData lsls r0, 16 lsrs r6, r0, 16 str r4, [sp, 0x8] cmp r5, r6 bcc _081A8044 adds r0, r7, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 cmp r0, 0 beq _081A7FFC movs r0, 0x1 mov r10, r0 b _081A8048 .pool _081A7FFC: adds r0, r7, 0 movs r1, 0x15 bl GetMonData lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r4, 0 b _081A8014 _081A800E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081A8014: cmp r4, 0x3 bhi _081A8048 adds r1, r4, 0 adds r1, 0xD adds r0, r7, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r1, r9 adds r2, r4, 0 bl CalculatePPWithBonus lsls r0, 24 lsrs r6, r0, 24 adds r1, r4, 0 adds r1, 0x11 adds r0, r7, 0 bl GetMonData lsls r0, 16 lsrs r5, r0, 16 cmp r5, r6 bcs _081A800E _081A8044: movs r1, 0x1 mov r10, r1 _081A8048: mov r0, r10 cmp r0, 0x1 bne _081A806C ldr r0, [sp, 0x8] ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 bl sub_81A7594 ldr r0, [sp, 0x4] subs r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] cmp r0, 0 beq _081A807A _081A806C: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x2 bls _081A7FB0 _081A807A: add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A7F38 thumb_func_start sub_81A8090 sub_81A8090: @ 81A8090 push {r4,lr} ldr r4, =gScriptResult bl InBattlePike lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A8090 thumb_func_start InBattlePike InBattlePike: @ 81A80A8 push {lr} movs r2, 0 ldr r0, =gMapHeader ldrh r1, [r0, 0x12] ldr r3, =0xfffffea1 adds r0, r1, r3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _081A80CA movs r0, 0xB3 lsls r0, 1 cmp r1, r0 beq _081A80CA adds r0, 0x1 cmp r1, r0 bne _081A80CC _081A80CA: movs r2, 0x1 _081A80CC: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end InBattlePike thumb_func_start sub_81A80DC sub_81A80DC: @ 81A80DC push {r4-r7,lr} mov r7, r8 push {r7} ldr r4, =gScriptResult movs r0, 0 strh r0, [r4] movs r0, 0x1 bl sub_81A8590 lsls r0, 24 cmp r0, 0 beq _081A8138 movs r0, 0x1 strh r0, [r4] bl Random ldr r5, =gSaveBlock2Ptr ldr r4, [r5] lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 movs r3, 0xE1 lsls r3, 4 adds r4, r3 movs r1, 0x7 ands r1, r0 ldrb r2, [r4] movs r0, 0x8 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldr r2, [r5] adds r2, r3 ldrb r1, [r2] movs r0, 0x79 negs r0, r0 ands r0, r1 movs r1, 0x40 b _081A8248 .pool _081A8138: bl Random ldr r7, =gSaveBlock2Ptr ldr r4, [r7] lsls r0, 16 lsrs r0, 16 movs r1, 0x3 bl __umodsi3 movs r3, 0xE1 lsls r3, 4 adds r4, r3 movs r1, 0x7 ands r1, r0 ldrb r2, [r4] movs r0, 0x8 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldr r0, [r7] adds r0, r3 ldrb r1, [r0] movs r0, 0x80 ands r0, r1 movs r6, 0x8 cmp r0, 0 beq _081A8172 movs r6, 0x6 _081A8172: adds r0, r6, 0 bl AllocZeroed adds r5, r0, 0 movs r2, 0 movs r3, 0 cmp r2, r6 bcs _081A81BE adds r4, r7, 0 _081A8184: ldr r0, [r4] movs r1, 0xE1 lsls r1, 4 adds r0, r1 ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081A81B0 cmp r2, 0x1 beq _081A81B4 cmp r2, 0x4 beq _081A81B4 adds r1, r3, 0 adds r0, r1, 0x1 lsls r0, 24 lsrs r3, r0, 24 adds r1, r5, r1 strb r2, [r1] b _081A81B4 .pool _081A81B0: adds r0, r5, r2 strb r2, [r0] _081A81B4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, r6 bcc _081A8184 _081A81BE: bl Random ldr r7, =gSaveBlock2Ptr ldr r4, [r7] lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl __modsi3 adds r0, r5, r0 ldrb r0, [r0] movs r6, 0xE1 lsls r6, 4 adds r4, r6 movs r1, 0xF ands r1, r0 lsls r1, 3 ldrb r2, [r4] movs r0, 0x79 negs r0, r0 mov r8, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] adds r0, r5, 0 bl Free ldr r0, [r7] adds r0, r6 ldrb r1, [r0] movs r0, 0x78 ands r0, r1 cmp r0, 0x18 bne _081A821C bl sub_81A7974 lsls r0, 24 cmp r0, 0 bne _081A821C ldr r2, [r7] adds r2, r6 ldrb r1, [r2] mov r0, r8 ands r0, r1 movs r1, 0x10 orrs r0, r1 strb r0, [r2] _081A821C: ldr r5, =gSaveBlock2Ptr ldr r0, [r5] movs r4, 0xE1 lsls r4, 4 adds r0, r4 ldrb r1, [r0] movs r0, 0x78 ands r0, r1 cmp r0, 0x38 bne _081A824C bl sub_81A8554 lsls r0, 24 cmp r0, 0 bne _081A824C ldr r2, [r5] adds r2, r4 ldrb r1, [r2] movs r0, 0x79 negs r0, r0 ands r0, r1 movs r1, 0x10 _081A8248: orrs r0, r1 strb r0, [r2] _081A824C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A80DC thumb_func_start sub_81A825C sub_81A825C: @ 81A825C ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r2, 0xE1 lsls r2, 4 adds r0, r2 ldrb r0, [r0] lsls r0, 29 lsrs r0, 29 strh r0, [r1] bx lr .pool thumb_func_end sub_81A825C thumb_func_start sub_81A827C sub_81A827C: @ 81A827C ldr r2, =gScriptResult ldr r1, =gUnknown_0861266C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r3, 0xE1 lsls r3, 4 adds r0, r3 ldrb r0, [r0] lsls r0, 25 lsrs r0, 28 adds r0, r1 ldrb r0, [r0] strh r0, [r2] bx lr .pool thumb_func_end sub_81A827C thumb_func_start sub_81A82A4 sub_81A82A4: @ 81A82A4 push {r4-r7,lr} lsls r0, 24 movs r7, 0x6 cmp r0, 0 bne _081A82B0 movs r7, 0x1 _081A82B0: ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r2, =0x00000e04 adds r1, r2 adds r1, r0 ldrh r0, [r1] movs r1, 0xE bl __udivsi3 lsls r0, 16 lsrs r6, r0, 16 adds r5, r4, 0 _081A82D2: lsls r0, r6, 24 lsrs r0, 24 adds r1, r7, 0 bl sub_8162548 lsls r0, 16 lsrs r4, r0, 16 movs r3, 0 ldr r1, [r5] ldr r2, =0x00000cb2 adds r0, r1, r2 ldrh r0, [r0] subs r2, r0, 0x1 cmp r3, r2 bge _081A831A ldr r0, =0x00000cb4 adds r1, r0 b _081A8314 .pool _081A830C: adds r1, 0x2 adds r3, 0x1 cmp r3, r2 bge _081A831A _081A8314: ldrh r0, [r1] cmp r0, r4 bne _081A830C _081A831A: ldr r0, [r5] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r3, r0 bne _081A82D2 ldr r5, =gTrainerBattleOpponent_A strh r4, [r5] ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] ldrh r0, [r5] movs r1, 0 bl sub_8162614 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0x00000cb2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, 0xD bhi _081A8356 subs r0, 0x1 lsls r0, 1 ldr r2, =0x00000cb4 adds r1, r2 adds r1, r0 ldrh r0, [r5] strh r0, [r1] _081A8356: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A82A4 thumb_func_start sub_81A8374 sub_81A8374: @ 81A8374 push {r4-r7,lr} ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r2, =0x00000e04 adds r1, r2 adds r1, r0 ldrh r0, [r1] movs r1, 0xE bl __udivsi3 lsls r0, 16 lsrs r5, r0, 16 ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] lsls r7, r5, 24 adds r6, r4, 0 _081A83A0: lsls r0, r5, 24 lsrs r0, 24 movs r1, 0x1 bl sub_8162548 lsls r0, 16 lsrs r4, r0, 16 movs r3, 0 ldr r1, [r6] ldr r2, =0x00000cb2 adds r0, r1, r2 ldrh r0, [r0] subs r2, r0, 0x1 cmp r3, r2 bge _081A83EE ldr r0, =0x00000cb4 adds r1, r0 b _081A83E8 .pool _081A83E0: adds r1, 0x2 adds r3, 0x1 cmp r3, r2 bge _081A83EE _081A83E8: ldrh r0, [r1] cmp r0, r4 bne _081A83E0 _081A83EE: ldr r0, [r6] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] subs r0, 0x1 cmp r3, r0 bne _081A83A0 ldr r5, =gTrainerBattleOpponent_A strh r4, [r5] ldrh r0, [r5] movs r1, 0 bl sub_8162614 ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r0, =0x00000cb2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, 0xE bhi _081A8424 subs r0, 0x1 lsls r0, 1 ldr r2, =0x00000cb4 adds r1, r2 adds r1, r0 ldrh r0, [r5] strh r0, [r1] _081A8424: adds r5, r3, 0 _081A8426: lsrs r0, r7, 24 movs r1, 0x1 bl sub_8162548 lsls r0, 16 lsrs r4, r0, 16 movs r3, 0 ldr r1, [r5] ldr r2, =0x00000cb2 adds r0, r1, r2 ldrh r0, [r0] cmp r3, r0 bge _081A8466 adds r2, 0x2 adds r0, r1, r2 ldrh r0, [r0] cmp r0, r4 beq _081A8466 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] subs r2, 0x2 adds r0, r1, r2 ldrh r2, [r0] ldr r0, =0x00000cb4 adds r1, r0 _081A8458: adds r1, 0x2 adds r3, 0x1 cmp r3, r2 bge _081A8466 ldrh r0, [r1] cmp r0, r4 bne _081A8458 _081A8466: ldr r0, [r5] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] cmp r3, r0 bne _081A8426 ldr r5, =gTrainerBattleOpponent_B strh r4, [r5] ldrh r0, [r5] movs r1, 0x1 bl sub_8162614 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0x00000cb2 adds r2, r1, r0 ldrh r0, [r2] cmp r0, 0xD bhi _081A849A subs r0, 0x2 lsls r0, 1 ldr r2, =0x00000cb4 adds r1, r2 adds r1, r0 ldrh r0, [r5] strh r0, [r1] _081A849A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A8374 thumb_func_start sub_81A84B4 sub_81A84B4: @ 81A84B4 push {r4,r5,lr} movs r2, 0 ldr r5, =gSaveBlock2Ptr ldr r4, =0x00000cb4 ldr r0, =0x0000ffff adds r3, r0, 0 _081A84C0: ldr r1, [r5] lsls r0, r2, 1 adds r1, r4 adds r1, r0 ldrh r0, [r1] orrs r0, r3 strh r0, [r1] adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0xD bls _081A84C0 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A84B4 thumb_func_start sub_81A84EC sub_81A84EC: @ 81A84EC push {lr} ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 bne _081A8524 ldr r3, =gTrainerBattleOpponent_A ldrh r1, [r3] ldr r0, =0x0000012b cmp r1, r0 bhi _081A8542 ldr r2, =gUnknown_0203BC88 movs r0, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xC bl ConvertBattleFrontierTrainerSpeechToString b _081A8542 .pool _081A8524: cmp r0, 0x1 bne _081A8542 ldr r3, =gTrainerBattleOpponent_B ldrh r1, [r3] ldr r0, =0x0000012b cmp r1, r0 bhi _081A8542 ldr r2, =gUnknown_0203BC88 movs r0, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xC bl ConvertBattleFrontierTrainerSpeechToString _081A8542: pop {r0} bx r0 .pool thumb_func_end sub_81A84EC thumb_func_start sub_81A8554 sub_81A8554: @ 81A8554 push {r4-r6,lr} ldr r5, =gPlayerParty movs r6, 0 movs r4, 0 _081A855C: adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081A856E adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _081A856E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r5, 0x64 cmp r4, 0x2 bls _081A855C cmp r6, 0x1 bhi _081A8588 movs r0, 0x1 b _081A858A .pool _081A8588: movs r0, 0 _081A858A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81A8554 thumb_func_start sub_81A8590 sub_81A8590: @ 81A8590 push {r4-r6,lr} lsls r0, 24 movs r6, 0 ldr r1, =gSaveBlock2Ptr ldr r2, [r1] ldr r3, =0x00000ca9 adds r1, r2, r3 ldrb r1, [r1] lsls r1, 30 lsrs r1, 29 ldr r3, =0x00000e04 adds r2, r3 adds r2, r1 lsrs r4, r0, 24 ldrh r2, [r2] adds r0, r4, r2 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x5 bl sub_81A3B30 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 blt _081A85F0 cmp r2, 0x1 bgt _081A85F0 ldr r1, =gUnknown_086125DC adds r0, r2, 0 adds r0, 0x14 adds r0, r1 ldrb r0, [r0] ldrb r1, [r1, 0x17] subs r0, r1 cmp r4, r0 bne _081A8634 adds r0, r2, 0x1 lsls r0, 24 lsrs r6, r0, 24 b _081A8634 .pool _081A85F0: ldr r5, =gUnknown_086125DC movs r0, 0x5 lsls r3, r0, 2 adds r0, r3, r5 ldrb r1, [r0] adds r0, r5, 0x3 adds r0, r3, r0 ldrb r2, [r0] subs r1, r2 cmp r4, r1 bne _081A8610 movs r6, 0x3 b _081A8634 .pool _081A8610: adds r0, r5, 0x1 adds r0, r3, r0 ldrb r1, [r0] subs r0, r1, r2 cmp r4, r0 beq _081A8632 cmp r4, r1 bls _081A8634 subs r0, r4, r1 adds r0, r2 adds r1, r5, 0x2 adds r1, r3, r1 ldrb r1, [r1] bl __modsi3 cmp r0, 0 bne _081A8634 _081A8632: movs r6, 0x4 _081A8634: adds r0, r6, 0 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81A8590 thumb_func_start sub_81A863C sub_81A863C: @ 81A863C push {r4,lr} ldr r4, =gScriptResult movs r0, 0 bl sub_81A8590 lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A863C thumb_func_start sub_81A8658 sub_81A8658: @ 81A8658 push {r4,lr} ldr r3, =gUnknown_08612675 ldr r2, =gSpecialVar_0x8007 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] movs r1, 0xE1 lsls r1, 4 adds r0, r1 ldrb r1, [r0] lsls r1, 29 lsrs r1, 29 lsls r0, r1, 1 adds r0, r1 ldrh r2, [r2] adds r0, r2 adds r0, r3 ldrb r4, [r0] adds r0, r4, 0 bl sub_81A7F38 ldr r0, =gScriptResult strh r4, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A8658 thumb_func_start sub_81A869C sub_81A869C: @ 81A869C ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r0, =gSpecialVar_0x8005 ldrb r1, [r0] movs r0, 0xE1 lsls r0, 4 adds r2, r0 lsls r1, 7 ldrb r3, [r2] movs r0, 0x7F ands r0, r3 orrs r0, r1 strb r0, [r2] bx lr .pool thumb_func_end sub_81A869C thumb_func_start sub_81A86C0 sub_81A86C0: @ 81A86C0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] movs r0, 0 mov r10, r0 _081A86D4: movs r0, 0 mov r9, r0 movs r0, 0x64 mov r1, r10 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r7, 0 movs r1, 0x3A bl GetMonData lsls r0, 16 lsrs r5, r0, 16 cmp r4, r5 bcc _081A8762 adds r0, r7, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 cmp r0, 0 bne _081A8762 adds r0, r7, 0 movs r1, 0x15 bl GetMonData lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r6, 0 b _081A8732 .pool _081A872C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _081A8732: cmp r6, 0x3 bhi _081A8766 adds r1, r6, 0 adds r1, 0xD adds r0, r7, 0 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r1, r8 adds r2, r6, 0 bl CalculatePPWithBonus lsls r0, 24 lsrs r5, r0, 24 adds r1, r6, 0 adds r1, 0x11 adds r0, r7, 0 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 cmp r4, r5 bcs _081A872C _081A8762: movs r0, 0x1 mov r9, r0 _081A8766: mov r0, r9 cmp r0, 0x1 bne _081A8778 ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] b _081A8786 .pool _081A8778: mov r0, r10 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r10, r0 cmp r0, 0x2 bls _081A86D4 _081A8786: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81A86C0 thumb_func_start sub_81A8794 sub_81A8794: @ 81A8794 push {r4-r7,lr} movs r5, 0 ldr r7, =gSaveBlock1Ptr ldr r6, =gSaveBlock2Ptr _081A879C: ldr r0, [r6] lsls r4, r5, 1 ldr r1, =0x00000caa adds r0, r1 adds r0, r4 ldrh r1, [r0] movs r0, 0x64 muls r1, r0 movs r2, 0xEA lsls r2, 1 adds r1, r2 ldr r0, [r7] adds r0, r1 movs r1, 0xC bl GetMonData ldr r1, [r6] ldr r2, =0x00000e12 adds r1, r2 adds r1, r4 strh r0, [r1] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x2 bls _081A879C pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A8794 thumb_func_start sub_81A87E8 sub_81A87E8: @ 81A87E8 push {r4,lr} movs r4, 0 _081A87EC: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] lsls r3, r4, 1 ldr r1, =0x00000caa adds r0, r2, r1 adds r0, r3 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gBattleScripting + 0x14 adds r0, r1 ldr r1, =0x00000e12 adds r3, r1 adds r2, r3 movs r1, 0xC bl SetMonData adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081A87EC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A87E8 thumb_func_start sub_81A8830 sub_81A8830: @ 81A8830 push {r4-r6,lr} ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x00000ca8 adds r1, r0 movs r4, 0 strb r4, [r1] ldr r1, [r3] ldr r6, =0x00000cb2 adds r0, r1, r6 strh r4, [r0] adds r1, r2 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r3, [r3] ldr r0, =0x00000cdc adds r2, r3, r0 ldr r1, =gUnknown_08612690 lsls r0, r5, 2 adds r0, r1 ldr r1, [r2] ldr r0, [r0] ands r1, r0 cmp r1, 0 bne _081A887C lsls r1, r5, 1 ldr r2, =0x00000e04 adds r0, r3, r2 adds r0, r1 strh r4, [r0] _081A887C: ldr r0, =gTrainerBattleOpponent_A strh r4, [r0] ldr r1, =gBattleOutcome movs r0, 0 strb r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A8830 thumb_func_start sub_81A88B0 sub_81A88B0: @ 81A88B0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gPlayerParty adds r0, r4, 0 movs r1, 0x6 bl GetMonData cmp r0, 0 bne _081A8904 adds r0, r4, 0 bl GetMonAbility lsls r0, 24 lsrs r0, 24 cmp r0, 0x33 beq _081A88D6 cmp r0, 0x16 bne _081A8904 _081A88D6: adds r0, r4, 0 movs r1, 0x38 bl GetMonData lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _081A8904 subs r0, 0x5 cmp r5, r0 bgt _081A8904 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _081A8904 movs r0, 0 b _081A8906 .pool _081A8904: movs r0, 0x1 _081A8906: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81A88B0 thumb_func_start sub_81A890C sub_81A890C: @ 81A890C push {lr} lsls r0, 16 lsrs r2, r0, 16 ldr r0, =0x0000017b cmp r2, r0 bne _081A8920 movs r1, 0 b _081A892A .pool _081A8920: ldr r0, =0x00000149 movs r1, 0x2 cmp r2, r0 bne _081A892A movs r1, 0x1 _081A892A: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end sub_81A890C thumb_func_start sub_81A8934 @ void sub_81A8934(u8) sub_81A8934: @ 81A8934 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203CE50 ldr r0, [r4] cmp r0, 0 bne _081A894A movs r0, 0x44 bl AllocZeroed str r0, [r4] _081A894A: ldr r0, [r4] adds r0, 0x41 strb r5, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A8934 thumb_func_start sub_81A895C sub_81A895C: @ 81A895C push {r4,lr} ldr r4, =gUnknown_0203CE50 ldr r0, [r4] cmp r0, 0 beq _081A896E bl Free movs r0, 0 str r0, [r4] _081A896E: movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A895C thumb_func_start sub_81A89A0 sub_81A89A0: @ 81A89A0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 str r0, [sp] ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xC7 lsls r1, 4 adds r1, r0 mov r9, r1 movs r3, 0 mov r10, r3 mov r8, r3 _081A89C4: mov r0, r8 lsls r4, r0, 1 adds r1, r4, r0 lsls r1, 3 add r1, r9 ldrh r0, [r1, 0x4] adds r0, 0x7 ldrh r1, [r1, 0x6] adds r1, 0x7 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_0203CE50 ldr r0, [r0] adds r0, 0x41 ldrb r0, [r0] movs r2, 0xA6 lsls r2, 2 cmp r0, 0 bne _081A89F8 subs r2, 0x48 _081A89F8: ldr r0, =0x0000024f cmp r1, r0 bls _081A8AD4 subs r1, r2 adds r0, r1, 0 cmp r1, 0 bge _081A8A08 adds r0, r1, 0x7 _081A8A08: asrs r2, r0, 3 lsls r0, r2, 24 lsrs r0, 24 cmp r0, 0x4 bhi _081A8AD4 ldr r3, [sp] cmp r0, r3 bne _081A8AD4 lsls r0, r2, 3 subs r0, r1, r0 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bhi _081A8AD4 movs r1, 0 movs r2, 0 cmp r5, 0x1 beq _081A8A58 cmp r5, 0x1 bgt _081A8A44 cmp r5, 0 beq _081A8A4E b _081A8AD4 .pool _081A8A44: cmp r5, 0x2 beq _081A8A64 cmp r5, 0x3 beq _081A8A70 b _081A8AD4 _081A8A4E: ldr r7, =gUnknown_08612698 movs r1, 0x1 b _081A8A74 .pool _081A8A58: ldr r7, =gUnknown_0861269C movs r2, 0x1 b _081A8A74 .pool _081A8A64: ldr r7, =gUnknown_086126A0 movs r1, 0xFF b _081A8A74 .pool _081A8A70: ldr r7, =gUnknown_086126A4 movs r2, 0xFF _081A8A74: mov r3, r8 adds r0, r4, r3 lsls r0, 3 mov r3, r9 adds r4, r0, r3 lsls r0, r1, 24 asrs r0, 24 ldrh r1, [r4, 0x4] adds r0, r1 strh r0, [r4, 0x4] lsls r0, r2, 24 asrs r0, 24 ldrh r3, [r4, 0x6] adds r0, r3 strh r0, [r4, 0x6] ldrb r0, [r4] ldr r6, =gSaveBlock1Ptr ldr r2, [r6] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r0, 24 cmp r0, 0x10 beq _081A8ACC mov r0, r8 adds r1, r5, 0 bl sub_81A8D60 ldrb r4, [r4] mov r10, r4 mov r0, r10 ldr r2, [r6] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] adds r3, r7, 0 bl exec_movement b _081A8AD4 .pool _081A8ACC: mov r0, r8 adds r1, r5, 0 bl sub_81A8D94 _081A8AD4: mov r0, r8 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x3F bhi _081A8AE4 b _081A89C4 _081A8AE4: mov r0, r10 add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81A89A0 thumb_func_start sub_81A8AF8 sub_81A8AF8: @ 81A8AF8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r1, =gUnknown_0203CE50 ldr r2, [r1] cmp r2, 0 bne _081A8B0C b _081A8D4A _081A8B0C: adds r0, r2, 0 adds r0, 0x41 ldrb r0, [r0] movs r3, 0xA6 lsls r3, 2 mov r10, r3 cmp r0, 0 bne _081A8B22 movs r0, 0x94 lsls r0, 2 mov r10, r0 _081A8B22: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r3, 0xC7 lsls r3, 4 adds r7, r0, r3 movs r0, 0 mov r9, r0 adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] cmp r9, r0 bcc _081A8B3C b _081A8D4A _081A8B3C: mov r8, r1 _081A8B3E: mov r1, r8 ldr r0, [r1] mov r2, r9 lsls r4, r2, 2 adds r0, r4 ldrb r0, [r0, 0x1] lsls r1, r0, 1 adds r1, r0 lsls r1, 3 adds r1, r7 ldrh r0, [r1, 0x4] adds r0, 0x7 ldrh r1, [r1, 0x6] adds r1, 0x7 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r0, 16 mov r3, r10 subs r1, r0, r3 adds r0, r1, 0 cmp r1, 0 bge _081A8B76 adds r0, r1, 0x7 _081A8B76: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 lsls r0, 24 lsrs r0, 24 mov r2, r8 ldr r1, [r2] adds r1, r4 ldrb r1, [r1] subs r0, r1 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 blt _081A8B96 cmp r1, 0x3 bne _081A8BAC _081A8B96: movs r0, 0x3 negs r0, r0 movs r6, 0 cmp r1, r0 bne _081A8BB4 b _081A8BB2 .pool _081A8BAC: movs r6, 0x2 cmp r1, 0 ble _081A8BB4 _081A8BB2: movs r6, 0x1 _081A8BB4: ldr r5, =gUnknown_0203CE50 ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl GetFieldObjectIdByLocalIdAndMap lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x10 bne _081A8BDC b _081A8D32 _081A8BDC: ldr r0, =gMapObjects lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x18] lsls r0, 28 lsrs r0, 28 adds r1, r0, 0 cmp r6, 0 bne _081A8C9C cmp r0, 0x2 beq _081A8C60 cmp r0, 0x2 bgt _081A8C0C cmp r0, 0x1 beq _081A8C30 b _081A8D32 .pool _081A8C0C: cmp r0, 0x3 beq _081A8C48 cmp r0, 0x4 beq _081A8C16 b _081A8D32 _081A8C16: ldr r3, =gUnknown_086126AE ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0x7 b _081A8C72 .pool _081A8C30: ldr r3, =gUnknown_086126A8 ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0xA b _081A8C72 .pool _081A8C48: ldr r3, =gUnknown_086126AA ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0x8 b _081A8C72 .pool _081A8C60: ldr r3, =gUnknown_086126AC ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0x9 _081A8C72: strb r1, [r0, 0x9] mov r1, r8 ldr r0, [r1] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl exec_movement b _081A8D32 .pool _081A8C9C: cmp r6, 0x1 bne _081A8D32 cmp r0, 0x2 beq _081A8D00 cmp r0, 0x2 bgt _081A8CAE cmp r0, 0x1 beq _081A8CD0 b _081A8D32 _081A8CAE: cmp r1, 0x3 beq _081A8CE8 cmp r1, 0x4 bne _081A8D32 ldr r3, =gUnknown_086126AA ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0x8 b _081A8D12 .pool _081A8CD0: ldr r3, =gUnknown_086126AC ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0x9 b _081A8D12 .pool _081A8CE8: ldr r3, =gUnknown_086126AE ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0x7 b _081A8D12 .pool _081A8D00: ldr r3, =gUnknown_086126A8 ldr r0, [r5] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 movs r1, 0xA _081A8D12: strb r1, [r0, 0x9] mov r2, r8 ldr r0, [r2] adds r0, r4 ldrb r1, [r0, 0x1] lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r7 ldrb r0, [r0] ldr r1, =gSaveBlock1Ptr ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] bl exec_movement _081A8D32: mov r0, r9 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r9, r0 mov r3, r8 ldr r0, [r3] adds r0, 0x40 ldrb r0, [r0] cmp r9, r0 bcs _081A8D4A b _081A8B3E _081A8D4A: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A8AF8 thumb_func_start sub_81A8D60 sub_81A8D60: @ 81A8D60 push {r4,lr} ldr r4, =gUnknown_0203CE50 ldr r3, [r4] adds r2, r3, 0 adds r2, 0x40 ldrb r2, [r2] lsls r2, 2 adds r3, r2 strb r0, [r3, 0x1] ldr r2, [r4] adds r0, r2, 0 adds r0, 0x40 ldrb r0, [r0] lsls r0, 2 adds r2, r0 strb r1, [r2] ldr r1, [r4] adds r1, 0x40 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A8D60 thumb_func_start sub_81A8D94 sub_81A8D94: @ 81A8D94 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r6, r1, 24 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xC7 lsls r1, 4 adds r5, r0, r1 lsls r1, r4, 1 adds r1, r4 lsls r1, 3 adds r1, r5 ldrh r0, [r1, 0x4] adds r0, 0x7 ldrh r1, [r1, 0x6] adds r1, 0x7 lsls r0, 16 asrs r0, 16 lsls r1, 16 asrs r1, 16 bl MapGridGetMetatileIdAt lsls r0, 16 lsrs r2, r0, 16 ldr r0, =gUnknown_0203CE50 ldr r0, [r0] adds r0, 0x41 ldrb r0, [r0] movs r1, 0xA6 lsls r1, 2 cmp r0, 0 bne _081A8DDA subs r1, 0x48 _081A8DDA: subs r1, r2, r1 adds r0, r1, 0 cmp r1, 0 bge _081A8DE4 adds r0, r1, 0x7 _081A8DE4: asrs r0, 3 lsls r0, 3 subs r0, r1, r0 lsls r0, 24 lsrs r0, 24 subs r0, r6 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 blt _081A8DFC cmp r1, 0x3 bne _081A8E08 _081A8DFC: movs r2, 0 b _081A8E1A .pool _081A8E08: cmp r1, 0 bgt _081A8E14 movs r0, 0x3 negs r0, r0 cmp r1, r0 bne _081A8E18 _081A8E14: movs r2, 0x1 b _081A8E1A _081A8E18: movs r2, 0x2 _081A8E1A: lsls r0, r4, 1 adds r0, r4 lsls r0, 3 adds r1, r0, r5 ldrb r0, [r1, 0x9] adds r3, r0, 0 cmp r2, 0 bne _081A8E4C cmp r0, 0x8 beq _081A8E72 cmp r0, 0x8 bgt _081A8E38 cmp r0, 0x7 beq _081A8E48 b _081A8E76 _081A8E38: cmp r0, 0x9 beq _081A8E44 cmp r0, 0xA bne _081A8E76 movs r0, 0x7 b _081A8E74 _081A8E44: movs r0, 0x8 b _081A8E74 _081A8E48: movs r0, 0x9 b _081A8E74 _081A8E4C: cmp r2, 0x1 bne _081A8E76 cmp r0, 0x8 beq _081A8E6A cmp r0, 0x8 bgt _081A8E5E cmp r0, 0x7 beq _081A8E72 b _081A8E76 _081A8E5E: cmp r3, 0x9 beq _081A8E6E cmp r3, 0xA bne _081A8E76 movs r0, 0x8 b _081A8E74 _081A8E6A: movs r0, 0x9 b _081A8E74 _081A8E6E: movs r0, 0x7 b _081A8E74 _081A8E72: movs r0, 0xA _081A8E74: strb r0, [r1, 0x9] _081A8E76: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81A8D94 thumb_func_start sub_81A8E7C sub_81A8E7C: @ 81A8E7C push {lr} ldr r1, =gUnknown_08613EE0 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81A8E7C thumb_func_start sub_81A8E9C sub_81A8E9C: @ 81A8E9C push {r4-r6,lr} ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r4, =0x00000ca9 adds r0, r1, r4 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 ldr r0, =0x00000ca8 adds r1, r0 movs r2, 0 strb r2, [r1] ldr r1, [r3] ldr r6, =0x00000cb2 adds r0, r1, r6 strh r2, [r0] adds r1, r4 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] cmp r5, 0 beq _081A8EF0 ldr r0, [r3] ldr r1, =0x00000cdc adds r0, r1 ldr r2, [r0] movs r0, 0x80 lsls r0, 6 b _081A8EFC .pool _081A8EF0: ldr r0, [r3] ldr r6, =0x00000cdc adds r0, r6 ldr r2, [r0] movs r0, 0x80 lsls r0, 5 _081A8EFC: ands r2, r0 cmp r2, 0 bne _081A8F14 ldr r0, [r3] lsls r1, r5, 1 ldr r3, =0x00000e1a adds r0, r3 adds r0, r1 strh r2, [r0] adds r0, r5, 0 bl sub_81AAA7C _081A8F14: bl sub_81C4EEC ldr r0, =gTrainerBattleOpponent_A movs r1, 0 strh r1, [r0] ldr r0, =gBattleOutcome strb r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A8E9C thumb_func_start sub_81A8F38 sub_81A8F38: @ 81A8F38 push {r4,lr} ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000ca9 adds r0, r2 ldrb r0, [r0] lsls r0, 30 lsrs r4, r0, 30 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] adds r3, r1, 0 cmp r0, 0x6 bls _081A8F54 b _081A903A _081A8F54: lsls r0, 2 ldr r1, =_081A8F70 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A8F70: .4byte _081A8F8C .4byte _081A8F9C .4byte _081A8FB4 .4byte _081A8FE4 .4byte _081A8FF8 .4byte _081A9010 .4byte _081A9028 _081A8F8C: ldr r0, =gScriptResult ldr r1, [r3] ldr r3, =0x00000e18 b _081A8FFE .pool _081A8F9C: ldr r2, =gScriptResult ldr r0, [r3] lsls r1, r4, 1 ldr r3, =0x00000e1a adds r0, r3 adds r0, r1 ldrh r0, [r0] b _081A9038 .pool _081A8FB4: cmp r4, 0 beq _081A8FCC ldr r2, =gScriptResult ldr r0, [r3] ldr r1, =0x00000cdc adds r0, r1 b _081A9030 .pool _081A8FCC: ldr r2, =gScriptResult ldr r0, [r3] ldr r3, =0x00000cdc adds r0, r3 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 b _081A9036 .pool _081A8FE4: ldr r0, =gScriptResult ldr r1, [r3] ldr r2, =0x00000e1a adds r1, r2 b _081A9000 .pool _081A8FF8: ldr r0, =gScriptResult ldr r1, [r3] ldr r3, =0x00000e1c _081A8FFE: adds r1, r3 _081A9000: ldrh r1, [r1] strh r1, [r0] b _081A903A .pool _081A9010: ldr r2, =gScriptResult ldr r0, [r3] ldr r1, =0x00000cdc adds r0, r1 ldr r0, [r0] movs r1, 0x80 lsls r1, 5 b _081A9036 .pool _081A9028: ldr r2, =gScriptResult ldr r0, [r3] ldr r3, =0x00000cdc adds r0, r3 _081A9030: ldr r0, [r0] movs r1, 0x80 lsls r1, 6 _081A9036: ands r0, r1 _081A9038: strh r0, [r2] _081A903A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A8F38 thumb_func_start sub_81A9048 sub_81A9048: @ 81A9048 push {lr} ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldr r1, =0x00000ca9 adds r0, r2, r1 ldrb r0, [r0] lsls r0, 30 lsrs r1, r0, 30 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x1 beq _081A9098 cmp r0, 0x1 bgt _081A9078 cmp r0, 0 beq _081A9082 b _081A9126 .pool _081A9078: cmp r0, 0x2 beq _081A90B0 cmp r0, 0x7 beq _081A911C b _081A9126 _081A9082: ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] ldr r3, =0x00000e18 adds r0, r2, r3 strh r1, [r0] b _081A9126 .pool _081A9098: lsls r1, 1 ldr r3, =0x00000e1a adds r0, r2, r3 adds r0, r1 ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] strh r1, [r0] b _081A9126 .pool _081A90B0: cmp r1, 0 beq _081A90E4 ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A90D0 ldr r1, =0x00000cdc adds r0, r2, r1 ldr r1, [r0] movs r2, 0x80 lsls r2, 6 b _081A90F6 .pool _081A90D0: ldr r3, =0x00000cdc adds r0, r2, r3 ldr r1, [r0] ldr r2, =0xffffdfff b _081A910C .pool _081A90E4: ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A9104 ldr r1, =0x00000cdc adds r0, r2, r1 ldr r1, [r0] movs r2, 0x80 lsls r2, 5 _081A90F6: orrs r1, r2 str r1, [r0] b _081A9126 .pool _081A9104: ldr r3, =0x00000cdc adds r0, r2, r3 ldr r1, [r0] ldr r2, =0xffffefff _081A910C: ands r1, r2 str r1, [r0] b _081A9126 .pool _081A911C: ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] ldr r3, =0x00000e2a adds r0, r2, r3 strb r1, [r0] _081A9126: pop {r0} bx r0 .pool thumb_func_end sub_81A9048 thumb_func_start sub_81A9134 sub_81A9134: @ 81A9134 push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl save_serialize_map movs r0, 0x1 bl TrySavingData pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A9134 thumb_func_start sub_81A917C sub_81A917C: @ 81A917C push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r1, [r4] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 29 ldr r2, =0x00000e1a adds r1, r2 adds r1, r0 ldrh r0, [r1] cmp r0, 0x29 bls _081A91CC bl Random ldr r4, [r4] ldr r5, =gUnknown_08613F34 lsls r0, 16 lsrs r0, 16 movs r1, 0x9 bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r5 ldrh r0, [r0] ldr r1, =0x00000e18 adds r4, r1 b _081A91EA .pool _081A91CC: bl Random ldr r4, [r4] ldr r5, =gUnknown_08613F28 lsls r0, 16 lsrs r0, 16 movs r1, 0x6 bl __umodsi3 lsls r0, 16 lsrs r0, 15 adds r0, r5 ldrh r0, [r0] ldr r2, =0x00000e18 adds r4, r2 _081A91EA: strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A917C thumb_func_start sub_81A91FC sub_81A91FC: @ 81A91FC push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000e18 adds r0, r1 ldrh r0, [r0] movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _081A9244 ldr r0, [r4] ldr r1, =0x00000e18 adds r0, r1 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, [r4] ldr r1, =0x00000e18 adds r0, r1 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r5, [r0] b _081A924A .pool _081A9244: ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _081A924A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A91FC thumb_func_start sub_81A9254 sub_81A9254: @ 81A9254 push {r4,r5,lr} movs r4, 0 ldr r5, =gSaveBlock2Ptr _081A925A: bl Random ldr r1, [r5] lsls r2, r4, 1 ldr r3, =0x00000e22 adds r1, r3 adds r1, r2 strh r0, [r1] adds r4, 0x1 cmp r4, 0x3 ble _081A925A ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e2a adds r0, r1 movs r1, 0 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A9254 thumb_func_start CalculateBattlePyramidItemBallItemId CalculateBattlePyramidItemBallItemId: @ 81A9290 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r5, =gSaveBlock2Ptr ldr r1, [r5] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r0, 30 mov r10, r0 adds r2, 0x9 adds r0, r1, r2 ldrh r0, [r0] str r0, [sp] mov r2, r10 lsls r0, r2, 1 ldr r2, =0x00000e1a adds r1, r2 adds r1, r0 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x13 bls _081A92DE movs r0, 0x13 mov r8, r0 _081A92DE: bl sub_81AA9E4 lsls r0, 24 ldr r1, =gScriptLastTalked ldrh r4, [r1] ldr r1, =gUnknown_08613650 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x1] subs r4, r0 subs r7, r4, 0x1 ldr r1, [r5] lsrs r0, r7, 31 adds r0, r7, r0 asrs r0, 1 lsls r0, 1 ldr r2, =0x00000e22 adds r1, r2 adds r1, r0 ldrh r6, [r1] adds r0, r6, 0 bl SeedRng2 movs r5, 0 mov r0, r8 lsls r0, 2 mov r9, r0 cmp r5, r4 bge _081A9332 _081A9318: bl Random2 lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r6, r0, 16 adds r5, 0x1 adds r0, r7, 0x1 cmp r5, r0 blt _081A9318 _081A9332: ldr r0, =gUnknown_08613B3A ldr r1, [sp] adds r0, r1, r0 ldrb r5, [r0] ldr r1, =gUnknown_08613ABC ldr r3, =gSpecialVar_0x8000 ldr r4, =gSpecialVar_0x8001 cmp r5, 0x3E bhi _081A935E lsls r2, r5, 1 adds r0, r2, r1 ldrb r0, [r0] cmp r6, r0 blt _081A935E adds r0, r2, r1 _081A9350: adds r0, 0x2 adds r5, 0x1 cmp r5, 0x3E bhi _081A935E ldrb r2, [r0] cmp r6, r2 bge _081A9350 _081A935E: mov r0, r10 cmp r0, 0 beq _081A9394 ldr r2, =gUnknown_0861392C b _081A9396 .pool _081A9394: ldr r2, =gUnknown_0861379C _081A9396: lsls r0, r5, 1 adds r1, 0x1 adds r0, r1 ldrb r0, [r0] lsls r0, 1 mov r1, r9 add r1, r8 lsls r1, 2 adds r0, r1 adds r0, r2 ldrh r0, [r0] strh r0, [r3] movs r0, 0x1 strh 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 CalculateBattlePyramidItemBallItemId thumb_func_start sub_81A93C8 sub_81A93C8: @ 81A93C8 push {r4,r5,lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xC7 lsls r1, 4 adds r3, r0, r1 movs r2, 0 ldr r4, =gScriptLastTalked b _081A93F4 .pool _081A93E4: adds r2, 0x1 lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r0, r3 ldrb r0, [r0] cmp r0, 0 beq _081A940A _081A93F4: lsls r0, r2, 1 adds r0, r2 lsls r0, 3 adds r1, r0, r3 ldrb r0, [r1] ldrh r5, [r4] cmp r0, r5 bne _081A93E4 ldr r0, =0x00007fff strh r0, [r1, 0x4] strh r0, [r1, 0x6] _081A940A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A93C8 thumb_func_start sub_81A9414 sub_81A9414: @ 81A9414 ldr r1, =gUnknown_0203BC88 ldr r0, =gBattleFrontierTrainers str r0, [r1] bx lr .pool thumb_func_end sub_81A9414 thumb_func_start sub_81A9424 sub_81A9424: @ 81A9424 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 movs r0, 0 mov r9, r0 movs r7, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xC7 lsls r1, 4 adds r1, r0 mov r8, r1 ldr r2, =gMapObjects ldr r0, =gUnknown_03005DF0 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x8] bl sub_81A9AA8 lsls r0, 16 lsrs r5, r0, 16 movs r6, 0 ldr r2, =gUnknown_08613C1C ldr r0, =gUnknown_0203BC88 ldr r1, [r0] movs r0, 0x34 muls r0, r5 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _081A9488 ldrb r2, [r2, 0x1] mov r9, r2 b _081A94AE .pool _081A9488: adds r6, 0x1 cmp r6, 0x31 bhi _081A94AE ldr r4, =gUnknown_08613C1C lsls r3, r6, 1 adds r2, r3, r4 ldr r0, =gUnknown_0203BC88 ldr r1, [r0] movs r0, 0x34 muls r0, r5 adds r0, r1 ldrb r1, [r2] ldrb r0, [r0] cmp r1, r0 bne _081A9488 adds r0, r4, 0x1 adds r0, r3, r0 ldrb r0, [r0] mov r9, r0 _081A94AE: ldr r3, =gUnknown_08613ED8 ldr r2, =gMapObjects ldr r0, =gUnknown_03005DF0 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x8] subs r0, 0x1 adds r0, r3 ldrb r0, [r0] str r0, [sp] movs r6, 0 mov r3, r9 lsls r3, 2 mov r9, r3 _081A94D0: ldr r0, [sp] cmp r0, 0x8 bls _081A94D8 b _081A95E8 _081A94D8: lsls r0, 2 ldr r1, =_081A94FC adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081A94FC: .4byte _081A9520 .4byte _081A9530 .4byte _081A9572 .4byte _081A95B4 .4byte _081A95BA .4byte _081A95C0 .4byte _081A95C6 .4byte _081A95D2 .4byte _081A95DE _081A9520: mov r0, sp movs r1, 0x8 movs r2, 0 bl sub_81A9998 lsls r0, 24 lsrs r7, r0, 24 b _081A95EE _081A9530: movs r6, 0 ldr r2, =0x7fff0000 mov r4, r8 adds r4, 0x4 mov r5, r8 b _081A9560 .pool _081A9540: ldrb r0, [r5, 0x1] cmp r0, 0x3B bne _081A955A movs r1, 0 ldrsh r0, [r4, r1] asrs r1, r2, 16 cmp r0, r1 beq _081A955A movs r3, 0x2 ldrsh r0, [r4, r3] cmp r0, r1 beq _081A955A adds r7, 0x1 _081A955A: adds r4, 0x18 adds r5, 0x18 adds r6, 0x1 _081A9560: str r2, [sp, 0x4] bl sub_81AAA40 lsls r0, 24 lsrs r0, 24 ldr r2, [sp, 0x4] cmp r6, r0 blt _081A9540 b _081A95EE _081A9572: bl sub_81AA9E4 lsls r0, 24 ldr r1, =gUnknown_08613650 lsrs r0, 20 adds r0, r1 ldrb r7, [r0, 0x1] ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e2a adds r0, r1 ldrb r2, [r0] ldr r1, =gBitTable movs r6, 0x7 _081A958E: ldr r0, [r1] ands r0, r2 cmp r0, 0 beq _081A9598 subs r7, 0x1 _081A9598: adds r1, 0x4 subs r6, 0x1 cmp r6, 0 bge _081A958E b _081A95EE .pool _081A95B4: mov r0, sp movs r1, 0x8 b _081A95D6 _081A95BA: mov r0, sp movs r1, 0x8 b _081A95CA _081A95C0: mov r0, sp movs r1, 0x10 b _081A95D6 _081A95C6: mov r0, sp movs r1, 0x10 _081A95CA: movs r2, 0x1 bl sub_81A9998 b _081A95E8 _081A95D2: mov r0, sp movs r1, 0x18 _081A95D6: movs r2, 0x2 bl sub_81A9998 b _081A95E8 _081A95DE: mov r0, sp movs r1, 0x18 movs r2, 0x1 bl sub_81A9998 _081A95E8: cmp r6, 0 bne _081A95EE b _081A94D0 _081A95EE: ldr r1, =gUnknown_08613EC0 add r1, r9 ldr r0, [sp] ldr r1, [r1] lsls r0, 2 adds r0, r1 ldr r1, [r0] lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] bl box_related_two__2 add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A9424 thumb_func_start sub_81A9618 sub_81A9618: @ 81A9618 push {r4,r5,lr} ldr r5, =gSaveBlock2Ptr ldr r1, [r5] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r2, r0, 29 ldr r4, =0x00000e1a adds r1, r4 adds r1, r2 ldrh r3, [r1] ldr r0, =0x000003e6 cmp r3, r0 bhi _081A963A adds r0, r3, 0x1 strh r0, [r1] _081A963A: ldr r0, [r5] adds r1, r0, r4 adds r1, r2 ldr r3, =0x00000e1e adds r0, r3 adds r0, r2 ldrh r1, [r1] ldrh r2, [r0] cmp r1, r2 bls _081A9650 strh r1, [r0] _081A9650: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81A9618 thumb_func_start sub_81A966C sub_81A966C: @ 81A966C push {r4,lr} ldr r4, =gScriptResult bl InBattlePyramid lsls r0, 24 lsrs r0, 24 strh r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A966C thumb_func_start sub_81A9684 sub_81A9684: @ 81A9684 push {r4,lr} ldr r0, =gSpecialVar_0x8006 ldrh r0, [r0] cmp r0, 0 beq _081A9698 cmp r0, 0x1 beq _081A96B4 b _081A9754 .pool _081A9698: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000e68 adds r0, r2 strb r1, [r0] b _081A9754 .pool _081A96B4: ldr r4, =gScriptResult ldrh r0, [r4] cmp r0, 0x1 beq _081A9710 cmp r0, 0x1 bgt _081A9754 cmp r0, 0 bne _081A9754 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081A9754 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000e68 adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x77 bls _081A96F4 movs r0, 0x78 strb r0, [r1] b _081A96FC .pool _081A96F4: ldr r0, =gSpecialVar_0x8007 ldrh r0, [r0] bl PlaySE _081A96FC: ldr r1, =gScriptResult ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _081A9754 .pool _081A9710: ldr r1, =gSpecialVar_0x8005 ldrh r0, [r1] cmp r0, 0 beq _081A9750 subs r0, 0x1 strh r0, [r1] ldr r3, =gSaveBlock2Ptr ldr r1, [r3] ldr r2, =0x00000e68 adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r3] adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0x78 bls _081A973E movs r0, 0x78 strb r0, [r1] ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] _081A973E: bl door_upload_tiles b _081A9754 .pool _081A9750: movs r0, 0x2 strh r0, [r4] _081A9754: pop {r4} pop {r0} bx r0 thumb_func_end sub_81A9684 thumb_func_start sub_81A975C sub_81A975C: @ 81A975C push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 movs r1, 0 mov r0, sp strh r1, [r0] movs r5, 0 movs r0, 0x64 mov r9, r0 ldr r1, =gPlayerParty mov r8, r1 _081A9776: movs r4, 0 adds r7, r5, 0x1 mov r6, r9 muls r6, r5 _081A977E: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] lsls r1, r4, 1 ldr r2, =0x00000caa adds r0, r2 adds r1, r0, r1 ldrh r0, [r1] cmp r0, 0 beq _081A97A2 subs r0, 0x1 cmp r0, r5 bne _081A97A2 mov r1, r8 adds r0, r6, r1 movs r1, 0xC mov r2, sp bl SetMonData _081A97A2: adds r4, 0x1 cmp r4, 0x3 ble _081A977E adds r5, r7, 0 cmp r5, 0x5 ble _081A9776 add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A975C thumb_func_start sub_81A97C8 sub_81A97C8: @ 81A97C8 push {lr} ldr r0, =sub_81A97DC movs r1, 0 bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81A97C8 thumb_func_start sub_81A97DC sub_81A97DC: @ 81A97DC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081A980C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] lsls r0, 5 ldr r1, =gUnknown_08D856C8 adds r0, r1 ldr r1, =gPlttBufferUnfaded + 0xC0 movs r2, 0x10 bl CpuSet adds r0, r4, 0 bl DestroyTask _081A980C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81A97DC thumb_func_start sub_81A9828 sub_81A9828: @ 81A9828 push {lr} bl sub_809FDD4 pop {r0} bx r0 thumb_func_end sub_81A9828 thumb_func_start sub_81A9834 sub_81A9834: @ 81A9834 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x18 movs r0, 0 str r0, [sp] _081A9844: ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, [sp] lsls r1, r2, 1 ldr r5, =0x00000caa adds r0, r5 adds r0, r1 ldrh r0, [r0] subs r5, r0, 0x1 movs r0, 0 str r0, [sp, 0x4] movs r2, 0x64 adds r1, r5, 0 muls r1, r2 str r1, [sp, 0x8] movs r0, 0x8E lsls r0, 2 adds r6, r1, r0 movs r1, 0 str r1, [sp, 0x10] _081A986C: ldr r2, =gSaveBlock1Ptr ldr r0, [r2] adds r0, r6 movs r1, 0xB movs r2, 0 bl GetMonData adds r4, r0, 0 ldr r3, =gPlayerParty ldr r1, [sp, 0x10] adds r0, r1, r3 movs r1, 0xB movs r2, 0 str r3, [sp, 0x14] bl GetMonData ldr r3, [sp, 0x14] cmp r4, r0 bne _081A993C movs r6, 0 adds r2, r5, 0x1 str r2, [sp, 0xC] movs r1, 0x64 adds r0, r5, 0 muls r0, r1 movs r5, 0x8E lsls r5, 2 adds r5, r0 mov r9, r5 ldr r7, [sp, 0x4] muls r7, r1 mov r10, r3 _081A98AC: movs r5, 0 adds r0, r6, 0x1 mov r8, r0 b _081A98C6 .pool _081A98C4: adds r5, 0x1 _081A98C6: cmp r5, 0x3 bgt _081A98EE ldr r1, =gSaveBlock1Ptr ldr r0, [r1] add r0, r9 adds r1, r5, 0 adds r1, 0xD movs r2, 0 bl GetMonData adds r4, r0, 0 adds r1, r6, 0 adds r1, 0xD mov r2, r10 adds r0, r7, r2 movs r2, 0 bl GetMonData cmp r4, r0 bne _081A98C4 _081A98EE: cmp r5, 0x4 bne _081A9900 lsls r2, r6, 24 lsrs r2, 24 mov r5, r10 adds r0, r7, r5 movs r1, 0xA6 bl SetMonMoveSlot _081A9900: mov r6, r8 cmp r6, 0x3 ble _081A98AC ldr r1, =gSaveBlock1Ptr ldr r0, [r1] ldr r2, [sp, 0x8] adds r0, r2 movs r5, 0x8E lsls r5, 2 adds r0, r5 ldr r1, =gPlayerParty ldr r2, [sp, 0x10] adds r1, r2, r1 movs r2, 0x64 bl memcpy ldr r0, =gUnknown_0203CEF8 ldr r5, [sp, 0x4] adds r0, r5, r0 mov r1, sp ldrb r1, [r1, 0xC] strb r1, [r0] b _081A994C .pool _081A993C: ldr r2, [sp, 0x10] adds r2, 0x64 str r2, [sp, 0x10] ldr r0, [sp, 0x4] adds r0, 0x1 str r0, [sp, 0x4] cmp r0, 0x2 ble _081A986C _081A994C: ldr r1, [sp] adds r1, 0x1 str r1, [sp] cmp r1, 0x2 bgt _081A9958 b _081A9844 _081A9958: movs r2, 0 str r2, [sp] ldr r4, =gSaveBlock2Ptr ldr r3, =0x00000caa ldr r2, =gUnknown_0203CEF8 _081A9962: ldr r1, [r4] ldr r5, [sp] lsls r0, r5, 1 adds r1, r3 adds r1, r0 adds r0, r5, r2 ldrb r0, [r0] strh r0, [r1] adds r5, 0x1 str r5, [sp] cmp r5, 0x2 ble _081A9962 add sp, 0x18 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A9834 thumb_func_start sub_81A9998 sub_81A9998: @ 81A9998 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r0 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 movs r4, 0 ldr r0, =gUnknown_03005DC0 ldr r5, [r0, 0x8] ldr r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 1 adds r0, 0xE adds r5, r0 movs r3, 0 ldr r0, =0x000003ff mov r8, r0 ldr r1, =0x0000028e mov r12, r1 ldr r0, =gMapObjects mov r9, r0 _081A99CC: movs r2, 0 _081A99CE: lsls r0, r2, 1 adds r0, r5 ldrh r1, [r0] mov r0, r8 ands r0, r1 cmp r0, r12 bne _081A9A8A adds r2, 0x7 ldr r0, =gUnknown_03005DF0 ldrb r1, [r0] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r9 movs r5, 0xC ldrsh r1, [r0, r5] subs r2, r1 adds r1, r3, 0x7 movs r3, 0xE ldrsh r0, [r0, r3] subs r3, r1, r0 cmp r2, r6 bge _081A9A0E negs r0, r6 cmp r2, r0 ble _081A9A0E cmp r3, r6 bge _081A9A0E cmp r3, r0 ble _081A9A0E cmp r7, 0 bne _081A9A84 _081A9A0E: cmp r2, 0 ble _081A9A34 cmp r3, 0 ble _081A9A34 movs r4, 0x3 cmp r2, r3 blt _081A9A7C movs r4, 0x2 b _081A9A7C .pool _081A9A34: cmp r2, 0 bge _081A9A46 cmp r3, 0 bge _081A9A46 movs r4, 0x1 cmp r2, r3 ble _081A9A7C movs r4, 0 b _081A9A7C _081A9A46: cmp r2, 0 bne _081A9A54 movs r4, 0 cmp r3, 0 ble _081A9A7C movs r4, 0x3 b _081A9A7C _081A9A54: cmp r3, 0 bne _081A9A62 movs r4, 0x1 cmp r2, 0 ble _081A9A7C movs r4, 0x2 b _081A9A7C _081A9A62: cmp r2, 0 bge _081A9A72 adds r0, r2, r3 movs r4, 0x1 cmp r0, 0 ble _081A9A7C movs r4, 0x3 b _081A9A7C _081A9A72: adds r0, r2, r3 mvns r0, r0 asrs r4, r0, 31 movs r0, 0x2 ands r4, r0 _081A9A7C: movs r0, 0 mov r5, r10 str r0, [r5] b _081A9A98 _081A9A84: mov r0, r10 str r7, [r0] b _081A9A98 _081A9A8A: adds r2, 0x1 cmp r2, 0x1F ble _081A99CE adds r5, 0x5E adds r3, 0x1 cmp r3, 0x1F ble _081A99CC _081A9A98: adds r0, r4, 0 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81A9998 thumb_func_start sub_81A9AA8 sub_81A9AA8: @ 81A9AA8 lsls r0, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] lsrs r0, 23 adds r1, r0 ldr r0, =0x00000cb2 adds r1, r0 ldrh r0, [r1] bx lr .pool thumb_func_end sub_81A9AA8 thumb_func_start GetBattlePyramidTrainerFlag GetBattlePyramidTrainerFlag: @ 81A9AC4 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock2Ptr ldr r2, [r1] ldr r1, =0x00000e2a adds r2, r1 ldr r4, =gBitTable ldr r3, =gMapObjects lsls r1, r0, 3 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r0, [r1, 0x8] subs r0, 0x1 lsls r0, 2 adds r0, r4 ldr r0, [r0] ldrb r1, [r2] ands r0, r1 pop {r4} pop {r1} bx r1 .pool thumb_func_end GetBattlePyramidTrainerFlag thumb_func_start sub_81A9B04 sub_81A9B04: @ 81A9B04 push {lr} ldr r0, =gTrainerBattleOpponent_A ldrh r0, [r0] bl sub_81A9B44 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 8 ands r0, r1 cmp r0, 0 beq _081A9B2E movs r0, 0x1 bl sub_80B47E0 ldr r1, =gUnknown_03005DF0 strb r0, [r1] ldr r0, =gTrainerBattleOpponent_B ldrh r0, [r0] bl sub_81A9B44 _081A9B2E: pop {r0} bx r0 .pool thumb_func_end sub_81A9B04 thumb_func_start sub_81A9B44 sub_81A9B44: @ 81A9B44 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 16 lsrs r5, r0, 16 movs r3, 0 ldr r0, =gMapObjects mov r12, r0 ldr r6, =gUnknown_03005DF0 ldr r1, =gSaveBlock1Ptr mov r10, r1 ldr r7, =gSaveBlock2Ptr mov r9, r7 ldr r0, =0x00000cb4 mov r8, r0 ldr r4, =gBitTable _081A9B68: mov r1, r9 ldr r2, [r1] lsls r0, r3, 1 mov r7, r8 adds r1, r2, r7 adds r1, r0 ldrh r0, [r1] cmp r0, r5 bne _081A9B86 ldr r1, =0x00000e2a adds r0, r2, r1 ldr r1, [r4] ldrb r2, [r0] orrs r1, r2 strb r1, [r0] _081A9B86: adds r4, 0x4 adds r3, 0x1 cmp r3, 0x7 ble _081A9B68 ldrb r1, [r6] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r12 movs r3, 0x2 strb r3, [r0, 0x6] mov r7, r10 ldr r2, [r7] ldr r0, =gScriptLastTalked ldrh r1, [r0] subs r1, 0x1 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r2, r0 ldr r1, =0x00000c79 adds r2, r1 strb r3, [r2] ldrb r1, [r6] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r12 ldrh r1, [r0, 0x10] strh r1, [r0, 0xC] ldrb r1, [r6] lsls r0, r1, 3 adds r0, r1 lsls r0, 2 add r0, r12 ldrh r1, [r0, 0x12] strh r1, [r0, 0xE] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81A9B44 thumb_func_start sub_81A9C04 sub_81A9C04: @ 81A9C04 push {r4-r6,lr} sub sp, 0x14 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r5, r0, 30 lsls r0, r5, 1 ldr r2, =0x00000e1a adds r1, r2 adds r1, r0 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 16 lsrs r0, 16 movs r1, 0x14 bl __umodsi3 lsls r0, 16 lsrs r0, 16 cmp r0, 0x13 bls _081A9C3A movs r0, 0x13 _081A9C3A: cmp r5, 0 beq _081A9C54 ldr r1, =gBattlePyramidOpenLevelWildMonPointers b _081A9C56 .pool _081A9C54: ldr r1, =gBattlePyramidLevel50WildMonPointers _081A9C56: lsls r0, 2 adds r0, r1 ldr r6, [r0] ldr r4, =gEnemyParty adds r0, r4, 0 movs r1, 0xB movs r2, 0 bl GetMonData subs r0, 0x1 str r0, [sp, 0x10] lsls r2, r0, 1 adds r2, r0 lsls r2, 2 adds r2, r6, r2 adds r0, r4, 0 movs r1, 0xB bl SetMonData ldr r1, [sp, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0] mov r0, sp bl GetSpeciesName adds r0, r4, 0 movs r1, 0x2 mov r2, sp bl SetMonData cmp r5, 0 beq _081A9CD4 bl sub_8165C40 lsls r0, 24 lsrs r5, r0, 24 ldr r1, [sp, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x2] subs r5, r0 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xB bl __umodsi3 lsls r0, 16 lsrs r0, 16 subs r0, 0x5 adds r5, r0 b _081A9CF6 .pool _081A9CD4: bl Random ldr r2, [sp, 0x10] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r6 ldrb r4, [r1, 0x2] lsls r0, 16 lsrs r0, 16 movs r1, 0xB bl __umodsi3 lsls r0, 16 lsrs r0, 16 subs r0, 0x5 adds r5, r4, r0 _081A9CF6: ldr r4, =gEnemyParty ldr r2, =gBaseStats ldr r1, [sp, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r0, 0x13] movs r0, 0xCA lsls r0, 1 adds r2, r1, 0 muls r2, r0 lsls r0, r5, 2 ldr r1, =gExperienceTables adds r0, r1 adds r2, r0 adds r0, r4, 0 movs r1, 0x19 bl SetMonData ldr r1, [sp, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r1, [r0, 0x3] cmp r1, 0 blt _081A9D4C cmp r1, 0x1 bgt _081A9D4C adds r2, r0, 0x3 b _081A9D7C .pool _081A9D4C: ldr r2, =gBaseStats ldr r1, [sp, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrh r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x17] cmp r0, 0 beq _081A9D90 ldr r4, =gEnemyParty adds r0, r4, 0 movs r1, 0 movs r2, 0 bl GetMonData movs r1, 0x1 ands r1, r0 str r1, [sp, 0xC] add r2, sp, 0xC _081A9D7C: adds r0, r4, 0 movs r1, 0x2E bl SetMonData b _081A9D9C .pool _081A9D90: str r0, [sp, 0xC] ldr r0, =gEnemyParty add r2, sp, 0xC movs r1, 0x2E bl SetMonData _081A9D9C: movs r0, 0 str r0, [sp, 0xC] movs r2, 0 lsls r4, r5, 1 _081A9DA4: ldr r1, [sp, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 lsls r1, r2, 1 adds r0, 0x4 adds r0, r1 ldrh r1, [r0] lsls r2, 24 lsrs r2, 24 ldr r0, =gEnemyParty bl SetMonMoveSlot ldr r0, [sp, 0xC] adds r0, 0x1 str r0, [sp, 0xC] adds r2, r0, 0 cmp r2, 0x3 ble _081A9DA4 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e1a adds r0, r1 adds r0, r4 ldrh r0, [r0] cmp r0, 0x8B bls _081A9E0C bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x11 bl __umodsi3 lsls r0, 16 lsrs r0, 16 adds r0, 0xF str r0, [sp, 0x10] movs r0, 0 str r0, [sp, 0xC] _081A9DF6: adds r1, r0, 0 adds r1, 0x27 ldr r0, =gEnemyParty add r2, sp, 0x10 bl SetMonData ldr r0, [sp, 0xC] adds r0, 0x1 str r0, [sp, 0xC] cmp r0, 0x5 ble _081A9DF6 _081A9E0C: ldr r0, =gEnemyParty bl CalculateMonStats add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81A9C04 thumb_func_start sub_81A9E28 sub_81A9E28: @ 81A9E28 push {lr} bl sub_81AA9E4 lsls r0, 24 ldr r1, =gUnknown_08613650 lsrs r0, 20 adds r0, r1 ldrb r0, [r0, 0x4] pop {r1} bx r1 .pool thumb_func_end sub_81A9E28 thumb_func_start InBattlePyramid InBattlePyramid: @ 81A9E40 push {lr} ldr r0, =gMapHeader ldrh r1, [r0, 0x12] ldr r0, =0x00000169 cmp r1, r0 bne _081A9E58 movs r0, 0x1 b _081A9E66 .pool _081A9E58: movs r0, 0xBD lsls r0, 1 cmp r1, r0 beq _081A9E64 movs r0, 0 b _081A9E66 _081A9E64: movs r0, 0x2 _081A9E66: pop {r1} bx r1 thumb_func_end InBattlePyramid thumb_func_start sub_81A9E6C sub_81A9E6C: @ 81A9E6C push {lr} movs r2, 0 ldr r0, =gMapHeader ldrh r1, [r0, 0x12] ldr r0, =0x00000169 cmp r1, r0 beq _081A9E80 adds r0, 0x11 cmp r1, r0 bne _081A9E82 _081A9E80: movs r2, 0x1 _081A9E82: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_81A9E6C thumb_func_start sub_81A9E90 sub_81A9E90: @ 81A9E90 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _081A9EB8 bl sub_81A9834 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000ca8 adds r0, r1 movs r1, 0x2 strb r1, [r0] ldr r0, =0x0000400e movs r1, 0 bl VarSet bl copy_player_party_from_sav1 _081A9EB8: pop {r0} bx r0 .pool thumb_func_end sub_81A9E90 thumb_func_start sub_81A9EC8 sub_81A9EC8: @ 81A9EC8 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 beq _081A9ED8 bl DoSoftReset _081A9ED8: pop {r0} bx r0 thumb_func_end sub_81A9EC8 thumb_func_start sub_81A9EDC sub_81A9EDC: @ 81A9EDC push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, =gUnknown_0203BC88 movs r1, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xC bl ConvertBattleFrontierTrainerSpeechToString pop {r0} bx r0 .pool thumb_func_end sub_81A9EDC thumb_func_start sub_81A9EFC sub_81A9EFC: @ 81A9EFC push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, =gUnknown_0203BC88 movs r1, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0x18 bl ConvertBattleFrontierTrainerSpeechToString pop {r0} bx r0 .pool thumb_func_end sub_81A9EFC thumb_func_start sub_81A9F1C sub_81A9F1C: @ 81A9F1C push {lr} lsls r0, 16 lsrs r0, 16 ldr r2, =gUnknown_0203BC88 movs r1, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0x24 bl ConvertBattleFrontierTrainerSpeechToString pop {r0} bx r0 .pool thumb_func_end sub_81A9F1C thumb_func_start sub_81A9F3C sub_81A9F3C: @ 81A9F3C push {r4,lr} lsls r0, 16 lsrs r0, 16 movs r4, 0 ldr r3, =gTrainerClassNameIndices ldr r1, =gUnknown_0203BC88 ldr r2, [r1] movs r1, 0x34 muls r0, r1 adds r0, r2 ldrb r0, [r0] adds r0, r3 ldrb r2, [r0] ldr r1, =gUnknown_08613B44 _081A9F58: ldrb r0, [r1] cmp r0, r2 bne _081A9F70 ldrb r0, [r1, 0x1] b _081A9F7A .pool _081A9F70: adds r1, 0x4 adds r4, 0x1 cmp r4, 0x35 bls _081A9F58 movs r0, 0 _081A9F7A: pop {r4} pop {r1} bx r1 thumb_func_end sub_81A9F3C thumb_func_start sub_81A9F80 sub_81A9F80: @ 81A9F80 push {lr} ldr r0, =gUnknown_08252C88 bl ScriptContext1_SetupScript pop {r0} bx r0 .pool thumb_func_end sub_81A9F80 thumb_func_start sub_81A9F90 sub_81A9F90: @ 81A9F90 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r1, =0x00000ca9 adds r0, r4, r1 ldrb r1, [r0] lsls r1, 30 lsrs r1, 29 ldr r2, =0x00000e1a adds r0, r4, r2 adds r0, r1 ldrh r0, [r0] movs r1, 0x7 bl __udivsi3 lsls r0, 16 lsrs r0, 16 ldr r1, =0x00000cb2 adds r4, r1 ldrh r1, [r4] cmp r1, 0x7 bne _081AA020 adds r0, 0x1 lsls r7, r0, 24 lsls r1, 24 mov r8, r1 _081A9FCC: lsrs r0, r7, 24 mov r2, r8 lsrs r1, r2, 24 bl sub_8162548 lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 cmp r2, r5 bge _081AA004 ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r4, =0x00000cb4 adds r0, r4 ldrh r0, [r0] cmp r0, r3 beq _081AA004 adds r6, r1, 0 _081A9FF0: adds r2, 0x1 cmp r2, r5 bge _081AA004 ldr r0, [r6] lsls r1, r2, 1 adds r0, r4 adds r0, r1 ldrh r0, [r0] cmp r0, r3 bne _081A9FF0 _081AA004: cmp r2, r5 bne _081A9FCC b _081AA062 .pool _081AA020: lsls r1, 24 mov r8, r1 lsls r7, r0, 24 _081AA026: lsrs r0, r7, 24 mov r2, r8 lsrs r1, r2, 24 bl sub_8162548 lsls r0, 16 lsrs r3, r0, 16 movs r2, 0 cmp r2, r5 bge _081AA05E ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r4, =0x00000cb4 adds r0, r4 ldrh r0, [r0] cmp r0, r3 beq _081AA05E adds r6, r1, 0 _081AA04A: adds r2, 0x1 cmp r2, r5 bge _081AA05E ldr r0, [r6] lsls r1, r2, 1 adds r0, r4 adds r0, r1 ldrh r0, [r0] cmp r0, r3 bne _081AA04A _081AA05E: cmp r2, r5 bne _081AA026 _081AA062: adds r0, r3, 0 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81A9F90 thumb_func_start sub_81AA078 sub_81AA078: @ 81AA078 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x1C str r0, [sp, 0x4] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x8] movs r0, 0x10 bl AllocZeroed str r0, [sp, 0xC] bl sub_81AA96C mov r4, sp adds r4, 0x1 mov r0, sp adds r1, r4, 0 bl sub_81AA33C movs r7, 0 _081AA0A6: ldr r1, [sp, 0xC] adds r0, r1, r7 ldrb r0, [r0] ldr r2, =0x00000169 adds r0, r2 lsls r0, 2 ldr r1, =gUnknown_08481DD4 adds r0, r1 ldr r6, [r0] ldr r2, [r6, 0xC] mov r10, r2 ldr r0, [sp, 0x4] ldr r1, =gUnknown_03005DC0 str r0, [r1, 0x8] ldr r0, [r6] lsls r0, 2 adds r2, r0, 0 adds r2, 0xF str r2, [r1] ldr r0, [r6, 0x4] lsls r0, 2 adds r0, 0xE str r0, [r1, 0x4] ldr r0, [sp, 0x4] mov r9, r0 adds r1, r7, 0 cmp r7, 0 bge _081AA0E0 adds r1, r7, 0x3 _081AA0E0: asrs r1, 2 ldr r4, [r6, 0x4] adds r0, r1, 0 muls r0, r4 adds r0, 0x7 muls r2, r0 lsls r1, 2 subs r1, r7, r1 ldr r3, [r6] adds r0, r1, 0 muls r0, r3 adds r0, 0x7 adds r2, r0 lsls r2, 1 add r9, r2 movs r1, 0 mov r8, r1 adds r2, r7, 0x1 str r2, [sp, 0x10] cmp r8, r4 bge _081AA1B6 _081AA10A: movs r0, 0 mov r12, r0 mov r1, r8 adds r1, 0x1 str r1, [sp, 0x14] cmp r12, r3 bge _081AA1A2 ldr r2, =gSaveBlock1Ptr str r2, [sp, 0x18] mov r4, r9 mov r5, r10 _081AA120: ldrh r1, [r5] ldr r0, =0x000003ff ands r0, r1 ldr r2, =0x0000028e cmp r0, r2 bne _081AA194 mov r0, sp ldrb r0, [r0, 0x1] cmp r7, r0 beq _081AA194 mov r0, sp ldrb r0, [r0] cmp r7, r0 bne _081AA164 ldr r1, [sp, 0x8] cmp r1, 0 bne _081AA164 ldr r2, [sp, 0x18] ldr r3, [r2] adds r2, r7, 0 cmp r7, 0 bge _081AA14E adds r2, r7, 0x3 _081AA14E: asrs r2, 2 lsls r1, r2, 2 subs r1, r7, r1 ldr r0, [r6] muls r0, r1 add r0, r12 strh r0, [r3] ldr r0, [r6, 0x4] muls r0, r2 add r0, r8 strh r0, [r3, 0x2] _081AA164: ldrh r0, [r5] movs r1, 0xFC lsls r1, 8 ands r1, r0 ldr r2, =0x0000028d adds r0, r2, 0 orrs r1, r0 strh r1, [r4] ldr r3, [r6] b _081AA196 .pool _081AA194: strh r1, [r4] _081AA196: adds r4, 0x2 adds r5, 0x2 movs r0, 0x1 add r12, r0 cmp r12, r3 blt _081AA120 _081AA1A2: lsls r0, r3, 3 adds r0, 0x1E add r9, r0 lsls r0, r3, 1 add r10, r0 ldr r1, [sp, 0x14] mov r8, r1 ldr r0, [r6, 0x4] cmp r8, r0 blt _081AA10A _081AA1B6: ldr r7, [sp, 0x10] cmp r7, 0xF bgt _081AA1BE b _081AA0A6 _081AA1BE: bl mapheader_run_script_with_tag_x1 ldr r0, [sp, 0xC] bl Free add sp, 0x1C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81AA078 thumb_func_start sub_81AA1D8 sub_81AA1D8: @ 81AA1D8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 movs r5, 0 mov r6, sp adds r6, 0x1 add r0, sp, 0x4 mov r8, r0 ldr r4, =gSaveBlock2Ptr ldr r3, =0x00000cb4 ldr r0, =0x0000ffff adds r2, r0, 0 _081AA1F2: ldr r0, [r4] lsls r1, r5, 1 adds r0, r3 adds r0, r1 ldrh r1, [r0] orrs r1, r2 strh r1, [r0] adds r5, 0x1 cmp r5, 0x7 ble _081AA1F2 bl sub_81AA9E4 lsls r0, 24 lsrs r7, r0, 24 mov r0, sp adds r1, r6, 0 bl sub_81AA33C movs r0, 0 str r0, [sp, 0x4] ldr r0, =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0xC7 lsls r0, 4 adds r1, r0 ldr r2, =0x05000180 mov r0, r8 bl CpuSet movs r5, 0 _081AA22E: cmp r5, 0 bne _081AA254 ldr r1, =gUnknown_08613650 lsls r0, r7, 4 adds r0, r1 ldrb r0, [r0, 0x3] b _081AA25C .pool _081AA254: ldr r1, =gUnknown_08613650 lsls r0, r7, 4 adds r0, r1 ldrb r0, [r0, 0x2] _081AA25C: cmp r0, 0x4 bhi _081AA2E4 lsls r0, 2 ldr r1, =_081AA274 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AA274: .4byte _081AA288 .4byte _081AA292 .4byte _081AA2A2 .4byte _081AA2B0 .4byte _081AA2CC _081AA288: lsls r0, r5, 24 lsrs r0, 24 bl sub_81AA398 b _081AA2E4 _081AA292: lsls r0, r5, 24 lsrs r4, r0, 24 mov r0, sp ldrb r1, [r0] adds r0, r4, 0 bl sub_81AA4D8 b _081AA2BE _081AA2A2: lsls r0, r5, 24 lsrs r4, r0, 24 ldrb r1, [r6] adds r0, r4, 0 bl sub_81AA4D8 b _081AA2BE _081AA2B0: lsls r0, r5, 24 lsrs r4, r0, 24 mov r0, sp ldrb r1, [r0] adds r0, r4, 0 bl sub_81AA648 _081AA2BE: lsls r0, 24 cmp r0, 0 beq _081AA2E4 adds r0, r4, 0 bl sub_81AA398 b _081AA2E4 _081AA2CC: lsls r0, r5, 24 lsrs r4, r0, 24 ldrb r1, [r6] adds r0, r4, 0 bl sub_81AA648 lsls r0, 24 cmp r0, 0 beq _081AA2E4 adds r0, r4, 0 bl sub_81AA398 _081AA2E4: adds r5, 0x1 cmp r5, 0x1 ble _081AA22E add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81AA1D8 thumb_func_start sub_81AA2F8 sub_81AA2F8: @ 81AA2F8 push {r4,r5,lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r5, =gUnknown_08252C4F ldr r4, =gUnknown_08252C6A movs r2, 0xC8 lsls r2, 4 adds r1, r0, r2 movs r3, 0xC7 lsls r3, 4 adds r2, r0, r3 movs r3, 0x3F _081AA310: ldrb r0, [r2, 0x1] cmp r0, 0x3B beq _081AA328 str r5, [r1] b _081AA32A .pool _081AA328: str r4, [r1] _081AA32A: adds r1, 0x18 adds r2, 0x18 subs r3, 0x1 cmp r3, 0 bge _081AA310 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81AA2F8 thumb_func_start sub_81AA33C sub_81AA33C: @ 81AA33C push {r4-r7,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r5, =gSaveBlock2Ptr ldr r1, [r5] ldr r2, =0x00000e28 adds r0, r1, r2 ldrh r2, [r0] movs r3, 0xF ands r2, r3 strb r2, [r4] ldr r7, =0x00000e22 adds r1, r7 ldrh r0, [r1] ands r0, r3 strb r0, [r6] cmp r2, r0 bne _081AA386 ldr r1, [r5] ldr r2, =0x00000e28 adds r0, r1, r2 ldrh r2, [r0] adds r3, r2, 0x1 adds r0, r3, 0 asrs r0, 4 lsls r0, 4 subs r0, r3, r0 strb r0, [r4] adds r0, r1, r7 ldrh r1, [r0] adds r2, r1, 0 adds r2, 0xF adds r0, r2, 0 asrs r0, 4 lsls r0, 4 subs r0, r2, r0 strb r0, [r6] _081AA386: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AA33C thumb_func_start sub_81AA398 sub_81AA398: @ 81AA398 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r5, 0 bl sub_81AA9E4 lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x10 bl AllocZeroed str r0, [sp, 0x8] bl sub_81AA96C ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e26 adds r0, r1 ldrh r4, [r0] movs r0, 0xF ands r4, r0 ldr r0, [sp] cmp r0, 0 bne _081AA3F0 ldr r1, =gUnknown_08613650 lsls r0, r6, 4 adds r0, r1 ldrb r0, [r0, 0x1] mov r10, r0 movs r1, 0 str r1, [sp, 0x4] b _081AA3FE .pool _081AA3F0: ldr r1, =gUnknown_08613650 lsls r0, r6, 4 adds r0, r1 ldrb r1, [r0] mov r10, r1 ldrb r0, [r0, 0x1] str r0, [sp, 0x4] _081AA3FE: movs r0, 0 mov r8, r0 cmp r8, r10 bge _081AA4C0 _081AA406: movs r1, 0x1 add r1, r8 mov r9, r1 b _081AA42E .pool _081AA414: lsls r2, r4, 24 lsrs r2, 24 ldr r3, [sp, 0x4] add r3, r8 lsls r3, 24 lsrs r3, 24 ldr r0, [sp] ldr r1, [sp, 0x8] bl sub_81AA760 lsls r0, 24 cmp r0, 0 beq _081AA4B6 _081AA42E: ldr r0, =gBitTable mov r12, r0 ldr r6, =gSaveBlock2Ptr ldr r7, =0x00000e28 movs r3, 0x2 lsls r0, r4, 2 mov r1, r12 adds r2, r0, r1 _081AA43E: movs r0, 0x1 ands r0, r5 cmp r0, 0 beq _081AA464 ldr r0, [r6] adds r0, r7 ldrh r1, [r0] ldr r0, [r2] ands r0, r1 cmp r0, 0 bne _081AA474 b _081AA472 .pool _081AA464: ldr r0, [r6] adds r0, r7 ldrh r1, [r0] ldr r0, [r2] ands r0, r1 cmp r0, 0 beq _081AA474 _081AA472: orrs r5, r3 _081AA474: adds r2, 0x4 adds r4, 0x1 cmp r4, 0xF ble _081AA480 mov r2, r12 movs r4, 0 _081AA480: ldr r0, [r6] ldr r1, =0x00000e26 adds r0, r1 ldrh r1, [r0] movs r0, 0xF ands r1, r0 cmp r4, r1 bne _081AA4A6 movs r1, 0x1 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _081AA4A4 movs r0, 0x6 orrs r5, r0 b _081AA4A6 .pool _081AA4A4: orrs r5, r1 _081AA4A6: adds r0, r5, 0 ands r0, r3 cmp r0, 0 beq _081AA43E movs r0, 0x4 ands r0, r5 cmp r0, 0 beq _081AA414 _081AA4B6: movs r0, 0x1 ands r5, r0 mov r8, r9 cmp r8, r10 blt _081AA406 _081AA4C0: ldr r0, [sp, 0x8] bl Free add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81AA398 thumb_func_start sub_81AA4D8 sub_81AA4D8: @ 81AA4D8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] movs r6, 0 movs r7, 0 movs r0, 0 str r0, [sp, 0xC] bl sub_81AA9E4 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x10 bl AllocZeroed str r0, [sp, 0x14] bl sub_81AA96C ldr r1, [sp] cmp r1, 0 bne _081AA524 ldr r1, =gUnknown_08613650 lsls r0, r4, 4 adds r0, r1 ldrb r0, [r0, 0x1] str r0, [sp, 0x10] movs r0, 0 b _081AA530 .pool _081AA524: ldr r1, =gUnknown_08613650 lsls r0, r4, 4 adds r0, r1 ldrb r2, [r0] str r2, [sp, 0x10] ldrb r0, [r0, 0x1] _081AA530: movs r3, 0 str r3, [sp, 0x8] ldr r1, [sp, 0x10] asrs r1, 31 str r1, [sp, 0x18] ldr r2, [sp, 0x10] cmp r3, r2 bge _081AA622 str r0, [sp, 0x1C] adds r3, r0, 0 lsls r3, 24 mov r9, r3 _081AA548: cmp r7, 0 bne _081AA56E mov r0, r9 lsrs r3, r0, 24 ldr r0, [sp] ldr r1, [sp, 0x14] ldr r2, [sp, 0x4] bl sub_81AA760 lsls r0, 24 cmp r0, 0 beq _081AA568 movs r7, 0x1 b _081AA56E .pool _081AA568: ldr r1, [sp, 0xC] adds r1, 0x1 str r1, [sp, 0xC] _081AA56E: movs r0, 0x1 ands r0, r7 cmp r0, 0 beq _081AA600 ldr r2, =gUnknown_08613F46 mov r8, r2 ldr r3, [sp, 0x4] lsls r4, r3, 2 adds r0, r6, r4 add r0, r8 ldrb r2, [r0] mov r0, r9 lsrs r3, r0, 24 ldr r0, [sp] ldr r1, [sp, 0x14] bl sub_81AA760 lsls r0, 24 ldr r1, [sp, 0x1C] mov r10, r1 adds r5, r4, 0 cmp r0, 0 beq _081AA5E8 ldr r4, [sp, 0xC] adds r4, 0x1 b _081AA5C2 .pool _081AA5A8: adds r0, r6, r5 adds r0, r2 ldrb r2, [r0] mov r0, r10 lsls r3, r0, 24 lsrs r3, 24 ldr r0, [sp] ldr r1, [sp, 0x14] bl sub_81AA760 lsls r0, 24 cmp r0, 0 beq _081AA5E0 _081AA5C2: adds r6, 0x1 ldr r0, =gUnknown_08613F46 adds r1, r6, r5 adds r1, r0 ldrb r1, [r1] adds r2, r0, 0 cmp r1, 0xFF beq _081AA5D6 cmp r6, 0x3 ble _081AA5D8 _081AA5D6: movs r6, 0 _081AA5D8: adds r7, 0x2 asrs r0, r7, 1 cmp r0, 0x4 bne _081AA5A8 _081AA5E0: str r4, [sp, 0xC] b _081AA600 .pool _081AA5E8: adds r6, 0x1 adds r0, r6, r4 add r0, r8 ldrb r0, [r0] cmp r0, 0xFF beq _081AA5F8 cmp r6, 0x3 ble _081AA5FA _081AA5F8: movs r6, 0 _081AA5FA: ldr r1, [sp, 0xC] adds r1, 0x1 str r1, [sp, 0xC] _081AA600: asrs r0, r7, 1 cmp r0, 0x4 beq _081AA622 movs r0, 0x1 ands r7, r0 ldr r2, [sp, 0x1C] adds r2, 0x1 str r2, [sp, 0x1C] movs r3, 0x80 lsls r3, 17 add r9, r3 ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] ldr r1, [sp, 0x10] cmp r0, r1 blt _081AA548 _081AA622: movs r1, 0 ldr r2, [sp, 0x10] ldr r3, [sp, 0x18] subs r0, r2, r3 asrs r0, 1 ldr r2, [sp, 0xC] cmp r0, r2 ble _081AA634 movs r1, 0x1 _081AA634: adds r0, r1, 0 add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81AA4D8 thumb_func_start sub_81AA648 sub_81AA648: @ 81AA648 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r6, r1, 24 movs r4, 0 movs r7, 0 movs r0, 0 mov r8, r0 bl sub_81AA9E4 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x10 bl AllocZeroed str r0, [sp, 0x8] bl sub_81AA96C ldr r1, [sp] cmp r1, 0 bne _081AA694 ldr r1, =gUnknown_08613650 lsls r0, r5, 4 adds r0, r1 ldrb r0, [r0, 0x1] mov r10, r0 movs r0, 0 b _081AA6A0 .pool _081AA694: ldr r1, =gUnknown_08613650 lsls r0, r5, 4 adds r0, r1 ldrb r2, [r0] mov r10, r2 ldrb r0, [r0, 0x1] _081AA6A0: movs r3, 0 str r3, [sp, 0x4] mov r1, r10 asrs r1, 31 str r1, [sp, 0xC] cmp r3, r10 bge _081AA73E ldr r2, =gUnknown_08613F46 mov r9, r2 lsls r5, r6, 2 lsls r6, r0, 24 _081AA6B6: adds r0, r4, r5 add r0, r9 ldrb r2, [r0] lsrs r3, r6, 24 ldr r0, [sp] ldr r1, [sp, 0x8] bl sub_81AA760 lsls r0, 24 cmp r0, 0 beq _081AA714 adds r7, 0x1 b _081AA6EE .pool _081AA6D8: adds r0, r4, r5 adds r0, r1 ldrb r2, [r0] lsrs r3, r6, 24 ldr r0, [sp] ldr r1, [sp, 0x8] bl sub_81AA760 lsls r0, 24 cmp r0, 0 beq _081AA728 _081AA6EE: adds r4, 0x1 adds r0, r4, r5 add r0, r9 ldrb r0, [r0] ldr r1, =gUnknown_08613F46 cmp r0, 0xFF beq _081AA700 cmp r4, 0x3 ble _081AA702 _081AA700: movs r4, 0 _081AA702: movs r3, 0x1 add r8, r3 mov r0, r8 cmp r0, 0x4 bne _081AA6D8 b _081AA728 .pool _081AA714: adds r4, 0x1 adds r0, r4, r5 add r0, r9 ldrb r0, [r0] cmp r0, 0xFF beq _081AA724 cmp r4, 0x3 ble _081AA726 _081AA724: movs r4, 0 _081AA726: adds r7, 0x1 _081AA728: mov r1, r8 cmp r1, 0x4 beq _081AA73E movs r2, 0x80 lsls r2, 17 adds r6, r2 ldr r3, [sp, 0x4] adds r3, 0x1 str r3, [sp, 0x4] cmp r3, r10 blt _081AA6B6 _081AA73E: movs r1, 0 mov r2, r10 ldr r3, [sp, 0xC] subs r0, r2, r3 asrs r0, 1 cmp r0, r7 ble _081AA74E movs r1, 0x1 _081AA74E: adds r0, r1, 0 add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81AA648 thumb_func_start sub_81AA760 sub_81AA760: @ 81AA760 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r10, r1 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r7, r3, 24 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000e22 adds r0, r1 ldrh r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081AA7D0 movs r6, 0x7 _081AA792: movs r4, 0x7 lsls r5, r6, 24 _081AA796: lsls r1, r4, 24 lsrs r1, 24 mov r0, r8 str r0, [sp] str r7, [sp, 0x4] mov r0, r9 lsrs r2, r5, 24 mov r3, r10 bl sub_81AA810 lsls r0, 24 cmp r0, 0 beq _081AA7CC subs r4, 0x1 cmp r4, 0 bge _081AA796 subs r6, 0x1 movs r1, 0x1 negs r1, r1 cmp r6, r1 bgt _081AA792 b _081AA7FC .pool _081AA7CC: movs r0, 0 b _081AA7FE _081AA7D0: movs r6, 0 _081AA7D2: movs r4, 0 lsls r5, r6, 24 _081AA7D6: lsls r1, r4, 24 lsrs r1, 24 mov r0, r8 str r0, [sp] str r7, [sp, 0x4] mov r0, r9 lsrs r2, r5, 24 mov r3, r10 bl sub_81AA810 lsls r0, 24 cmp r0, 0 beq _081AA7CC adds r4, 0x1 cmp r4, 0x7 ble _081AA7D6 adds r6, 0x1 cmp r6, 0x7 ble _081AA7D2 _081AA7FC: movs r0, 0x1 _081AA7FE: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81AA760 thumb_func_start sub_81AA810 sub_81AA810: @ 81AA810 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 ldr r4, [sp, 0x34] ldr r5, [sp, 0x38] lsls r0, 24 lsrs r0, 24 str r0, [sp] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x4] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r4, 24 lsrs r4, 24 mov r10, r4 lsls r5, 24 lsrs r6, r5, 24 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xC7 lsls r1, 4 adds r1, r0, r1 str r1, [sp, 0x8] add r3, r10 ldrb r1, [r3] adds r1, 0x2C movs r0, 0x19 bl get_mapheader_by_bank_and_number adds r5, r0, 0 movs r7, 0 ldr r1, [r5, 0x4] ldrb r2, [r1] cmp r7, r2 bge _081AA95A movs r0, 0x3 ands r0, r4 lsls r0, 3 str r0, [sp, 0xC] _081AA868: ldr r1, [r1, 0x4] lsls r2, r7, 1 adds r0, r2, r7 lsls r0, 3 adds r3, r0, r1 movs r4, 0x4 ldrsh r0, [r3, r4] ldr r1, [r5, 0x4] mov r12, r1 mov r9, r2 ldr r2, [sp, 0x4] cmp r0, r2 bne _081AA950 movs r4, 0x6 ldrsh r0, [r3, r4] cmp r0, r8 bne _081AA950 ldr r0, [sp] cmp r0, 0 bne _081AA896 ldrb r0, [r3, 0x1] cmp r0, 0x3B bne _081AA8A2 _081AA896: ldr r1, [sp] cmp r1, 0x1 bne _081AA950 ldrb r0, [r3, 0x1] cmp r0, 0x3B bne _081AA950 _081AA8A2: movs r3, 0 ldr r2, [r5, 0x4] mov r12, r2 cmp r3, r6 bge _081AA8DC ldr r4, [sp, 0x4] ldr r0, [sp, 0xC] adds r4, r0 str r4, [sp, 0x10] mov r1, r10 lsrs r0, r1, 2 lsls r0, 3 mov r2, r8 adds r1, r2, r0 ldr r2, [sp, 0x8] adds r2, 0x4 _081AA8C2: movs r4, 0 ldrsh r0, [r2, r4] ldr r4, [sp, 0x10] cmp r0, r4 bne _081AA8D4 movs r4, 0x2 ldrsh r0, [r2, r4] cmp r0, r1 beq _081AA8DC _081AA8D4: adds r2, 0x18 adds r3, 0x1 cmp r3, r6 blt _081AA8C2 _081AA8DC: cmp r3, r6 bne _081AA950 lsls r0, r6, 1 mov r8, r0 adds r0, r6 lsls r0, 3 ldr r1, [sp, 0x8] adds r5, r0, r1 mov r3, r12 ldr r2, [r3, 0x4] mov r4, r9 adds r1, r4, r7 lsls r1, 3 adds r0, r5, 0 adds r1, r2 ldm r1!, {r2-r4} stm r0!, {r2-r4} ldm r1!, {r2-r4} stm r0!, {r2-r4} ldrh r0, [r5, 0x4] ldr r1, [sp, 0xC] adds r0, r1 strh r0, [r5, 0x4] mov r2, r10 lsrs r0, r2, 2 lsls r0, 3 ldrh r3, [r5, 0x6] adds r0, r3 strh r0, [r5, 0x6] adds r0, r6, 0x1 strb r0, [r5] ldrb r0, [r5, 0x1] cmp r0, 0x3B beq _081AA940 adds r0, r6, 0 bl sub_81A9F90 lsls r0, 16 lsrs r7, r0, 16 adds r4, r7, 0 adds r0, r4, 0 bl sub_81627A4 strb r0, [r5, 0x1] ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =0x00000cb4 adds r0, r1 add r0, r8 strh r4, [r0] _081AA940: movs r0, 0 b _081AA95C .pool _081AA950: adds r7, 0x1 mov r1, r12 ldrb r2, [r1] cmp r7, r2 blt _081AA868 _081AA95A: movs r0, 0x1 _081AA95C: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81AA810 thumb_func_start sub_81AA96C sub_81AA96C: @ 81AA96C push {r4-r7,lr} adds r6, r0, 0 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000e22 adds r1, r0, r2 ldrh r4, [r1] ldr r1, =0x00000e24 adds r0, r1 ldrh r0, [r0] lsls r0, 16 orrs r4, r0 bl sub_81AA9E4 lsls r0, 24 lsrs r5, r0, 24 movs r3, 0 ldr r2, =gUnknown_08613655 mov r12, r2 movs r7, 0x7 _081AA994: adds r2, r6, r3 adds r0, r4, 0 ands r0, r7 lsls r1, r5, 4 adds r0, r1 add r0, r12 ldrb r0, [r0] strb r0, [r2] asrs r4, 3 cmp r3, 0x7 bne _081AA9C0 ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, =0x00000e26 adds r0, r1, r2 ldrh r4, [r0] ldr r0, =0x00000e28 adds r1, r0 ldrh r0, [r1] lsls r0, 16 orrs r4, r0 asrs r4, 8 _081AA9C0: adds r3, 0x1 cmp r3, 0xF ble _081AA994 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AA96C thumb_func_start sub_81AA9E4 sub_81AA9E4: @ 81AA9E4 push {r4,lr} ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r1, =0x00000e28 adds r0, r4, r1 ldrh r0, [r0] movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r3, r0, 16 ldr r0, =0x00000cb2 adds r4, r0 ldrh r0, [r4] ldr r1, =gUnknown_08613794 adds r0, r1 ldrb r2, [r0] cmp r2, 0x21 bhi _081AAA38 ldr r1, =gUnknown_08613750 lsls r0, r2, 1 adds r0, r1 _081AAA10: ldrb r1, [r0] cmp r3, r1 bge _081AAA30 ldrb r0, [r0, 0x1] b _081AAA3A .pool _081AAA30: adds r0, 0x2 adds r2, 0x1 cmp r2, 0x21 bls _081AAA10 _081AAA38: movs r0, 0 _081AAA3A: pop {r4} pop {r1} bx r1 thumb_func_end sub_81AA9E4 thumb_func_start sub_81AAA40 sub_81AAA40: @ 81AAA40 push {lr} ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0xC7 lsls r1, 4 adds r2, r0, r1 movs r1, 0 movs r3, 0xC7 lsls r3, 4 adds r0, r3 b _081AAA6E .pool _081AAA5C: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0xF bhi _081AAA74 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 adds r0, r2 _081AAA6E: ldrb r0, [r0] cmp r0, 0 bne _081AAA5C _081AAA74: adds r0, r1, 0 pop {r1} bx r1 thumb_func_end sub_81AAA40 thumb_func_start sub_81AAA7C sub_81AAA7C: @ 81AAA7C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 movs r3, 0 ldr r1, =gSaveBlock2Ptr mov r8, r1 lsls r1, r0, 2 adds r1, r0 movs r0, 0 mov r12, r0 lsls r4, r1, 1 ldr r7, =0x00000e2c movs r6, 0 ldr r5, =0x00000e54 lsls r2, r1, 2 _081AAA9E: mov r1, r8 ldr r0, [r1] adds r1, r0, r7 adds r1, r2 strh r6, [r1] adds r1, r3, r4 adds r0, r5 adds r0, r1 mov r1, r12 strb r1, [r0] adds r2, 0x2 adds r3, 0x1 cmp r3, 0x9 ble _081AAA9E movs r0, 0x15 movs r1, 0x1 bl AddPyramidBagItem movs r0, 0x22 movs r1, 0x1 bl AddPyramidBagItem pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AAA7C thumb_func_start CalculateBattlePyramidPickupItemId CalculateBattlePyramidPickupItemId: @ 81AAAE0 push {r4-r6,lr} ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r2, =0x00000ca9 adds r0, r1, r2 ldrb r0, [r0] lsls r0, 30 lsrs r6, r0, 30 lsls r0, r6, 1 ldr r2, =0x00000e1a adds r1, r2 adds r1, r0 ldrh r0, [r1] movs r1, 0x7 bl __udivsi3 lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0x13 ble _081AAB0A movs r4, 0x13 _081AAB0A: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldr r3, =gUnknown_08613F86 ldrb r0, [r3] lsls r5, r4, 2 cmp r0, r2 bgt _081AAB36 _081AAB28: adds r1, 0x1 cmp r1, 0x9 bhi _081AAB3A adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 ble _081AAB28 _081AAB36: cmp r1, 0x9 bls _081AAB3C _081AAB3A: movs r1, 0x9 _081AAB3C: cmp r6, 0 bne _081AAB58 ldr r2, =gUnknown_0861379C b _081AAB5A .pool _081AAB58: ldr r2, =gUnknown_0861392C _081AAB5A: lsls r1, 1 adds r0, r5, r4 lsls r0, 2 adds r1, r0 adds r1, r2 ldrh r0, [r1] pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end CalculateBattlePyramidPickupItemId thumb_func_start ResetBagScrollPositions ResetBagScrollPositions: @ 81AAB70 push {r4,lr} ldr r4, =gUnknown_0203CE58 movs r0, 0 strb r0, [r4, 0x5] adds r0, r4, 0 adds r0, 0x8 movs r1, 0 movs r2, 0xA bl memset adds r4, 0x12 adds r0, r4, 0 movs r1, 0 movs r2, 0xA bl memset pop {r4} pop {r0} bx r0 .pool thumb_func_end ResetBagScrollPositions thumb_func_start CB2_BagMenuFromStartMenu @ void CB2_BagMenuFromStartMenu() CB2_BagMenuFromStartMenu: @ 81AAB9C push {lr} ldr r2, =sub_8086194 movs r0, 0 movs r1, 0x5 bl GoToBagMenu pop {r0} bx r0 .pool thumb_func_end CB2_BagMenuFromStartMenu thumb_func_start sub_81AABB0 sub_81AABB0: @ 81AABB0 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _081AABCC ldr r2, =sub_8059D50 movs r0, 0x1 movs r1, 0x5 bl GoToBagMenu b _081AABD4 .pool _081AABCC: ldr r1, =sub_8059D50 movs r0, 0x1 bl sub_81C4F98 _081AABD4: pop {r0} bx r0 .pool thumb_func_end sub_81AABB0 thumb_func_start CB2_ChooseBerry CB2_ChooseBerry: @ 81AABDC push {lr} ldr r2, =sub_80861B0 movs r0, 0x4 movs r1, 0x3 bl GoToBagMenu pop {r0} bx r0 .pool thumb_func_end CB2_ChooseBerry thumb_func_start sub_81AABF0 sub_81AABF0: @ 81AABF0 push {lr} adds r2, r0, 0 movs r0, 0x5 movs r1, 0x3 bl GoToBagMenu pop {r0} bx r0 thumb_func_end sub_81AABF0 thumb_func_start CB2_GoToSellMenu @ void CB2_GoToSellMenu() CB2_GoToSellMenu: @ 81AAC00 push {lr} ldr r2, =CB2_ExitSellMenu movs r0, 0x3 movs r1, 0x5 bl GoToBagMenu pop {r0} bx r0 .pool thumb_func_end CB2_GoToSellMenu thumb_func_start sub_81AAC14 sub_81AAC14: @ 81AAC14 push {lr} ldr r2, =sub_816B31C movs r0, 0x6 movs r1, 0x5 bl GoToBagMenu pop {r0} bx r0 .pool thumb_func_end sub_81AAC14 thumb_func_start sub_81AAC28 sub_81AAC28: @ 81AAC28 push {lr} ldr r2, =bag_menu_leave_maybe_3 movs r0, 0x9 movs r1, 0x5 bl GoToBagMenu ldr r0, =gSpecialVar_0x8005 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r1, [r0] pop {r0} bx r0 .pool thumb_func_end sub_81AAC28 thumb_func_start sub_81AAC50 sub_81AAC50: @ 81AAC50 push {lr} ldr r2, =bag_menu_leave_maybe_2 movs r0, 0x7 movs r1, 0x5 bl GoToBagMenu ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_81AAC50 thumb_func_start sub_81AAC70 sub_81AAC70: @ 81AAC70 push {lr} ldr r2, =bag_menu_leave_maybe movs r0, 0x8 movs r1, 0x5 bl GoToBagMenu ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] pop {r0} bx r0 .pool thumb_func_end sub_81AAC70 thumb_func_start GoToBagMenu @ void GoToBagMenu(u8 bagMenuType, u8 pocketId, void ( *postExitMenuMainCallback2)()) GoToBagMenu: @ 81AAC90 push {r4-r7,lr} adds r4, r2, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r7, r1, 24 ldr r6, =gUnknown_0203CE54 ldr r0, =0x00000c48 bl AllocZeroed str r0, [r6] cmp r0, 0 bne _081AACBC adds r0, r4, 0 bl SetMainCallback2 b _081AAD3A .pool _081AACBC: ldr r0, =gUnknown_0203CE58 cmp r5, 0xC beq _081AACC4 strb r5, [r0, 0x4] _081AACC4: cmp r4, 0 beq _081AACCA str r4, [r0] _081AACCA: cmp r7, 0x4 bhi _081AACD0 strb r7, [r0, 0x5] _081AACD0: ldrb r0, [r0, 0x4] subs r0, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081AACF0 ldr r2, [r6] ldr r0, =0x0000081b adds r2, r0 ldrb r1, [r2] movs r0, 0x10 negs r0, r0 ands r0, r1 movs r1, 0x1 orrs r0, r1 strb r0, [r2] _081AACF0: ldr r0, [r6] movs r1, 0 str r1, [r0] ldr r1, =0x0000081a adds r0, r1 movs r1, 0xFF strb r1, [r0] ldr r0, [r6] ldr r1, =0x0000081e adds r0, r1 movs r1, 0x1 negs r1, r1 strb r1, [r0] ldr r0, [r6] ldr r1, =0x0000081f adds r0, r1 movs r1, 0x1 negs r1, r1 strb r1, [r0] ldr r0, [r6] ldr r1, =0x00000804 adds r0, r1 movs r1, 0xFF movs r2, 0xC bl memset ldr r0, [r6] movs r1, 0x81 lsls r1, 4 adds r0, r1 movs r1, 0xFF movs r2, 0xA bl memset ldr r0, =CB2_Bag bl SetMainCallback2 _081AAD3A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end GoToBagMenu thumb_func_start c2_bag_3 c2_bag_3: @ 81AAD5C push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end c2_bag_3 thumb_func_start vblank_cb_bag_menu vblank_cb_bag_menu: @ 81AAD78 push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end vblank_cb_bag_menu thumb_func_start CB2_Bag CB2_Bag: @ 81AAD8C push {lr} _081AAD8E: bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AADB2 bl setup_bag_menu lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AADB2 bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081AAD8E _081AADB2: pop {r0} bx r0 thumb_func_end CB2_Bag thumb_func_start setup_bag_menu setup_bag_menu: @ 81AADB8 push {r4,r5,lr} sub sp, 0x4 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x14 bls _081AADCE b _081AB02C _081AADCE: lsls r0, 2 ldr r1, =_081AADE0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AADE0: .4byte _081AAE34 .4byte _081AAE3E .4byte _081AAE50 .4byte _081AAE56 .4byte _081AAE78 .4byte _081AAE7E .4byte _081AAE86 .4byte _081AAEA4 .4byte _081AAECC .4byte _081AAEDA .4byte _081AAEEC .4byte _081AAEFA .4byte _081AAF0C .4byte _081AAF1C .4byte _081AAF54 .4byte _081AAFA0 .4byte _081AAFBC .4byte _081AAFC2 .4byte _081AAFD8 .4byte _081AAFDE .4byte _081AAFF8 _081AAE34: bl SetVBlankHBlankCallbacksToNull bl clear_scheduled_bg_copies_to_vram b _081AB012 _081AAE3E: bl remove_some_task ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAE50: bl FreeAllSpritePalettes b _081AB012 _081AAE56: bl ResetPaletteFade ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAE78: bl ResetSpriteData b _081AB012 _081AAE7E: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _081AB01A _081AAE86: bl sub_81221AC lsls r0, 24 cmp r0, 0 bne _081AAE94 bl ResetTasks _081AAE94: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAEA4: bl bag_menu_init_bgs ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000834 adds r0, r1 movs r1, 0 strh r1, [r0] ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAECC: bl load_bag_menu_graphics lsls r0, 24 cmp r0, 0 bne _081AAED8 b _081AB044 _081AAED8: b _081AB012 _081AAEDA: bl setup_bag_menu_textboxes ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAEEC: bl sub_81ABA6C bl sub_81ABAC4 bl sub_81ABAE0 b _081AB012 _081AAEFA: bl allocate_bag_item_list_buffers ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAF0C: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] bl load_bag_item_list_buffers b _081AB012 .pool _081AAF1C: ldr r1, =gUnknown_085E91FC ldr r4, =gUnknown_0203CE58 ldrb r0, [r4, 0x5] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl bag_menu_print_pocket_names movs r0, 0 bl bag_menu_copy_pocket_name_to_window ldrb r0, [r4, 0x5] movs r1, 0x1 bl bag_menu_draw_pocket_indicator_square ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAF54: ldr r4, =gUnknown_0203CE58 ldrb r0, [r4, 0x4] bl sub_81AB1F0 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_03006310 ldrb r2, [r4, 0x5] lsls r2, 1 adds r1, r4, 0 adds r1, 0x12 adds r1, r2, r1 ldrh r1, [r1] adds r4, 0x8 adds r2, r4 ldrh r2, [r2] bl ListMenuInit ldr r2, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 movs r2, 0 strh r0, [r1, 0x8] strh r2, [r1, 0xE] strh r2, [r1, 0x18] b _081AB012 .pool _081AAFA0: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] bl AddBagVisualObject ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAFBC: bl sub_80D4FAC b _081AB012 _081AAFC2: bl bag_menu_add_pocket_scroll_arrow_indicators_maybe bl bag_menu_add_list_scroll_arrow_indicators_maybe ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAFD8: bl bag_menu_prepare_tmhm_move_window b _081AB012 _081AAFDE: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 b _081AB01A .pool _081AAFF8: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] _081AB012: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 _081AB01A: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081AB044 .pool _081AB02C: ldr r0, =vblank_cb_bag_menu bl SetVBlankCallback ldr r0, =c2_bag_3 bl SetMainCallback2 movs r0, 0x1 b _081AB046 .pool _081AB044: movs r0, 0 _081AB046: add sp, 0x4 pop {r4,r5} pop {r1} bx r1 thumb_func_end setup_bag_menu thumb_func_start bag_menu_init_bgs bag_menu_init_bgs: @ 81AB050 push {r4,lr} bl sub_8121DA0 ldr r4, =gUnknown_0203CE54 ldr r0, [r4] adds r0, 0x4 movs r2, 0x80 lsls r2, 4 movs r1, 0 bl memset movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_08613F90 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r1, [r4] adds r1, 0x4 movs r0, 0x2 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x50 movs r1, 0 bl SetGpuReg pop {r4} pop {r0} bx r0 .pool thumb_func_end bag_menu_init_bgs thumb_func_start load_bag_menu_graphics load_bag_menu_graphics: @ 81AB0BC push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_0203CE54 ldr r0, [r4] ldr r1, =0x00000834 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x4 bls _081AB0D2 b _081AB1CC _081AB0D2: lsls r0, 2 ldr r1, =_081AB0E8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AB0E8: .4byte _081AB0FC .4byte _081AB118 .4byte _081AB13C .4byte _081AB174 .4byte _081AB1A8 _081AB0FC: bl reset_temp_tile_data_buffers ldr r1, =gUnknown_08D9A620 movs r0, 0 str r0, [sp] movs r0, 0x2 movs r2, 0 movs r3, 0 bl decompress_and_copy_tile_data_to_vram b _081AB1AE .pool _081AB118: bl free_temp_tile_data_buffers_if_possible lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AB1E4 ldr r0, =gUnknown_08D9A88C ldr r4, =gUnknown_0203CE54 ldr r1, [r4] adds r1, 0x4 bl LZDecompressWram ldr r1, [r4] b _081AB1B2 .pool _081AB13C: bl IsWallysBag lsls r0, 24 cmp r0, 0 bne _081AB164 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 beq _081AB164 ldr r0, =gUnknown_08D9A5D4 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _081AB1AE .pool _081AB164: ldr r0, =gUnknown_08D9A588 movs r1, 0 movs r2, 0x40 bl LoadCompressedPalette b _081AB1AE .pool _081AB174: bl IsWallysBag lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AB18A ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldrb r0, [r0, 0x8] cmp r0, 0 bne _081AB19C _081AB18A: ldr r0, =gUnknown_0857FB34 bl LoadCompressedObjectPic b _081AB1AE .pool _081AB19C: ldr r0, =gUnknown_0857FB3C bl LoadCompressedObjectPic b _081AB1AE .pool _081AB1A8: ldr r0, =gUnknown_0857FB44 bl LoadCompressedObjectPalette _081AB1AE: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] _081AB1B2: ldr r0, =0x00000834 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _081AB1E4 .pool _081AB1CC: bl sub_8122328 ldr r0, [r4] ldr r1, =0x00000834 adds r0, r1 movs r1, 0 strh r1, [r0] movs r0, 0x1 b _081AB1E6 .pool _081AB1E4: movs r0, 0 _081AB1E6: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end load_bag_menu_graphics thumb_func_start sub_81AB1F0 sub_81AB1F0: @ 81AB1F0 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _081AB204 ldr r0, =Task_WallyTutorialBagMenu b _081AB206 .pool _081AB204: ldr r0, =Task_BagMenu _081AB206: movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_81AB1F0 thumb_func_start allocate_bag_item_list_buffers allocate_bag_item_list_buffers: @ 81AB218 push {r4,lr} ldr r4, =gUnknown_0203CE74 movs r0, 0x82 lsls r0, 2 bl Alloc str r0, [r4] ldr r4, =gUnknown_0203CE78 movs r0, 0xC3 lsls r0, 3 bl Alloc str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end allocate_bag_item_list_buffers thumb_func_start load_bag_item_list_buffers @ void load_bag_item_list_buffers(int pocket_id) load_bag_item_list_buffers: @ 81AB240 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 lsls r1, r7, 3 ldr r0, =gBagPockets adds r1, r0 mov r8, r1 ldr r0, =gUnknown_0203CE54 ldr r2, [r0] ldr r1, =0x0000081b adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081AB2FC movs r6, 0 ldr r3, =0x00000829 adds r0, r2, r3 adds r0, r7 ldrb r0, [r0] subs r0, 0x1 cmp r6, r0 bge _081AB2B6 ldr r5, =gUnknown_0203CE78 _081AB276: lsls r4, r6, 1 adds r4, r6 lsls r4, 3 ldr r0, [r5] adds r0, r4 mov r1, r8 ldr r2, [r1] lsls r1, r6, 2 adds r1, r2 ldrh r1, [r1] bl get_name ldr r0, =gUnknown_0203CE74 ldr r0, [r0] lsls r1, r6, 3 adds r1, r0 ldr r0, [r5] adds r0, r4 str r0, [r1] str r6, [r1, 0x4] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r3, =0x00000829 adds r0, r3 adds r0, r7 ldrb r0, [r0] subs r0, 0x1 cmp r6, r0 blt _081AB276 _081AB2B6: ldr r5, =gUnknown_0203CE78 lsls r4, r6, 1 adds r4, r6 lsls r4, 3 ldr r0, [r5] adds r0, r4 ldr r1, =gUnknown_085E8DB4 bl StringCopy ldr r0, =gUnknown_0203CE74 ldr r0, [r0] lsls r1, r6, 3 adds r1, r0 ldr r0, [r5] adds r0, r4 str r0, [r1] movs r0, 0x2 negs r0, r0 str r0, [r1, 0x4] b _081AB34A .pool _081AB2FC: movs r6, 0 ldr r4, =0x00000829 adds r0, r2, r4 adds r0, r7 ldrb r0, [r0] cmp r6, r0 bcs _081AB34A ldr r5, =gUnknown_0203CE78 _081AB30C: lsls r4, r6, 1 adds r4, r6 lsls r4, 3 ldr r0, [r5] adds r0, r4 mov r1, r8 ldr r2, [r1] lsls r1, r6, 2 adds r1, r2 ldrh r1, [r1] bl get_name ldr r0, =gUnknown_0203CE74 ldr r0, [r0] lsls r1, r6, 3 adds r1, r0 ldr r0, [r5] adds r0, r4 str r0, [r1] str r6, [r1, 0x4] adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r3, =0x00000829 adds r0, r3 adds r0, r7 ldrb r0, [r0] cmp r6, r0 bcc _081AB30C _081AB34A: ldr r2, =gUnknown_03006310 adds r1, r2, 0 ldr r0, =gUnknown_08613F9C ldm r0!, {r3-r5} stm r1!, {r3-r5} ldm r0!, {r3-r5} stm r1!, {r3-r5} ldr r0, =gUnknown_0203CE54 ldr r1, [r0] ldr r4, =0x00000829 adds r0, r1, r4 adds r0, r7 ldrb r0, [r0] strh r0, [r2, 0xC] ldr r0, =gUnknown_0203CE74 ldr r0, [r0] str r0, [r2] ldr r5, =0x0000082e adds r1, r5 adds r1, r7 ldrb r0, [r1] strh r0, [r2, 0xE] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end load_bag_item_list_buffers thumb_func_start get_name @ void get_name(char *dest, int name_id) get_name: @ 81AB39C push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x2 beq _081AB3C0 cmp r0, 0x3 beq _081AB420 adds r0, r5, 0 adds r1, r6, 0 bl CopyItemName b _081AB43E .pool _081AB3C0: ldr r4, =gStringVar2 adds r0, r5, 0 bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 adds r0, r4, 0 bl StringCopy movs r0, 0xA9 lsls r0, 1 cmp r5, r0 bls _081AB408 ldr r0, =gStringVar1 ldr r2, =0xfffffeae adds r1, r5, r2 movs r2, 0x2 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r1, =gUnknown_085E921A b _081AB438 .pool _081AB408: ldr r0, =gStringVar1 ldr r2, =0xfffffee0 adds r1, r5, r2 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN b _081AB436 .pool _081AB420: ldr r0, =gStringVar1 adds r1, r5, 0 subs r1, 0x84 movs r2, 0x2 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r1, =gStringVar2 adds r0, r5, 0 bl CopyItemName _081AB436: ldr r1, =gUnknown_085E9210 _081AB438: adds r0, r6, 0 bl StringExpandPlaceholders _081AB43E: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end get_name thumb_func_start bag_menu_change_item_callback bag_menu_change_item_callback: @ 81AB450 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 24 lsrs r1, 24 cmp r1, 0x1 beq _081AB466 movs r0, 0x5 bl PlaySE bl ShakeBagVisual _081AB466: ldr r4, =gUnknown_0203CE54 ldr r1, [r4] ldr r2, =0x0000081a adds r0, r1, r2 ldrb r0, [r0] cmp r0, 0xFF bne _081AB50C adds r2, 0x1 adds r0, r1, r2 ldrb r1, [r0] lsls r1, 26 lsrs r1, 30 movs r0, 0x1 eors r0, r1 bl RemoveBagItemIconObject movs r0, 0x2 negs r0, r0 cmp r6, r0 beq _081AB4C8 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, r6, 16 lsrs r1, 16 bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, [r4] ldr r2, =0x0000081b adds r1, r2 ldrb r1, [r1] lsls r1, 26 lsrs r1, 30 bl AddBagItemIconObject b _081AB4DA .pool _081AB4C8: ldr r0, =0x0000ffff ldr r1, [r4] ldr r2, =0x0000081b adds r1, r2 ldrb r1, [r1] lsls r1, 26 lsrs r1, 30 bl AddBagItemIconObject _081AB4DA: ldr r5, =gUnknown_0203CE54 ldr r2, [r5] ldr r4, =0x0000081b adds r2, r4 ldrb r3, [r2] lsls r0, r3, 26 lsrs r0, 30 movs r1, 0x1 eors r1, r0 lsls r1, 4 movs r0, 0x31 negs r0, r0 ands r0, r3 orrs r0, r1 strb r0, [r2] ldr r0, [r5] adds r0, r4 ldrb r1, [r0] movs r0, 0x40 ands r0, r1 cmp r0, 0 bne _081AB50C adds r0, r6, 0 bl bag_menu_print_description_box_text _081AB50C: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bag_menu_change_item_callback thumb_func_start sub_81AB520 @ void sub_81AB520(u8 rbox_id, int item_index_in_pocket, int a3) sub_81AB520: @ 81AB520 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 24 lsrs r7, r2, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 bne _081AB540 b _081AB696 _081AB540: ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x0000081a adds r0, r1 ldrb r1, [r0] cmp r1, 0xFF beq _081AB570 lsls r0, r4, 24 lsrs r0, 24 cmp r1, r0 bne _081AB568 adds r0, r7, 0 movs r1, 0x2 bl bag_menu_print_cursor b _081AB570 .pool _081AB568: adds r0, r7, 0 movs r1, 0xFF bl bag_menu_print_cursor _081AB570: ldr r5, =gUnknown_0203CE58 ldrb r0, [r5, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r6, r0, 16 ldrb r0, [r5, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl BagGetQuantityByPocketPosition lsls r0, 16 lsrs r4, r0, 16 mov r9, r4 ldr r1, =0xfffffead adds r0, r6, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x7 bhi _081AB5BE ldr r1, =gUnknown_08DC6378 subs r3, r7, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x10 str r0, [sp] str r0, [sp, 0x4] mov r0, r8 movs r2, 0x8 bl BlitBitmapToWindow _081AB5BE: ldrb r0, [r5, 0x5] cmp r0, 0x3 bne _081AB610 ldr r0, =gStringVar1 adds r1, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8DA0 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x7 adds r1, r4, 0 movs r2, 0x77 bl GetStringRightAlignXOffset lsls r3, r0, 24 lsrs r3, 24 str r7, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] str r1, [sp, 0x10] b _081AB652 .pool _081AB610: cmp r0, 0x4 beq _081AB66C adds r0, r6, 0 bl itemid_is_unique lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 bne _081AB66C ldr r0, =gStringVar1 mov r1, r9 movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8DA0 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x7 adds r1, r4, 0 movs r2, 0x77 bl GetStringRightAlignXOffset lsls r3, r0, 24 lsrs r3, 24 str r7, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] str r5, [sp, 0x10] _081AB652: mov r0, r8 movs r1, 0x7 adds r2, r4, 0 bl bag_menu_print b _081AB696 .pool _081AB66C: ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00000496 adds r0, r1 ldrh r0, [r0] cmp r0, 0 beq _081AB696 cmp r0, r6 bne _081AB696 ldr r1, =gUnknown_086140A4 subs r3, r7, 0x1 lsls r3, 16 lsrs r3, 16 movs r0, 0x18 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] mov r0, r8 movs r2, 0x60 bl BlitBitmapToWindow _081AB696: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AB520 thumb_func_start bag_menu_print_description_box_text @ void bag_menu_print_description_box_text(int a1) bag_menu_print_description_box_text: @ 81AB6B0 push {r4,lr} sub sp, 0x14 adds r1, r0, 0 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _081AB6E0 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 bl ItemId_GetDescription adds r4, r0, 0 b _081AB6FC .pool _081AB6E0: ldr r0, =gStringVar1 ldr r2, =gUnknown_085E9180 ldr r1, =gUnknown_0203CE58 ldrb r1, [r1, 0x4] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_085E91C0 adds r0, r4, 0 bl StringExpandPlaceholders _081AB6FC: movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl bag_menu_print add sp, 0x14 pop {r4} pop {r0} bx r0 .pool thumb_func_end bag_menu_print_description_box_text thumb_func_start bag_menu_print_cursor_ bag_menu_print_cursor_: @ 81AB73C push {r4,lr} adds r4, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r4, 24 lsrs r4, 24 bl ListMenuGetYCoordForPrintingArrowCursor lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl bag_menu_print_cursor pop {r4} pop {r0} bx r0 thumb_func_end bag_menu_print_cursor_ thumb_func_start bag_menu_print_cursor bag_menu_print_cursor: @ 81AB75C push {r4,r5,lr} sub sp, 0x14 lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 cmp r1, 0xFF bne _081AB798 movs r0, 0x1 movs r1, 0 bl GetMenuCursorDimensionByFont adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 movs r1, 0x1 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 str r4, [sp] str r0, [sp, 0x4] movs r0, 0 movs r1, 0 movs r2, 0 adds r3, r5, 0 bl FillWindowPixelRect b _081AB7AE _081AB798: ldr r2, =gUnknown_085E8D60 str r5, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r1, [sp, 0x10] movs r1, 0x1 movs r3, 0 bl bag_menu_print _081AB7AE: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end bag_menu_print_cursor thumb_func_start bag_menu_add_pocket_scroll_arrow_indicators_maybe bag_menu_add_pocket_scroll_arrow_indicators_maybe: @ 81AB7BC push {r4-r6,lr} sub sp, 0x10 ldr r5, =gUnknown_0203CE54 ldr r4, [r5] ldr r1, =0x0000081e adds r0, r4, r1 ldrb r0, [r0] cmp r0, 0xFF bne _081AB80A ldr r2, =gUnknown_0203CE58 ldrb r3, [r2, 0x5] ldr r6, =0x00000829 adds r0, r4, r6 adds r0, r3 ldrb r1, [r0] adds r6, 0x5 adds r0, r4, r6 adds r0, r3 ldrb r0, [r0] subs r1, r0 str r1, [sp] movs r0, 0x6E str r0, [sp, 0x4] str r0, [sp, 0x8] ldrb r0, [r2, 0x5] lsls r0, 1 adds r2, 0x12 adds r0, r2 str r0, [sp, 0xC] movs r0, 0x2 movs r1, 0xAC movs r2, 0xC movs r3, 0x94 bl AddScrollIndicatorArrowPairParametrized ldr r1, [r5] ldr r2, =0x0000081e adds r1, r2 strb r0, [r1] _081AB80A: add sp, 0x10 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bag_menu_add_pocket_scroll_arrow_indicators_maybe thumb_func_start sub_81AB824 sub_81AB824: @ 81AB824 push {r4,lr} ldr r4, =gUnknown_0203CE54 ldr r0, [r4] ldr r2, =0x0000081e adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xFF beq _081AB842 bl RemoveScrollIndicatorArrowPair ldr r0, [r4] ldr r1, =0x0000081e adds r0, r1 movs r1, 0xFF strb r1, [r0] _081AB842: bl sub_81AB89C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AB824 thumb_func_start bag_menu_add_list_scroll_arrow_indicators_maybe bag_menu_add_list_scroll_arrow_indicators_maybe: @ 81AB854 push {r4,lr} ldr r4, =gUnknown_0203CE54 ldr r2, [r4] ldr r1, =0x0000081b adds r0, r2, r1 ldrb r1, [r0] movs r0, 0xF ands r0, r1 cmp r0, 0x1 beq _081AB882 ldr r1, =0x0000081f adds r0, r2, r1 ldrb r0, [r0] cmp r0, 0xFF bne _081AB882 ldr r0, =gUnknown_08614094 ldr r1, =gUnknown_0203CE5E bl AddScrollIndicatorArrowPair ldr r1, [r4] ldr r2, =0x0000081f adds r1, r2 strb r0, [r1] _081AB882: pop {r4} pop {r0} bx r0 .pool thumb_func_end bag_menu_add_list_scroll_arrow_indicators_maybe thumb_func_start sub_81AB89C sub_81AB89C: @ 81AB89C push {r4,lr} ldr r4, =gUnknown_0203CE54 ldr r0, [r4] ldr r2, =0x0000081f adds r1, r0, r2 ldrb r0, [r1] cmp r0, 0xFF beq _081AB8BA bl RemoveScrollIndicatorArrowPair ldr r0, [r4] ldr r1, =0x0000081f adds r0, r1 movs r1, 0xFF strb r1, [r0] _081AB8BA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AB89C thumb_func_start free_bag_item_list_buffers free_bag_item_list_buffers: @ 81AB8C8 push {lr} ldr r0, =gUnknown_0203CE78 ldr r0, [r0] bl Free ldr r0, =gUnknown_0203CE74 ldr r0, [r0] bl Free bl FreeAllWindowBuffers ldr r0, =gUnknown_0203CE54 ldr r0, [r0] bl Free pop {r0} bx r0 .pool thumb_func_end free_bag_item_list_buffers thumb_func_start unknown_ItemMenu_Confirm unknown_ItemMenu_Confirm: @ 81AB8F8 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =task_close_bag_menu_2 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end unknown_ItemMenu_Confirm thumb_func_start task_close_bag_menu_2 task_close_bag_menu_2: @ 81AB930 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r2, r0, r1 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081AB9A0 ldrb r0, [r2] ldr r4, =gUnknown_0203CE58 ldrb r2, [r4, 0x5] lsls r2, 1 adds r1, r4, 0 adds r1, 0x12 adds r1, r2, r1 adds r3, r4, 0 adds r3, 0x8 adds r2, r3 bl sub_81AE6C8 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r0, [r0] cmp r0, 0 beq _081AB984 bl SetMainCallback2 b _081AB98A .pool _081AB984: ldr r0, [r4] bl SetMainCallback2 _081AB98A: bl sub_81AB824 bl ResetSpriteData bl FreeAllSpritePalettes bl free_bag_item_list_buffers adds r0, r5, 0 bl DestroyTask _081AB9A0: pop {r4,r5} pop {r0} bx r0 thumb_func_end task_close_bag_menu_2 thumb_func_start sub_81AB9A8 sub_81AB9A8: @ 81AB9A8 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 3 ldr r0, =gBagPockets adds r4, r1, r0 cmp r5, 0x3 bgt _081AB9C8 cmp r5, 0x2 blt _081AB9C8 adds r0, r4, 0 bl sub_80D6FB4 b _081AB9CE .pool _081AB9C8: adds r0, r4, 0 bl sub_80D6F64 _081AB9CE: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] ldr r6, =0x00000829 adds r1, r6 adds r1, r5 movs r2, 0 strb r2, [r1] adds r3, r0, 0 ldrb r0, [r4, 0x4] cmp r2, r0 bcs _081ABA12 ldr r0, [r4] ldrh r0, [r0] cmp r0, 0 beq _081ABA12 adds r7, r3, 0 _081AB9EE: ldr r0, [r7] adds r0, r6 adds r0, r5 ldrb r1, [r0] adds r1, 0x1 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 ldrb r1, [r4, 0x4] cmp r2, r1 bcs _081ABA12 ldr r0, [r4] lsls r1, r2, 2 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _081AB9EE _081ABA12: ldr r2, [r3] ldr r1, =0x0000081b adds r0, r2, r1 ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081ABA2E ldr r0, =0x00000829 adds r1, r2, r0 adds r1, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081ABA2E: ldr r1, [r3] ldr r2, =0x00000829 adds r0, r1, r2 adds r0, r5 ldrb r2, [r0] cmp r2, 0x8 bls _081ABA58 ldr r3, =0x0000082e adds r0, r1, r3 adds r0, r5 movs r1, 0x8 strb r1, [r0] b _081ABA60 .pool _081ABA58: ldr r3, =0x0000082e adds r0, r1, r3 adds r0, r5 strb r2, [r0] _081ABA60: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AB9A8 thumb_func_start sub_81ABA6C sub_81ABA6C: @ 81ABA6C push {r4,lr} movs r4, 0 _081ABA70: adds r0, r4, 0 bl sub_81AB9A8 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _081ABA70 pop {r4} pop {r0} bx r0 thumb_func_end sub_81ABA6C thumb_func_start sub_81ABA88 sub_81ABA88: @ 81ABA88 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 1 ldr r2, =gUnknown_0203CE6A adds r4, r1, r2 subs r2, 0xA adds r1, r2 ldr r2, =gUnknown_0203CE54 ldr r3, [r2] ldr r5, =0x0000082e adds r2, r3, r5 adds r2, r0 ldrb r2, [r2] subs r5, 0x5 adds r3, r5 adds r3, r0 ldrb r3, [r3] adds r0, r4, 0 bl sub_812225C pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81ABA88 thumb_func_start sub_81ABAC4 sub_81ABAC4: @ 81ABAC4 push {r4,lr} movs r4, 0 _081ABAC8: adds r0, r4, 0 bl sub_81ABA88 adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x4 bls _081ABAC8 pop {r4} pop {r0} bx r0 thumb_func_end sub_81ABAC4 thumb_func_start sub_81ABAE0 sub_81ABAE0: @ 81ABAE0 push {r4-r7,lr} sub sp, 0x4 movs r5, 0 ldr r6, =gUnknown_0203CE6A adds r7, r6, 0 subs r7, 0xA _081ABAEC: lsls r1, r5, 1 adds r0, r1, r6 adds r1, r7 ldr r2, =gUnknown_0203CE54 ldr r3, [r2] ldr r4, =0x0000082e adds r2, r3, r4 adds r2, r5 ldrb r2, [r2] subs r4, 0x5 adds r3, r4 adds r3, r5 ldrb r3, [r3] movs r4, 0x8 str r4, [sp] bl sub_8122298 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x4 bls _081ABAEC add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81ABAE0 thumb_func_start sub_81ABB2C sub_81ABB2C: @ 81ABB2C lsls r0, 24 ldr r1, =gUnknown_0203CE58 lsrs r0, 23 adds r2, r1, 0 adds r2, 0x12 adds r2, r0, r2 adds r1, 0x8 adds r0, r1 ldrb r0, [r0] ldrb r2, [r2] adds r0, r2 lsls r0, 24 lsrs r0, 24 bx lr .pool thumb_func_end sub_81ABB2C thumb_func_start DisplayItemMessage @ void DisplayItemMessage(u8 taskId, u8 fontId, u8 *str, void ( *callback)(u8 taskId)) DisplayItemMessage: @ 81ABB4C push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x10 adds r5, r0, 0 adds r6, r1, 0 mov r8, r2 mov r9, r3 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 movs r0, 0x4 bl AddItemMessageWindow lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x14] movs r1, 0x11 bl FillWindowPixelBuffer bl sav2_get_text_speed lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x14] str r6, [sp] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] adds r0, r5, 0 movs r2, 0xA movs r3, 0xD bl DisplayMessageAndContinueTask movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0x10 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end DisplayItemMessage thumb_func_start bag_menu_inits_lists_menu bag_menu_inits_lists_menu: @ 81ABBBC push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 lsls r5, r6, 2 adds r5, r6 lsls r5, 3 ldr r0, =gTasks + 0x8 adds r5, r0 ldr r7, =gUnknown_0203CE58 ldrb r4, [r7, 0x5] lsls r4, 1 movs r0, 0x12 adds r0, r7 mov r8, r0 add r8, r4 adds r0, r7, 0 adds r0, 0x8 adds r4, r0 movs r0, 0x4 bl bag_menu_RemoveBagItem_message_window ldrb r0, [r5] mov r1, r8 adds r2, r4, 0 bl sub_81AE6C8 ldrb r0, [r7, 0x5] bl sub_81AB9A8 ldrb r0, [r7, 0x5] bl sub_81ABA88 ldrb r0, [r7, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 mov r2, r8 ldrh r1, [r2] ldrh r2, [r4] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r6, 0 bl set_callback3_to_bag pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bag_menu_inits_lists_menu thumb_func_start sub_81ABC3C sub_81ABC3C: @ 81ABC3C push {lr} lsls r0, 24 lsrs r0, 24 bl bag_menu_add_window lsls r0, 24 lsrs r0, 24 movs r1, 0x1 bl sub_81ABC54 pop {r0} bx r0 thumb_func_end sub_81ABC3C thumb_func_start sub_81ABC54 sub_81ABC54: @ 81ABC54 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r1, 16 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] movs r3, 0x2 cmp r0, 0x3 bne _081ABC6C movs r3, 0x3 _081ABC6C: ldr r0, =gStringVar1 lsls r1, 16 asrs r1, 16 movs r2, 0x2 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8DA0 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 adds r1, r4, 0 movs r2, 0x28 bl GetStringCenterAlignXOffset adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0x2 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl PrintTextOnWindow add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81ABC54 thumb_func_start sub_81ABCC0 sub_81ABCC0: @ 81ABCC0 push {r4-r7,lr} sub sp, 0xC adds r4, r0, 0 adds r7, r2, 0 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] movs r3, 0x2 cmp r0, 0x3 bne _081ABCD4 movs r3, 0x3 _081ABCD4: ldr r0, =gStringVar1 movs r2, 0x2 bl ConvertIntToDecimalStringN ldr r6, =gStringVar4 ldr r1, =gUnknown_085E8DA0 adds r0, r6, 0 bl StringExpandPlaceholders lsls r4, 24 lsrs r4, 24 movs r0, 0x1 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r5, 0 str r5, [sp, 0x8] adds r0, r4, 0 movs r1, 0x1 adds r2, r6, 0 movs r3, 0 bl PrintTextOnWindow str r5, [sp] adds r0, r4, 0 movs r1, 0x26 movs r2, 0x1 adds r3, r7, 0 bl PrintMoneyAmount add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81ABCC0 thumb_func_start Task_BagMenu Task_BagMenu: @ 81ABD28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r0, 2 add r0, r9 lsls r0, 3 str r0, [sp] ldr r1, =gTasks + 0x8 adds r6, r0, r1 ldr r5, =gUnknown_0203CE58 ldrb r0, [r5, 0x5] lsls r0, 1 adds r1, r5, 0 adds r1, 0x12 adds r7, r0, r1 subs r1, 0xA adds r0, r1 mov r8, r0 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081ABD66 b _081ABEB2 _081ABD66: ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081ABD74 b _081ABEB2 _081ABD74: bl GetSwitchBagPocketDirection lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081ABDB8 cmp r0, 0x2 beq _081ABDC0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 lsls r0, 16 lsrs r0, 16 mov r10, r0 cmp r0, 0 beq _081ABE10 bl sub_81AC2C0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081ABDA4 b _081ABEB2 _081ABDA4: b _081ABDCC .pool _081ABDB8: movs r1, 0x1 negs r1, r1 mov r0, r9 b _081ABDC4 _081ABDC0: mov r0, r9 movs r1, 0x1 _081ABDC4: movs r2, 0 bl SwitchBagPocket b _081ABEB2 _081ABDCC: ldrb r0, [r6] adds r1, r7, 0 mov r2, r8 bl get_coro_args_x18_x1A ldrh r2, [r7] mov r3, r8 ldrh r0, [r3] adds r2, r0 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =gUnknown_0203CE58 ldr r3, =0x00000829 adds r0, r3 ldrb r1, [r1, 0x5] adds r0, r1 ldrb r0, [r0] subs r0, 0x1 cmp r2, r0 beq _081ABEB2 movs r0, 0x5 bl PlaySE mov r0, r9 bl bag_menu_swap_items b _081ABEB2 .pool _081ABE10: ldrb r0, [r6] bl ListMenuHandleInput adds r4, r0, 0 ldrb r0, [r6] adds r1, r7, 0 mov r2, r8 bl get_coro_args_x18_x1A movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _081ABE32 adds r0, 0x1 cmp r4, r0 bne _081ABE68 b _081ABEB2 _081ABE32: ldrb r0, [r5, 0x4] cmp r0, 0x5 bne _081ABE40 movs r0, 0x20 bl PlaySE b _081ABEB2 _081ABE40: movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CE7C mov r1, r10 strh r1, [r0] ldr r0, =gTasks + 0x8 subs r0, 0x8 ldr r3, [sp] adds r0, r3, r0 ldr r1, =unknown_ItemMenu_Confirm str r1, [r0] b _081ABEB2 .pool _081ABE68: movs r0, 0x5 bl PlaySE bl sub_81AB824 ldrb r0, [r6] movs r1, 0x2 bl bag_menu_print_cursor_ strh r4, [r6, 0x2] ldrb r0, [r5, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 lsls r4, 16 lsrs r4, 16 adds r1, r4, 0 bl BagGetQuantityByPocketPosition strh r0, [r6, 0x4] ldrb r0, [r5, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl BagGetItemIdByPocketPosition ldr r1, =gUnknown_0203CE7C strh r0, [r1] ldr r1, =gUnknown_08614054 ldrb r0, [r5, 0x4] lsls r0, 2 adds r0, r1 ldr r1, [r0] mov r0, r9 bl _call_via_r1 _081ABEB2: 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 Task_BagMenu thumb_func_start set_callback3_to_bag set_callback3_to_bag: @ 81ABECC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl bag_menu_add_pocket_scroll_arrow_indicators_maybe bl bag_menu_add_list_scroll_arrow_indicators_maybe movs r0, 0x3 bl ClearWindowTilemap movs r0, 0x4 bl ClearWindowTilemap movs r0, 0x1 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =Task_BagMenu str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end set_callback3_to_bag thumb_func_start GetSwitchBagPocketDirection GetSwitchBagPocketDirection: @ 81ABF10 push {lr} ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x0000081b adds r0, r1 ldrb r1, [r0] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081ABF6A bl GetLRKeysState lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _081ABF3C cmp r2, 0x1 bne _081ABF54 _081ABF3C: movs r0, 0x5 bl PlaySE movs r0, 0x1 b _081ABF6C .pool _081ABF54: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081ABF60 cmp r2, 0x2 bne _081ABF6A _081ABF60: movs r0, 0x5 bl PlaySE movs r0, 0x2 b _081ABF6C _081ABF6A: movs r0, 0 _081ABF6C: pop {r1} bx r1 thumb_func_end GetSwitchBagPocketDirection thumb_func_start ChangeBagPocketId @ void ChangeBagPocketId(u8 *bagPocketId, u8 deltaBagPocketId) ChangeBagPocketId: @ 81ABF70 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 asrs r1, 24 cmp r1, 0x1 bne _081ABF88 ldrb r0, [r2] cmp r0, 0x4 bne _081ABF88 movs r0, 0 b _081ABFA0 _081ABF88: lsls r0, r4, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 ldrb r3, [r2] cmp r0, r1 bne _081ABF9E cmp r3, 0 bne _081ABF9E movs r0, 0x4 b _081ABFA0 _081ABF9E: adds r0, r3, r4 _081ABFA0: strb r0, [r2] pop {r4} pop {r0} bx r0 thumb_func_end ChangeBagPocketId thumb_func_start SwitchBagPocket @ void SwitchBagPocket(u8 taskId, u16 deltaBagPocketId, u16 a3) SwitchBagPocket: @ 81ABFA8 push {r4-r6,lr} sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 movs r0, 0 strh r0, [r4, 0x1A] strh r0, [r4, 0x18] strh r5, [r4, 0x16] cmp r2, 0 bne _081AC026 movs r0, 0 bl ClearWindowTilemap movs r0, 0x1 bl ClearWindowTilemap ldrb r0, [r4] ldr r3, =gUnknown_0203CE58 ldrb r2, [r3, 0x5] lsls r2, 1 adds r1, r3, 0 adds r1, 0x12 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 bl sub_81AE6C8 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r3, =gSprites ldr r0, =gUnknown_0203CE54 ldr r2, [r0] ldr r1, =0x0000081b adds r0, r2, r1 ldrb r1, [r0] lsls r1, 26 lsrs r1, 30 movs r0, 0x1 eors r0, r1 adds r2, r0 ldr r0, =0x00000806 adds r2, r0 ldrb r1, [r2] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] bl sub_81AB824 _081AC026: ldr r4, =gUnknown_0203CE58 ldrb r1, [r4, 0x5] add r0, sp, 0x8 strb r1, [r0] lsls r1, r5, 24 asrs r1, 24 bl ChangeBagPocketId lsls r0, r5, 16 asrs r1, r0, 16 adds r5, r0, 0 cmp r1, 0x1 bne _081AC07C ldr r2, =gUnknown_085E91FC ldrb r0, [r4, 0x5] lsls r0, 2 adds r0, r2 ldr r0, [r0] add r1, sp, 0x8 ldrb r1, [r1] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl bag_menu_print_pocket_names movs r0, 0 bl bag_menu_copy_pocket_name_to_window b _081AC09A .pool _081AC07C: ldr r2, =gUnknown_085E91FC add r0, sp, 0x8 ldrb r0, [r0] lsls r0, 2 adds r0, r2 ldr r0, [r0] ldrb r1, [r4, 0x5] lsls r1, 2 adds r1, r2 ldr r1, [r1] bl bag_menu_print_pocket_names movs r0, 0x8 bl bag_menu_copy_pocket_name_to_window _081AC09A: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] movs r1, 0 bl bag_menu_draw_pocket_indicator_square add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x1 bl bag_menu_draw_pocket_indicator_square movs r0, 0xF str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] movs r0, 0x2 movs r1, 0xB movs r2, 0xE movs r3, 0x2 bl FillBgTilemapBufferRect_Palette0 movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x1 bl SetBagVisualPocketId movs r0, 0x1 bl RemoveBagObject asrs r0, r5, 16 bl AddSwitchPocketRotatingBallObject ldr r1, =sub_81AC10C ldr r2, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r2 ldr r2, [r0] adds r0, r6, 0 bl SetTaskFuncWithFollowupFunc add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end SwitchBagPocket thumb_func_start sub_81AC10C sub_81AC10C: @ 81AC10C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 bl sub_81221AC lsls r0, 24 cmp r0, 0 bne _081AC184 bl IsWallysBag lsls r0, 24 cmp r0, 0 bne _081AC184 bl GetSwitchBagPocketDirection lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AC148 cmp r0, 0x2 beq _081AC164 b _081AC184 .pool _081AC148: ldr r0, =gUnknown_0203CE5D movs r1, 0x16 ldrsb r1, [r6, r1] bl ChangeBagPocketId adds r0, r7, 0 bl SwitchTaskToFollowupFunc movs r1, 0x1 negs r1, r1 adds r0, r7, 0 b _081AC178 .pool _081AC164: ldr r0, =gUnknown_0203CE5D movs r1, 0x16 ldrsb r1, [r6, r1] bl ChangeBagPocketId adds r0, r7, 0 bl SwitchTaskToFollowupFunc adds r0, r7, 0 movs r1, 0x1 _081AC178: movs r2, 0x1 bl SwitchBagPocket b _081AC22E .pool _081AC184: movs r1, 0x1A ldrsh r0, [r6, r1] cmp r0, 0 beq _081AC192 cmp r0, 0x1 beq _081AC1DC b _081AC22E _081AC192: ldrb r0, [r6, 0x18] bl sub_81AC23C ldrh r0, [r6, 0x18] adds r1, r0, 0x1 strh r1, [r6, 0x18] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081AC1CC movs r2, 0x16 ldrsh r0, [r6, r2] cmp r0, 0x1 bne _081AC1BC lsls r0, r1, 16 asrs r0, 17 lsls r0, 24 lsrs r0, 24 bl bag_menu_copy_pocket_name_to_window b _081AC1CC _081AC1BC: lsls r1, 16 asrs r1, 17 movs r0, 0x8 subs r0, r1 lsls r0, 24 lsrs r0, 24 bl bag_menu_copy_pocket_name_to_window _081AC1CC: movs r1, 0x18 ldrsh r0, [r6, r1] cmp r0, 0x10 bne _081AC22E ldrh r0, [r6, 0x1A] adds r0, 0x1 strh r0, [r6, 0x1A] b _081AC22E _081AC1DC: ldr r4, =gUnknown_0203CE5D movs r1, 0x16 ldrsb r1, [r6, r1] adds r0, r4, 0 bl ChangeBagPocketId subs r5, r4, 0x5 ldrb r0, [r5, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 ldrb r2, [r5, 0x5] lsls r2, 1 adds r1, r4, 0 adds r1, 0xD adds r1, r2, r1 ldrh r1, [r1] adds r4, 0x3 adds r2, r4 ldrh r2, [r2] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r6] movs r0, 0x1 bl PutWindowTilemap movs r0, 0x2 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram bl bag_menu_add_pocket_scroll_arrow_indicators_maybe bl bag_menu_add_list_scroll_arrow_indicators_maybe adds r0, r7, 0 bl SwitchTaskToFollowupFunc _081AC22E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AC10C thumb_func_start sub_81AC23C sub_81AC23C: @ 81AC23C push {lr} sub sp, 0x8 adds r3, r0, 0 lsls r3, 24 movs r0, 0x80 lsls r0, 18 adds r3, r0 lsrs r3, 24 movs r0, 0xF str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r0, 0x2 movs r1, 0x11 movs r2, 0xE bl FillBgTilemapBufferRect_Palette0 movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r0} bx r0 thumb_func_end sub_81AC23C thumb_func_start bag_menu_draw_pocket_indicator_square @ void bag_menu_draw_pocket_indicator_square(char x, int is_current_bag) bag_menu_draw_pocket_indicator_square: @ 81AC26C push {lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, 24 cmp r1, 0 bne _081AC298 ldr r1, =0x00001017 adds r2, r0, 0x5 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x2 movs r3, 0x3 bl FillBgTilemapBufferRect_Palette0 b _081AC2AE .pool _081AC298: ldr r1, =0x0000102b adds r2, r0, 0x5 lsls r2, 24 lsrs r2, 24 movs r0, 0x1 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x2 movs r3, 0x3 bl FillBgTilemapBufferRect_Palette0 _081AC2AE: movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r0} bx r0 .pool thumb_func_end bag_menu_draw_pocket_indicator_square thumb_func_start sub_81AC2C0 sub_81AC2C0: @ 81AC2C0 push {lr} ldr r1, =gUnknown_0203CE58 ldrb r0, [r1, 0x4] cmp r0, 0x1 bhi _081AC2E0 ldrb r0, [r1, 0x5] subs r0, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bls _081AC2E0 movs r0, 0x1 b _081AC2E2 .pool _081AC2E0: movs r0, 0 _081AC2E2: pop {r1} bx r1 thumb_func_end sub_81AC2C0 thumb_func_start bag_menu_swap_items bag_menu_swap_items: @ 81AC2E8 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 mov r9, r0 adds r6, r4, r0 ldrb r0, [r6] movs r1, 0x10 movs r2, 0x1 bl sub_81AF15C ldr r3, =gUnknown_0203CE58 ldrb r0, [r3, 0x5] lsls r0, 1 adds r2, r3, 0 adds r2, 0x12 adds r2, r0, r2 adds r1, r3, 0 adds r1, 0x8 adds r0, r1 ldrh r1, [r0] ldrh r2, [r2] adds r1, r2 strh r1, [r6, 0x2] ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r2, =0x0000081a adds r0, r2 movs r5, 0 strb r1, [r0] ldrb r0, [r3, 0x5] adds r0, 0x1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] bl BagGetItemIdByPocketPosition lsls r0, 16 lsrs r0, 16 ldr r1, =gStringVar1 bl CopyItemName ldr r0, =gStringVar4 mov r8, r0 ldr r1, =gUnknown_085E8DFE bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] movs r1, 0x1 mov r2, r8 movs r3, 0x3 bl bag_menu_print ldrb r0, [r6, 0x2] bl sub_80D4FEC bl sub_81AB89C ldrb r0, [r6] movs r1, 0x2 bl bag_menu_print_cursor_ movs r2, 0x8 negs r2, r2 add r9, r2 add r4, r9 ldr r0, =sub_81AC3C0 str r0, [r4] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end bag_menu_swap_items thumb_func_start sub_81AC3C0 @ void sub_81AC3C0(u8 taskId) sub_81AC3C0: @ 81AC3C0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AC48E ldr r0, =gMain mov r8, r0 ldrh r1, [r0, 0x2E] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081AC418 movs r0, 0x5 bl PlaySE ldrb r0, [r4] ldr r3, =gUnknown_0203CE58 ldrb r2, [r3, 0x5] lsls r2, 1 adds r1, r3, 0 adds r1, 0x12 adds r1, r2, r1 adds r3, 0x8 adds r2, r3 bl get_coro_args_x18_x1A b _081AC472 .pool _081AC418: ldrb r0, [r4] bl ListMenuHandleInput adds r7, r0, 0 ldrb r0, [r4] ldr r5, =gUnknown_0203CE58 ldrb r2, [r5, 0x5] lsls r2, 1 adds r1, r5, 0 adds r1, 0x12 adds r1, r2, r1 adds r4, r5, 0 adds r4, 0x8 adds r2, r4 bl get_coro_args_x18_x1A movs r0, 0 bl sub_80D4FC8 ldrb r0, [r5, 0x5] lsls r0, 1 adds r0, r4 ldrb r0, [r0] bl sub_80D4FEC movs r0, 0x2 negs r0, r0 cmp r7, r0 beq _081AC460 adds r0, 0x1 cmp r7, r0 bne _081AC482 b _081AC48E .pool _081AC460: movs r0, 0x5 bl PlaySE mov r0, r8 ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081AC47A _081AC472: adds r0, r6, 0 bl sub_81AC498 b _081AC48E _081AC47A: adds r0, r6, 0 bl sub_81AC590 b _081AC48E _081AC482: movs r0, 0x5 bl PlaySE adds r0, r6, 0 bl sub_81AC498 _081AC48E: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81AC3C0 thumb_func_start sub_81AC498 sub_81AC498: @ 81AC498 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r3, r0, 24 lsls r0, r3, 2 adds r0, r3 lsls r0, 3 mov r10, r0 ldr r0, =gTasks + 0x8 add r0, r10 mov r9, r0 ldr r5, =gUnknown_0203CE58 ldrb r6, [r5, 0x5] lsls r1, r6, 1 adds r0, r5, 0 adds r0, 0x12 adds r0, r1 mov r8, r0 ldr r2, =gUnknown_0203CE60 adds r7, r1, r2 ldrh r0, [r7] mov r1, r8 ldrh r1, [r1] adds r0, r1 lsls r0, 16 lsrs r4, r0, 16 mov r0, r9 movs r1, 0x2 ldrsh r2, [r0, r1] cmp r2, r4 beq _081AC4E2 subs r0, r4, 0x1 cmp r2, r0 bne _081AC4F8 _081AC4E2: adds r0, r3, 0 bl sub_81AC590 b _081AC566 .pool _081AC4F8: ldr r1, =gBagPockets lsls r0, r6, 3 adds r0, r1 ldr r0, [r0] adds r1, r2, 0 adds r2, r4, 0 bl sub_80D702C ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r2, =0x0000081a adds r0, r2 movs r1, 0xFF strb r1, [r0] mov r1, r9 ldrb r0, [r1] mov r1, r8 adds r2, r7, 0 bl sub_81AE6C8 mov r2, r9 movs r1, 0x2 ldrsh r0, [r2, r1] cmp r0, r4 bge _081AC538 ldrb r1, [r5, 0x5] lsls r1, 1 ldr r2, =gUnknown_0203CE60 adds r1, r2 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _081AC538: ldrb r0, [r5, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 mov r2, r8 ldrh r1, [r2] ldrh r2, [r7] bl ListMenuInit lsls r0, 24 lsrs r0, 24 mov r1, r9 strh r0, [r1] movs r0, 0x1 bl sub_80D4FC8 bl bag_menu_add_list_scroll_arrow_indicators_maybe ldr r0, =gTasks + 0x8 subs r0, 0x8 add r0, r10 ldr r1, =Task_BagMenu str r1, [r0] _081AC566: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AC498 thumb_func_start sub_81AC590 sub_81AC590: @ 81AC590 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 mov r9, r1 ldr r0, =gTasks + 0x8 mov r10, r0 mov r7, r9 add r7, r10 ldr r4, =gUnknown_0203CE58 ldrb r0, [r4, 0x5] lsls r0, 1 adds r1, r4, 0 adds r1, 0x12 adds r6, r0, r1 movs r1, 0x8 adds r1, r4 mov r8, r1 adds r5, r0, r1 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x0000081a adds r0, r1 movs r1, 0xFF strb r1, [r0] ldrb r0, [r7] adds r1, r6, 0 adds r2, r5, 0 bl sub_81AE6C8 movs r0, 0x2 ldrsh r2, [r7, r0] ldrh r0, [r6] ldrh r1, [r5] adds r0, r1 cmp r2, r0 bge _081AC5F2 ldrb r1, [r4, 0x5] lsls r1, 1 add r1, r8 ldrh r0, [r1] subs r0, 0x1 strh r0, [r1] _081AC5F2: ldrb r0, [r4, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 ldrh r1, [r6] ldrh r2, [r5] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r0, 0x1 bl sub_80D4FC8 bl bag_menu_add_list_scroll_arrow_indicators_maybe mov r0, r10 subs r0, 0x8 add r0, r9 ldr r1, =Task_BagMenu str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AC590 thumb_func_start sub_81AC644 sub_81AC644: @ 81AC644 push {r4,r5,lr} sub sp, 0x14 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x4] subs r0, 0x1 cmp r0, 0x9 bls _081AC654 b _081AC82C _081AC654: lsls r0, 2 ldr r1, =_081AC668 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AC668: .4byte _081AC690 .4byte _081AC82C .4byte _081AC82C .4byte _081AC82C .4byte _081AC6E8 .4byte _081AC82C .4byte _081AC76C .4byte _081AC7CC .4byte _081AC70C .4byte _081AC690 _081AC690: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl ItemId_GetBattleUsage lsls r0, 24 cmp r0, 0 beq _081AC6C4 ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614042 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x2 b _081ACA10 .pool _081AC6C4: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614046 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x1 b _081ACA10 .pool _081AC6E8: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614047 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x4 b _081ACA10 .pool _081AC70C: ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _081AC748 ldrh r0, [r4] cmp r0, 0xAF beq _081AC748 ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_0861404B str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x2 b _081ACA10 .pool _081AC748: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614046 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x1 b _081ACA10 .pool _081AC76C: ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _081AC7A8 ldrh r0, [r4] cmp r0, 0xAF beq _081AC7A8 ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_0861404D str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x2 b _081ACA10 .pool _081AC7A8: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614046 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x1 b _081ACA10 .pool _081AC7CC: ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _081AC808 ldrh r0, [r4] cmp r0, 0xAF beq _081AC808 ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_0861404F str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x2 b _081ACA10 .pool _081AC808: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614046 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x1 b _081ACA10 .pool _081AC82C: bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AC840 bl InUnionRoom cmp r0, 0x1 bne _081AC8A4 _081AC840: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x4 beq _081AC856 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl sub_8122148 lsls r0, 24 cmp r0, 0 bne _081AC880 _081AC856: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614046 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x1 b _081ACA10 .pool _081AC880: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614044 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x2 b _081ACA10 .pool _081AC8A4: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x4 bls _081AC8AE b _081ACA12 _081AC8AE: lsls r0, 2 ldr r1, =_081AC8C0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AC8C0: .4byte _081AC8D4 .4byte _081AC9B4 .4byte _081AC9D8 .4byte _081AC9FC .4byte _081AC92C _081AC8D4: ldr r4, =gUnknown_0203CE54 ldr r1, [r4] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r3, =0x00000824 adds r0, r1, r3 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x4 strb r0, [r1] ldr r0, [r4] adds r0, r3 ldr r1, =gUnknown_0861402C movs r2, 0x4 bl memcpy ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081AC90A b _081ACA12 _081AC90A: ldr r0, [r4] ldr r1, =0x00000824 adds r0, r1 movs r1, 0x6 strb r1, [r0] b _081ACA12 .pool _081AC92C: ldr r4, =gUnknown_0203CE54 ldr r1, [r4] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r5, =0x00000824 adds r0, r1, r5 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x4 strb r0, [r1] ldr r0, [r4] adds r0, r5 ldr r1, =gUnknown_08614030 movs r2, 0x4 bl memcpy ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00000496 adds r0, r1 ldr r2, =gUnknown_0203CE7C ldrh r0, [r0] ldrh r1, [r2] cmp r0, r1 bne _081AC96C ldr r0, [r4] ldr r1, =0x00000825 adds r0, r1 movs r1, 0x8 strb r1, [r0] _081AC96C: ldrh r1, [r2] ldr r0, =0x00000103 cmp r1, r0 beq _081AC97A adds r0, 0xD cmp r1, r0 bne _081ACA12 _081AC97A: movs r0, 0x6 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _081ACA12 ldr r0, [r4] adds r0, r5 movs r1, 0x7 strb r1, [r0] b _081ACA12 .pool _081AC9B4: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614034 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x4 b _081ACA10 .pool _081AC9D8: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_08614038 str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x4 b _081ACA10 .pool _081AC9FC: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] movs r0, 0x82 lsls r0, 4 adds r2, r1, r0 ldr r0, =gUnknown_0861403C str r0, [r2] ldr r0, =0x00000828 adds r1, r0 movs r0, 0x6 _081ACA10: strb r0, [r1] _081ACA12: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x2 bne _081ACA50 movs r0, 0x1 bl ClearWindowTilemap ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl PrintTMHMMoveData movs r0, 0x3 bl PutWindowTilemap movs r0, 0x4 bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram b _081ACA86 .pool _081ACA50: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8DBE adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl bag_menu_print _081ACA86: ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000828 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _081ACAB0 movs r0, 0 b _081ACAB6 .pool _081ACAB0: cmp r0, 0x2 bne _081ACAC4 movs r0, 0x1 _081ACAB6: bl bag_menu_add_window lsls r0, 24 lsrs r0, 24 bl sub_81ACAF8 b _081ACAEE _081ACAC4: cmp r0, 0x4 bne _081ACADC movs r0, 0x2 bl bag_menu_add_window lsls r0, 24 lsrs r0, 24 movs r1, 0x2 movs r2, 0x2 bl sub_81ACB54 b _081ACAEE _081ACADC: movs r0, 0x3 bl bag_menu_add_window lsls r0, 24 lsrs r0, 24 movs r1, 0x2 movs r2, 0x3 bl sub_81ACB54 _081ACAEE: add sp, 0x14 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81AC644 thumb_func_start sub_81ACAF8 sub_81ACAF8: @ 81ACAF8 push {r4-r6,lr} sub sp, 0x14 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 str r0, [sp] movs r0, 0x10 str r0, [sp, 0x4] ldr r6, =gUnknown_0203CE54 ldr r1, [r6] ldr r5, =0x00000828 adds r0, r1, r5 ldrb r0, [r0] str r0, [sp, 0x8] ldr r0, =gUnknown_08613FB4 str r0, [sp, 0xC] movs r0, 0x82 lsls r0, 4 adds r1, r0 ldr r0, [r1] str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0x7 movs r2, 0x8 movs r3, 0x1 bl AddItemMenuActionTextPrinters ldr r0, [r6] adds r0, r5 ldrb r1, [r0] adds r0, r4, 0 movs r2, 0 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81ACAF8 thumb_func_start sub_81ACB54 sub_81ACB54: @ 81ACB54 push {r4-r6,lr} sub sp, 0x14 adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 movs r0, 0x38 str r0, [sp] str r5, [sp, 0x4] str r6, [sp, 0x8] ldr r0, =gUnknown_08613FB4 str r0, [sp, 0xC] ldr r0, =gUnknown_0203CE54 ldr r0, [r0] movs r1, 0x82 lsls r1, 4 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x10] adds r0, r4, 0 movs r1, 0x7 movs r2, 0x8 movs r3, 0x1 bl sub_8198DBC movs r0, 0 str r0, [sp] adds r0, r4, 0 movs r1, 0x38 adds r2, r5, 0 adds r3, r6, 0 bl sub_8199944 add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81ACB54 thumb_func_start unknown_item_menu_type unknown_item_menu_type: @ 81ACBB0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_81AC644 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000828 adds r0, r1 ldrb r0, [r0] cmp r0, 0x2 bhi _081ACBE8 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =Task_HandleInBattleItemMenuInput b _081ACBF4 .pool _081ACBE8: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =Task_HandleOutOfBattleItemMenuInput _081ACBF4: str r0, [r1] pop {r4} pop {r0} bx r0 .pool thumb_func_end unknown_item_menu_type thumb_func_start Task_HandleInBattleItemMenuInput Task_HandleInBattleItemMenuInput: @ 81ACC04 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081ACC6A bl ProcessMenuInputNoWrapAround lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 negs r0, r0 cmp r4, r0 beq _081ACC6A adds r0, 0x1 cmp r4, r0 bne _081ACC44 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_08613FB4 ldr r1, [r0, 0x24] adds r0, r5, 0 bl _call_via_r1 b _081ACC6A .pool _081ACC44: movs r0, 0x5 bl PlaySE ldr r1, =gUnknown_08613FB4 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] movs r2, 0x82 lsls r2, 4 adds r0, r2 ldr r0, [r0] adds r0, r4 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 _081ACC6A: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end Task_HandleInBattleItemMenuInput thumb_func_start Task_HandleOutOfBattleItemMenuInput Task_HandleOutOfBattleItemMenuInput: @ 81ACC78 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081ACC8C b _081ACDF0 _081ACC8C: bl GetMenuCursorPos lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gMain ldrh r1, [r5, 0x2E] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081ACCD4 lsls r0, r4, 24 asrs r0, 24 cmp r0, 0 bgt _081ACCAA b _081ACDF0 _081ACCAA: subs r0, 0x2 lsls r0, 24 asrs r0, 24 bl sub_81ACDFC lsls r0, 24 cmp r0, 0 bne _081ACCBC b _081ACDF0 _081ACCBC: movs r0, 0x5 bl PlaySE movs r1, 0x1 negs r1, r1 movs r0, 0 bl sub_8199134 b _081ACDF0 .pool _081ACCD4: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081ACD1C lsls r0, r4, 24 asrs r1, r0, 24 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r2, =0x00000828 adds r0, r2 ldrb r0, [r0] subs r0, 0x2 cmp r1, r0 blt _081ACCF2 b _081ACDF0 _081ACCF2: adds r0, r1, 0x2 lsls r0, 24 asrs r0, 24 bl sub_81ACDFC lsls r0, 24 cmp r0, 0 beq _081ACDF0 movs r0, 0x5 bl PlaySE movs r0, 0 movs r1, 0x1 bl sub_8199134 b _081ACDF0 .pool _081ACD1C: movs r0, 0x20 ands r0, r1 cmp r0, 0 bne _081ACD30 bl GetLRKeysState lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081ACD58 _081ACD30: lsls r0, r4, 24 asrs r1, r0, 24 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081ACDF0 subs r0, r1, 0x1 lsls r0, 24 asrs r0, 24 bl sub_81ACDFC lsls r0, 24 cmp r0, 0 beq _081ACDF0 movs r0, 0x5 bl PlaySE movs r0, 0x1 negs r0, r0 b _081ACD92 _081ACD58: ldrh r1, [r5, 0x2E] movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081ACD6E bl GetLRKeysState lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 bne _081ACD9A _081ACD6E: lsls r0, r4, 24 asrs r1, r0, 24 movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081ACDF0 adds r0, r1, 0x1 lsls r0, 24 asrs r0, 24 bl sub_81ACDFC lsls r0, 24 cmp r0, 0 beq _081ACDF0 movs r0, 0x5 bl PlaySE movs r0, 0x1 _081ACD92: movs r1, 0 bl sub_8199134 b _081ACDF0 _081ACD9A: ldrh r1, [r5, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081ACDD8 movs r0, 0x5 bl PlaySE ldr r2, =gUnknown_08613FB4 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] lsls r1, r4, 24 asrs r1, 24 movs r3, 0x82 lsls r3, 4 adds r0, r3 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] lsls r0, 3 adds r2, 0x4 adds r0, r2 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 b _081ACDF0 .pool _081ACDD8: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081ACDF0 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_08613FB4 ldr r1, [r0, 0x24] adds r0, r6, 0 bl _call_via_r1 _081ACDF0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end Task_HandleOutOfBattleItemMenuInput thumb_func_start sub_81ACDFC sub_81ACDFC: @ 81ACDFC push {lr} lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 blt _081ACE30 ldr r0, =gUnknown_0203CE54 ldr r2, [r0] ldr r3, =0x00000828 adds r0, r2, r3 ldrb r0, [r0] cmp r1, r0 bgt _081ACE30 movs r3, 0x82 lsls r3, 4 adds r0, r2, r3 ldr r0, [r0] adds r0, r1 ldrb r0, [r0] cmp r0, 0xE beq _081ACE30 movs r0, 0x1 b _081ACE32 .pool _081ACE30: movs r0, 0 _081ACE32: pop {r1} bx r1 thumb_func_end sub_81ACDFC thumb_func_start bag_menu_remove_some_window bag_menu_remove_some_window: @ 81ACE38 push {lr} ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000828 adds r0, r1 ldrb r0, [r0] cmp r0, 0x1 bne _081ACE58 movs r0, 0 bl bag_menu_remove_window b _081ACE76 .pool _081ACE58: cmp r0, 0x2 bne _081ACE64 movs r0, 0x1 bl bag_menu_remove_window b _081ACE76 _081ACE64: cmp r0, 0x4 bne _081ACE70 movs r0, 0x2 bl bag_menu_remove_window b _081ACE76 _081ACE70: movs r0, 0x3 bl bag_menu_remove_window _081ACE76: pop {r0} bx r0 thumb_func_end bag_menu_remove_some_window thumb_func_start ItemMenu_UseOutOfBattle @ void ItemMenu_UseOutOfBattle(u8 taskId) ItemMenu_UseOutOfBattle: @ 81ACE7C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_0203CE7C ldrh r0, [r5] bl ItemId_GetFieldFunc cmp r0, 0 beq _081ACEEE bl bag_menu_remove_some_window bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _081ACEB8 ldrh r0, [r5] bl ItemId_GetType lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081ACEB8 adds r0, r4, 0 bl bag_menu_print_there_is_no_pokemon b _081ACEEE .pool _081ACEB8: movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x3 beq _081ACEE8 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl ItemId_GetFieldFunc adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 b _081ACEEE .pool _081ACEE8: adds r0, r4, 0 bl sub_80FDD10 _081ACEEE: pop {r4,r5} pop {r0} bx r0 thumb_func_end ItemMenu_UseOutOfBattle thumb_func_start ItemMenu_Toss ItemMenu_Toss: @ 81ACEF4 push {r4-r7,lr} sub sp, 0x14 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r6, r0, 3 ldr r7, =gTasks + 0x8 adds r4, r6, r7 bl bag_menu_remove_some_window movs r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _081ACF24 adds r0, r5, 0 bl BagMenuConfirmToss b _081ACF6A .pool _081ACF24: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8EE0 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl bag_menu_print movs r0, 0x7 bl sub_81ABC3C adds r0, r7, 0 subs r0, 0x8 adds r0, r6, r0 ldr r1, =Task_ChooseHowManyToToss str r1, [r0] _081ACF6A: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ItemMenu_Toss thumb_func_start BagMenuConfirmToss BagMenuConfirmToss: @ 81ACF88 push {r4,r5,lr} sub sp, 0x14 adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x10 ldrsh r1, [r4, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8F0E adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl bag_menu_print ldr r2, =gUnknown_08614084 adds r0, r5, 0 movs r1, 0x5 bl bag_menu_yes_no add sp, 0x14 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end BagMenuConfirmToss thumb_func_start BagMenuCancelToss BagMenuCancelToss: @ 81AD010 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, =gTasks + 0x8 adds r4, r0 movs r1, 0x2 ldrsh r0, [r4, r1] bl bag_menu_print_description_box_text ldrb r0, [r4] movs r1, 0 bl bag_menu_print_cursor_ adds r0, r5, 0 bl set_callback3_to_bag pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end BagMenuCancelToss thumb_func_start Task_ChooseHowManyToToss Task_ChooseHowManyToToss: @ 81AD044 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, =gTasks + 0x8 adds r4, r0, r1 adds r0, r4, 0 adds r0, 0x10 ldrh r1, [r4, 0x4] bl AdjustQuantityAccordingToDPadInput lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081AD088 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000817 adds r0, r1 ldrb r0, [r0] movs r2, 0x10 ldrsh r1, [r4, r2] bl sub_81ABC54 b _081AD0C6 .pool _081AD088: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081AD0AC movs r0, 0x5 bl PlaySE movs r0, 0x7 bl bag_menu_remove_window adds r0, r5, 0 bl BagMenuConfirmToss b _081AD0C6 .pool _081AD0AC: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081AD0C6 movs r0, 0x5 bl PlaySE movs r0, 0x7 bl bag_menu_remove_window adds r0, r6, 0 bl BagMenuCancelToss _081AD0C6: pop {r4-r6} pop {r0} bx r0 thumb_func_end Task_ChooseHowManyToToss thumb_func_start BagMenuActuallyToss BagMenuActuallyToss: @ 81AD0CC push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r5, =gTasks + 0x8 adds r6, r4, r5 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =gStringVar2 movs r2, 0x10 ldrsh r1, [r6, r2] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r6, =gStringVar4 ldr r1, =gUnknown_085E8EF9 adds r0, r6, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r6, 0 movs r3, 0x3 bl bag_menu_print subs r5, 0x8 adds r4, r5 ldr r0, =Task_ActuallyToss str r0, [r4] add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end BagMenuActuallyToss thumb_func_start Task_ActuallyToss Task_ActuallyToss: @ 81AD150 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r4, =gUnknown_0203CE58 ldrb r0, [r4, 0x5] lsls r0, 1 adds r1, r4, 0 adds r1, 0x12 adds r1, r0 mov r8, r1 adds r1, r4, 0 adds r1, 0x8 adds r7, r0, r1 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081AD1CE movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldrh r1, [r5, 0x10] bl RemoveBagItem ldrb r0, [r5] mov r1, r8 adds r2, r7, 0 bl sub_81AE6C8 ldrb r0, [r4, 0x5] bl sub_81AB9A8 ldrb r0, [r4, 0x5] bl sub_81ABA88 ldrb r0, [r4, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 mov r2, r8 ldrh r1, [r2] ldrh r2, [r7] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r5] movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r6, 0 bl set_callback3_to_bag _081AD1CE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end Task_ActuallyToss thumb_func_start ItemMenu_Register ItemMenu_Register: @ 81AD1EC push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 ldr r0, =gUnknown_0203CE58 ldrb r1, [r0, 0x5] lsls r1, 1 adds r2, r0, 0 adds r2, 0x12 adds r6, r1, r2 adds r0, 0x8 adds r5, r1, r0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r2, =0x00000496 adds r1, r0, r2 ldr r0, =gUnknown_0203CE7C ldrh r2, [r0] ldrh r0, [r1] cmp r0, r2 bne _081AD238 movs r0, 0 strh r0, [r1] b _081AD23A .pool _081AD238: strh r2, [r1] _081AD23A: ldrb r0, [r7] adds r1, r6, 0 adds r2, r5, 0 bl sub_81AE6C8 ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 ldrh r1, [r6] ldrh r2, [r5] bl ListMenuInit lsls r0, 24 lsrs r0, 24 strh r0, [r7] movs r0, 0 bl schedule_bg_copy_tilemap_to_vram adds r0, r4, 0 bl ItemMenu_Cancel pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ItemMenu_Register thumb_func_start ItemMenu_Give ItemMenu_Give: @ 81AD278 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 bl bag_menu_remove_some_window ldr r5, =gUnknown_0203CE7C ldrh r0, [r5] bl itemid_80BF6D8_mail_related lsls r0, 24 cmp r0, 0 bne _081AD2AC ldr r2, =gUnknown_085E8DCE ldr r3, =sub_81AD350 adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _081AD2EA .pool _081AD2AC: ldrh r0, [r5] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _081AD2E4 bl CalculatePlayerPartyCount lsls r0, 24 cmp r0, 0 bne _081AD2CA adds r0, r4, 0 bl bag_menu_print_there_is_no_pokemon b _081AD2EA _081AD2CA: ldr r0, =gUnknown_0203CE54 ldr r1, [r0] ldr r0, =sub_81B7F60 str r0, [r1] adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _081AD2EA .pool _081AD2E4: adds r0, r6, 0 bl bag_menu_print_cant_be_held_msg _081AD2EA: pop {r4-r6} pop {r0} bx r0 thumb_func_end ItemMenu_Give thumb_func_start bag_menu_print_there_is_no_pokemon bag_menu_print_there_is_no_pokemon: @ 81AD2F0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_085E8DE9 ldr r3, =sub_81AD350 movs r1, 0x1 bl DisplayItemMessage pop {r0} bx r0 .pool thumb_func_end bag_menu_print_there_is_no_pokemon thumb_func_start bag_menu_print_cant_be_held_msg bag_menu_print_cant_be_held_msg: @ 81AD30C push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r5, =gStringVar4 ldr r1, =gUnknown_085E8E11 adds r0, r5, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD350 adds r0, r4, 0 movs r1, 0x1 adds r2, r5, 0 bl DisplayItemMessage pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end bag_menu_print_cant_be_held_msg thumb_func_start sub_81AD350 sub_81AD350: @ 81AD350 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081AD36E movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl bag_menu_inits_lists_menu _081AD36E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AD350 thumb_func_start ItemMenu_CheckTag ItemMenu_CheckTag: @ 81AD378 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 ldr r2, [r1] ldr r1, =sub_8177C14 str r1, [r2] bl unknown_ItemMenu_Confirm pop {r0} bx r0 .pool thumb_func_end ItemMenu_CheckTag thumb_func_start ItemMenu_Cancel ItemMenu_Cancel: @ 81AD398 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, =gTasks + 0x8 adds r4, r0 bl bag_menu_remove_some_window movs r1, 0x2 ldrsh r0, [r4, r1] bl bag_menu_print_description_box_text movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram ldrb r0, [r4] movs r1, 0 bl bag_menu_print_cursor_ adds r0, r5, 0 bl set_callback3_to_bag pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemMenu_Cancel thumb_func_start ItemMenu_UseInBattle ItemMenu_UseInBattle: @ 81AD3DC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl ItemId_GetBattleFunc cmp r0, 0 beq _081AD400 bl bag_menu_remove_some_window ldrh r0, [r4] bl ItemId_GetBattleFunc adds r1, r0, 0 adds r0, r5, 0 bl _call_via_r1 _081AD400: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemMenu_UseInBattle thumb_func_start bag_menu_mail_related bag_menu_mail_related: @ 81AD40C push {lr} movs r0, 0xC movs r1, 0x5 movs r2, 0 bl GoToBagMenu pop {r0} bx r0 thumb_func_end bag_menu_mail_related thumb_func_start item_menu_type_2 item_menu_type_2: @ 81AD41C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl itemid_80BF6D8_mail_related lsls r0, 24 cmp r0, 0 bne _081AD44C ldr r2, =gUnknown_085E8DCE ldr r3, =sub_81AD350 adds r0, r5, 0 movs r1, 0x1 bl DisplayItemMessage b _081AD4AE .pool _081AD44C: ldrh r0, [r4] bl sub_8122148 lsls r0, 24 cmp r0, 0 bne _081AD488 ldrh r0, [r4] ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8E27 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD350 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage b _081AD4AE .pool _081AD488: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x4 beq _081AD4A8 ldrh r0, [r4] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _081AD4A8 adds r0, r5, 0 bl unknown_ItemMenu_Confirm b _081AD4AE .pool _081AD4A8: adds r0, r5, 0 bl bag_menu_print_cant_be_held_msg _081AD4AE: pop {r4,r5} pop {r0} bx r0 thumb_func_end item_menu_type_2 thumb_func_start item_menu_type_b item_menu_type_b: @ 81AD4B4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_0203CE7C ldrh r0, [r5] bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081AD4E4 ldr r2, =gUnknown_085E8DCE ldr r3, =sub_81AD350 adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _081AD51A .pool _081AD4E4: ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x5] cmp r0, 0x4 beq _081AD514 ldrh r0, [r5] bl itemid_is_unique lsls r0, 24 cmp r0, 0 bne _081AD514 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =unknown_ItemMenu_Confirm str r0, [r1] b _081AD51A .pool _081AD514: adds r0, r4, 0 bl bag_menu_print_cant_be_held_msg _081AD51A: pop {r4,r5} pop {r0} bx r0 thumb_func_end item_menu_type_b thumb_func_start UseRegisteredKeyItemOnField @ bool8 UseRegisteredKeyItemOnField() UseRegisteredKeyItemOnField: @ 81AD520 push {r4-r7,lr} bl InUnionRoom cmp r0, 0x1 beq _081AD54C bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _081AD54C bl InBattlePike lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0 bne _081AD54C bl InMultiBattleRoom lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081AD550 _081AD54C: movs r0, 0 b _081AD5D2 _081AD550: bl HideMapNamePopUpWindow movs r0, 0 movs r1, 0 movs r2, 0 bl ChangeBgY_ScreenOff ldr r4, =gSaveBlock1Ptr ldr r0, [r4] ldr r5, =0x00000496 adds r1, r0, r5 ldrh r0, [r1] cmp r0, 0 beq _081AD5CA movs r1, 0x1 bl CheckBagHasItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bne _081AD5C4 bl ScriptContext2_Enable bl player_bitmagic bl sub_808B864 bl sub_808BCF4 ldr r2, =gUnknown_0203CE7C ldr r0, [r4] adds r0, r5 ldrh r1, [r0] strh r1, [r2] ldrh r0, [r0] bl ItemId_GetFieldFunc movs r1, 0x8 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r6, [r1, 0xE] b _081AD5D0 .pool _081AD5C4: ldr r0, [r4] adds r0, r5 strh r7, [r0] _081AD5CA: ldr r0, =gUnknown_082736B3 bl ScriptContext1_SetupScript _081AD5D0: movs r0, 0x1 _081AD5D2: pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end UseRegisteredKeyItemOnField thumb_func_start display_sell_item_ask_str @ void display_sell_item_ask_str(int a1) display_sell_item_ask_str: @ 81AD5DC push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 adds r7, r5, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r6, =gUnknown_0203CE7C ldrh r0, [r6] bl itemid_get_market_price lsls r0, 16 cmp r0, 0 bne _081AD634 ldrh r0, [r6] ldr r1, =gStringVar2 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E960F adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =bag_menu_inits_lists_menu adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage b _081AD66A .pool _081AD634: movs r0, 0x1 strh r0, [r4, 0x10] movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0x1 bne _081AD64C bl bag_menu_AddMoney_window adds r0, r5, 0 bl sub_81AD680 b _081AD66A _081AD64C: ldrh r0, [r6] ldr r1, =gStringVar2 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E962F adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD730 adds r0, r7, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage _081AD66A: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end display_sell_item_ask_str thumb_func_start sub_81AD680 sub_81AD680: @ 81AD680 push {r4-r6,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldr r6, =gStringVar1 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 movs r2, 0x10 ldrsh r1, [r4, r2] muls r1, r0 adds r0, r6, 0 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9654 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD6E4 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81AD680 thumb_func_start sub_81AD6E4 sub_81AD6E4: @ 81AD6E4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_0861408C movs r1, 0x6 bl bag_menu_yes_no pop {r0} bx r0 .pool thumb_func_end sub_81AD6E4 thumb_func_start sub_81AD6FC sub_81AD6FC: @ 81AD6FC 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, =gTasks + 0x8 adds r4, r0 bl bag_menu_remove_money_window movs r0, 0x4 bl bag_menu_RemoveBagItem_message_window ldrb r0, [r4] movs r1, 0 bl bag_menu_print_cursor_ adds r0, r5, 0 bl set_callback3_to_bag pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81AD6FC thumb_func_start sub_81AD730 sub_81AD730: @ 81AD730 push {r4-r6,lr} mov r6, r8 push {r6} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r6, =gTasks + 0x8 adds r0, r4, r6 mov r8, r0 movs r0, 0x8 bl bag_menu_add_window adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 mov r2, r8 movs r3, 0x10 ldrsh r1, [r2, r3] adds r2, r0, 0 muls r2, r1 adds r0, r5, 0 movs r1, 0x1 bl sub_81ABCC0 bl bag_menu_AddMoney_window subs r6, 0x8 adds r4, r6 ldr r0, =sub_81AD794 str r0, [r4] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81AD730 thumb_func_start sub_81AD794 sub_81AD794: @ 81AD794 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 adds r0, r6, 0 adds r0, 0x10 ldrh r1, [r6, 0x4] bl AdjustQuantityAccordingToDPadInput lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081AD7F4 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000818 adds r0, r1 ldrb r4, [r0] movs r2, 0x10 ldrsh r5, [r6, r2] ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 movs r2, 0x10 ldrsh r1, [r6, r2] adds r2, r0, 0 muls r2, r1 adds r0, r4, 0 adds r1, r5, 0 bl sub_81ABCC0 b _081AD844 .pool _081AD7F4: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081AD818 movs r0, 0x5 bl PlaySE movs r0, 0x8 bl bag_menu_remove_window adds r0, r4, 0 bl sub_81AD680 b _081AD844 .pool _081AD818: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081AD844 movs r0, 0x5 bl PlaySE ldrb r0, [r6] movs r1, 0 bl bag_menu_print_cursor_ bl bag_menu_remove_money_window movs r0, 0x8 bl bag_menu_remove_window movs r0, 0x4 bl bag_menu_RemoveBagItem_message_window adds r0, r5, 0 bl set_callback3_to_bag _081AD844: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81AD794 thumb_func_start sub_81AD84C sub_81AD84C: @ 81AD84C push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 lsls r4, r5, 2 adds r4, r5 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldr r6, =gUnknown_0203CE7C ldrh r0, [r6] ldr r1, =gStringVar2 bl CopyItemName ldr r0, =gStringVar1 mov r8, r0 ldrh r0, [r6] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 movs r2, 0x10 ldrsh r1, [r4, r2] muls r1, r0 mov r0, r8 movs r2, 0 movs r3, 0x6 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9677 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_81AD8C8 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81AD84C thumb_func_start sub_81AD8C8 sub_81AD8C8: @ 81AD8C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} lsls r0, 24 lsrs r0, 24 lsls r6, r0, 2 adds r6, r0 lsls r6, 3 ldr r0, =gTasks + 0x8 adds r0, r6 mov r10, r0 ldr r7, =gUnknown_0203CE58 ldrb r5, [r7, 0x5] lsls r5, 1 movs r1, 0x12 adds r1, r7 mov r9, r1 add r9, r5 adds r0, r7, 0 adds r0, 0x8 adds r5, r0 movs r0, 0x5F bl PlaySE ldr r2, =gUnknown_0203CE7C mov r8, r2 ldrh r0, [r2] mov r3, r10 ldrh r1, [r3, 0x10] bl RemoveBagItem ldr r0, =gSaveBlock1Ptr ldr r4, [r0] movs r1, 0x92 lsls r1, 3 adds r4, r1 mov r2, r8 ldrh r0, [r2] bl itemid_get_market_price lsls r0, 16 lsrs r0, 17 mov r3, r10 movs r2, 0x10 ldrsh r1, [r3, r2] muls r1, r0 adds r0, r4, 0 bl AddMoney mov r3, r10 ldrb r0, [r3] mov r1, r9 adds r2, r5, 0 bl sub_81AE6C8 ldrb r0, [r7, 0x5] bl sub_81AB9A8 ldrb r0, [r7, 0x5] bl sub_81ABA88 ldrb r0, [r7, 0x5] bl load_bag_item_list_buffers ldr r0, =gUnknown_03006310 mov r2, r9 ldrh r1, [r2] ldrh r2, [r5] bl ListMenuInit lsls r0, 24 lsrs r0, 24 mov r3, r10 strh r0, [r3] movs r1, 0x2 bl bag_menu_print_cursor_ ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000819 adds r0, r1 ldrb r4, [r0] ldr r2, =gSaveBlock1Ptr ldr r0, [r2] movs r3, 0x92 lsls r3, 3 adds r0, r3 bl GetMoney adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 bl PrintMoneyAmountInMoneyBox ldr r0, =gTasks + 0x8 subs r0, 0x8 adds r6, r0 ldr r0, =sub_81AD9C0 str r0, [r6] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AD8C8 thumb_func_start sub_81AD9C0 sub_81AD9C0: @ 81AD9C0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081AD9E2 movs r0, 0x5 bl PlaySE bl bag_menu_remove_money_window adds r0, r4, 0 bl bag_menu_inits_lists_menu _081AD9E2: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AD9C0 thumb_func_start display_deposit_item_ask_str display_deposit_item_ask_str: @ 81AD9EC push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r5, r0, 3 ldr r6, =gTasks + 0x8 adds r1, r5, r6 movs r0, 0x1 strh r0, [r1, 0x10] movs r3, 0x4 ldrsh r0, [r1, r3] cmp r0, 0x1 bne _081ADA18 adds r0, r2, 0 bl sub_81ADB14 b _081ADA5E .pool _081ADA18: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8E42 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl bag_menu_print movs r0, 0x7 bl sub_81ABC3C adds r0, r6, 0 subs r0, 0x8 adds r0, r5, r0 ldr r1, =sub_81ADA7C str r1, [r0] _081ADA5E: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end display_deposit_item_ask_str thumb_func_start sub_81ADA7C sub_81ADA7C: @ 81ADA7C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 adds r0, r5, 0 adds r0, 0x10 ldrh r1, [r5, 0x4] bl AdjustQuantityAccordingToDPadInput lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081ADAC0 ldr r0, =gUnknown_0203CE54 ldr r0, [r0] ldr r1, =0x00000817 adds r0, r1 ldrb r0, [r0] movs r2, 0x10 ldrsh r1, [r5, r2] bl sub_81ABC54 b _081ADB0E .pool _081ADAC0: ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081ADAE4 movs r0, 0x5 bl PlaySE movs r0, 0x7 bl bag_menu_remove_window adds r0, r4, 0 bl sub_81ADB14 b _081ADB0E .pool _081ADAE4: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081ADB0E movs r0, 0x5 bl PlaySE movs r1, 0x2 ldrsh r0, [r5, r1] bl bag_menu_print_description_box_text ldrb r0, [r5] movs r1, 0 bl bag_menu_print_cursor_ movs r0, 0x7 bl bag_menu_remove_window adds r0, r6, 0 bl set_callback3_to_bag _081ADB0E: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81ADA7C thumb_func_start sub_81ADB14 sub_81ADB14: @ 81ADB14 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r7, r1, 3 ldr r0, =gTasks + 0x8 mov r9, r0 adds r2, r7, 0 add r2, r9 mov r8, r2 movs r0, 0x1 movs r1, 0 bl FillWindowPixelBuffer ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl itemid_is_unique lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0 beq _081ADB6C ldr r2, =gUnknown_085E8E8E movs r0, 0x1 str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] str r0, [sp, 0xC] str r0, [sp, 0x10] movs r0, 0x1 b _081ADBE2 .pool _081ADB6C: ldrh r0, [r4] mov r3, r8 ldrh r1, [r3, 0x10] bl sub_80D6D70 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 bne _081ADBD4 ldrh r0, [r4] ldr r1, =gStringVar1 bl CopyItemName ldr r0, =gStringVar2 mov r2, r8 movs r3, 0x10 ldrsh r1, [r2, r3] movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E8E5A adds r0, r4, 0 bl StringExpandPlaceholders str r6, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] movs r0, 0x1 movs r1, 0x1 adds r2, r4, 0 movs r3, 0x3 bl bag_menu_print mov r0, r9 subs r0, 0x8 adds r0, r7, r0 ldr r1, =Task_ActuallyToss b _081ADBF2 .pool _081ADBD4: ldr r2, =gUnknown_085E8E6E movs r0, 0x1 str r0, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] str r5, [sp, 0xC] str r5, [sp, 0x10] _081ADBE2: movs r1, 0x1 movs r3, 0x3 bl bag_menu_print mov r0, r9 subs r0, 0x8 adds r0, r7, r0 ldr r1, =sub_81ADC0C _081ADBF2: str r1, [r0] add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81ADB14 thumb_func_start sub_81ADC0C sub_81ADC0C: @ 81ADC0C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081ADC44 movs r0, 0x5 bl PlaySE movs r1, 0x2 ldrsh r0, [r5, r1] bl bag_menu_print_description_box_text ldrb r0, [r5] movs r1, 0 bl bag_menu_print_cursor_ adds r0, r4, 0 bl set_callback3_to_bag _081ADC44: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81ADC0C thumb_func_start IsWallysBag @ bool8 IsWallysBag() IsWallysBag: @ 81ADC54 push {lr} ldr r0, =gUnknown_0203CE58 ldrb r0, [r0, 0x4] cmp r0, 0xA beq _081ADC68 movs r0, 0 b _081ADC6A .pool _081ADC68: movs r0, 0x1 _081ADC6A: pop {r1} bx r1 thumb_func_end IsWallysBag thumb_func_start PrepareBagForWallyTutorial @ void PrepareBagForWallyTutorial() PrepareBagForWallyTutorial: @ 81ADC70 push {r4-r6,lr} ldr r4, =gUnknown_0203CE80 movs r0, 0xD0 bl AllocZeroed str r0, [r4] ldr r5, =gSaveBlock1Ptr ldr r1, [r5] movs r2, 0xAC lsls r2, 3 adds r1, r2 movs r2, 0x78 bl memcpy ldr r0, [r4] ldr r1, [r5] movs r2, 0xCA lsls r2, 3 adds r1, r2 adds r0, 0x78 movs r2, 0x40 bl memcpy ldr r0, [r4] ldr r2, =gUnknown_0203CE58 ldrb r1, [r2, 0x5] adds r0, 0xCE strh r1, [r0] movs r6, 0 adds r5, r2, 0 adds r5, 0x8 _081ADCAE: ldr r2, [r4] lsls r3, r6, 1 adds r0, r2, 0 adds r0, 0xB8 adds r0, r3 ldrh r1, [r5] strh r1, [r0] adds r2, 0xC2 adds r2, r3 ldrh r0, [r5, 0xA] strh r0, [r2] adds r5, 0x2 adds r6, 0x1 cmp r6, 0x4 bls _081ADCAE ldr r4, =gSaveBlock1Ptr ldr r0, [r4] movs r1, 0xAC lsls r1, 3 adds r0, r1 movs r1, 0x1E bl ClearItemSlots ldr r0, [r4] movs r2, 0xCA lsls r2, 3 adds r0, r2 movs r1, 0x10 bl ClearItemSlots bl ResetBagScrollPositions pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end PrepareBagForWallyTutorial thumb_func_start RestoreBagAfterWallyTutorial @ void RestoreBagAfterWallyTutorial() RestoreBagAfterWallyTutorial: @ 81ADD00 push {r4-r6,lr} ldr r5, =gSaveBlock1Ptr ldr r0, [r5] movs r1, 0xAC lsls r1, 3 adds r0, r1 ldr r4, =gUnknown_0203CE80 ldr r1, [r4] movs r2, 0x78 bl memcpy ldr r0, [r5] movs r1, 0xCA lsls r1, 3 adds r0, r1 ldr r1, [r4] adds r1, 0x78 movs r2, 0x40 bl memcpy ldr r1, =gUnknown_0203CE58 ldr r0, [r4] adds r0, 0xCE ldrh r0, [r0] strb r0, [r1, 0x5] movs r5, 0 adds r6, r4, 0 adds r3, r1, 0 adds r3, 0x8 _081ADD3A: lsls r2, r5, 1 ldr r1, [r4] adds r0, r1, 0 adds r0, 0xB8 adds r0, r2 ldrh r0, [r0] strh r0, [r3] adds r1, 0xC2 adds r1, r2 ldrh r0, [r1] strh r0, [r3, 0xA] adds r3, 0x2 adds r5, 0x1 cmp r5, 0x4 bls _081ADD3A ldr r0, [r6] bl Free pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end RestoreBagAfterWallyTutorial thumb_func_start DoWallyTutorialBagMenu @ void DoWallyTutorialBagMenu() DoWallyTutorialBagMenu: @ 81ADD70 push {lr} bl PrepareBagForWallyTutorial movs r0, 0xD movs r1, 0x1 bl AddBagItem movs r0, 0x4 movs r1, 0x1 bl AddBagItem ldr r2, =sub_8059D50 movs r0, 0xA movs r1, 0 bl GoToBagMenu pop {r0} bx r0 .pool thumb_func_end DoWallyTutorialBagMenu thumb_func_start Task_WallyTutorialBagMenu @ void Task_WallyTutorialBagMenu(u8 taskId) Task_WallyTutorialBagMenu: @ 81ADD98 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081ADE32 movs r0, 0x10 ldrsh r1, [r4, r0] cmp r1, 0xCC beq _081ADDEC cmp r1, 0xCC bgt _081ADDD0 cmp r1, 0x66 beq _081ADDDA b _081ADE2C .pool _081ADDD0: movs r0, 0x99 lsls r0, 1 cmp r1, r0 beq _081ADE0C b _081ADE2C _081ADDDA: movs r0, 0x5 bl PlaySE adds r0, r5, 0 movs r1, 0x1 movs r2, 0 bl SwitchBagPocket b _081ADE2C _081ADDEC: movs r0, 0x5 bl PlaySE ldrb r0, [r4] movs r1, 0x2 bl bag_menu_print_cursor_ ldr r1, =gUnknown_0203CE7C movs r0, 0x4 strh r0, [r1] adds r0, r5, 0 bl sub_81AC644 b _081ADE2C .pool _081ADE0C: movs r0, 0x5 bl PlaySE bl bag_menu_remove_some_window ldrb r0, [r4] movs r1, 0 movs r2, 0 bl sub_81AE6C8 bl RestoreBagAfterWallyTutorial adds r0, r5, 0 bl unknown_ItemMenu_Confirm b _081ADE32 _081ADE2C: ldrh r0, [r4, 0x10] adds r0, 0x1 strh r0, [r4, 0x10] _081ADE32: pop {r4,r5} pop {r0} bx r0 thumb_func_end Task_WallyTutorialBagMenu thumb_func_start unknown_ItemMenu_Show unknown_ItemMenu_Show: @ 81ADE38 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, =gSpecialVar_0x8005 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] strh r0, [r1] ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] bl bag_menu_remove_some_window adds r0, r4, 0 bl unknown_ItemMenu_Confirm pop {r4} pop {r0} bx r0 .pool thumb_func_end unknown_ItemMenu_Show thumb_func_start bag_menu_leave_maybe_3 bag_menu_leave_maybe_3: @ 81ADE6C push {lr} ldr r0, =gUnknown_03005DAC ldr r1, =sub_819FA50 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end bag_menu_leave_maybe_3 thumb_func_start unknown_ItemMenu_Give2 unknown_ItemMenu_Give2: @ 81ADE8C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] bl bag_menu_remove_some_window adds r0, r4, 0 bl unknown_ItemMenu_Confirm pop {r4} pop {r0} bx r0 .pool thumb_func_end unknown_ItemMenu_Give2 thumb_func_start bag_menu_leave_maybe_2 bag_menu_leave_maybe_2: @ 81ADEBC push {lr} ldr r0, =gUnknown_03005DAC ldr r1, =sub_818DEF4 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end bag_menu_leave_maybe_2 thumb_func_start unknown_ItemMenu_Confirm2 unknown_ItemMenu_Confirm2: @ 81ADEDC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] bl bag_menu_remove_some_window adds r0, r4, 0 bl unknown_ItemMenu_Confirm pop {r4} pop {r0} bx r0 .pool thumb_func_end unknown_ItemMenu_Confirm2 thumb_func_start bag_menu_leave_maybe bag_menu_leave_maybe: @ 81ADF00 push {lr} ldr r0, =gUnknown_03005DAC ldr r1, =sub_818E564 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end bag_menu_leave_maybe thumb_func_start bag_menu_print_pocket_names bag_menu_print_pocket_names: @ 81ADF20 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C adds r4, r0, 0 mov r8, r1 movs r0, 0 movs r1, 0 str r0, [sp, 0x14] str r1, [sp, 0x18] ldr r1, =0x00ffffff ldr r0, [sp, 0x14] ands r0, r1 movs r1, 0x80 lsls r1, 21 orrs r0, r1 str r0, [sp, 0x14] ldr r1, =0xffffff00 ldr r0, [sp, 0x18] ands r0, r1 movs r1, 0x2 orrs r0, r1 str r0, [sp, 0x18] add r0, sp, 0x14 bl AddWindow lsls r0, 24 lsrs r6, r0, 24 adds r0, r6, 0 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x1 adds r1, r4, 0 movs r2, 0x40 bl GetStringCenterAlignXOffset lsls r3, r0, 24 lsrs r3, 24 movs r7, 0x1 str r7, [sp] movs r5, 0 str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0xFF mov r9, r0 str r0, [sp, 0xC] str r7, [sp, 0x10] adds r0, r6, 0 movs r1, 0x1 adds r2, r4, 0 bl bag_menu_print mov r2, r8 cmp r2, 0 beq _081ADFBA movs r0, 0x1 mov r1, r8 movs r2, 0x40 bl GetStringCenterAlignXOffset adds r3, r0, 0 adds r3, 0x40 lsls r3, 24 lsrs r3, 24 str r7, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] str r7, [sp, 0x10] adds r0, r6, 0 movs r1, 0x1 mov r2, r8 bl bag_menu_print _081ADFBA: adds r0, r6, 0 movs r1, 0x7 bl GetWindowAttribute ldr r1, =gUnknown_0203CE54 ldr r1, [r1] ldr r2, =0x00000844 adds r1, r2 ldr r2, =0x04000100 bl CpuSet adds r0, r6, 0 bl RemoveWindow add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bag_menu_print_pocket_names thumb_func_start bag_menu_copy_pocket_name_to_window bag_menu_copy_pocket_name_to_window: @ 81ADFF8 push {r4-r7,lr} adds r7, r0, 0 cmp r7, 0x8 bls _081AE002 movs r7, 0x8 _081AE002: ldr r0, =gUnknown_0203CE54 ldr r4, [r0] ldr r0, =0x00000844 adds r4, r0 movs r0, 0x2 movs r1, 0x7 bl GetWindowAttribute adds r5, r0, 0 lsls r0, r7, 5 adds r0, r4, r0 ldr r6, =0x04000040 adds r1, r5, 0 adds r2, r6, 0 bl CpuSet adds r0, r7, 0 adds r0, 0x10 lsls r0, 5 adds r4, r0 movs r0, 0x80 lsls r0, 1 adds r5, r0 adds r0, r4, 0 adds r1, r5, 0 adds r2, r6, 0 bl CpuSet movs r0, 0x2 movs r1, 0x2 bl CopyWindowToVram pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bag_menu_copy_pocket_name_to_window thumb_func_start setup_bag_menu_textboxes setup_bag_menu_textboxes: @ 81AE054 push {r4,lr} ldr r0, =gUnknown_08614174 bl InitWindows bl DeactivateAllTextPrinters movs r0, 0 movs r1, 0x1 movs r2, 0xE0 bl sub_809882C movs r0, 0 movs r1, 0xA movs r2, 0xD0 bl copy_textbox_border_tile_patterns_to_vram movs r0, 0xC0 movs r1, 0x1 bl sub_819A2BC ldr r0, =gUnknown_0860F074 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette movs r4, 0 _081AE088: adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081AE088 movs r0, 0 bl schedule_bg_copy_tilemap_to_vram movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram pop {r4} pop {r0} bx r0 .pool thumb_func_end setup_bag_menu_textboxes thumb_func_start bag_menu_print bag_menu_print: @ 81AE0BC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 mov r9, r3 ldr r3, [sp, 0x30] ldr r4, [sp, 0x34] ldr r6, [sp, 0x38] ldr r5, [sp, 0x3C] mov r8, r5 ldr r5, [sp, 0x40] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r7, r9 lsls r7, 24 lsrs r7, 24 mov r9, r7 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r6, 24 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 str r4, [sp] str r6, [sp, 0x4] lsls r4, r5, 1 adds r4, r5 ldr r5, =gUnknown_08614164 adds r4, r5 str r4, [sp, 0x8] mov r4, r8 lsls r4, 24 asrs r4, 24 str r4, [sp, 0xC] str r2, [sp, 0x10] mov r2, r9 bl AddTextPrinterParametrized2 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end bag_menu_print thumb_func_start sub_81AE124 sub_81AE124: @ 81AE124 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 ldr r1, [r1] movs r2, 0x81 lsls r2, 4 adds r1, r2 adds r1, r0 ldrb r0, [r1] bx lr .pool thumb_func_end sub_81AE124 thumb_func_start bag_menu_add_window bag_menu_add_window: @ 81AE13C push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203CE54 movs r3, 0x81 lsls r3, 4 adds r1, r2, r3 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0xFF bne _081AE172 lsls r0, r2, 3 ldr r1, =gUnknown_086141AC adds r0, r1 bl AddWindow strb r0, [r4] ldrb r0, [r4] movs r1, 0 movs r2, 0x1 movs r3, 0xE bl SetWindowBorderStyle movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram _081AE172: ldrb r0, [r4] pop {r4} pop {r1} bx r1 .pool thumb_func_end bag_menu_add_window thumb_func_start bag_menu_remove_window bag_menu_remove_window: @ 81AE184 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 movs r2, 0x81 lsls r2, 4 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _081AE1B8 movs r1, 0 bl sub_8198070 ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] bl RemoveWindow movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0xFF strb r0, [r4] _081AE1B8: pop {r4} pop {r0} bx r0 .pool thumb_func_end bag_menu_remove_window thumb_func_start AddItemMessageWindow @ u8 AddItemMessageWindow(u8 a1) AddItemMessageWindow: @ 81AE1C4 push {r4,lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203CE54 movs r3, 0x81 lsls r3, 4 adds r1, r2, r3 ldr r0, [r0] adds r4, r0, r1 ldrb r0, [r4] cmp r0, 0xFF bne _081AE1E8 lsls r0, r2, 3 ldr r1, =gUnknown_086141AC adds r0, r1 bl AddWindow strb r0, [r4] _081AE1E8: ldrb r0, [r4] pop {r4} pop {r1} bx r1 .pool thumb_func_end AddItemMessageWindow thumb_func_start bag_menu_RemoveBagItem_message_window bag_menu_RemoveBagItem_message_window: @ 81AE1F8 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 movs r2, 0x81 lsls r2, 4 adds r0, r2 ldr r1, [r1] adds r4, r1, r0 ldrb r0, [r4] cmp r0, 0xFF beq _081AE22C movs r1, 0 bl sub_8197DF8 ldrb r0, [r4] bl ClearWindowTilemap ldrb r0, [r4] bl RemoveWindow movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r0, 0xFF strb r0, [r4] _081AE22C: pop {r4} pop {r0} bx r0 .pool thumb_func_end bag_menu_RemoveBagItem_message_window thumb_func_start bag_menu_yes_no bag_menu_yes_no: @ 81AE238 push {lr} sub sp, 0x10 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 21 ldr r3, =gUnknown_086141AC adds r1, r3 movs r3, 0x2 str r3, [sp] movs r3, 0x1 str r3, [sp, 0x4] movs r3, 0xE str r3, [sp, 0x8] str r2, [sp, 0xC] movs r2, 0x1 movs r3, 0 bl CreateYesNoMenuWithCallbacks add sp, 0x10 pop {r0} bx r0 .pool thumb_func_end bag_menu_yes_no thumb_func_start bag_menu_AddMoney_window bag_menu_AddMoney_window: @ 81AE268 push {r4,lr} movs r0, 0x9 bl bag_menu_add_window adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x92 lsls r1, 3 adds r0, r1 bl GetMoney adds r3, r0, 0 adds r0, r4, 0 movs r1, 0x1 movs r2, 0xE bl set_window_border_style_and_print_money_box movs r0, 0x13 movs r1, 0xB bl AddMoneyLabelObject pop {r4} pop {r0} bx r0 .pool thumb_func_end bag_menu_AddMoney_window thumb_func_start bag_menu_remove_money_window bag_menu_remove_money_window: @ 81AE2A4 push {lr} movs r0, 0x9 bl bag_menu_remove_window bl RemoveMoneyLabelObject pop {r0} bx r0 thumb_func_end bag_menu_remove_money_window thumb_func_start bag_menu_prepare_tmhm_move_window bag_menu_prepare_tmhm_move_window: @ 81AE2B4 push {lr} movs r0, 0x3 movs r1, 0 bl FillWindowPixelBuffer movs r0, 0x3 movs r1, 0x13 movs r2, 0 movs r3, 0 bl blit_move_info_icon movs r0, 0x3 movs r1, 0x14 movs r2, 0 movs r3, 0xC bl blit_move_info_icon movs r0, 0x3 movs r1, 0x15 movs r2, 0 movs r3, 0x18 bl blit_move_info_icon movs r0, 0x3 movs r1, 0x16 movs r2, 0 movs r3, 0x24 bl blit_move_info_icon movs r0, 0x3 movs r1, 0x2 bl CopyWindowToVram pop {r0} bx r0 thumb_func_end bag_menu_prepare_tmhm_move_window thumb_func_start PrintTMHMMoveData PrintTMHMMoveData: @ 81AE2FC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x4 movs r1, 0 bl FillWindowPixelBuffer cmp r4, 0 bne _081AE354 movs r4, 0 movs r5, 0 _081AE31A: lsls r0, r4, 1 adds r0, r4 lsls r0, 26 lsrs r0, 24 str r0, [sp] str r5, [sp, 0x4] str r5, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r0, 0x4 str r0, [sp, 0x10] movs r1, 0x1 ldr r2, =gUnknown_085E8D45 movs r3, 0x7 bl bag_menu_print adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081AE31A movs r0, 0x4 movs r1, 0x2 bl CopyWindowToVram b _081AE440 .pool _081AE354: adds r0, r4, 0 bl ItemIdToBattleMoveId lsls r0, 16 lsrs r7, r0, 16 ldr r1, =gBattleMoves lsls r0, r7, 1 adds r0, r7 lsls r0, 2 adds r5, r0, r1 ldrb r1, [r5, 0x2] adds r1, 0x1 lsls r1, 24 lsrs r1, 24 movs r0, 0x4 movs r2, 0 movs r3, 0 bl blit_move_info_icon ldrb r0, [r5, 0x1] cmp r0, 0x1 bhi _081AE38C ldr r2, =gUnknown_085E8D45 b _081AE39C .pool _081AE38C: ldr r4, =gStringVar1 ldrb r1, [r5, 0x1] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r2, r4, 0 _081AE39C: movs r0, 0xC str r0, [sp] movs r0, 0 str r0, [sp, 0x4] str r0, [sp, 0x8] movs r0, 0xFF str r0, [sp, 0xC] movs r0, 0x4 str r0, [sp, 0x10] movs r1, 0x1 movs r3, 0x7 bl bag_menu_print ldr r2, =gBattleMoves lsls r1, r7, 1 adds r0, r1, r7 lsls r0, 2 adds r2, r0, r2 ldrb r0, [r2, 0x3] adds r6, r1, 0 cmp r0, 0 bne _081AE3D8 ldr r2, =gUnknown_085E8D45 b _081AE3E8 .pool _081AE3D8: ldr r4, =gStringVar1 ldrb r1, [r2, 0x3] adds r0, r4, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN adds r2, r4, 0 _081AE3E8: movs r0, 0x18 str r0, [sp] movs r4, 0 str r4, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0xFF mov r8, r0 str r0, [sp, 0xC] movs r0, 0x4 mov r9, r0 str r0, [sp, 0x10] movs r1, 0x1 movs r3, 0x7 bl bag_menu_print ldr r5, =gStringVar1 ldr r1, =gBattleMoves adds r0, r6, r7 lsls r0, 2 adds r0, r1 ldrb r1, [r0, 0x4] adds r0, r5, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r0, 0x24 str r0, [sp] str r4, [sp, 0x4] str r4, [sp, 0x8] mov r0, r8 str r0, [sp, 0xC] mov r0, r9 str r0, [sp, 0x10] movs r0, 0x4 movs r1, 0x1 adds r2, r5, 0 movs r3, 0x7 bl bag_menu_print movs r0, 0x4 movs r1, 0x2 bl CopyWindowToVram _081AE440: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end PrintTMHMMoveData thumb_func_start ListMenuDummyTask @ void ListMenuDummyTask(u8 taskId) ListMenuDummyTask: @ 81AE458 bx lr thumb_func_end ListMenuDummyTask thumb_func_start DoMysteryGiftListMenu @ int DoMysteryGiftListMenu(struct WindowTemplate *windowTemplate, struct ListMenuTemplate *listMenuTemplate, int a3, int a4, int a5) DoMysteryGiftListMenu: @ 81AE45C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 mov r12, r0 str r1, [sp] ldr r0, [sp, 0x28] lsls r2, 24 lsrs r6, r2, 24 mov r10, r6 lsls r3, 16 lsrs r7, r3, 16 str r7, [sp, 0x4] lsls r0, 16 mov r8, r0 lsrs r0, 16 mov r9, r0 ldr r5, =gUnknown_0203CE84 ldrb r4, [r5, 0x4] cmp r4, 0x1 beq _081AE4F4 cmp r4, 0x1 ble _081AE492 cmp r4, 0x2 beq _081AE558 _081AE492: mov r0, r12 bl AddWindow strb r0, [r5, 0x5] cmp r6, 0x1 beq _081AE4B0 cmp r6, 0x2 bne _081AE4C0 ldrb r0, [r5, 0x5] mov r1, r9 lsls r2, r1, 24 lsrs r2, 24 adds r1, r7, 0 bl sub_809882C _081AE4B0: ldrb r0, [r5, 0x5] mov r3, r8 lsrs r2, r3, 20 lsls r2, 24 lsrs r2, 24 ldr r1, [sp, 0x4] bl sub_8098858 _081AE4C0: ldr r0, =gUnknown_03006310 adds r2, r0, 0 ldr r1, [sp] ldm r1!, {r3-r5} stm r2!, {r3-r5} ldm r1!, {r3-r5} stm r2!, {r3-r5} ldr r4, =gUnknown_0203CE84 ldrb r1, [r4, 0x5] strb r1, [r0, 0x10] movs r1, 0 movs r2, 0 bl ListMenuInit strb r0, [r4, 0x6] ldrb r0, [r4, 0x5] movs r1, 0x1 bl CopyWindowToVram movs r0, 0x1 strb r0, [r4, 0x4] b _081AE570 .pool _081AE4F4: ldrb r0, [r5, 0x6] bl ListMenuHandleInput str r0, [r5] ldr r1, =gMain ldrh r0, [r1, 0x2E] ands r4, r0 cmp r4, 0 beq _081AE50A movs r0, 0x2 strb r0, [r5, 0x4] _081AE50A: ldrh r1, [r1, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081AE51E movs r0, 0x2 negs r0, r0 str r0, [r5] movs r0, 0x2 strb r0, [r5, 0x4] _081AE51E: ldrb r0, [r5, 0x4] cmp r0, 0x2 bne _081AE570 cmp r6, 0 bne _081AE534 ldrb r0, [r5, 0x5] bl ClearWindowTilemap b _081AE546 .pool _081AE534: mov r4, r10 cmp r4, 0 blt _081AE546 cmp r4, 0x2 bgt _081AE546 ldrb r0, [r5, 0x5] movs r1, 0 bl sub_819746C _081AE546: ldr r0, =gUnknown_0203CE84 ldrb r0, [r0, 0x5] movs r1, 0x1 bl CopyWindowToVram b _081AE570 .pool _081AE558: ldrb r0, [r5, 0x6] movs r1, 0 movs r2, 0 bl sub_81AE6C8 ldrb r0, [r5, 0x5] bl RemoveWindow movs r0, 0 strb r0, [r5, 0x4] ldr r0, [r5] b _081AE574 _081AE570: movs r0, 0x1 negs r0, r0 _081AE574: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end DoMysteryGiftListMenu thumb_func_start ListMenuInit @ u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) ListMenuInit: @ 81AE584 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 bl ListMenuInitInternal adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5, 0x10] bl PutWindowTilemap ldrb r0, [r5, 0x10] movs r1, 0x2 bl CopyWindowToVram adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end ListMenuInit thumb_func_start Unused_ListMenuInit2 @ u8 Unused_ListMenuInit2(struct ListMenuTemplate *listMenuTemplate, int a2, u16 scrollOffset, u16 selectedRow) Unused_ListMenuInit2: @ 81AE5B0 push {r4-r7,lr} sub sp, 0x8 adds r6, r0, 0 adds r4, r1, 0 adds r1, r2, 0 adds r2, r3, 0 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 bl ListMenuInitInternal lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4, 0x4] cmp r0, 0xFF beq _081AE5F0 adds r5, r4, 0 _081AE5D4: ldrb r0, [r6, 0x10] ldrb r1, [r5] ldrb r2, [r5, 0x1] ldrb r3, [r5, 0x2] ldrb r4, [r5, 0x3] str r4, [sp] ldrb r4, [r5, 0x4] str r4, [sp, 0x4] bl PutWindowRectTilemapOverridePalette adds r5, 0x8 ldrb r0, [r5, 0x4] cmp r0, 0xFF bne _081AE5D4 _081AE5F0: ldrb r0, [r6, 0x10] movs r1, 0x2 bl CopyWindowToVram adds r0, r7, 0 add sp, 0x8 pop {r4-r7} pop {r1} bx r1 thumb_func_end Unused_ListMenuInit2 thumb_func_start ListMenuHandleInput @ int ListMenuHandleInput(u8 taskId) ListMenuHandleInput: @ 81AE604 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r3, r1, r0 ldr r2, =gMain ldrh r1, [r2, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _081AE638 ldrh r0, [r3, 0x18] ldrh r1, [r3, 0x1A] adds r0, r1 ldr r1, [r3] lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] b _081AE6C2 .pool _081AE638: movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081AE646 movs r0, 0x2 negs r0, r0 b _081AE6C2 _081AE646: ldrh r1, [r2, 0x30] movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081AE65A adds r0, r3, 0 movs r1, 0x1 movs r2, 0x1 movs r3, 0 b _081AE6BA _081AE65A: movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081AE66A adds r0, r3, 0 movs r1, 0x1 movs r2, 0x1 b _081AE6B8 _081AE66A: ldrb r0, [r3, 0x16] lsrs r0, 6 cmp r0, 0x1 beq _081AE680 cmp r0, 0x1 ble _081AE67A cmp r0, 0x2 beq _081AE68C _081AE67A: movs r2, 0 movs r0, 0 b _081AE6A0 _081AE680: movs r0, 0x20 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 movs r0, 0x10 b _081AE69A _081AE68C: movs r0, 0x80 lsls r0, 2 ands r0, r1 lsls r0, 16 lsrs r2, r0, 16 movs r0, 0x80 lsls r0, 1 _081AE69A: ands r0, r1 lsls r0, 16 lsrs r0, 16 _081AE6A0: cmp r2, 0 beq _081AE6AE ldrb r2, [r3, 0xE] adds r0, r3, 0 movs r1, 0x1 movs r3, 0 b _081AE6BA _081AE6AE: cmp r0, 0 beq _081AE6BE ldrb r2, [r3, 0xE] adds r0, r3, 0 movs r1, 0x1 _081AE6B8: movs r3, 0x1 _081AE6BA: bl ListMenuChangeSelection _081AE6BE: movs r0, 0x1 negs r0, r0 _081AE6C2: pop {r1} bx r1 thumb_func_end ListMenuHandleInput thumb_func_start sub_81AE6C8 sub_81AE6C8: @ 81AE6C8 push {r4,lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r1, r0, r1 cmp r3, 0 beq _081AE6E4 ldrh r0, [r1, 0x18] strh r0, [r3] _081AE6E4: cmp r2, 0 beq _081AE6EC ldrh r0, [r1, 0x1A] strh r0, [r2] _081AE6EC: ldrb r0, [r1, 0x1E] cmp r0, 0xFF beq _081AE6FC ldrb r1, [r1, 0x17] lsrs r1, 6 subs r1, 0x2 bl ListMenuRemoveCursorObject _081AE6FC: adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AE6C8 thumb_func_start sub_81AE70C sub_81AE70C: @ 81AE70C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldrb r0, [r4, 0x10] ldrb r2, [r4, 0x15] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl FillWindowPixelBuffer ldrh r1, [r4, 0x18] ldrh r3, [r4, 0xE] adds r0, r4, 0 movs r2, 0 bl ListMenuPrintEntries adds r0, r4, 0 bl ListMenuDrawCursor ldrb r0, [r4, 0x10] movs r1, 0x2 bl CopyWindowToVram pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AE70C thumb_func_start sub_81AE750 sub_81AE750: @ 81AE750 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 lsrs r1, 20 ldrb r6, [r4, 0x14] movs r5, 0xF adds r0, r5, 0 ands r0, r6 orrs r0, r1 strb r0, [r4, 0x14] ands r2, r5 ldrb r1, [r4, 0x15] movs r0, 0x10 negs r0, r0 ands r0, r1 orrs r0, r2 lsrs r3, 20 ands r0, r5 orrs r0, r3 strb r0, [r4, 0x15] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81AE750 thumb_func_start sub_81AE794 sub_81AE794: @ 81AE794 push {r4,r5,lr} adds r3, r1, 0 adds r5, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r3, 24 lsrs r3, 24 lsls r5, 24 lsrs r5, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldrb r0, [r4, 0x10] movs r1, 0x1 adds r2, r3, 0 bl SetWindowAttribute ldrb r0, [r4, 0x10] movs r1, 0x2 adds r2, r5, 0 bl SetWindowAttribute pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81AE794 thumb_func_start sub_81AE7D0 sub_81AE7D0: @ 81AE7D0 push {r4-r7,lr} sub sp, 0x20 mov r12, r2 ldr r5, [sp, 0x34] lsls r3, 16 lsrs r3, 16 adds r4, r3, 0 mov r3, sp ldm r0!, {r2,r6,r7} stm r3!, {r2,r6,r7} ldm r0!, {r2,r6,r7} stm r3!, {r2,r6,r7} mov r0, sp movs r3, 0 strh r1, [r0, 0x18] mov r1, r12 strh r1, [r0, 0x1A] strb r3, [r0, 0x1C] strb r3, [r0, 0x1D] cmp r4, 0x40 bne _081AE804 movs r1, 0 movs r2, 0x1 movs r3, 0 bl ListMenuChangeSelection _081AE804: cmp r4, 0x80 bne _081AE814 mov r0, sp movs r1, 0 movs r2, 0x1 movs r3, 0x1 bl ListMenuChangeSelection _081AE814: cmp r5, 0 beq _081AE81E mov r0, sp ldrh r0, [r0, 0x18] strh r0, [r5] _081AE81E: ldr r2, [sp, 0x38] cmp r2, 0 beq _081AE82A mov r0, sp ldrh r0, [r0, 0x1A] strh r0, [r2] _081AE82A: movs r0, 0x1 negs r0, r0 add sp, 0x20 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81AE7D0 thumb_func_start sub_81AE838 sub_81AE838: @ 81AE838 push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 cmp r2, 0 beq _081AE856 ldrh r0, [r1, 0x1A] ldrh r1, [r1, 0x18] adds r0, r1 strh r0, [r2] _081AE856: pop {r0} bx r0 .pool thumb_func_end sub_81AE838 thumb_func_start get_coro_args_x18_x1A get_coro_args_x18_x1A: @ 81AE860 push {lr} adds r3, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r1, r0 cmp r3, 0 beq _081AE87A ldrh r0, [r1, 0x18] strh r0, [r3] _081AE87A: cmp r2, 0 beq _081AE882 ldrh r0, [r1, 0x1A] strh r0, [r2] _081AE882: pop {r0} bx r0 .pool thumb_func_end get_coro_args_x18_x1A thumb_func_start ListMenuGetYCoordForPrintingArrowCursor @ u8 ListMenuGetYCoordForPrintingArrowCursor(u8 taskId) ListMenuGetYCoordForPrintingArrowCursor: @ 81AE88C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r4, r0, 2 adds r4, r0 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 ldrb r0, [r4, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0x1 bl GetFontAttribute ldrb r1, [r4, 0x16] lsls r1, 26 lsrs r1, 29 adds r0, r1 lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x1A] adds r2, r1, 0 muls r2, r0 adds r1, r2, 0 ldrb r0, [r4, 0x14] lsls r0, 28 lsrs r0, 28 adds r0, r1 lsls r0, 16 lsrs r0, 16 pop {r4} pop {r1} bx r1 .pool thumb_func_end ListMenuGetYCoordForPrintingArrowCursor thumb_func_start ListMenuInitInternal @ u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow) ListMenuInitInternal: @ 81AE8D4 push {r4-r7,lr} mov r7, r8 push {r7} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 lsls r5, 16 lsrs r5, 16 lsls r6, 16 lsrs r6, 16 ldr r0, =ListMenuDummyTask movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 adds r0, r7, 0 ldm r4!, {r1-r3} stm r0!, {r1-r3} ldm r4!, {r1-r3} stm r0!, {r1-r3} movs r1, 0 strh r5, [r7, 0x18] strh r6, [r7, 0x1A] strb r1, [r7, 0x1C] strb r1, [r7, 0x1D] movs r0, 0xFF strb r0, [r7, 0x1E] strb r1, [r7, 0x1F] ldr r3, =gUnknown_03006300 ldrb r1, [r7, 0x14] movs r5, 0xF lsrs r1, 4 ldrb r4, [r3] movs r2, 0x10 negs r2, r2 adds r0, r2, 0 ands r0, r4 orrs r0, r1 strb r0, [r3] ldrb r1, [r7, 0x15] lsls r1, 28 lsrs r1, 24 ands r0, r5 orrs r0, r1 strb r0, [r3] ldrb r0, [r7, 0x15] lsrs r0, 4 ands r5, r0 ldrb r0, [r3, 0x1] ands r2, r0 orrs r2, r5 strb r2, [r3, 0x1] ldrb r1, [r7, 0x16] lsls r1, 29 lsrs r1, 17 ldr r0, [r3] ldr r2, =0xfffc0fff ands r0, r2 orrs r0, r1 str r0, [r3] ldrb r0, [r7, 0x17] lsls r0, 26 lsrs r0, 26 strb r0, [r3, 0x3] ldrh r0, [r7, 0xC] ldrh r1, [r7, 0xE] cmp r0, r1 bcs _081AE96C strh r0, [r7, 0xE] _081AE96C: ldrb r0, [r7, 0x10] ldrb r2, [r7, 0x15] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl FillWindowPixelBuffer ldrh r1, [r7, 0x18] ldrh r3, [r7, 0xE] adds r0, r7, 0 movs r2, 0 bl ListMenuPrintEntries adds r0, r7, 0 bl ListMenuDrawCursor adds r0, r7, 0 movs r1, 0x1 bl ListMenuCallSelectionChangedCallback mov r0, r8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end ListMenuInitInternal thumb_func_start ListMenuPrint @ void ListMenuPrint(struct ListMenu *listMenu, u8 *str, u8 x, u8 y) ListMenuPrint: @ 81AE9B4 push {r4-r7,lr} sub sp, 0x18 adds r4, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 mov r12, r3 ldr r5, =gUnknown_03006300 ldrb r1, [r5, 0x3] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _081AEA20 add r1, sp, 0x14 ldr r2, [r5] lsls r0, r2, 24 lsrs r0, 28 movs r3, 0 strb r0, [r1] lsls r0, r2, 28 lsrs r0, 28 strb r0, [r1, 0x1] lsls r0, r2, 20 lsrs r0, 28 strb r0, [r1, 0x2] ldrb r0, [r4, 0x10] lsls r1, r2, 1 lsrs r1, 25 lsls r2, 14 lsrs r2, 26 str r2, [sp] str r3, [sp, 0x4] add r2, sp, 0x14 str r2, [sp, 0x8] movs r2, 0x1 negs r2, r2 str r2, [sp, 0xC] str r6, [sp, 0x10] adds r2, r7, 0 mov r3, r12 bl AddTextPrinterParametrized2 ldrb r1, [r5, 0x3] movs r0, 0x7F ands r0, r1 strb r0, [r5, 0x3] b _081AEA5E .pool _081AEA20: add r2, sp, 0x14 ldrb r1, [r4, 0x15] lsls r0, r1, 28 lsrs r0, 28 strb r0, [r2] ldrb r0, [r4, 0x14] lsrs r0, 4 strb r0, [r2, 0x1] adds r0, r2, 0 lsls r1, 24 lsrs r1, 28 strb r1, [r0, 0x2] ldrb r0, [r4, 0x10] ldrb r1, [r4, 0x17] lsls r1, 26 lsrs r1, 26 ldrb r2, [r4, 0x16] lsls r2, 29 lsrs r2, 29 str r2, [sp] str r3, [sp, 0x4] add r2, sp, 0x14 str r2, [sp, 0x8] movs r2, 0x1 negs r2, r2 str r2, [sp, 0xC] str r6, [sp, 0x10] adds r2, r7, 0 mov r3, r12 bl AddTextPrinterParametrized2 _081AEA5E: add sp, 0x18 pop {r4-r7} pop {r0} bx r0 thumb_func_end ListMenuPrint thumb_func_start ListMenuPrintEntries @ void ListMenuPrintEntries(struct ListMenu *listMenu, u16 startIndex, u16 yOffset, u16 count) ListMenuPrintEntries: @ 81AEA68 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 adds r4, r0, 0 lsls r1, 16 lsrs r1, 16 mov r9, r1 lsls r2, 16 lsrs r2, 16 str r2, [sp] lsls r3, 16 lsrs r3, 16 mov r10, r3 ldrb r0, [r4, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0x1 bl GetFontAttribute ldrb r1, [r4, 0x16] lsls r1, 26 lsrs r1, 29 adds r0, r1 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0 mov r8, r0 cmp r8, r10 bge _081AEB10 _081AEAAA: ldr r0, [r4] mov r2, r9 lsls r1, r2, 3 adds r0, r1, r0 ldr r2, [r0, 0x4] movs r0, 0x3 negs r0, r0 adds r5, r1, 0 cmp r2, r0 beq _081AEAC2 ldrb r6, [r4, 0x12] b _081AEAC4 _081AEAC2: ldrb r6, [r4, 0x11] _081AEAC4: ldr r0, [sp] add r0, r8 ldr r2, [sp, 0x4] adds r1, r0, 0 muls r1, r2 ldrb r0, [r4, 0x14] lsls r0, 28 lsrs r0, 28 adds r0, r1 lsls r0, 24 lsrs r2, r0, 24 adds r7, r2, 0 ldr r3, [r4, 0x8] cmp r3, 0 beq _081AEAEE ldrb r0, [r4, 0x10] ldr r1, [r4] adds r1, r5, r1 ldr r1, [r1, 0x4] bl _call_via_r3 _081AEAEE: ldr r0, [r4] adds r0, r5, r0 ldr r1, [r0] adds r0, r4, 0 adds r2, r6, 0 adds r3, r7, 0 bl ListMenuPrint mov r0, r9 adds r0, 0x1 lsls r0, 16 lsrs r0, 16 mov r9, r0 movs r0, 0x1 add r8, r0 cmp r8, r10 blt _081AEAAA _081AEB10: 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 ListMenuPrintEntries thumb_func_start ListMenuDrawCursor @ void ListMenuDrawCursor(struct ListMenu *listMenu) ListMenuDrawCursor: @ 81AEB20 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r0, 0 ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0x1 bl GetFontAttribute ldrb r1, [r6, 0x16] lsls r1, 26 lsrs r1, 29 adds r0, r1 lsls r0, 24 lsrs r0, 24 ldrb r1, [r6, 0x13] mov r8, r1 ldrh r1, [r6, 0x1A] muls r1, r0 ldrb r0, [r6, 0x14] lsls r0, 28 lsrs r0, 28 adds r0, r1 lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r6, 0x17] lsrs r0, 6 cmp r0, 0x1 beq _081AEC0C cmp r0, 0x1 bgt _081AEB66 cmp r0, 0 beq _081AEB70 b _081AEC0C _081AEB66: cmp r0, 0x2 beq _081AEB84 cmp r0, 0x3 beq _081AEBCC b _081AEC0C _081AEB70: ldr r1, =gUnknown_085E8D60 adds r0, r6, 0 mov r2, r8 adds r3, r7, 0 bl ListMenuPrint b _081AEC0C .pool _081AEB84: ldrb r0, [r6, 0x1E] cmp r0, 0xFF bne _081AEB94 adds r0, r6, 0 movs r1, 0 bl ListMenuAddCursorObject strb r0, [r6, 0x1E] _081AEB94: ldrb r5, [r6, 0x1E] ldrb r0, [r6, 0x10] movs r1, 0x1 bl GetWindowAttribute adds r4, r0, 0 lsls r4, 19 ldr r0, =0xffff0000 adds r4, r0 lsrs r4, 16 ldrb r0, [r6, 0x10] movs r1, 0x2 bl GetWindowAttribute adds r2, r0, 0 lsls r2, 3 adds r2, r7 subs r2, 0x1 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0 bl ListMenuUpdateCursorObject b _081AEC0C .pool _081AEBCC: ldrb r0, [r6, 0x1E] cmp r0, 0xFF bne _081AEBDC adds r0, r6, 0 movs r1, 0x1 bl ListMenuAddCursorObject strb r0, [r6, 0x1E] _081AEBDC: ldrb r5, [r6, 0x1E] ldrb r0, [r6, 0x10] movs r1, 0x1 bl GetWindowAttribute adds r4, r0, 0 lsls r4, 3 add r4, r8 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6, 0x10] movs r1, 0x2 bl GetWindowAttribute adds r2, r0, 0 lsls r2, 3 adds r2, r7 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 movs r3, 0x1 bl ListMenuUpdateCursorObject _081AEC0C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end ListMenuDrawCursor thumb_func_start ListMenuAddCursorObject ListMenuAddCursorObject: @ 81AEC18 push {r4,r5,lr} sub sp, 0xC adds r4, r0, 0 adds r5, r1, 0 mov r1, sp movs r0, 0 strb r0, [r1] movs r0, 0xA0 strb r0, [r1, 0x1] ldrb r0, [r4, 0x10] movs r1, 0x3 bl GetWindowAttribute mov r1, sp lsls r0, 3 adds r0, 0x2 strh r0, [r1, 0x2] ldrb r0, [r4, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0x1 bl GetFontAttribute mov r1, sp lsls r0, 24 lsrs r0, 24 adds r0, 0x2 strh r0, [r1, 0x4] movs r0, 0x80 lsls r0, 7 strh r0, [r1, 0x6] ldr r0, =0x0000ffff strh r0, [r1, 0x8] movs r0, 0xF strb r0, [r1, 0xA] mov r0, sp adds r1, r5, 0 bl ListMenuAddCursorObjectInternal lsls r0, 24 lsrs r0, 24 add sp, 0xC pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end ListMenuAddCursorObject thumb_func_start ListMenuErasePrintedCursor ListMenuErasePrintedCursor: @ 81AEC78 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 lsls r1, 16 lsrs r1, 16 mov r8, r1 ldrb r1, [r7, 0x17] lsrs r0, r1, 6 cmp r0, 0 bne _081AECF4 lsls r0, r1, 26 lsrs r0, 26 movs r1, 0x1 bl GetFontAttribute adds r4, r0, 0 ldrb r0, [r7, 0x16] lsls r0, 26 lsrs r0, 29 adds r4, r0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r7, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0 bl GetMenuCursorDimensionByFont adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r7, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0x1 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 ldrb r6, [r7, 0x10] ldrb r2, [r7, 0x15] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 ldrb r2, [r7, 0x13] mov r3, r8 muls r3, r4 adds r4, r3, 0 ldrb r3, [r7, 0x14] lsls r3, 28 lsrs r3, 28 adds r3, r4 lsls r3, 16 lsrs r3, 16 str r5, [sp] str r0, [sp, 0x4] adds r0, r6, 0 bl FillWindowPixelRect _081AECF4: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end ListMenuErasePrintedCursor thumb_func_start ListMenuUpdateSelectedRowIndexAndScrollOffset @ u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(int, bool8 movingDown) ListMenuUpdateSelectedRowIndexAndScrollOffset: @ 81AED00 push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 ldrh r3, [r4, 0x1A] ldrh r5, [r4, 0x18] cmp r1, 0 bne _081AED74 ldrh r0, [r4, 0xE] cmp r0, 0x1 bne _081AED18 movs r2, 0 b _081AED2A _081AED18: ldrh r0, [r4, 0xE] lsrs r2, r0, 1 movs r1, 0x1 ands r1, r0 adds r2, r1 subs r0, r2 subs r0, 0x1 lsls r0, 16 lsrs r2, r0, 16 _081AED2A: cmp r5, 0 bne _081AED50 cmp r3, 0 beq _081AEDB6 ldr r1, [r4] movs r2, 0x3 negs r2, r2 _081AED38: subs r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r0, r5, r3 lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, r2 bne _081AEDBA cmp r3, 0 bne _081AED38 b _081AEDB6 _081AED50: cmp r3, r2 bls _081AED70 ldr r1, [r4] movs r6, 0x3 negs r6, r6 _081AED5A: subs r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r0, r5, r3 lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, r6 bne _081AEDBA cmp r3, r2 bhi _081AED5A _081AED70: subs r0, r5, 0x1 b _081AEDE2 _081AED74: ldrh r0, [r4, 0xE] cmp r0, 0x1 bne _081AED7E movs r2, 0 b _081AED88 _081AED7E: ldrh r0, [r4, 0xE] lsrs r2, r0, 1 movs r1, 0x1 ands r1, r0 adds r2, r1 _081AED88: adds r1, r0, 0 ldrh r0, [r4, 0xC] subs r0, r1 cmp r5, r0 bne _081AEDC0 subs r0, r1, 0x1 cmp r3, r0 bge _081AEDB6 ldr r2, [r4] movs r6, 0x3 negs r6, r6 adds r1, r0, 0 _081AEDA0: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r0, r5, r3 lsls r0, 3 adds r0, r2 ldr r0, [r0, 0x4] cmp r0, r6 bne _081AEDBA cmp r3, r1 blt _081AEDA0 _081AEDB6: movs r0, 0 b _081AEDE8 _081AEDBA: strh r3, [r4, 0x1A] movs r0, 0x1 b _081AEDE8 _081AEDC0: cmp r3, r2 bcs _081AEDE0 ldr r1, [r4] movs r6, 0x3 negs r6, r6 _081AEDCA: adds r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 adds r0, r5, r3 lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] cmp r0, r6 bne _081AEDBA cmp r3, r2 bcc _081AEDCA _081AEDE0: adds r0, r5, 0x1 _081AEDE2: strh r2, [r4, 0x1A] strh r0, [r4, 0x18] movs r0, 0x2 _081AEDE8: pop {r4-r6} pop {r1} bx r1 thumb_func_end ListMenuUpdateSelectedRowIndexAndScrollOffset thumb_func_start ListMenuScroll @ void ListMenuScroll(struct ListMenu *listMenu, int a2, bool8 movingDown) ListMenuScroll: @ 81AEDF0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r5, r1, 24 adds r7, r5, 0 lsls r2, 24 lsrs r2, 24 mov r8, r2 ldrh r0, [r6, 0xE] cmp r5, r0 bcc _081AEE2A ldrb r0, [r6, 0x10] ldrb r2, [r6, 0x15] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl FillWindowPixelBuffer ldrh r1, [r6, 0x18] ldrh r3, [r6, 0xE] adds r0, r6, 0 movs r2, 0 bl ListMenuPrintEntries b _081AEF1A _081AEE2A: ldrb r0, [r6, 0x17] lsls r0, 26 lsrs r0, 26 movs r1, 0x1 bl GetFontAttribute ldrb r1, [r6, 0x16] lsls r1, 26 lsrs r1, 29 adds r0, r1 lsls r0, 24 lsrs r4, r0, 24 mov r1, r8 cmp r1, 0 bne _081AEEBC ldrb r0, [r6, 0x10] adds r2, r5, 0 muls r2, r4 lsls r2, 24 lsrs r2, 24 ldrb r1, [r6, 0x15] lsls r1, 28 lsrs r3, r1, 4 orrs r3, r1 lsrs r3, 24 movs r1, 0x1 bl ScrollWindow ldrh r1, [r6, 0x18] adds r0, r6, 0 movs r2, 0 adds r3, r5, 0 bl ListMenuPrintEntries ldrh r0, [r6, 0xE] adds r1, r0, 0 muls r1, r4 adds r0, r1, 0 ldrb r4, [r6, 0x14] lsls r4, 28 lsrs r4, 28 adds r4, r0 lsls r4, 16 lsrs r4, 16 ldrb r0, [r6, 0x10] movs r1, 0x3 bl GetWindowAttribute adds r5, r0, 0 lsls r5, 19 lsrs r5, 16 ldrb r0, [r6, 0x10] movs r1, 0x4 bl GetWindowAttribute lsls r0, 3 subs r0, r4 lsls r0, 16 lsrs r0, 16 ldrb r3, [r6, 0x10] ldrb r2, [r6, 0x15] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 str r5, [sp] str r0, [sp, 0x4] adds r0, r3, 0 movs r2, 0 adds r3, r4, 0 bl FillWindowPixelRect b _081AEF1A _081AEEBC: ldrb r0, [r6, 0x10] adds r2, r7, 0 muls r2, r4 lsls r2, 24 lsrs r2, 24 ldrb r1, [r6, 0x15] lsls r1, 28 lsrs r3, r1, 4 orrs r3, r1 lsrs r3, 24 movs r1, 0 bl ScrollWindow ldrh r2, [r6, 0xE] subs r2, r7 ldrh r1, [r6, 0x18] adds r1, r2 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 adds r0, r6, 0 adds r3, r7, 0 bl ListMenuPrintEntries ldrb r0, [r6, 0x10] movs r1, 0x3 bl GetWindowAttribute lsls r0, 19 lsrs r0, 16 ldrb r3, [r6, 0x10] ldrb r2, [r6, 0x15] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 str r0, [sp] ldrb r0, [r6, 0x14] lsls r0, 28 lsrs r0, 28 str r0, [sp, 0x4] adds r0, r3, 0 movs r2, 0 movs r3, 0 bl FillWindowPixelRect _081AEF1A: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end ListMenuScroll thumb_func_start ListMenuChangeSelection @ bool8 ListMenuChangeSelection(struct ListMenu *listMenu, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown) ListMenuChangeSelection: @ 81AEF28 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 str r1, [sp] lsls r2, 24 lsrs r2, 24 mov r8, r2 lsls r3, 24 lsrs r3, 24 mov r9, r3 ldrh r0, [r4, 0x1A] mov r10, r0 movs r7, 0 movs r5, 0 movs r0, 0 cmp r7, r8 bcs _081AEF90 _081AEF56: adds r6, r0, 0x1 b _081AEF76 _081AEF5A: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 ldrh r0, [r4, 0x18] ldrh r1, [r4, 0x1A] adds r0, r1 ldr r1, [r4] lsls r0, 3 adds r0, r1 ldr r1, [r0, 0x4] movs r0, 0x3 negs r0, r0 cmp r1, r0 bne _081AEF88 _081AEF76: adds r0, r4, 0 mov r1, r9 bl ListMenuUpdateSelectedRowIndexAndScrollOffset lsls r0, 24 lsrs r0, 24 orrs r5, r0 cmp r0, 0x2 beq _081AEF5A _081AEF88: lsls r0, r6, 24 lsrs r0, 24 cmp r0, r8 bcc _081AEF56 _081AEF90: ldr r0, [sp] cmp r0, 0 beq _081AEFEE cmp r5, 0x1 beq _081AEFA6 cmp r5, 0x1 ble _081AEFA2 cmp r5, 0x3 ble _081AEFC6 _081AEFA2: movs r0, 0x1 b _081AEFF0 _081AEFA6: adds r0, r4, 0 mov r1, r10 bl ListMenuErasePrintedCursor adds r0, r4, 0 bl ListMenuDrawCursor adds r0, r4, 0 movs r1, 0 bl ListMenuCallSelectionChangedCallback ldrb r0, [r4, 0x10] movs r1, 0x2 bl CopyWindowToVram b _081AEFEE _081AEFC6: adds r0, r4, 0 mov r1, r10 bl ListMenuErasePrintedCursor adds r0, r4, 0 adds r1, r7, 0 mov r2, r9 bl ListMenuScroll adds r0, r4, 0 bl ListMenuDrawCursor adds r0, r4, 0 movs r1, 0 bl ListMenuCallSelectionChangedCallback ldrb r0, [r4, 0x10] movs r1, 0x2 bl CopyWindowToVram _081AEFEE: movs r0, 0 _081AEFF0: add sp, 0x4 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 thumb_func_end ListMenuChangeSelection thumb_func_start ListMenuCallSelectionChangedCallback @ void ListMenuCallSelectionChangedCallback(struct ListMenu *listMenu, u8 a2) ListMenuCallSelectionChangedCallback: @ 81AF000 push {r4,lr} adds r2, r0, 0 lsls r1, 24 lsrs r4, r1, 24 ldr r3, [r2, 0x4] cmp r3, 0 beq _081AF022 ldrh r0, [r2, 0x18] ldrh r1, [r2, 0x1A] adds r0, r1 ldr r1, [r2] lsls r0, 3 adds r0, r1 ldr r0, [r0, 0x4] adds r1, r4, 0 bl _call_via_r3 _081AF022: pop {r4} pop {r0} bx r0 thumb_func_end ListMenuCallSelectionChangedCallback thumb_func_start sub_81AF028 sub_81AF028: @ 81AF028 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsls r2, 24 lsrs r2, 24 ldr r6, =gUnknown_03006300 movs r5, 0xF ands r0, r5 ldrb r3, [r6] mov r8, r3 movs r4, 0x10 negs r4, r4 adds r3, r4, 0 mov r7, r8 ands r3, r7 orrs r3, r0 lsrs r1, 20 ands r3, r5 orrs r3, r1 strb r3, [r6] ands r2, r5 ldrb r0, [r6, 0x1] ands r4, r0 orrs r4, r2 strb r4, [r6, 0x1] ldrb r0, [r6, 0x3] movs r1, 0x80 orrs r0, r1 strb r0, [r6, 0x3] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81AF028 thumb_func_start sub_81AF078 sub_81AF078: @ 81AF078 push {lr} lsls r1, 24 cmp r1, 0 bne _081AF086 movs r0, 0x5 bl PlaySE _081AF086: pop {r0} bx r0 thumb_func_end sub_81AF078 thumb_func_start sub_81AF08C sub_81AF08C: @ 81AF08C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r3, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r2, r1, r0 cmp r3, 0x10 bhi _081AF154 lsls r0, r3, 2 ldr r1, =_081AF0B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AF0B8: .4byte _081AF0FC .4byte _081AF0FC .4byte _081AF100 .4byte _081AF104 .4byte _081AF108 .4byte _081AF10C .4byte _081AF110 .4byte _081AF114 .4byte _081AF118 .4byte _081AF11C .4byte _081AF122 .4byte _081AF12A .4byte _081AF130 .4byte _081AF138 .4byte _081AF140 .4byte _081AF146 .4byte _081AF14E _081AF0FC: ldr r0, [r2, 0x4] b _081AF158 _081AF100: ldrh r0, [r2, 0xC] b _081AF158 _081AF104: ldrh r0, [r2, 0xE] b _081AF158 _081AF108: ldrb r0, [r2, 0x10] b _081AF158 _081AF10C: ldrb r0, [r2, 0x11] b _081AF158 _081AF110: ldrb r0, [r2, 0x12] b _081AF158 _081AF114: ldrb r0, [r2, 0x13] b _081AF158 _081AF118: ldrb r0, [r2, 0x14] b _081AF124 _081AF11C: ldrb r0, [r2, 0x14] lsrs r0, 4 b _081AF158 _081AF122: ldrb r0, [r2, 0x15] _081AF124: lsls r0, 28 lsrs r0, 28 b _081AF158 _081AF12A: ldrb r0, [r2, 0x15] lsrs r0, 4 b _081AF158 _081AF130: ldrb r0, [r2, 0x16] lsls r0, 29 lsrs r0, 29 b _081AF158 _081AF138: ldrb r0, [r2, 0x16] lsls r0, 26 lsrs r0, 29 b _081AF158 _081AF140: ldrb r0, [r2, 0x16] lsrs r0, 6 b _081AF158 _081AF146: ldrb r0, [r2, 0x17] lsls r0, 26 lsrs r0, 26 b _081AF158 _081AF14E: ldrb r0, [r2, 0x17] lsrs r0, 6 b _081AF158 _081AF154: movs r0, 0x1 negs r0, r0 _081AF158: pop {r1} bx r1 thumb_func_end sub_81AF08C thumb_func_start sub_81AF15C sub_81AF15C: @ 81AF15C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r4, r1, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r3, r1, r0 cmp r4, 0x10 bhi _081AF25C lsls r0, r4, 2 ldr r1, =_081AF188 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081AF188: .4byte _081AF1CC .4byte _081AF1CC .4byte _081AF1D0 .4byte _081AF1D4 .4byte _081AF1D8 .4byte _081AF1DC .4byte _081AF1E0 .4byte _081AF1E4 .4byte _081AF1E8 .4byte _081AF1F4 .4byte _081AF202 .4byte _081AF20E .4byte _081AF21C .4byte _081AF228 .4byte _081AF236 .4byte _081AF244 .4byte _081AF250 _081AF1CC: str r2, [r3, 0x4] b _081AF25C _081AF1D0: strh r2, [r3, 0xC] b _081AF25C _081AF1D4: strh r2, [r3, 0xE] b _081AF25C _081AF1D8: strb r2, [r3, 0x10] b _081AF25C _081AF1DC: strb r2, [r3, 0x11] b _081AF25C _081AF1E0: strb r2, [r3, 0x12] b _081AF25C _081AF1E4: strb r2, [r3, 0x13] b _081AF25C _081AF1E8: movs r0, 0xF ands r2, r0 ldrb r1, [r3, 0x14] movs r0, 0x10 negs r0, r0 b _081AF1FA _081AF1F4: lsls r2, 4 ldrb r1, [r3, 0x14] movs r0, 0xF _081AF1FA: ands r0, r1 orrs r0, r2 strb r0, [r3, 0x14] b _081AF25C _081AF202: movs r0, 0xF ands r2, r0 ldrb r1, [r3, 0x15] movs r0, 0x10 negs r0, r0 b _081AF214 _081AF20E: lsls r2, 4 ldrb r1, [r3, 0x15] movs r0, 0xF _081AF214: ands r0, r1 orrs r0, r2 strb r0, [r3, 0x15] b _081AF25C _081AF21C: movs r0, 0x7 ands r2, r0 ldrb r1, [r3, 0x16] movs r0, 0x8 negs r0, r0 b _081AF23C _081AF228: movs r0, 0x7 ands r2, r0 lsls r2, 3 ldrb r1, [r3, 0x16] movs r0, 0x39 negs r0, r0 b _081AF23C _081AF236: lsls r2, 6 ldrb r1, [r3, 0x16] movs r0, 0x3F _081AF23C: ands r0, r1 orrs r0, r2 strb r0, [r3, 0x16] b _081AF25C _081AF244: movs r0, 0x3F ands r2, r0 ldrb r1, [r3, 0x17] movs r0, 0x40 negs r0, r0 b _081AF256 _081AF250: lsls r2, 6 ldrb r1, [r3, 0x17] movs r0, 0x3F _081AF256: ands r0, r1 orrs r0, r2 strb r0, [r3, 0x17] _081AF25C: pop {r4} pop {r0} bx r0 thumb_func_end sub_81AF15C thumb_func_start sub_81AF264 sub_81AF264: @ 81AF264 push {r4,lr} adds r4, r0, 0 movs r1, 0x2E ldrsh r0, [r4, r1] cmp r0, 0 beq _081AF276 cmp r0, 0x1 beq _081AF28A b _081AF2E4 _081AF276: ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl StartSpriteAnim ldrh r0, [r4, 0x2E] adds r0, 0x1 strh r0, [r4, 0x2E] b _081AF2E4 _081AF28A: movs r1, 0x32 ldrsh r0, [r4, r1] cmp r0, 0 beq _081AF29A cmp r0, 0x1 beq _081AF2C0 ldrh r2, [r4, 0x38] b _081AF2DE _081AF29A: movs r0, 0x34 ldrsh r3, [r4, r0] ldr r1, =gSineTable ldrh r2, [r4, 0x38] lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r3 cmp r0, 0 bge _081AF2B4 adds r0, 0xFF _081AF2B4: asrs r0, 8 strh r0, [r4, 0x24] b _081AF2DE .pool _081AF2C0: movs r0, 0x34 ldrsh r3, [r4, r0] ldr r1, =gSineTable ldrh r2, [r4, 0x38] lsls r0, r2, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] muls r0, r3 cmp r0, 0 bge _081AF2DA adds r0, 0xFF _081AF2DA: asrs r0, 8 strh r0, [r4, 0x26] _081AF2DE: ldrh r0, [r4, 0x36] adds r0, r2, r0 strh r0, [r4, 0x38] _081AF2E4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81AF264 thumb_func_start AddScrollIndicatorArrowObject AddScrollIndicatorArrowObject: @ 81AF2F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x18 adds r6, r0, 0 ldr r5, [sp, 0x30] lsls r6, 24 lsrs r6, 24 mov r8, r6 lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 lsls r5, 16 lsrs r5, 16 mov r12, r5 mov r4, sp ldr r0, =gUnknown_08614244 ldm r0!, {r5-r7} stm r4!, {r5-r7} ldm r0!, {r5-r7} stm r4!, {r5-r7} mov r0, sp movs r4, 0 strh r3, [r0] mov r3, r12 strh r3, [r0, 0x2] movs r3, 0 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r1, =gSprites lsls r3, r0, 4 adds r3, r0 lsls r3, 2 adds r3, r1 adds r5, r3, 0 adds r5, 0x3E ldrb r1, [r5] movs r2, 0x4 orrs r1, r2 strb r1, [r5] strh r4, [r3, 0x2E] ldr r1, =gUnknown_086141FC mov r5, r8 lsls r6, r5, 2 adds r6, r1 ldrb r2, [r6] lsls r1, r2, 28 lsrs r1, 28 strh r1, [r3, 0x30] lsrs r2, 4 strh r2, [r3, 0x32] ldrb r1, [r6, 0x1] strh r1, [r3, 0x34] ldrh r1, [r6, 0x2] strh r1, [r3, 0x36] strh r4, [r3, 0x38] add sp, 0x18 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end AddScrollIndicatorArrowObject thumb_func_start AddScrollIndicatorArrowPair AddScrollIndicatorArrowPair: @ 81AF380 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r6, r0, 0 mov r9, r1 ldr r0, =gUnknown_086142C8 str r0, [sp, 0x4] ldr r5, =0xffff0000 ldr r0, [sp, 0x8] ands r0, r5 movs r1, 0x80 lsls r1, 1 orrs r0, r1 ldrh r1, [r6, 0xA] lsls r1, 16 ldr r4, =0x0000ffff ands r0, r4 orrs r0, r1 str r0, [sp, 0x8] add r0, sp, 0x4 bl LoadCompressedObjectPic ldrh r2, [r6, 0xC] cmp r2, r4 bne _081AF3DC ldr r0, =gUnknown_086142A8 ldrb r1, [r6, 0xE] lsls r1, 20 movs r2, 0x80 lsls r2, 17 adds r1, r2 lsrs r1, 16 movs r2, 0x20 bl LoadPalette b _081AF3EE .pool _081AF3DC: ldr r0, =gUnknown_086142A8 str r0, [sp, 0xC] add r0, sp, 0xC ldr r1, [r0, 0x4] ands r1, r5 orrs r1, r2 str r1, [r0, 0x4] bl LoadSpritePalette _081AF3EE: ldr r0, =Task_ScrollIndicatorArrowPair movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 movs r0, 0 strb r0, [r7] mov r0, r9 str r0, [r7, 0x4] ldrh r0, [r6, 0x6] strh r0, [r7, 0x8] ldrh r0, [r6, 0x8] strh r0, [r7, 0xA] ldrh r0, [r6, 0xA] strh r0, [r7, 0xE] ldrh r0, [r6, 0xC] strh r0, [r7, 0x10] ldrb r0, [r6] ldrb r1, [r6, 0x1] ldrb r2, [r6, 0x2] ldrh r3, [r6, 0xA] ldrh r4, [r6, 0xC] str r4, [sp] bl AddScrollIndicatorArrowObject strb r0, [r7, 0xC] ldrb r0, [r6, 0x3] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x5] ldrh r3, [r6, 0xA] ldrh r4, [r6, 0xC] str r4, [sp] bl AddScrollIndicatorArrowObject strb r0, [r7, 0xD] ldrh r1, [r6, 0xC] ldr r0, =0x0000ffff cmp r1, r0 bne _081AF47C ldr r5, =gSprites ldrb r0, [r7, 0xC] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r3, [r6, 0xE] lsls r3, 4 ldrb r4, [r1, 0x5] movs r2, 0xF adds r0, r2, 0 ands r0, r4 orrs r0, r3 strb r0, [r1, 0x5] ldrb r1, [r7, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 ldrb r1, [r6, 0xE] lsls r1, 4 ldrb r3, [r0, 0x5] ands r2, r3 orrs r2, r1 strb r2, [r0, 0x5] _081AF47C: mov r0, r8 add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end AddScrollIndicatorArrowPair thumb_func_start AddScrollIndicatorArrowPairParametrized AddScrollIndicatorArrowPairParametrized: @ 81AF4A0 push {r4,lr} adds r4, r1, 0 subs r0, 0x2 cmp r0, 0x1 bhi _081AF4C4 ldr r0, =gUnknown_0203CE8C movs r1, 0x2 strb r1, [r0] strb r4, [r0, 0x1] strb r2, [r0, 0x2] movs r1, 0x3 strb r1, [r0, 0x3] strb r4, [r0, 0x4] strb r3, [r0, 0x5] b _081AF4D6 .pool _081AF4C4: ldr r0, =gUnknown_0203CE8C movs r1, 0 strb r1, [r0] strb r2, [r0, 0x1] strb r4, [r0, 0x2] movs r1, 0x1 strb r1, [r0, 0x3] strb r3, [r0, 0x4] strb r4, [r0, 0x5] _081AF4D6: adds r2, r0, 0 movs r1, 0 movs r0, 0 strh r0, [r2, 0x6] ldr r0, [sp, 0x8] strh r0, [r2, 0x8] ldr r0, [sp, 0xC] strh r0, [r2, 0xA] ldr r0, [sp, 0x10] strh r0, [r2, 0xC] strb r1, [r2, 0xE] adds r0, r2, 0 ldr r1, [sp, 0x14] bl AddScrollIndicatorArrowPair lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 .pool thumb_func_end AddScrollIndicatorArrowPairParametrized thumb_func_start Task_ScrollIndicatorArrowPair Task_ScrollIndicatorArrowPair: @ 81AF504 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 ldr r0, [r4, 0x4] ldrh r5, [r0] ldrh r0, [r4, 0x8] cmp r5, r0 bne _081AF548 ldr r0, =0x0000ffff cmp r5, r0 beq _081AF548 ldr r3, =gSprites ldrb r1, [r4, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081AF55E .pool _081AF548: ldr r3, =gSprites ldrb r1, [r4, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081AF55E: strb r1, [r0] ldrh r0, [r4, 0xA] cmp r5, r0 bne _081AF580 ldrb r1, [r4, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081AF594 .pool _081AF580: ldrb r1, [r4, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081AF594: strb r1, [r0] pop {r4,r5} pop {r0} bx r0 thumb_func_end Task_ScrollIndicatorArrowPair thumb_func_start Task_ScrollIndicatorArrowPairOnMainMenu Task_ScrollIndicatorArrowPairOnMainMenu: @ 81AF59C push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0x1E ldrsh r0, [r4, r1] cmp r0, 0 beq _081AF5E8 ldr r3, =gSprites ldrb r1, [r4, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 strb r1, [r0] ldrb r1, [r4, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081AF612 .pool _081AF5E8: ldr r3, =gSprites ldrb r1, [r4, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] ldrb r1, [r4, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081AF612: strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end Task_ScrollIndicatorArrowPairOnMainMenu thumb_func_start RemoveScrollIndicatorArrowPair RemoveScrollIndicatorArrowPair: @ 81AF620 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldrh r0, [r5, 0xE] ldr r4, =0x0000ffff cmp r0, r4 beq _081AF63E bl FreeSpriteTilesByTag _081AF63E: ldrh r0, [r5, 0x10] cmp r0, r4 beq _081AF648 bl FreeSpritePaletteByTag _081AF648: ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 bl DestroySprite ldrb r1, [r5, 0xD] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 bl DestroySprite adds r0, r6, 0 bl DestroyTask pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end RemoveScrollIndicatorArrowPair thumb_func_start ListMenuAddCursorObjectInternal ListMenuAddCursorObjectInternal: @ 81AF680 push {lr} cmp r1, 0 beq _081AF68A cmp r1, 0x1 beq _081AF690 _081AF68A: bl ListMenuAddRedOutlineCursorObject b _081AF694 _081AF690: bl ListMenuAddRedArrowCursorObject _081AF694: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end ListMenuAddCursorObjectInternal thumb_func_start ListMenuUpdateCursorObject @ void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 a4) ListMenuUpdateCursorObject: @ 81AF69C push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 cmp r3, 0 beq _081AF6B4 cmp r3, 0x1 beq _081AF6BA b _081AF6BE _081AF6B4: bl ListMenuUpdateRedOutlineCursorObject b _081AF6BE _081AF6BA: bl ListMenuUpdateRedArrowCursorObject _081AF6BE: pop {r0} bx r0 thumb_func_end ListMenuUpdateCursorObject thumb_func_start ListMenuRemoveCursorObject ListMenuRemoveCursorObject: @ 81AF6C4 push {lr} lsls r0, 24 lsrs r0, 24 cmp r1, 0 beq _081AF6D4 cmp r1, 0x1 beq _081AF6DA b _081AF6DE _081AF6D4: bl ListMenuRemoveRedOutlineCursorObject b _081AF6DE _081AF6DA: bl ListMenuRemoveRedArrowCursorObject _081AF6DE: pop {r0} bx r0 thumb_func_end ListMenuRemoveCursorObject thumb_func_start Task_RedOutlineCursor Task_RedOutlineCursor: @ 81AF6E4 bx lr thumb_func_end Task_RedOutlineCursor thumb_func_start ListMenuGetRedOutlineCursorSpriteCount ListMenuGetRedOutlineCursorSpriteCount: @ 81AF6E8 push {lr} lsls r0, 16 lsrs r0, 16 lsls r1, 16 lsrs r1, 16 movs r3, 0x4 cmp r0, 0x10 bls _081AF708 movs r2, 0x8 subs r0, 0x8 cmp r2, r0 bge _081AF708 _081AF700: adds r3, 0x2 adds r2, 0x8 cmp r2, r0 blt _081AF700 _081AF708: cmp r1, 0x10 bls _081AF71C movs r2, 0x8 subs r1, 0x8 cmp r2, r1 bge _081AF71C _081AF714: adds r3, 0x2 adds r2, 0x8 cmp r2, r1 blt _081AF714 _081AF71C: lsls r0, r3, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end ListMenuGetRedOutlineCursorSpriteCount thumb_func_start ListMenuSetUpRedOutlineCursorSpriteOamTable ListMenuSetUpRedOutlineCursorSpriteOamTable: @ 81AF724 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 adds r3, r2, 0 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldr r0, =gUnknown_0861425C ldr r0, [r0] str r0, [r3] movs r1, 0x88 strb r1, [r3] strb r1, [r3, 0x1] ldr r0, =gUnknown_08614260 ldr r0, [r0] str r0, [r3, 0x4] mov r2, r8 adds r2, 0x80 strb r2, [r3, 0x4] strb r1, [r3, 0x5] ldr r0, =gUnknown_08614274 ldr r0, [r0] str r0, [r3, 0x8] strb r1, [r3, 0x8] mov r4, r9 adds r4, 0x80 strb r4, [r3, 0x9] ldr r0, =gUnknown_08614278 ldr r0, [r0] str r0, [r3, 0xC] strb r2, [r3, 0xC] strb r4, [r3, 0xD] movs r0, 0x4 mov r12, r0 mov r2, r8 cmp r2, 0x10 bls _081AF7B8 movs r2, 0x8 mov r5, r8 subs r5, 0x8 cmp r2, r5 bge _081AF7B8 ldr r0, =gUnknown_08614264 ldr r0, [r0] str r0, [sp] ldr r0, =gUnknown_08614270 ldr r6, [r0] adds r1, r3, 0 adds r1, 0x10 movs r7, 0x88 mov r10, r7 _081AF796: ldr r0, [sp] str r0, [r1] adds r0, r2, 0 subs r0, 0x78 strb r0, [r1] mov r7, r10 strb r7, [r1, 0x1] adds r1, 0x4 str r6, [r1] strb r0, [r1] strb r4, [r1, 0x1] adds r1, 0x4 movs r0, 0x2 add r12, r0 adds r2, 0x8 cmp r2, r5 blt _081AF796 _081AF7B8: mov r2, r9 cmp r2, 0x10 bls _081AF7F6 movs r1, 0x8 mov r4, r9 subs r4, 0x8 cmp r1, r4 bge _081AF7F6 ldr r0, =gUnknown_08614268 ldr r6, [r0] ldr r0, =gUnknown_0861426C ldr r5, [r0] mov r7, r12 lsls r0, r7, 2 adds r2, r0, r3 movs r7, 0x88 mov r3, r8 adds r3, 0x80 _081AF7DC: str r6, [r2] strb r7, [r2] adds r0, r1, 0 subs r0, 0x78 strb r0, [r2, 0x1] adds r2, 0x4 str r5, [r2] strb r3, [r2] strb r0, [r2, 0x1] adds r2, 0x4 adds r1, 0x8 cmp r1, r4 blt _081AF7DC _081AF7F6: 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 ListMenuSetUpRedOutlineCursorSpriteOamTable thumb_func_start ListMenuAddRedOutlineCursorObject ListMenuAddRedOutlineCursorObject: @ 81AF828 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x28 adds r6, r0, 0 ldr r0, =gUnknown_08614338 str r0, [sp, 0x18] ldr r5, =0xffff0000 add r0, sp, 0x18 ldr r1, [r0, 0x4] ands r1, r5 movs r2, 0x80 lsls r2, 1 orrs r1, r2 ldrh r2, [r6, 0x6] lsls r2, 16 ldr r3, =0x0000ffff ands r1, r3 orrs r1, r2 str r1, [r0, 0x4] bl LoadCompressedObjectPic ldrh r2, [r6, 0x8] ldr r7, =0x0000ffff cmp r2, r7 bne _081AF884 ldr r0, =gUnknown_086142A8 ldrb r1, [r6, 0xA] lsls r1, 20 movs r2, 0x80 lsls r2, 17 adds r1, r2 lsrs r1, 16 movs r2, 0x20 bl LoadPalette b _081AF896 .pool _081AF884: ldr r0, =gUnknown_086142A8 str r0, [sp, 0x20] add r0, sp, 0x20 ldr r1, [r0, 0x4] ands r1, r5 orrs r1, r2 str r1, [r0, 0x4] bl LoadSpritePalette _081AF896: ldr r0, =Task_RedOutlineCursor movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldrh r0, [r6, 0x6] movs r3, 0 mov r8, r3 strh r0, [r5, 0xE] ldrh r0, [r6, 0x8] strh r0, [r5, 0x10] ldrh r0, [r6, 0x2] ldrh r1, [r6, 0x4] bl ListMenuGetRedOutlineCursorSpriteCount strb r0, [r5] ldrb r0, [r5] lsls r0, 2 bl Alloc adds r2, r0, 0 str r2, [r5, 0x8] str r2, [r5, 0x4] ldrh r0, [r6, 0x2] ldrh r1, [r6, 0x4] bl ListMenuSetUpRedOutlineCursorSpriteOamTable mov r1, sp ldr r0, =gDummySpriteTemplate ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} mov r1, sp ldrh r0, [r6, 0x6] strh r0, [r1] ldrh r0, [r6, 0x8] strh r0, [r1, 0x2] ldrb r1, [r6] adds r1, 0x78 ldrb r2, [r6, 0x1] adds r2, 0x78 mov r0, sp movs r3, 0 bl CreateSprite strb r0, [r5, 0xC] ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r7, =gSprites adds r0, r7 adds r1, r5, 0 bl SetSubspriteTables ldrb r0, [r5, 0xC] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x43 mov r1, r8 strb r1, [r0] ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r7 adds r0, 0x42 ldrb r2, [r0] movs r1, 0x40 negs r1, r1 ands r1, r2 strb r1, [r0] ldrh r1, [r6, 0x8] ldr r0, =0x0000ffff cmp r1, r0 bne _081AF96E ldrb r0, [r5, 0xC] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r7 ldrb r2, [r6, 0xA] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] _081AF96E: adds r0, r4, 0 add sp, 0x28 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end ListMenuAddRedOutlineCursorObject thumb_func_start ListMenuUpdateRedOutlineCursorObject @ void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y) ListMenuUpdateRedOutlineCursorObject: @ 81AF994 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 16 lsrs r2, 16 lsls r3, r0, 2 adds r3, r0 lsls r3, 3 ldr r0, =gTasks + 0x8 adds r3, r0 ldr r5, =gSprites ldrb r4, [r3, 0xC] lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r5 adds r1, 0x78 strh r1, [r0, 0x20] ldrb r1, [r3, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 adds r2, 0x78 strh r2, [r0, 0x22] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ListMenuUpdateRedOutlineCursorObject thumb_func_start ListMenuRemoveRedOutlineCursorObject ListMenuRemoveRedOutlineCursorObject: @ 81AF9D8 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r0, [r4, 0x8] bl Free ldrh r0, [r4, 0xE] ldr r6, =0x0000ffff cmp r0, r6 beq _081AF9FC bl FreeSpriteTilesByTag _081AF9FC: ldrh r0, [r4, 0x10] cmp r0, r6 beq _081AFA06 bl FreeSpritePaletteByTag _081AFA06: ldrb r1, [r4, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0 bl DestroyTask pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end ListMenuRemoveRedOutlineCursorObject thumb_func_start ObjectCB_RedArrowCursor ObjectCB_RedArrowCursor: @ 81AFA30 push {lr} adds r2, r0, 0 ldr r1, =gSineTable ldrh r3, [r2, 0x2E] lsls r0, r3, 24 lsrs r0, 23 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0 bge _081AFA48 adds r0, 0x3F _081AFA48: asrs r0, 6 strh r0, [r2, 0x24] adds r0, r3, 0 adds r0, 0x8 strh r0, [r2, 0x2E] pop {r0} bx r0 .pool thumb_func_end ObjectCB_RedArrowCursor thumb_func_start Task_RedArrowCursor Task_RedArrowCursor: @ 81AFA5C bx lr thumb_func_end Task_RedArrowCursor thumb_func_start ListMenuAddRedArrowCursorObject ListMenuAddRedArrowCursorObject: @ 81AFA60 push {r4-r7,lr} sub sp, 0x28 adds r5, r0, 0 ldr r0, =gUnknown_08614378 str r0, [sp, 0x18] ldr r6, =0xffff0000 add r0, sp, 0x18 ldr r1, [r0, 0x4] ands r1, r6 movs r2, 0x80 orrs r1, r2 ldrh r2, [r5, 0x6] lsls r2, 16 ldr r4, =0x0000ffff ands r1, r4 orrs r1, r2 str r1, [r0, 0x4] bl LoadCompressedObjectPic ldrh r2, [r5, 0x8] cmp r2, r4 bne _081AFAB4 ldr r0, =gUnknown_086142A8 ldrb r1, [r5, 0xA] lsls r1, 20 movs r2, 0x80 lsls r2, 17 adds r1, r2 lsrs r1, 16 movs r2, 0x20 bl LoadPalette b _081AFAC6 .pool _081AFAB4: ldr r0, =gUnknown_086142A8 str r0, [sp, 0x20] add r0, sp, 0x20 ldr r1, [r0, 0x4] ands r1, r6 orrs r1, r2 str r1, [r0, 0x4] bl LoadSpritePalette _081AFAC6: ldr r0, =Task_RedArrowCursor movs r1, 0 bl CreateTask lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldrh r0, [r5, 0x6] strh r0, [r4, 0x2] ldrh r0, [r5, 0x8] strh r0, [r4, 0x4] mov r1, sp ldr r0, =gUnknown_08614290 ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} ldm r0!, {r2,r3,r7} stm r1!, {r2,r3,r7} mov r1, sp ldrh r0, [r5, 0x6] strh r0, [r1] ldrh r0, [r5, 0x8] strh r0, [r1, 0x2] ldrb r1, [r5] ldrb r2, [r5, 0x1] mov r0, sp movs r3, 0 bl CreateSprite strb r0, [r4] ldr r3, =gSprites ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 movs r2, 0x8 strh r2, [r0, 0x24] ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r3 strh r2, [r0, 0x26] ldrh r1, [r5, 0x8] ldr r0, =0x0000ffff cmp r1, r0 bne _081AFB46 ldrb r0, [r4] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r3 ldrb r2, [r5, 0xA] lsls r2, 4 ldrb r3, [r1, 0x5] movs r0, 0xF ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] _081AFB46: adds r0, r6, 0 add sp, 0x28 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end ListMenuAddRedArrowCursorObject thumb_func_start ListMenuUpdateRedArrowCursorObject @ void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y) ListMenuUpdateRedArrowCursorObject: @ 81AFB68 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r3, r0, 2 adds r3, r0 lsls r3, 3 ldr r0, =gTasks + 0x8 adds r3, r0 ldr r5, =gSprites ldrb r4, [r3] lsls r0, r4, 4 adds r0, r4 lsls r0, 2 adds r0, r5 strh r1, [r0, 0x20] ldrb r1, [r3] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 strh r2, [r0, 0x22] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ListMenuUpdateRedArrowCursorObject thumb_func_start ListMenuRemoveRedArrowCursorObject ListMenuRemoveRedArrowCursorObject: @ 81AFBA0 push {r4-r6,lr} lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldrh r0, [r4, 0x2] ldr r6, =0x0000ffff cmp r0, r6 beq _081AFBBE bl FreeSpriteTilesByTag _081AFBBE: ldrh r0, [r4, 0x4] cmp r0, r6 beq _081AFBC8 bl FreeSpritePaletteByTag _081AFBC8: ldrb r1, [r4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 bl DestroySprite adds r0, r5, 0 bl DestroyTask pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end ListMenuRemoveRedArrowCursorObject thumb_func_start sub_81AFBF0 sub_81AFBF0: @ 81AFBF0 push {lr} ldr r1, =gUnknown_0203CE9C movs r2, 0 adds r0, r1, 0 adds r0, 0x1C _081AFBFA: str r2, [r0] subs r0, 0x4 cmp r0, r1 bge _081AFBFA pop {r0} bx r0 .pool thumb_func_end sub_81AFBF0 thumb_func_start sub_81AFC0C sub_81AFC0C: @ 81AFC0C push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x7 bhi _081AFC20 ldr r1, =gUnknown_0203CE9C lsls r0, 2 adds r0, r1 str r2, [r0] _081AFC20: pop {r0} bx r0 .pool thumb_func_end sub_81AFC0C thumb_func_start sub_81AFC28 sub_81AFC28: @ 81AFC28 push {r4,r5,lr} adds r2, r0, 0 adds r4, r1, 0 ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF beq _081AFC68 ldr r5, =gUnknown_0203CE9C _081AFC38: cmp r1, 0xF7 beq _081AFC48 strb r1, [r2] adds r4, 0x1 adds r2, 0x1 b _081AFC60 .pool _081AFC48: adds r4, 0x1 ldrb r0, [r4] lsls r0, 2 adds r0, r5 ldr r1, [r0] cmp r1, 0 beq _081AFC5E adds r0, r2, 0 bl StringCopy adds r2, r0, 0 _081AFC5E: adds r4, 0x1 _081AFC60: ldrb r1, [r4] adds r0, r1, 0 cmp r0, 0xFF bne _081AFC38 _081AFC68: movs r0, 0xFF strb r0, [r2] adds r0, r2, 0 pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81AFC28 thumb_func_start sub_81AFC74 sub_81AFC74: @ 81AFC74 lsls r0, 24 ldr r1, =gUnknown_0203CE9C lsrs r0, 22 adds r0, r1 ldr r0, [r0] bx lr .pool thumb_func_end sub_81AFC74 thumb_func_start sav1_are_mapnumbers_in_given_list sav1_are_mapnumbers_in_given_list: @ 81AFC84 push {r4,lr} adds r2, r0, 0 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] movs r1, 0x4 ldrsb r1, [r0, r1] lsls r1, 8 ldrb r0, [r0, 0x5] lsls r0, 24 asrs r0, 24 adds r0, r1 lsls r0, 16 lsrs r3, r0, 16 ldrh r0, [r2] ldr r1, =0x0000ffff cmp r0, r1 beq _081AFCC4 adds r4, r1, 0 adds r1, r2, 0 _081AFCAA: ldrh r0, [r1] cmp r0, r3 bne _081AFCBC movs r0, 0x1 b _081AFCC6 .pool _081AFCBC: adds r1, 0x2 ldrh r0, [r1] cmp r0, r4 bne _081AFCAA _081AFCC4: movs r0, 0 _081AFCC6: pop {r4} pop {r1} bx r1 thumb_func_end sav1_are_mapnumbers_in_given_list thumb_func_start sav1_is_in_pokecenter sav1_is_in_pokecenter: @ 81AFCCC push {lr} ldr r0, =gUnknown_086143BC bl sav1_are_mapnumbers_in_given_list pop {r1} bx r1 .pool thumb_func_end sav1_is_in_pokecenter thumb_func_start sub_81AFCDC sub_81AFCDC: @ 81AFCDC push {lr} ldr r0, =gUnknown_0861440A bl sav1_are_mapnumbers_in_given_list pop {r1} bx r1 .pool thumb_func_end sub_81AFCDC thumb_func_start sub_81AFCEC sub_81AFCEC: @ 81AFCEC push {lr} ldr r0, =gUnknown_0861440E bl sav1_are_mapnumbers_in_given_list pop {r1} bx r1 .pool thumb_func_end sub_81AFCEC thumb_func_start sav2_set_x9_bit3_when_sav1_in_pokecenter sav2_set_x9_bit3_when_sav1_in_pokecenter: @ 81AFCFC push {lr} bl sav1_is_in_pokecenter cmp r0, 0 bne _081AFD18 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0xFD ands r0, r1 b _081AFD22 .pool _081AFD18: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0x2 orrs r0, r1 _081AFD22: strb r0, [r2, 0x9] pop {r0} bx r0 .pool thumb_func_end sav2_set_x9_bit3_when_sav1_in_pokecenter thumb_func_start sub_81AFD2C sub_81AFD2C: @ 81AFD2C push {lr} bl sub_81AFCDC cmp r0, 0 bne _081AFD48 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0xFB ands r0, r1 b _081AFD52 .pool _081AFD48: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0x4 orrs r0, r1 _081AFD52: strb r0, [r2, 0x9] pop {r0} bx r0 .pool thumb_func_end sub_81AFD2C thumb_func_start sub_81AFD5C sub_81AFD5C: @ 81AFD5C push {lr} bl sub_81AFCEC cmp r0, 0 bne _081AFD78 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0xF7 ands r0, r1 b _081AFD82 .pool _081AFD78: ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0x8 orrs r0, r1 _081AFD82: strb r0, [r2, 0x9] pop {r0} bx r0 .pool thumb_func_end sub_81AFD5C thumb_func_start sav2_set_x9_depending_on_sav1_map sav2_set_x9_depending_on_sav1_map: @ 81AFD8C push {lr} bl sav2_set_x9_bit3_when_sav1_in_pokecenter bl sub_81AFD2C bl sub_81AFD5C pop {r0} bx r0 thumb_func_end sav2_set_x9_depending_on_sav1_map thumb_func_start sub_81AFDA0 sub_81AFDA0: @ 81AFDA0 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] adds r2, 0xA8 ldr r0, [r2] movs r1, 0x80 lsls r1, 8 orrs r0, r1 movs r1, 0x1 orrs r0, r1 movs r1, 0x2 orrs r0, r1 movs r1, 0x4 orrs r0, r1 movs r1, 0x10 orrs r0, r1 movs r1, 0x20 orrs r0, r1 movs r1, 0x8 orrs r0, r1 str r0, [r2] bx lr .pool thumb_func_end sub_81AFDA0 thumb_func_start sub_81AFDD0 sub_81AFDD0: @ 81AFDD0 ldr r0, =gSaveBlock2Ptr ldr r2, [r0] ldrb r1, [r2, 0x9] movs r0, 0x80 orrs r0, r1 strb r0, [r2, 0x9] bx lr .pool thumb_func_end sub_81AFDD0 thumb_func_start AllocItemIconTemporaryBuffers @ bool8 AllocItemIconTemporaryBuffers() AllocItemIconTemporaryBuffers: @ 81AFDE4 push {r4,r5,lr} ldr r5, =gUnknown_0203CEBC movs r0, 0x90 lsls r0, 1 bl Alloc str r0, [r5] cmp r0, 0 beq _081AFE1A ldr r4, =gUnknown_0203CEC0 movs r0, 0x80 lsls r0, 2 bl AllocZeroed str r0, [r4] cmp r0, 0 beq _081AFE14 movs r0, 0x1 b _081AFE1C .pool _081AFE14: ldr r0, [r5] bl Free _081AFE1A: movs r0, 0 _081AFE1C: pop {r4,r5} pop {r1} bx r1 thumb_func_end AllocItemIconTemporaryBuffers thumb_func_start FreeItemIconTemporaryBuffers @ void FreeItemIconTemporaryBuffers() FreeItemIconTemporaryBuffers: @ 81AFE24 push {lr} ldr r0, =gUnknown_0203CEBC ldr r0, [r0] bl Free ldr r0, =gUnknown_0203CEC0 ldr r0, [r0] bl Free pop {r0} bx r0 .pool thumb_func_end FreeItemIconTemporaryBuffers thumb_func_start CopyItemIconPicTo4x4Buffer @ void CopyItemIconPicTo4x4Buffer(void *src, void *dest) CopyItemIconPicTo4x4Buffer: @ 81AFE44 push {r4-r6,lr} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 _081AFE4C: lsls r0, r4, 1 adds r0, r4 lsls r0, 5 adds r0, r6, r0 lsls r1, r4, 7 adds r1, r5, r1 movs r2, 0x30 bl CpuSet adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x2 bls _081AFE4C pop {r4-r6} pop {r0} bx r0 thumb_func_end CopyItemIconPicTo4x4Buffer thumb_func_start AddItemIconObject @ u8 AddItemIconObject(u16 tilesTag, u16 paletteTag, u16 itemId) AddItemIconObject: @ 81AFE70 push {r4-r7,lr} sub sp, 0x10 lsls r0, 16 lsrs r7, r0, 16 lsls r1, 16 lsrs r6, r1, 16 lsls r2, 16 lsrs r5, r2, 16 bl AllocItemIconTemporaryBuffers lsls r0, 24 cmp r0, 0 beq _081AFF28 adds r0, r5, 0 movs r1, 0 bl GetItemIconPicOrPalette ldr r4, =gUnknown_0203CEBC ldr r1, [r4] bl LZDecompressWram ldr r0, [r4] ldr r4, =gUnknown_0203CEC0 ldr r1, [r4] bl CopyItemIconPicTo4x4Buffer ldr r0, [r4] str r0, [sp] ldr r4, =0xffff0000 ldr r0, [sp, 0x4] ands r0, r4 movs r1, 0x80 lsls r1, 2 orrs r0, r1 lsls r2, r7, 16 ldr r1, =0x0000ffff ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r5, 0 movs r1, 0x1 bl GetItemIconPicOrPalette str r0, [sp, 0x8] add r0, sp, 0x8 ldr r1, [r0, 0x4] ands r1, r4 orrs r1, r6 str r1, [r0, 0x4] bl LoadCompressedObjectPalette movs r0, 0x18 bl Alloc adds r5, r0, 0 ldr r0, =gUnknown_08614FF4 adds r1, r5, 0 movs r2, 0xC bl CpuSet strh r7, [r5] strh r6, [r5, 0x2] adds r0, r5, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl FreeItemIconTemporaryBuffers adds r0, r5, 0 bl Free adds r0, r4, 0 b _081AFF2A .pool _081AFF28: movs r0, 0x40 _081AFF2A: add sp, 0x10 pop {r4-r7} pop {r1} bx r1 thumb_func_end AddItemIconObject thumb_func_start AddItemIconObjectWithCustomObjectTemplate @ u8 AddItemIconObjectWithCustomObjectTemplate(struct objtemplate *objectTemplate, u16 tilesTag, u16 paletteTag, u16 itemId) AddItemIconObjectWithCustomObjectTemplate: @ 81AFF34 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x10 mov r8, r0 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r6, r2, 16 lsls r3, 16 lsrs r5, r3, 16 bl AllocItemIconTemporaryBuffers lsls r0, 24 cmp r0, 0 beq _081AFFEC adds r0, r5, 0 movs r1, 0 bl GetItemIconPicOrPalette ldr r4, =gUnknown_0203CEBC ldr r1, [r4] bl LZDecompressWram ldr r0, [r4] ldr r4, =gUnknown_0203CEC0 ldr r1, [r4] bl CopyItemIconPicTo4x4Buffer ldr r0, [r4] str r0, [sp] ldr r4, =0xffff0000 ldr r0, [sp, 0x4] ands r0, r4 movs r1, 0x80 lsls r1, 2 orrs r0, r1 lsls r2, r7, 16 ldr r1, =0x0000ffff ands r0, r1 orrs r0, r2 str r0, [sp, 0x4] mov r0, sp bl LoadSpriteSheet adds r0, r5, 0 movs r1, 0x1 bl GetItemIconPicOrPalette str r0, [sp, 0x8] add r0, sp, 0x8 ldr r1, [r0, 0x4] ands r1, r4 orrs r1, r6 str r1, [r0, 0x4] bl LoadCompressedObjectPalette movs r0, 0x18 bl Alloc adds r5, r0, 0 mov r0, r8 adds r1, r5, 0 movs r2, 0xC bl CpuSet strh r7, [r5] strh r6, [r5, 0x2] adds r0, r5, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl CreateSprite adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl FreeItemIconTemporaryBuffers adds r0, r5, 0 bl Free adds r0, r4, 0 b _081AFFEE .pool _081AFFEC: movs r0, 0x40 _081AFFEE: add sp, 0x10 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end AddItemIconObjectWithCustomObjectTemplate thumb_func_start GetItemIconPicOrPalette @ u32 GetItemIconPicOrPalette(u16 itemId, u8 which) GetItemIconPicOrPalette: @ 81AFFFC push {lr} lsls r0, 16 lsrs r3, r0, 16 lsls r1, 24 lsrs r1, 24 ldr r0, =0x0000ffff cmp r3, r0 bne _081B0018 ldr r3, =0x00000179 b _081B0022 .pool _081B0018: movs r0, 0xBC lsls r0, 1 cmp r3, r0 bls _081B0022 movs r3, 0 _081B0022: ldr r2, =gItemIconTable lsls r0, r1, 2 lsls r1, r3, 3 adds r0, r1 adds r0, r2 ldr r0, [r0] pop {r1} bx r1 .pool thumb_func_end GetItemIconPicOrPalette thumb_func_start sub_81B0038 sub_81B0038: @ 81B0038 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r4, [sp, 0x24] lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 24 lsrs r1, 24 mov r9, r1 lsls r2, 24 lsrs r7, r2, 24 lsls r3, 24 lsrs r3, 24 str r3, [sp] lsls r4, 24 lsrs r6, r4, 24 bl reset_brm ldr r0, =gUnknown_0203CEC4 mov r10, r0 movs r0, 0x8E lsls r0, 2 bl Alloc adds r5, r0, 0 mov r1, r10 str r5, [r1] cmp r5, 0 bne _081B0088 ldr r0, [sp, 0x2C] bl SetMainCallback2 b _081B0194 .pool _081B0088: ldr r3, =gUnknown_0203CEC8 movs r1, 0xF mov r4, r8 ands r1, r4 ldrb r2, [r3, 0x8] movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] ldr r0, [sp, 0x2C] str r0, [r3] movs r4, 0 strb r7, [r3, 0xB] lsls r2, r6, 2 ldrh r1, [r5, 0xA] movs r0, 0x3 ands r0, r1 orrs r0, r2 strh r0, [r5, 0xA] ldr r0, [sp, 0x28] str r0, [r5] str r4, [r5, 0x4] ldrb r1, [r5, 0x8] movs r0, 0xF negs r0, r0 ands r0, r1 strb r0, [r5, 0x8] mov r1, r10 ldr r2, [r1] ldrh r0, [r2, 0x8] movs r4, 0xFE lsls r4, 3 adds r1, r4, 0 orrs r0, r1 strh r0, [r2, 0x8] ldr r0, [r2, 0x8] movs r1, 0xFE lsls r1, 10 orrs r0, r1 str r0, [r2, 0x8] adds r6, r3, 0 mov r5, r8 cmp r5, 0x4 bne _081B00F0 ldrb r0, [r2, 0x8] movs r1, 0x1 orrs r0, r1 b _081B00F8 .pool _081B00F0: ldrb r1, [r2, 0x8] movs r0, 0x2 negs r0, r0 ands r0, r1 _081B00F8: strb r0, [r2, 0x8] mov r0, r9 cmp r0, 0xFF beq _081B0114 movs r0, 0x3 mov r1, r9 ands r0, r1 lsls r0, 4 ldrb r2, [r6, 0x8] movs r1, 0x31 negs r1, r1 ands r1, r2 orrs r1, r0 strb r1, [r6, 0x8] _081B0114: movs r2, 0 ldr r5, =gUnknown_0203CEC4 movs r4, 0x86 lsls r4, 2 movs r3, 0 _081B011E: ldr r0, [r5] lsls r1, r2, 1 adds r0, r4 adds r0, r1 strh r3, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0xF bls _081B011E movs r2, 0 ldr r4, =gUnknown_0203CEC4 movs r3, 0xFF _081B0138: ldr r0, [r4] adds r0, 0xC adds r0, r2 ldrb r1, [r0] orrs r1, r3 strb r1, [r0] adds r0, r2, 0x1 lsls r0, 16 lsrs r2, r0, 16 cmp r2, 0x2 bls _081B0138 ldr r4, [sp] cmp r4, 0 bne _081B015C strb r4, [r6, 0x9] b _081B017E .pool _081B015C: adds r1, r6, 0 movs r0, 0x9 ldrsb r0, [r1, r0] cmp r0, 0x5 bgt _081B017A adds r1, r0, 0 movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 bne _081B017E _081B017A: movs r0, 0 strb r0, [r6, 0x9] _081B017E: ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r2] bl CalculatePlayerPartyCount ldr r0, =c2_811EBD0 bl SetMainCallback2 _081B0194: 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_81B0038 thumb_func_start sub_81B01B0 sub_81B01B0: @ 81B01B0 push {lr} bl RunTasks bl AnimateSprites bl BuildOamBuffer bl do_scheduled_bg_tilemap_copies_to_vram bl UpdatePaletteFade pop {r0} bx r0 thumb_func_end sub_81B01B0 thumb_func_start sub_81B01CC sub_81B01CC: @ 81B01CC push {lr} bl LoadOam bl ProcessSpriteCopyRequests bl TransferPlttBuffer pop {r0} bx r0 thumb_func_end sub_81B01CC thumb_func_start c2_811EBD0 c2_811EBD0: @ 81B01E0 push {lr} _081B01E2: bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B0206 bl sub_81B020C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B0206 bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B01E2 _081B0206: pop {r0} bx r0 thumb_func_end c2_811EBD0 thumb_func_start sub_81B020C sub_81B020C: @ 81B020C push {r4,lr} sub sp, 0x4 ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r0, r1, r2 ldrb r0, [r0] adds r2, r1, 0 cmp r0, 0x16 bls _081B0222 b _081B0498 _081B0222: lsls r0, 2 ldr r1, =_081B0234 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B0234: .4byte _081B0290 .4byte _081B02AC .4byte _081B02B2 .4byte _081B02D4 .4byte _081B02DA .4byte _081B02EC .4byte _081B02FE .4byte _081B0310 .4byte _081B0338 .4byte _081B0354 .4byte _081B0368 .4byte _081B038C .4byte _081B03A0 .4byte _081B03A6 .4byte _081B03B8 .4byte _081B03BE .4byte _081B03E0 .4byte _081B0400 .4byte _081B0414 .4byte _081B0428 .4byte _081B0430 .4byte _081B044C .4byte _081B0474 _081B0290: bl SetVBlankHBlankCallbacksToNull bl sub_8121DA0 bl clear_scheduled_bg_copies_to_vram ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B02AC: bl remove_some_task b _081B0484 _081B02B2: bl ResetPaletteFade ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B02D4: bl ResetSpriteData b _081B0484 _081B02DA: bl FreeAllSpritePalettes ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B02EC: bl sub_81221AC lsls r0, 24 cmp r0, 0 beq _081B02F8 b _081B0484 _081B02F8: bl ResetTasks b _081B0484 _081B02FE: bl sub_81B209C ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0310: bl sub_81B0550 lsls r0, 24 cmp r0, 0 bne _081B0322 bl sub_81B04BC movs r0, 0x1 b _081B04B2 _081B0322: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B0338: bl sub_81B05C8 lsls r0, 24 cmp r0, 0 bne _081B0344 b _081B04B0 _081B0344: ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0354: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 30 bl sub_81B239C b _081B0484 .pool _081B0368: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 30 bl sub_81B0740 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B038C: bl sub_81B5D30 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B03A0: bl sub_81B6040 b _081B0484 _081B03A6: bl sub_81B6160 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B03B8: bl sub_80D2F04 b _081B0484 _081B03BE: bl party_menu_add_per_mon_objects lsls r0, 24 cmp r0, 0 bne _081B03CA b _081B04B0 _081B03CA: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B03E0: bl sub_81B0DA0 lsls r0, 24 cmp r0, 0 beq _081B04B0 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 strh r1, [r0] b _081B0484 .pool _081B0400: bl sub_81B0F28 ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0414: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 lsrs r0, 31 bl sub_81B2428 b _081B0484 .pool _081B0428: movs r0, 0x87 lsls r0, 3 adds r1, r2, r0 b _081B048C _081B0430: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] ldr r0, [r0] movs r1, 0 bl CreateTask ldr r0, [r4] ldrh r0, [r0, 0xA] lsrs r0, 2 bl display_pokemon_menu_message b _081B0484 .pool _081B044C: movs r0, 0x1 negs r0, r0 movs r1, 0x10 movs r2, 0 bl BlendPalettes ldr r2, =gPaletteFade ldrb r1, [r2, 0x8] movs r0, 0x7F ands r0, r1 strb r0, [r2, 0x8] ldr r1, =gMain movs r0, 0x87 lsls r0, 3 adds r1, r0 b _081B048C .pool _081B0474: movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0x10 movs r3, 0 bl BeginNormalPaletteFade _081B0484: ldr r1, =gMain movs r2, 0x87 lsls r2, 3 adds r1, r2 _081B048C: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _081B04B0 .pool _081B0498: ldr r0, =sub_81B01CC bl SetVBlankCallback ldr r0, =sub_81B01B0 bl SetMainCallback2 movs r0, 0x1 b _081B04B2 .pool _081B04B0: movs r0, 0 _081B04B2: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B020C thumb_func_start sub_81B04BC sub_81B04BC: @ 81B04BC push {lr} sub sp, 0x4 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r0, =sub_81B04F8 movs r1, 0 bl CreateTask ldr r0, =sub_81B01CC bl SetVBlankCallback ldr r0, =sub_81B01B0 bl SetMainCallback2 add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_81B04BC thumb_func_start sub_81B04F8 sub_81B04F8: @ 81B04F8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B051C ldr r0, =gUnknown_0203CEC8 ldr r0, [r0] bl SetMainCallback2 bl sub_81B06F4 adds r0, r4, 0 bl DestroyTask _081B051C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B04F8 thumb_func_start reset_brm reset_brm: @ 81B052C ldr r0, =gUnknown_0203CEC4 movs r1, 0 str r1, [r0] ldr r0, =gUnknown_0203CEE4 str r1, [r0] ldr r0, =gUnknown_0203CEDC str r1, [r0] ldr r0, =gUnknown_0203CEE0 str r1, [r0] bx lr .pool thumb_func_end reset_brm thumb_func_start sub_81B0550 sub_81B0550: @ 81B0550 push {r4,r5,lr} ldr r5, =gUnknown_0203CEE4 movs r4, 0x80 lsls r4, 4 adds r0, r4, 0 bl Alloc str r0, [r5] cmp r0, 0 beq _081B05C0 movs r1, 0 adds r2, r4, 0 bl memset movs r0, 0 bl ResetBgsAndClearDma3BusyFlags ldr r1, =gUnknown_086156B8 movs r0, 0 movs r2, 0x3 bl InitBgsFromTemplates ldr r1, [r5] movs r0, 0x1 bl SetBgTilemapBuffer bl sub_8121E10 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram movs r1, 0x82 lsls r1, 5 movs r0, 0 bl SetGpuReg movs r0, 0x50 movs r1, 0 bl SetGpuReg movs r0, 0 bl ShowBg movs r0, 0x1 bl ShowBg movs r0, 0x2 bl ShowBg movs r0, 0x1 b _081B05C2 .pool _081B05C0: movs r0, 0 _081B05C2: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81B0550 thumb_func_start sub_81B05C8 sub_81B05C8: @ 81B05C8 push {r4,lr} sub sp, 0x4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 movs r1, 0 ldrsh r0, [r0, r1] cmp r0, 0x7 bhi _081B06B0 lsls r0, 2 ldr r1, =_081B05F0 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B05F0: .4byte _081B0610 .4byte _081B0638 .4byte _081B0658 .4byte _081B0684 .4byte _081B0688 .4byte _081B068C .4byte _081B0690 .4byte _081B0694 _081B0610: ldr r4, =gUnknown_0203CEE0 ldr r0, =gUnknown_08D967EC mov r1, sp bl malloc_and_decompress adds r1, r0, 0 str r1, [r4] ldr r2, [sp] lsls r2, 16 lsrs r2, 16 movs r0, 0x1 movs r3, 0 bl LoadBgTiles b _081B069A .pool _081B0638: bl IsDma3ManagerBusyWithBgCopy lsls r0, 24 cmp r0, 0 bne _081B06B4 ldr r0, =gUnknown_08D96BA0 ldr r1, =gUnknown_0203CEE4 ldr r1, [r1] bl LZDecompressWram b _081B069A .pool _081B0658: ldr r0, =gUnknown_08D96AB4 movs r2, 0xB0 lsls r2, 1 movs r1, 0 bl LoadCompressedPalette ldr r0, =gPlttBufferUnfaded ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] adds r1, 0x18 movs r2, 0xB0 bl CpuSet ldr r1, [r4] b _081B069E .pool _081B0684: movs r0, 0x4 b _081B0696 _081B0688: movs r0, 0x5 b _081B0696 _081B068C: movs r0, 0x6 b _081B0696 _081B0690: movs r0, 0x7 b _081B0696 _081B0694: movs r0, 0x8 _081B0696: bl sub_81B06C0 _081B069A: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] _081B069E: movs r0, 0x86 lsls r0, 2 adds r1, r0 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] b _081B06B4 .pool _081B06B0: movs r0, 0x1 b _081B06B6 _081B06B4: movs r0, 0 _081B06B6: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B05C8 thumb_func_start sub_81B06C0 sub_81B06C0: @ 81B06C0 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 28 ldr r5, =gPlttBufferUnfaded + 0x60 lsrs r4, 23 adds r1, r5, 0 subs r1, 0x60 adds r1, r4, r1 adds r0, r5, 0 movs r2, 0x10 bl CpuSet ldr r0, =gPlttBufferFaded adds r4, r0 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x10 bl CpuSet pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B06C0 thumb_func_start sub_81B06F4 sub_81B06F4: @ 81B06F4 push {lr} ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] cmp r0, 0 beq _081B0702 bl Free _081B0702: ldr r0, =gUnknown_0203CEE4 ldr r0, [r0] cmp r0, 0 beq _081B070E bl Free _081B070E: ldr r0, =gUnknown_0203CEE0 ldr r0, [r0] cmp r0, 0 beq _081B071A bl Free _081B071A: ldr r0, =gUnknown_0203CEDC ldr r0, [r0] cmp r0, 0 beq _081B0726 bl Free _081B0726: bl FreeAllWindowBuffers pop {r0} bx r0 .pool thumb_func_end sub_81B06F4 thumb_func_start sub_81B0740 sub_81B0740: @ 81B0740 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203CEDC movs r0, 0x60 bl Alloc str r0, [r4] movs r5, 0 lsls r0, r7, 1 adds r0, r7 lsls r0, 4 mov r8, r0 movs r6, 0xFF mov r9, r4 _081B0764: ldr r2, [r4] lsls r3, r5, 4 adds r2, r3, r2 ldr r0, =gUnknown_086156E4 mov r12, r0 str r0, [r2] lsls r0, r5, 3 ldr r1, =gUnknown_08615704 adds r0, r1 add r0, r8 str r0, [r2, 0x4] strb r5, [r2, 0x8] ldr r1, [r4] adds r1, r3, r1 ldrb r0, [r1, 0x9] orrs r0, r6 strb r0, [r1, 0x9] ldr r1, [r4] adds r1, r3, r1 ldrb r0, [r1, 0xA] orrs r0, r6 strb r0, [r1, 0xA] ldr r1, [r4] adds r1, r3, r1 ldrb r0, [r1, 0xB] orrs r0, r6 strb r0, [r1, 0xB] ldr r0, [r4] adds r3, r0 ldrb r0, [r3, 0xC] orrs r0, r6 strb r0, [r3, 0xC] adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _081B0764 mov r1, r9 ldr r0, [r1] mov r1, r12 subs r1, 0x20 str r1, [r0] cmp r7, 0x3 bne _081B07CC str r1, [r0, 0x30] b _081B07D2 .pool _081B07CC: cmp r7, 0 beq _081B07D2 str r1, [r0, 0x10] _081B07D2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B0740 thumb_func_start sub_81B07E0 sub_81B07E0: @ 81B07E0 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B085C cmp r5, 0x2 bls _081B085C adds r0, r5, 0 bl sub_81B0CEC ldr r0, =gUnknown_02022FF8 subs r1, r5, 0x3 lsls r1, 5 adds r1, r0 ldrh r0, [r1] cmp r0, 0 bne _081B0828 ldr r0, =gUnknown_0203CEDC lsls r4, r5, 4 ldr r0, [r0] adds r0, r4 movs r1, 0x40 bl sub_81B2748 b _081B0836 .pool _081B0828: ldr r0, =gUnknown_0203CEDC lsls r4, r5, 4 ldr r0, [r0] adds r0, r4 movs r1, 0x8 bl sub_81B2748 _081B0836: adds r5, r4, 0 ldr r4, =gUnknown_0203CEDC ldr r0, [r4] adds r0, r5, r0 ldrb r0, [r0, 0x8] movs r1, 0x2 bl CopyWindowToVram ldr r0, [r4] adds r0, r5, r0 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram b _081B093E .pool _081B085C: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 bne _081B089C ldr r4, =gUnknown_0203CEDC ldr r0, [r4] lsls r5, 4 adds r0, r5, r0 ldrb r0, [r0, 0x8] bl sub_81B2720 ldr r0, [r4] adds r0, r5 movs r1, 0x40 bl sub_81B2748 ldr r0, [r4] adds r0, r5, r0 ldrb r0, [r0, 0x8] movs r1, 0x2 bl CopyWindowToVram b _081B092C .pool _081B089C: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] movs r1, 0xF ands r1, r0 cmp r1, 0x7 bne _081B08B4 adds r0, r5, 0 bl sub_81B0B60 b _081B08F6 .pool _081B08B4: cmp r1, 0x2 bne _081B08C0 adds r0, r5, 0 bl sub_81B0B08 b _081B08F6 _081B08C0: cmp r1, 0x4 bne _081B08CC adds r0, r5, 0 bl sub_81B0A9C b _081B08F6 _081B08CC: cmp r1, 0xB bne _081B08D8 adds r0, r5, 0 bl sub_81B0B98 b _081B08F6 _081B08D8: cmp r1, 0xC bne _081B08E4 adds r0, r5, 0 bl sub_81B0BC4 b _081B08F6 _081B08E4: adds r0, r5, 0 bl sub_81B0BFC lsls r0, 24 cmp r0, 0 bne _081B08F6 adds r0, r5, 0 bl sub_81B0948 _081B08F6: ldr r2, =gUnknown_0203CEC8 ldrb r1, [r2, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B0910 adds r0, r5, 0 movs r1, 0 bl sub_81B0FCC b _081B092A .pool _081B0910: movs r0, 0x9 ldrsb r0, [r2, r0] cmp r0, r5 bne _081B0922 adds r0, r5, 0 movs r1, 0x1 bl sub_81B0FCC b _081B092A _081B0922: adds r0, r5, 0 movs r1, 0 bl sub_81B0FCC _081B092A: lsls r5, 4 _081B092C: ldr r0, =gUnknown_0203CEDC ldr r0, [r0] adds r0, r5, r0 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram _081B093E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B07E0 thumb_func_start sub_81B0948 sub_81B0948: @ 81B0948 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 adds r1, r4, 0 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0x2D bl GetMonData adds r2, r0, 0 cmp r2, 0 beq _081B09A0 ldr r6, =gUnknown_0203CEDC ldr r0, [r6] lsls r5, r4, 4 adds r0, r5, r0 ldr r2, [r0] ldrb r0, [r0, 0x8] movs r1, 0 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] ldr r4, [r2] movs r1, 0 movs r2, 0 movs r3, 0 bl _call_via_r4 ldr r1, [r6] adds r1, r5 adds r0, r7, 0 movs r2, 0 bl sub_81B2A70 b _081B0A02 .pool _081B09A0: ldr r5, =gUnknown_0203CEDC ldr r0, [r5] lsls r4, 4 adds r0, r4, r0 ldr r1, [r0] ldrb r0, [r0, 0x8] str r2, [sp] str r2, [sp, 0x4] ldr r6, [r1] movs r1, 0 movs r2, 0 movs r3, 0 bl _call_via_r6 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2A70 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2AC8 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2B8C ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2CD4 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 movs r2, 0 bl sub_81B2D74 ldr r1, [r5] adds r1, r4 adds r0, r7, 0 bl sub_81B2E28 _081B0A02: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0948 thumb_func_start sub_81B0A10 sub_81B0A10: @ 81B0A10 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 movs r1, 0x64 adds r2, r0, 0 muls r2, r1 ldr r1, =gPlayerParty adds r6, r2, r1 ldr r7, =gUnknown_0203CEDC ldr r1, [r7] lsls r5, r0, 4 adds r1, r5, r1 ldr r2, [r1] ldrb r0, [r1, 0x8] movs r1, 0 str r1, [sp] movs r1, 0x1 str r1, [sp, 0x4] ldr r4, [r2] movs r1, 0 movs r2, 0 movs r3, 0 bl _call_via_r4 ldr r1, [r7] adds r1, r5 adds r0, r6, 0 movs r2, 0 bl sub_81B2A70 adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B0A7C ldr r1, [r7] adds r1, r5 adds r0, r6, 0 movs r2, 0 bl sub_81B2AC8 ldr r1, [r7] adds r1, r5 adds r0, r6, 0 movs r2, 0 bl sub_81B2B8C _081B0A7C: ldr r1, [r7] adds r1, r5 mov r0, r8 movs r2, 0 bl sub_81B2FA8 add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0A10 thumb_func_start sub_81B0A9C sub_81B0A9C: @ 81B0A9C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r6, =gUnknown_0203CEF8 bl sub_81B85AC lsls r0, 24 cmp r0, 0 bne _081B0AD6 adds r0, r5, 0 movs r1, 0x7 bl sub_81B0A10 b _081B0B02 .pool _081B0AC8: adds r1, r4, 0x2 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_81B0A10 b _081B0B02 _081B0AD6: movs r4, 0 b _081B0AEE _081B0ADA: adds r1, r6, r4 ldrb r0, [r1] cmp r0, 0 beq _081B0AE8 subs r0, 0x1 cmp r0, r5 beq _081B0AC8 _081B0AE8: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B0AEE: bl sub_81B8830 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _081B0ADA adds r0, r5, 0 movs r1, 0x1 bl sub_81B0A10 _081B0B02: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B0A9C thumb_func_start sub_81B0B08 sub_81B0B08: @ 81B0B08 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_80DAE0C lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bhi _081B0B5A lsls r0, 2 ldr r1, =_081B0B34 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B0B34: .4byte _081B0B48 .4byte _081B0B52 .4byte _081B0B52 .4byte _081B0B48 .4byte _081B0B48 _081B0B48: adds r0, r4, 0 movs r1, 0x7 bl sub_81B0A10 b _081B0B5A _081B0B52: adds r0, r4, 0 movs r1, 0x6 bl sub_81B0A10 _081B0B5A: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0B08 thumb_func_start sub_81B0B60 sub_81B0B60: @ 81B0B60 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl GetNumberOfRelearnableMoves lsls r0, 24 cmp r0, 0 bne _081B0B88 adds r0, r4, 0 movs r1, 0x9 bl sub_81B0A10 b _081B0B90 .pool _081B0B88: adds r0, r4, 0 movs r1, 0x8 bl sub_81B0A10 _081B0B90: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0B60 thumb_func_start sub_81B0B98 sub_81B0B98: @ 81B0B98 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_81B218C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B0BB6 adds r0, r4, 0 movs r1, 0x6 bl sub_81B0A10 b _081B0BBE _081B0BB6: adds r0, r4, 0 movs r1, 0x7 bl sub_81B0A10 _081B0BBE: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0B98 thumb_func_start sub_81B0BC4 sub_81B0BC4: @ 81B0BC4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B0BEC adds r0, r4, 0 movs r1, 0xB bl sub_81B0A10 b _081B0BF4 .pool _081B0BEC: adds r0, r4, 0 movs r1, 0xC bl sub_81B0A10 _081B0BF4: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0BC4 thumb_func_start sub_81B0BFC sub_81B0BFC: @ 81B0BFC push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 ldr r0, =gUnknown_0203CE7C ldrh r4, [r0] ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0xC bne _081B0C40 ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gSpecialVar_0x8005 ldrb r2, [r0] adds r0, r5, 0 movs r1, 0 bl sub_81B0C94 b _081B0C8A .pool _081B0C40: cmp r0, 0x3 bne _081B0C56 adds r0, r4, 0 bl CheckIfItemIsTMHMOrEvolutionStone lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B0C5A cmp r0, 0x2 beq _081B0C66 _081B0C56: movs r0, 0 b _081B0C8C _081B0C5A: adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_81B0C94 b _081B0C8A _081B0C66: adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B0C82 adds r0, r6, 0 movs r1, 0x3 adds r2, r4, 0 bl GetEvolutionTargetSpecies lsls r0, 16 cmp r0, 0 bne _081B0C56 _081B0C82: adds r0, r5, 0 movs r1, 0 bl sub_81B0A10 _081B0C8A: movs r0, 0x1 _081B0C8C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81B0BFC thumb_func_start sub_81B0C94 sub_81B0C94: @ 81B0C94 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r1, 16 lsls r2, 24 lsrs r2, 24 movs r0, 0x64 muls r0, r4 ldr r3, =gPlayerParty adds r0, r3 bl sub_81B22D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _081B0CD2 cmp r0, 0x2 bgt _081B0CC4 cmp r0, 0x1 beq _081B0CC8 b _081B0CDC .pool _081B0CC4: cmp r0, 0x3 bne _081B0CDC _081B0CC8: adds r0, r4, 0 movs r1, 0x9 bl sub_81B0A10 b _081B0CE4 _081B0CD2: adds r0, r4, 0 movs r1, 0xA bl sub_81B0A10 b _081B0CE4 _081B0CDC: adds r0, r4, 0 movs r1, 0x8 bl sub_81B0A10 _081B0CE4: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B0C94 thumb_func_start sub_81B0CEC sub_81B0CEC: @ 81B0CEC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEDC lsls r2, r0, 4 ldr r1, [r1] adds r6, r1, r2 subs r0, 0x3 lsls r0, 24 ldr r5, =gUnknown_02022FF8 lsrs r0, 19 mov r8, r0 adds r7, r0, r5 ldrh r0, [r7] cmp r0, 0 bne _081B0D24 ldrb r0, [r6, 0x8] bl sub_81B2720 b _081B0D8E .pool _081B0D24: ldr r2, [r6] ldrb r0, [r6, 0x8] movs r1, 0 str r1, [sp] str r1, [sp, 0x4] ldr r4, [r2] movs r2, 0 movs r3, 0 bl _call_via_r4 ldr r4, =gStringVar1 adds r5, 0x4 add r5, r8 adds r0, r4, 0 adds r1, r5, 0 bl StringCopy adds r0, r4, 0 bl StringGetEnd10 adds r0, r4, 0 bl sub_81DB52C ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x4 adds r1, r4, 0 movs r2, 0 bl sub_81B2A3C ldrb r0, [r7, 0xF] adds r1, r6, 0 bl sub_81B2B40 ldrb r0, [r7, 0x1C] ldrh r1, [r7] adds r2, r5, 0 adds r3, r6, 0 bl sub_81B2BF4 ldrh r0, [r7, 0x10] adds r1, r6, 0 bl sub_81B2D3C ldrh r0, [r7, 0x12] adds r1, r6, 0 bl sub_81B2DDC ldrh r0, [r7, 0x10] ldrh r1, [r7, 0x12] adds r2, r6, 0 bl sub_81B2E64 _081B0D8E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0CEC thumb_func_start sub_81B0DA0 sub_81B0DA0: @ 81B0DA0 push {r4,r5,lr} ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] movs r4, 0x86 lsls r4, 2 adds r0, r4 ldrb r0, [r0] bl sub_81B07E0 ldr r1, [r5] adds r1, r4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _081B0DCC movs r0, 0 b _081B0DCE .pool _081B0DCC: movs r0, 0x1 _081B0DCE: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_81B0DA0 thumb_func_start sub_81B0DD4 sub_81B0DD4: @ 81B0DD4 lsls r0, 16 ldr r1, =gUnknown_0203CEE0 lsrs r0, 11 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .pool thumb_func_end sub_81B0DD4 thumb_func_start party_menu_add_per_mon_objects_internal party_menu_add_per_mon_objects_internal: @ 81B0DE8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B0E98 cmp r7, 0x2 bls _081B0E98 subs r0, r7, 0x3 lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r0, =gUnknown_02022FF8 mov r9, r0 mov r2, r10 lsls r2, 5 mov r8, r2 mov r6, r8 add r6, r9 ldrh r0, [r6] cmp r0, 0 beq _081B0EDC mov r1, r9 adds r1, 0x18 add r1, r8 ldr r1, [r1] ldr r4, =gUnknown_0203CEDC lsls r5, r7, 4 ldr r2, [r4] adds r2, r5 movs r3, 0 str r3, [sp] bl party_menu_link_mon_icon_anim ldrh r0, [r6] ldrh r1, [r6, 0x2] ldr r2, [r4] adds r2, r5 bl party_menu_link_mon_held_item_object ldrh r0, [r6] ldr r1, [r4] adds r1, r5 bl party_menu_link_mon_pokeball_object ldrh r0, [r6, 0x10] cmp r0, 0 bne _081B0E68 movs r3, 0x7 b _081B0E78 .pool _081B0E68: mov r0, r9 adds r0, 0x14 add r0, r8 ldr r0, [r0] bl pokemon_ailments_get_primary lsls r0, 24 lsrs r3, r0, 24 _081B0E78: ldr r1, =gUnknown_02022FF8 mov r2, r10 lsls r0, r2, 5 adds r0, r1 ldrh r0, [r0] ldr r1, =gUnknown_0203CEDC ldr r2, [r1] adds r2, r5 adds r1, r3, 0 bl party_menu_link_mon_status_condition_object b _081B0EDC .pool _081B0E98: movs r0, 0x64 adds r1, r7, 0 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 adds r0, r6, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B0EDC ldr r4, =gUnknown_0203CEDC lsls r5, r7, 4 ldr r1, [r4] adds r1, r5 adds r0, r6, 0 adds r2, r7, 0 bl party_menu_icon_anim ldr r1, [r4] adds r1, r5 adds r0, r6, 0 bl party_menu_held_item_object ldr r1, [r4] adds r1, r5 adds r0, r6, 0 bl party_menu_pokeball_object ldr r1, [r4] adds r1, r5 adds r0, r6, 0 bl party_menu_status_condition_object _081B0EDC: 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 party_menu_add_per_mon_objects_internal thumb_func_start party_menu_add_per_mon_objects party_menu_add_per_mon_objects: @ 81B0EF4 push {r4,r5,lr} ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] movs r4, 0x86 lsls r4, 2 adds r0, r4 ldrb r0, [r0] bl party_menu_add_per_mon_objects_internal ldr r1, [r5] adds r1, r4 ldrh r0, [r1] adds r0, 0x1 strh r0, [r1] lsls r0, 16 asrs r0, 16 cmp r0, 0x6 beq _081B0F20 movs r0, 0 b _081B0F22 .pool _081B0F20: movs r0, 0x1 _081B0F22: pop {r4,r5} pop {r1} bx r1 thumb_func_end party_menu_add_per_mon_objects thumb_func_start sub_81B0F28 sub_81B0F28: @ 81B0F28 push {r4,lr} sub sp, 0xC ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B0F54 movs r0, 0x7 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r1, 0xE movs r2, 0x17 movs r3, 0x11 bl FillBgTilemapBufferRect b _081B0FBC .pool _081B0F54: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B0F94 movs r0, 0xBF movs r1, 0x88 bl sub_81B5F74 ldr r3, [r4] lsls r0, 24 lsrs r0, 24 movs r1, 0x7F ands r0, r1 lsls r0, 4 ldrh r2, [r3, 0x8] ldr r1, =0xfffff80f ands r1, r2 orrs r1, r0 strh r1, [r3, 0x8] bl sub_81B120C movs r0, 0xBF movs r1, 0x98 bl sub_81B5F74 b _081B0F9C .pool _081B0F94: movs r0, 0xC6 movs r1, 0x94 bl sub_81B5F34 _081B0F9C: ldr r3, [r4] lsls r0, 24 lsrs r0, 24 movs r1, 0x7F ands r0, r1 lsls r0, 11 ldr r1, [r3, 0x8] ldr r2, =0xfffc07ff ands r1, r2 orrs r1, r0 str r1, [r3, 0x8] ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] movs r1, 0x1 bl sub_81B0FCC _081B0FBC: add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B0F28 thumb_func_start sub_81B0FCC sub_81B0FCC: @ 81B0FCC push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 lsls r0, 24 lsrs r7, r0, 24 lsls r1, 24 lsrs r1, 24 mov r8, r1 cmp r7, 0x6 beq _081B1038 cmp r7, 0x7 beq _081B1074 movs r0, 0x64 muls r0, r7 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B10E8 ldr r6, =gUnknown_0203CEDC lsls r5, r7, 4 ldr r4, [r6] adds r4, r5 adds r0, r7, 0 mov r1, r8 bl sub_81B10F8 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B2748 ldr r0, [r6] adds r0, r5, r0 ldrb r0, [r0, 0x9] mov r1, r8 bl sub_81B5B6C ldr r0, [r6] adds r5, r0 ldrb r0, [r5, 0xB] mov r1, r8 bl sub_81B5F98 b _081B10E8 .pool _081B1038: mov r0, r8 cmp r0, 0 bne _081B1052 movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 bl sub_8199C30 b _081B1064 _081B1052: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x17 movs r2, 0x10 movs r3, 0x7 bl sub_8199C30 _081B1064: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrh r0, [r0, 0x8] lsls r0, 21 b _081B10DA .pool _081B1074: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 bne _081B10A6 mov r0, r8 cmp r0, 0 bne _081B1098 movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x17 movs r2, 0x11 b _081B10B8 .pool _081B1098: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x17 movs r2, 0x11 b _081B10B8 _081B10A6: mov r0, r8 cmp r0, 0 bne _081B10C0 movs r0, 0x2 str r0, [sp] movs r0, 0x1 str r0, [sp, 0x4] movs r1, 0x17 movs r2, 0x12 _081B10B8: movs r3, 0x7 bl sub_8199C30 b _081B10D2 _081B10C0: movs r0, 0x2 str r0, [sp] str r0, [sp, 0x4] movs r0, 0x1 movs r1, 0x17 movs r2, 0x12 movs r3, 0x7 bl sub_8199C30 _081B10D2: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldr r0, [r0, 0x8] lsls r0, 14 _081B10DA: lsrs r0, 25 mov r1, r8 bl sub_81B5F98 movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram _081B10E8: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B0FCC thumb_func_start sub_81B10F8 sub_81B10F8: @ 81B10F8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r1, 24 movs r4, 0 cmp r1, 0x1 bne _081B110A movs r4, 0x1 _081B110A: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B1120 movs r0, 0x2 orrs r4, r0 _081B1120: adds r0, r5, 0 bl sub_81B118C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1136 movs r0, 0x8 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B1136: ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0xB] adds r2, r0, 0 cmp r1, 0x9 bne _081B1148 movs r0, 0x10 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B1148: cmp r1, 0x8 bne _081B1164 movs r0, 0x9 ldrsb r0, [r2, r0] cmp r5, r0 beq _081B115C movs r0, 0xA ldrsb r0, [r2, r0] cmp r5, r0 bne _081B1164 _081B115C: movs r0, 0x4 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B1164: ldrb r0, [r2, 0xB] cmp r0, 0xA bne _081B117A movs r0, 0x9 ldrsb r0, [r2, r0] cmp r5, r0 bne _081B117A movs r0, 0x20 orrs r4, r0 lsls r0, r4, 24 lsrs r4, r0, 24 _081B117A: adds r0, r4, 0 pop {r4,r5} pop {r1} bx r1 .pool thumb_func_end sub_81B10F8 thumb_func_start sub_81B118C sub_81B118C: @ 81B118C push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0x30 ands r0, r1 cmp r0, 0x20 bne _081B11B4 cmp r2, 0x1 beq _081B11AA cmp r2, 0x4 beq _081B11AA cmp r2, 0x5 bne _081B11B4 _081B11AA: movs r0, 0x1 b _081B11F8 .pool _081B11B4: cmp r2, 0x2 bhi _081B11F6 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 beq _081B11F6 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B11F6 adds r0, r2, 0 bl sub_81B8F38 ldr r1, =gBattleStruct ldr r1, [r1] movs r2, 0xA8 lsls r2, 2 adds r1, r2 ldrb r1, [r1] lsls r0, 24 lsrs r0, 24 asrs r1, r0 movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _081B11F8 _081B11F6: movs r0, 0 _081B11F8: pop {r1} bx r1 .pool thumb_func_end sub_81B118C thumb_func_start sub_81B120C sub_81B120C: @ 81B120C push {r4-r6,lr} sub sp, 0xC ldr r1, =gUnknown_086157C4 movs r6, 0x7 str r6, [sp] movs r5, 0x2 str r5, [sp, 0x4] movs r4, 0x11 str r4, [sp, 0x8] movs r0, 0x1 movs r2, 0x17 movs r3, 0x10 bl CopyToBgTilemapBufferRect_ChangePalette ldr r1, =gUnknown_086157E0 str r6, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] movs r0, 0x1 movs r2, 0x17 movs r3, 0x12 bl CopyToBgTilemapBufferRect_ChangePalette movs r0, 0x1 bl schedule_bg_copy_tilemap_to_vram add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B120C thumb_func_start sub_81B1250 sub_81B1250: @ 81B1250 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x49 ands r0, r1 cmp r0, 0x49 bne _081B1280 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B1280 movs r0, 0x1 b _081B1282 .pool _081B1280: movs r0, 0 _081B1282: pop {r1} bx r1 thumb_func_end sub_81B1250 thumb_func_start sub_81B1288 sub_81B1288: @ 81B1288 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 movs r0, 0x64 bl Alloc adds r5, r0, 0 adds r1, r4, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 adds r1, r6, 0 movs r2, 0x64 bl memcpy adds r0, r6, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r5, 0 bl Free pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B1288 thumb_func_start sub_81B12C0 sub_81B12C0: @ 81B12C0 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x1 negs r0, r0 movs r1, 0 str r1, [sp] movs r2, 0 movs r3, 0x10 bl BeginNormalPaletteFade ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =c3_0811FAB4 str r1, [r0] add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B12C0 thumb_func_start c3_0811FAB4 c3_0811FAB4: @ 81B12F8 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B134C ldr r4, =gUnknown_0203CEC8 ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _081B131A bl sub_81B9080 _081B131A: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldr r0, [r0, 0x4] cmp r0, 0 beq _081B1338 bl SetMainCallback2 b _081B133E .pool _081B1338: ldr r0, [r4] bl SetMainCallback2 _081B133E: bl ResetSpriteData bl sub_81B06F4 adds r0, r5, 0 bl DestroyTask _081B134C: pop {r4,r5} pop {r0} bx r0 thumb_func_end c3_0811FAB4 thumb_func_start brm_get_pokemon_selection brm_get_pokemon_selection: @ 81B1354 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] bx lr .pool thumb_func_end brm_get_pokemon_selection thumb_func_start sub_81B1360 sub_81B1360: @ 81B1360 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r0, 28 bx lr .pool thumb_func_end sub_81B1360 thumb_func_start sub_81B1370 sub_81B1370: @ 81B1370 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B13E0 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B13E0 bl sub_81B13EC adds r4, r0, 0 bl sub_81B1760 lsls r0, 16 lsrs r0, 16 cmp r0, 0x2 beq _081B13C0 cmp r0, 0x2 bgt _081B13B0 cmp r0, 0x1 beq _081B13B6 b _081B13E0 .pool _081B13B0: cmp r0, 0x8 beq _081B13CA b _081B13E0 _081B13B6: adds r0, r5, 0 adds r1, r4, 0 bl sub_81B140C b _081B13E0 _081B13C0: adds r0, r6, 0 adds r1, r4, 0 bl sub_81B15D0 b _081B13E0 _081B13CA: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B13E0 movs r0, 0x5 bl PlaySE bl sub_81B4F88 _081B13E0: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B1370 thumb_func_start sub_81B13EC sub_81B13EC: @ 81B13EC push {lr} ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0xB] cmp r1, 0x8 beq _081B13FA cmp r1, 0xA bne _081B1404 _081B13FA: adds r0, 0xA b _081B1406 .pool _081B1404: adds r0, 0x9 _081B1406: pop {r1} bx r1 thumb_func_end sub_81B13EC thumb_func_start sub_81B140C sub_81B140C: @ 81B140C push {r4,r5,lr} adds r4, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x6 bne _081B142C ldr r0, =gUnknown_0203CEC8 ldr r1, [r0, 0x4] adds r0, r5, 0 bl _call_via_r1 b _081B159E .pool _081B142C: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] subs r0, 0x3 cmp r0, 0xA bls _081B1438 b _081B1592 _081B1438: lsls r0, 2 ldr r1, =_081B144C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B144C: .4byte _081B149C .4byte _081B1592 .4byte _081B1538 .4byte _081B1538 .4byte _081B1510 .4byte _081B1560 .4byte _081B1592 .4byte _081B1478 .4byte _081B156E .4byte _081B14E8 .4byte _081B157C _081B1478: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 bne _081B1486 b _081B159E _081B1486: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81615A8 b _081B159E .pool _081B149C: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 bne _081B14AA b _081B159E _081B14AA: ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 ldr r2, =gUnknown_0203CEC4 cmp r0, 0x1 bne _081B14BE ldr r1, [r2] ldr r0, =sub_81B9140 str r0, [r1, 0x4] _081B14BE: ldr r0, [r2] adds r0, 0xD bl sub_81B302C ldr r0, =gUnknown_03006328 ldr r1, =sub_81B6794 ldr r2, [r0] adds r0, r5, 0 bl _call_via_r2 b _081B159E .pool _081B14E8: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B7E4C b _081B159E .pool _081B1510: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B8474 b _081B159E .pool _081B1538: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B7FAC b _081B159E .pool _081B1560: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B3938 b _081B159E _081B156E: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B12C0 b _081B159E _081B157C: adds r0, r4, 0 bl sub_81B15A4 lsls r0, 24 cmp r0, 0 beq _081B159E ldrb r1, [r4] adds r0, r5, 0 bl sub_81B21AC b _081B159E _081B1592: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B36FC _081B159E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B140C thumb_func_start sub_81B15A4 sub_81B15A4: @ 81B15A4 push {lr} ldrb r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _081B15C4 movs r0, 0x1 b _081B15CC .pool _081B15C4: movs r0, 0x20 bl PlaySE movs r0, 0 _081B15CC: pop {r1} bx r1 thumb_func_end sub_81B15A4 thumb_func_start sub_81B15D0 sub_81B15D0: @ 81B15D0 push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x8 beq _081B1602 cmp r0, 0x8 bgt _081B15F0 cmp r0, 0x1 beq _081B15FA b _081B161E .pool _081B15F0: cmp r0, 0xA beq _081B1602 cmp r0, 0xD beq _081B1610 b _081B161E _081B15FA: movs r0, 0x20 bl PlaySE b _081B1652 _081B1602: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B407C b _081B1652 _081B1610: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B2210 b _081B1652 _081B161E: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B1660 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B1652 bl sub_81221AC lsls r0, 24 cmp r0, 0 bne _081B1642 ldr r1, =gSpecialVar_0x8004 movs r0, 0x7 strh r0, [r1] _081B1642: ldr r0, =gUnknown_0203CEE8 movs r1, 0 strb r1, [r0] movs r0, 0x7 strb r0, [r5] adds r0, r4, 0 bl sub_81B12C0 _081B1652: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B15D0 thumb_func_start sub_81B1660 sub_81B1660: @ 81B1660 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] movs r1, 0xF ands r1, r0 cmp r1, 0x2 bne _081B1680 ldr r5, =gUnknown_085EA110 b _081B168A .pool _081B1680: cmp r1, 0x4 bne _081B168A bl sub_81B88BC adds r5, r0, 0 _081B168A: cmp r5, 0 beq _081B16CC ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C ldr r4, =gStringVar4 adds r0, r4, 0 adds r1, r5, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B16D4 str r1, [r0] movs r0, 0x1 b _081B16CE .pool _081B16CC: movs r0, 0 _081B16CE: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81B1660 thumb_func_start sub_81B16D4 sub_81B16D4: @ 81B16D4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B16F8 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1708 str r0, [r1] _081B16F8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B16D4 thumb_func_start sub_81B1708 sub_81B1708: @ 81B1708 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B172E cmp r1, 0 bgt _081B1728 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B174C b _081B1758 _081B1728: cmp r1, 0x1 beq _081B1752 b _081B1758 _081B172E: ldr r0, =gUnknown_0203CEE8 strb r1, [r0] ldr r1, =gUnknown_0203CEC8 movs r0, 0x7 strb r0, [r1, 0x9] bl sub_81B8558 adds r0, r4, 0 bl sub_81B12C0 b _081B1758 .pool _081B174C: movs r0, 0x5 bl PlaySE _081B1752: adds r0, r4, 0 bl sub_81B1C1C _081B1758: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B1708 thumb_func_start sub_81B1760 sub_81B1760: @ 81B1760 push {r4,lr} adds r4, r0, 0 ldr r0, =gMain ldrh r1, [r0, 0x30] adds r3, r0, 0 cmp r1, 0x20 beq _081B178E cmp r1, 0x20 bgt _081B177C cmp r1, 0x10 beq _081B1792 b _081B1796 .pool _081B177C: cmp r1, 0x40 beq _081B1786 cmp r1, 0x80 beq _081B178A b _081B1796 _081B1786: movs r1, 0xFF b _081B17B2 _081B178A: movs r1, 0x1 b _081B17B2 _081B178E: movs r1, 0xFE b _081B17B2 _081B1792: movs r1, 0x2 b _081B17B2 _081B1796: bl sub_812210C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B17AA cmp r0, 0x2 beq _081B17AE movs r1, 0 b _081B17B0 _081B17AA: movs r1, 0xFF b _081B17B0 _081B17AE: movs r1, 0x1 _081B17B0: ldr r3, =gMain _081B17B2: ldrh r2, [r3, 0x2E] movs r0, 0x8 ands r0, r2 cmp r0, 0 beq _081B17C4 movs r0, 0x8 b _081B17F0 .pool _081B17C4: lsls r0, r1, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B17D6 adds r0, r4, 0 bl sub_81B17F8 movs r0, 0 b _081B17F0 _081B17D6: movs r0, 0x1 ands r0, r2 cmp r0, 0 beq _081B17EA movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x7 bne _081B17EA movs r0, 0x2 b _081B17F0 _081B17EA: ldrh r1, [r3, 0x2E] movs r0, 0x3 ands r0, r1 _081B17F0: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B1760 thumb_func_start sub_81B17F8 sub_81B17F8: @ 81B17F8 push {r4,r5,lr} adds r5, r0, 0 lsls r1, 24 lsrs r1, 24 ldrb r4, [r5] ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x8] lsls r0, 26 lsrs r0, 30 cmp r0, 0 bne _081B1820 lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl sub_81B1854 b _081B182A .pool _081B1820: lsls r1, 24 asrs r1, 24 adds r0, r5, 0 bl sub_81B195C _081B182A: movs r1, 0 ldrsb r1, [r5, r1] lsls r4, 24 asrs r0, r4, 24 cmp r1, r0 beq _081B184C movs r0, 0x5 bl PlaySE lsrs r0, r4, 24 movs r1, 0 bl sub_81B0FCC ldrb r0, [r5] movs r1, 0x1 bl sub_81B0FCC _081B184C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B17F8 thumb_func_start sub_81B1854 sub_81B1854: @ 81B1854 push {r4,lr} adds r4, r0, 0 lsls r1, 24 asrs r1, 24 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B187A cmp r1, r0 bgt _081B1870 subs r0, 0x1 cmp r1, r0 beq _081B1924 b _081B1952 _081B1870: cmp r1, 0x1 beq _081B18C0 cmp r1, 0x2 beq _081B18F8 b _081B1952 _081B187A: ldrb r0, [r4] movs r1, 0 ldrsb r1, [r4, r1] cmp r1, 0 bne _081B1888 movs r0, 0x7 b _081B1950 _081B1888: cmp r1, 0x6 bne _081B1898 ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 b _081B1950 .pool _081B1898: cmp r1, 0x7 bne _081B18BC ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B18B0 movs r0, 0x6 b _081B1950 .pool _081B18B0: ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 b _081B1950 .pool _081B18BC: subs r0, 0x1 b _081B1950 _081B18C0: ldrb r2, [r4] movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x7 beq _081B194E movs r1, 0 ldrsb r1, [r4, r1] ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 cmp r1, r0 bne _081B18F4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B18F0 movs r0, 0x6 b _081B1950 .pool _081B18F0: movs r0, 0x7 b _081B1950 _081B18F4: adds r0, r2, 0x1 b _081B1950 _081B18F8: ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r0, 0x1 beq _081B1952 movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _081B1952 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r0, 29 cmp r0, 0 bne _081B1950 movs r0, 0x1 b _081B1950 .pool _081B1924: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 beq _081B1952 cmp r0, 0x6 beq _081B1952 cmp r0, 0x7 beq _081B1952 ldr r0, =gUnknown_0203CEC4 ldr r3, [r0] movs r1, 0 ldrsb r1, [r4, r1] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x8] movs r0, 0xF negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] _081B194E: movs r0, 0 _081B1950: strb r0, [r4] _081B1952: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B1854 thumb_func_start sub_81B195C sub_81B195C: @ 81B195C push {r4-r6,lr} adds r4, r0, 0 lsls r1, 24 lsrs r2, r1, 24 asrs r5, r1, 24 movs r6, 0x1 negs r6, r6 cmp r5, r6 beq _081B1988 cmp r5, r6 bgt _081B197E movs r0, 0x2 negs r0, r0 cmp r5, r0 bne _081B197C b _081B1A9C _081B197C: b _081B1AF4 _081B197E: cmp r5, 0x1 beq _081B19E4 cmp r5, 0x2 beq _081B1A24 b _081B1AF4 _081B1988: ldrb r1, [r4] movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _081B1996 movs r0, 0x7 b _081B1AF2 _081B1996: cmp r0, 0x6 bne _081B19A8 ldr r0, =gPlayerPartyCount ldrb r0, [r0] subs r0, 0x1 b _081B1AF2 .pool _081B19A8: cmp r0, 0x7 bne _081B19C4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B19C0 movs r0, 0x6 b _081B1AF2 .pool _081B19C0: subs r0, r1, 0x1 strb r0, [r4] _081B19C4: movs r0, 0 ldrsb r0, [r4, r0] lsls r1, r2, 24 asrs r1, 24 bl sub_81B1B00 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 movs r1, 0x1 negs r1, r1 cmp r0, r1 bne _081B19E0 b _081B1AF4 _081B19E0: strb r2, [r4] b _081B1AF4 _081B19E4: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0x6 bne _081B19F0 movs r0, 0x7 b _081B1AF2 _081B19F0: cmp r0, 0x7 bne _081B19F8 movs r0, 0 b _081B1AF2 _081B19F8: movs r0, 0 ldrsb r0, [r4, r0] movs r1, 0x1 bl sub_81B1B00 lsls r0, 24 lsrs r2, r0, 24 asrs r0, 24 cmp r0, r6 bne _081B19E0 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B1A20 movs r0, 0x6 b _081B1AF2 .pool _081B1A20: movs r0, 0x7 b _081B1AF2 _081B1A24: movs r0, 0 ldrsb r0, [r4, r0] cmp r0, 0 bne _081B1A5C ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r6, r0, 29 cmp r6, 0x3 bne _081B1A54 ldr r0, =gPlayerParty + 300 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1AF4 strb r6, [r4] b _081B1AF4 .pool _081B1A54: ldr r0, =gPlayerParty + 200 b _081B1A70 .pool _081B1A5C: cmp r0, 0x1 bne _081B1AF4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 28 lsrs r5, r0, 29 cmp r5, 0x5 bne _081B1A88 ldr r0, =gPlayerParty + 500 _081B1A70: movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1AF4 strb r5, [r4] b _081B1AF4 .pool _081B1A88: ldr r0, =gPlayerParty + 400 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1AF4 movs r0, 0x4 b _081B1AF2 .pool _081B1A9C: ldrb r1, [r4] subs r0, r1, 0x2 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081B1ACC ldr r0, =gUnknown_0203CEC4 ldr r3, [r0] movs r1, 0 ldrsb r1, [r4, r1] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x8] movs r0, 0xF negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] movs r0, 0 b _081B1AF2 .pool _081B1ACC: subs r0, r1, 0x4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081B1AF4 ldr r0, =gUnknown_0203CEC4 ldr r3, [r0] movs r1, 0 ldrsb r1, [r4, r1] movs r0, 0x7 ands r1, r0 lsls r1, 1 ldrb r2, [r3, 0x8] movs r0, 0xF negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r3, 0x8] movs r0, 0x1 _081B1AF2: strb r0, [r4] _081B1AF4: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B195C thumb_func_start sub_81B1B00 sub_81B1B00: @ 81B1B00 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 asrs r6, r1, 24 _081B1B0A: lsls r0, r5, 24 asrs r0, 24 adds r0, r6 lsls r0, 24 lsrs r5, r0, 24 lsls r1, r5, 24 lsrs r0, r1, 24 cmp r0, 0x5 bhi _081B1B38 asrs r4, r1, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B1B0A adds r0, r4, 0 b _081B1B3C .pool _081B1B38: movs r0, 0x1 negs r0, r0 _081B1B3C: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_81B1B00 thumb_func_start GetMonNickname @ u8 *GetMonNickname(struct pokemon *mon, u8 *dest) GetMonNickname: @ 81B1B44 push {r4,lr} adds r4, r1, 0 movs r1, 0x2 adds r2, r4, 0 bl GetMonData adds r0, r4, 0 bl StringGetEnd10 pop {r4} pop {r1} bx r1 thumb_func_end GetMonNickname thumb_func_start sub_81B1B5C sub_81B1B5C: @ 81B1B5C push {r4,lr} lsls r4, r1, 24 lsrs r4, 24 bl sub_81B3300 ldr r0, =sub_81B1B8C movs r1, 0x1 bl CreateTask lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 strh r4, [r1, 0x8] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81B1B5C thumb_func_start sub_81B1B8C sub_81B1B8C: @ 81B1B8C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 movs r0, 0x6 bl sub_8121F20 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 beq _081B1BC8 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r2, 0x8 ldrsh r0, [r1, r2] cmp r0, 0 bne _081B1BC2 movs r0, 0x6 movs r1, 0 bl sub_8198070 movs r0, 0x6 bl ClearWindowTilemap _081B1BC2: adds r0, r5, 0 bl DestroyTask _081B1BC8: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1B8C thumb_func_start sub_81B1BD4 sub_81B1BD4: @ 81B1BD4 push {lr} ldr r0, =sub_81B1B8C bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_81B1BD4 thumb_func_start sub_81B1BE8 sub_81B1BE8: @ 81B1BE8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B1C0E movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] _081B1C0E: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B1BE8 thumb_func_start sub_81B1C1C sub_81B1C1C: @ 81B1C1C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B1C74 movs r0, 0x6 movs r1, 0 bl sub_8198070 movs r0, 0x6 bl ClearWindowTilemap bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1C60 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1BE8 b _081B1C72 .pool _081B1C60: movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 _081B1C72: str r0, [r1] _081B1C74: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1C1C thumb_func_start sub_81B1C84 sub_81B1C84: @ 81B1C84 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E991B adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1C84 thumb_func_start sub_81B1CD0 sub_81B1CD0: @ 81B1CD0 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E999D adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1CD0 thumb_func_start sub_81B1D1C sub_81B1D1C: @ 81B1D1C push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E993A adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1D1C thumb_func_start sub_81B1D68 sub_81B1D68: @ 81B1D68 push {r4,r5,lr} adds r4, r1, 0 adds r5, r2, 0 lsls r0, 16 lsrs r0, 16 lsls r4, 16 lsrs r4, 16 lsls r5, 24 lsrs r5, 24 ldr r1, =gStringVar1 bl CopyItemName ldr r1, =gStringVar2 adds r0, r4, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E99DB adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 adds r1, r5, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1D68 thumb_func_start sub_81B1DB8 sub_81B1DB8: @ 81B1DB8 push {r4-r7,lr} sub sp, 0x4 adds r6, r0, 0 lsls r5, r1, 16 lsrs r4, r5, 16 adds r7, r4, 0 adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1DE2 adds r0, r6, 0 adds r1, r4, 0 bl sub_80D4420 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081B1DF6 _081B1DE2: mov r0, sp strb r7, [r0] mov r1, sp lsrs r0, r5, 24 strb r0, [r1, 0x1] adds r0, r6, 0 movs r1, 0xC mov r2, sp bl SetMonData _081B1DF6: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B1DB8 thumb_func_start sub_81B1E00 sub_81B1E00: @ 81B1E00 push {r4,lr} sub sp, 0x4 adds r4, r0, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 mov r1, sp strh r0, [r1] cmp r0, 0 bne _081B1E1C movs r0, 0 b _081B1E3E _081B1E1C: movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 beq _081B1E3C movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r4, 0 movs r1, 0xC mov r2, sp bl SetMonData movs r0, 0x2 b _081B1E3E _081B1E3C: movs r0, 0x1 _081B1E3E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B1E00 thumb_func_start pokemon_item_not_removed pokemon_item_not_removed: @ 81B1E48 push {lr} ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9A69 bl StringExpandPlaceholders pop {r0} bx r0 .pool thumb_func_end pokemon_item_not_removed thumb_func_start sub_81B1E60 sub_81B1E60: @ 81B1E60 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r0, 2 add r0, r8 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 ldrh r0, [r7, 0x4] ldrh r1, [r7] adds r0, r1 strh r0, [r7] ldrh r0, [r7, 0x6] subs r0, 0x1 strh r0, [r7, 0x6] movs r2, 0x8 ldrsh r0, [r7, r2] movs r5, 0x64 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x39 adds r2, r7, 0 bl SetMonData movs r3, 0x8 ldrsh r2, [r7, r3] adds r0, r2, 0 muls r0, r5 adds r0, r4 ldr r6, =gUnknown_0203CEDC lsls r2, 4 ldr r1, [r6] adds r1, r2 movs r2, 0x1 bl sub_81B2CD4 movs r0, 0x8 ldrsh r2, [r7, r0] adds r0, r2, 0 muls r0, r5 adds r0, r4 lsls r2, 4 ldr r1, [r6] adds r1, r2 bl sub_81B2E28 movs r1, 0x6 ldrsh r0, [r7, r1] cmp r0, 0 beq _081B1EDC movs r2, 0 ldrsh r1, [r7, r2] cmp r1, 0 beq _081B1EDC movs r3, 0x2 ldrsh r0, [r7, r3] cmp r1, r0 bne _081B1EFE _081B1EDC: movs r0, 0 ldrsh r1, [r7, r0] movs r2, 0xA ldrsh r0, [r7, r2] cmp r1, r0 ble _081B1EF8 ldr r0, =gStringVar2 movs r3, 0xA ldrsh r2, [r7, r3] subs r1, r2 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN _081B1EF8: mov r0, r8 bl SwitchTaskToFollowupFunc _081B1EFE: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B1E60 thumb_func_start sub_81B1F18 sub_81B1F18: @ 81B1F18 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r8, r0 mov r9, r1 adds r5, r2, 0 mov r10, r3 ldr r7, [sp, 0x20] lsls r0, 24 lsrs r0, 24 mov r8, r0 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 lsls r5, 24 lsrs r5, 24 mov r0, r10 lsls r0, 16 lsrs r0, 16 mov r10, r0 movs r0, 0x64 mov r6, r9 muls r6, r0 ldr r0, =gPlayerParty adds r6, r0 mov r0, r8 lsls r4, r0, 2 add r4, r8 lsls r4, 3 ldr r0, =gTasks + 0x8 adds r4, r0 adds r0, r6, 0 movs r1, 0x39 bl GetMonData strh r0, [r4] adds r0, r6, 0 movs r1, 0x3A bl GetMonData strh r0, [r4, 0x2] lsls r5, 24 asrs r5, 24 strh r5, [r4, 0x4] mov r0, r10 strh r0, [r4, 0x6] mov r0, r9 strh r0, [r4, 0x8] ldrh r0, [r4] strh r0, [r4, 0xA] ldr r1, =sub_81B1E60 mov r0, r8 adds r2, r7, 0 bl SetTaskFuncWithFollowupFunc pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B1F18 thumb_func_start sub_81B1FA8 sub_81B1FA8: @ 81B1FA8 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r0, r4, 2 adds r0, r4 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r3, r0, r1 cmp r5, 0x5 bhi _081B200A lsls r0, r5, 2 ldr r1, =_081B1FD4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B1FD4: .4byte _081B1FEC .4byte _081B1FF2 .4byte _081B1FF6 .4byte _081B1FFA .4byte _081B1FFE .4byte _081B2002 _081B1FEC: strh r2, [r3] strh r2, [r3, 0xA] b _081B200A _081B1FF2: strh r2, [r3, 0x2] b _081B200A _081B1FF6: strh r2, [r3, 0x4] b _081B200A _081B1FFA: strh r2, [r3, 0x6] b _081B200A _081B1FFE: strh r2, [r3, 0x8] b _081B200A _081B2002: ldr r1, =sub_81B1E60 adds r0, r4, 0 bl SetTaskFuncWithFollowupFunc _081B200A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B1FA8 thumb_func_start pokemon_ailments_get_primary pokemon_ailments_get_primary: @ 81B2014 push {lr} adds r1, r0, 0 movs r0, 0x88 ands r0, r1 cmp r0, 0 beq _081B2024 movs r0, 0x1 b _081B2056 _081B2024: movs r0, 0x40 ands r0, r1 cmp r0, 0 beq _081B2030 movs r0, 0x2 b _081B2056 _081B2030: movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _081B203C movs r0, 0x3 b _081B2056 _081B203C: movs r0, 0x20 ands r0, r1 cmp r0, 0 beq _081B2048 movs r0, 0x4 b _081B2056 _081B2048: movs r0, 0x10 ands r0, r1 cmp r0, 0 bne _081B2054 movs r0, 0 b _081B2056 _081B2054: movs r0, 0x5 _081B2056: pop {r1} bx r1 thumb_func_end pokemon_ailments_get_primary thumb_func_start sub_81B205C @ u8 sub_81B205C(struct pokemon *mon, int a2, void *a3) sub_81B205C: @ 81B205C push {r4,lr} adds r4, r0, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B206E movs r0, 0x7 b _081B2096 _081B206E: adds r0, r4, 0 movs r1, 0x37 bl GetMonData bl pokemon_ailments_get_primary lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _081B2096 adds r0, r4, 0 movs r1, 0 bl CheckPartyPokerus lsls r0, 24 cmp r0, 0 bne _081B2094 movs r0, 0 b _081B2096 _081B2094: movs r0, 0x6 _081B2096: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B205C thumb_func_start sub_81B209C sub_81B209C: @ 81B209C push {r4,r5,lr} ldr r2, =gUnknown_0203CEC8 ldrb r1, [r2, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xB bne _081B2126 adds r5, r2, 0 adds r5, 0xE movs r0, 0 strh r0, [r2, 0xE] ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0 bne _081B20FC movs r4, 0 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcs _081B2126 _081B20C4: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_81B2134 lsls r0, 16 lsrs r0, 16 lsls r0, r4 ldrh r1, [r5] adds r0, r1 strh r0, [r5] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcc _081B20C4 b _081B2126 .pool _081B20FC: movs r4, 0 b _081B211E _081B2100: movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_81B2164 lsls r0, 16 lsrs r0, 16 lsls r0, r4 ldrh r1, [r5] adds r0, r1 strh r0, [r5] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B211E: ldr r0, =gPlayerPartyCount ldrb r0, [r0] cmp r4, r0 bcc _081B2100 _081B2126: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B209C thumb_func_start sub_81B2134 sub_81B2134: @ 81B2134 push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _081B215A adds r0, r4, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 bl sub_802C908 cmp r0, 0 beq _081B215A movs r0, 0x1 b _081B215C _081B215A: movs r0, 0 _081B215C: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B2134 thumb_func_start sub_81B2164 sub_81B2164: @ 81B2164 push {r4,lr} adds r4, r0, 0 movs r1, 0x2D bl GetMonData cmp r0, 0x1 beq _081B2182 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0x55 bne _081B2182 movs r0, 0x1 b _081B2184 _081B2182: movs r0, 0 _081B2184: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B2164 thumb_func_start sub_81B218C sub_81B218C: @ 81B218C push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEC8 movs r2, 0xE ldrsh r1, [r1, r2] asrs r1, r0 movs r0, 0x1 ands r1, r0 cmp r1, 0 bne _081B21A4 movs r0, 0 _081B21A4: pop {r1} bx r1 .pool thumb_func_end sub_81B218C thumb_func_start sub_81B21AC sub_81B21AC: @ 81B21AC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r5, 0 bl sub_81B218C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B21DC movs r0, 0x5 bl PlaySE ldr r0, =gSpecialVar_0x8004 strh r5, [r0] adds r0, r4, 0 bl sub_81B12C0 b _081B21FE .pool _081B21DC: movs r0, 0x20 bl PlaySE ldr r0, =gUnknown_085EA0EE movs r1, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B21FE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B21AC thumb_func_start sub_81B2210 sub_81B2210: @ 81B2210 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_085EA110 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B2248 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B2210 thumb_func_start sub_81B2248 sub_81B2248: @ 81B2248 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B226C bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B227C str r0, [r1] _081B226C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B2248 thumb_func_start sub_81B227C sub_81B227C: @ 81B227C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B22A2 cmp r1, 0 bgt _081B229C movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B22B4 b _081B22C8 _081B229C: cmp r1, 0x1 beq _081B22BA b _081B22C8 _081B22A2: ldr r1, =gSpecialVar_0x8004 movs r0, 0x7 strh r0, [r1] adds r0, r4, 0 bl sub_81B12C0 b _081B22C8 .pool _081B22B4: movs r0, 0x5 bl PlaySE _081B22BA: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B22C8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B227C thumb_func_start sub_81B22D8 sub_81B22D8: @ 81B22D8 push {r4-r7,lr} mov r7, r8 push {r7} adds r5, r0, 0 lsls r1, 16 lsrs r4, r1, 16 adds r7, r4, 0 lsls r2, 24 lsrs r6, r2, 24 mov r8, r6 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B22FA movs r0, 0x3 b _081B2356 _081B22FA: movs r0, 0x90 lsls r0, 1 cmp r4, r0 bls _081B231C adds r1, r4, 0 subs r1, 0x21 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl CanMonLearnTMHM cmp r0, 0 beq _081B2334 adds r0, r7, 0 bl ItemIdToBattleMoveId b _081B233E _081B231C: adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_81B2370 lsls r0, 24 cmp r0, 0 bne _081B2338 _081B2334: movs r0, 0x1 b _081B2356 _081B2338: mov r0, r8 bl sub_81B2360 _081B233E: lsls r0, 16 lsrs r1, r0, 16 adds r0, r5, 0 bl pokemon_has_move lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B2354 movs r0, 0 b _081B2356 _081B2354: movs r0, 0x2 _081B2356: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81B22D8 thumb_func_start sub_81B2360 sub_81B2360: @ 81B2360 lsls r0, 24 ldr r1, =gUnknown_0861500C lsrs r0, 23 adds r0, r1 ldrh r0, [r0] bx lr .pool thumb_func_end sub_81B2360 thumb_func_start sub_81B2370 sub_81B2370: @ 81B2370 push {lr} lsls r0, 16 lsls r1, 24 lsrs r1, 24 ldr r2, =gUnknown_08615048 lsrs r0, 14 adds r0, r2 movs r2, 0x1 lsls r2, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _081B2394 movs r0, 0 b _081B2396 .pool _081B2394: movs r0, 0x1 _081B2396: pop {r1} bx r1 thumb_func_end sub_81B2370 thumb_func_start sub_81B239C sub_81B239C: @ 81B239C push {r4,lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _081B23C4 cmp r0, 0x1 bgt _081B23B2 cmp r0, 0 beq _081B23B8 b _081B23DC _081B23B2: cmp r1, 0x2 beq _081B23D0 b _081B23DC _081B23B8: ldr r0, =gUnknown_08615810 bl InitWindows b _081B23E2 .pool _081B23C4: ldr r0, =gUnknown_08615850 bl InitWindows b _081B23E2 .pool _081B23D0: ldr r0, =gUnknown_08615890 bl InitWindows b _081B23E2 .pool _081B23DC: ldr r0, =gUnknown_086158D0 bl InitWindows _081B23E2: bl DeactivateAllTextPrinters movs r4, 0 _081B23E8: adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B23E8 movs r0, 0 movs r1, 0x4F movs r2, 0xD0 bl sub_809882C bl sub_8098C64 movs r1, 0xE0 movs r2, 0x20 bl LoadPalette ldr r0, =gUnknown_0860F074 movs r1, 0xF0 movs r2, 0x20 bl LoadPalette pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B239C thumb_func_start sub_81B2428 sub_81B2428: @ 81B2428 push {r4-r6,lr} sub sp, 0x14 lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x5 bne _081B243E b _081B2554 _081B243E: cmp r2, 0x1 bne _081B24B4 ldr r0, =gUnknown_08615918 bl AddWindow adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 movs r1, 0 bl FillWindowPixelBuffer ldr r5, =gUnknown_085E8CE3 movs r0, 0 adds r1, r5, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset lsls r0, 24 lsrs r2, r0, 24 movs r0, 0 str r0, [sp] str r0, [sp, 0x4] ldr r0, =gUnknown_086157FC str r0, [sp, 0x8] movs r0, 0x1 negs r0, r0 str r0, [sp, 0xC] str r5, [sp, 0x10] adds r0, r4, 0 movs r1, 0 movs r3, 0x1 bl AddTextPrinterParametrized2 adds r0, r4, 0 bl PutWindowTilemap adds r0, r4, 0 movs r1, 0x2 bl CopyWindowToVram ldr r0, =gUnknown_08615910 bl AddWindow lsls r0, 24 lsrs r5, r0, 24 movs r6, 0 b _081B24C0 .pool _081B24B4: ldr r0, =gUnknown_08615908 bl AddWindow lsls r0, 24 lsrs r5, r0, 24 movs r6, 0x3 _081B24C0: adds r0, r5, 0 movs r1, 0 bl FillWindowPixelBuffer ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xA beq _081B2514 ldr r4, =gUnknown_085E8CF0 movs r0, 0 adds r1, r4, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset lsls r0, 24 lsrs r2, r0, 24 adds r2, r6 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_086157FC str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r4, [sp, 0x8] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl box_print b _081B2540 .pool _081B2514: ldr r4, =gUnknown_085E8CF7 movs r0, 0 adds r1, r4, 0 movs r2, 0x30 bl GetStringCenterAlignXOffset lsls r0, 24 lsrs r2, r0, 24 adds r2, r6 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_086157FC str r0, [sp] movs r0, 0x1 negs r0, r0 str r0, [sp, 0x4] str r4, [sp, 0x8] adds r0, r5, 0 movs r1, 0 movs r3, 0x1 bl box_print _081B2540: adds r0, r5, 0 bl PutWindowTilemap adds r0, r5, 0 movs r1, 0x2 bl CopyWindowToVram movs r0, 0 bl schedule_bg_copy_tilemap_to_vram _081B2554: add sp, 0x14 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2428 thumb_func_start sub_81B2564 sub_81B2564: @ 81B2564 lsls r0, 24 ldr r1, =gUnknown_0203CEC4 lsrs r0, 23 adds r0, 0x18 ldr r1, [r1] adds r1, r0 adds r0, r1, 0 bx lr .pool thumb_func_end sub_81B2564 thumb_func_start sub_81B2578 sub_81B2578: @ 81B2578 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x2C str r1, [sp, 0xC] ldr r1, [sp, 0x4C] ldr r4, [sp, 0x50] ldr r5, [sp, 0x54] lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x8] lsls r2, 24 lsrs r2, 24 str r2, [sp, 0x10] lsls r3, 24 lsrs r3, 24 str r3, [sp, 0x14] lsls r1, 24 lsrs r1, 24 str r1, [sp, 0x18] lsls r4, 24 lsrs r6, r4, 24 lsls r5, 24 lsrs r5, 24 mov r10, r5 mov r0, r10 muls r0, r6 lsls r0, 5 bl AllocZeroed mov r9, r0 cmp r0, 0 beq _081B2646 movs r5, 0 ldr r0, [sp, 0x14] lsls r0, 19 str r0, [sp, 0x1C] ldr r1, [sp, 0x18] lsls r1, 19 str r1, [sp, 0x20] lsls r2, r6, 19 str r2, [sp, 0x24] mov r0, r10 lsls r0, 19 str r0, [sp, 0x28] cmp r5, r10 bcs _081B2624 _081B25DA: movs r4, 0 adds r1, r5, 0x1 mov r8, r1 cmp r4, r6 bcs _081B261A ldr r2, [sp, 0x18] adds r0, r2, r5 ldr r2, [sp, 0x10] adds r1, r0, 0 muls r1, r2 adds r7, r1, 0 _081B25F0: ldr r1, [sp, 0x14] adds r0, r1, r4 adds r0, r7 ldr r2, [sp, 0xC] adds r0, r2, r0 ldrb r0, [r0] bl sub_81B0DD4 adds r1, r5, 0 muls r1, r6 adds r1, r4 lsls r1, 5 add r1, r9 movs r2, 0x10 bl CpuSet adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r6 bcc _081B25F0 _081B261A: mov r1, r8 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, r10 bcc _081B25DA _081B2624: ldr r0, [sp, 0x1C] lsrs r2, r0, 16 ldr r1, [sp, 0x20] lsrs r3, r1, 16 ldr r1, [sp, 0x24] lsrs r0, r1, 16 str r0, [sp] ldr r1, [sp, 0x28] lsrs r0, r1, 16 str r0, [sp, 0x4] ldr r0, [sp, 0x8] mov r1, r9 bl BlitBitmapToWindow mov r0, r9 bl Free _081B2646: add sp, 0x2C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2578 thumb_func_start sub_81B2658 sub_81B2658: @ 81B2658 push {r4-r6,lr} sub sp, 0xC ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 cmp r3, 0 bne _081B2684 cmp r4, 0 bne _081B2684 movs r3, 0xA movs r4, 0x7 _081B2684: cmp r5, 0 bne _081B26A0 ldr r1, =gUnknown_08615988 str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0xA adds r3, r6, 0 bl sub_81B2578 b _081B26B0 .pool _081B26A0: ldr r1, =gUnknown_086159CE str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0xA adds r3, r6, 0 bl sub_81B2578 _081B26B0: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2658 thumb_func_start sub_81B26BC sub_81B26BC: @ 81B26BC push {r4-r6,lr} sub sp, 0xC ldr r4, [sp, 0x1C] ldr r5, [sp, 0x20] lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r6, r1, 24 lsls r2, 24 lsrs r2, 24 lsls r3, 24 lsrs r3, 24 lsls r4, 24 lsrs r4, 24 lsls r5, 24 lsrs r5, 24 cmp r3, 0 bne _081B26E8 cmp r4, 0 bne _081B26E8 movs r3, 0x12 movs r4, 0x3 _081B26E8: cmp r5, 0 bne _081B2704 ldr r1, =gUnknown_08615A14 str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x12 adds r3, r6, 0 bl sub_81B2578 b _081B2714 .pool _081B2704: ldr r1, =gUnknown_08615A4A str r2, [sp] str r3, [sp, 0x4] str r4, [sp, 0x8] movs r2, 0x12 adds r3, r6, 0 bl sub_81B2578 _081B2714: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B26BC thumb_func_start sub_81B2720 sub_81B2720: @ 81B2720 push {lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_08615A80 movs r2, 0 str r2, [sp] movs r2, 0x12 str r2, [sp, 0x4] movs r2, 0x3 str r2, [sp, 0x8] movs r2, 0x12 movs r3, 0 bl sub_81B2578 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B2720 thumb_func_start sub_81B2748 sub_81B2748: @ 81B2748 push {r4-r7,lr} lsls r1, 24 lsrs r4, r1, 24 adds r5, r4, 0 ldrb r0, [r0, 0x8] movs r1, 0x5 bl GetWindowAttribute lsls r0, 28 lsrs r6, r0, 24 adds r7, r6, 0 movs r0, 0x40 ands r0, r4 cmp r0, 0 beq _081B277C ldr r5, =gUnknown_08615AF1 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AC0 b _081B297E .pool _081B277C: movs r0, 0x20 ands r0, r4 cmp r0, 0 beq _081B27D8 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B2794 ldr r5, =gUnknown_08615ADF b _081B2942 .pool _081B2794: ldr r5, =gUnknown_08615ADF ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEE b _081B2976 .pool _081B27D8: movs r0, 0x10 ands r0, r4 cmp r0, 0 beq _081B2824 ldr r5, =gUnknown_08615ADF ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEE b _081B2976 .pool _081B2824: movs r0, 0x4 ands r0, r4 cmp r0, 0 beq _081B2880 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B283C ldr r5, =gUnknown_08615ADF b _081B2942 .pool _081B283C: ldr r5, =gUnknown_08615ADF ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEE b _081B2976 .pool _081B2880: movs r0, 0x2 ands r0, r4 cmp r0, 0 beq _081B28DC movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B2898 ldr r5, =gUnknown_08615ADC b _081B2942 .pool _081B2898: ldr r5, =gUnknown_08615AD3 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AE8 b _081B2976 .pool _081B28DC: movs r0, 0x8 ands r0, r4 cmp r0, 0 beq _081B2938 movs r0, 0x1 ands r0, r4 cmp r0, 0 beq _081B28F4 ldr r5, =gUnknown_08615AD9 b _081B2942 .pool _081B28F4: ldr r5, =gUnknown_08615AD0 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AE5 b _081B2976 .pool _081B2938: movs r0, 0x1 ands r5, r0 cmp r5, 0 beq _081B29BC ldr r5, =gUnknown_08615AD6 _081B2942: ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AEB _081B2976: ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABD _081B297E: ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r6 movs r2, 0x2 bl LoadPalette b _081B2A24 .pool _081B29BC: ldr r5, =gUnknown_08615ACD ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABA ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r7 movs r2, 0x2 bl LoadPalette ldr r5, =gUnknown_08615AE2 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615ABD ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x2] bl sub_81B2564 ldrb r1, [r4, 0x2] adds r1, r7 movs r2, 0x2 bl LoadPalette _081B2A24: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2748 thumb_func_start sub_81B2A3C sub_81B2A3C: @ 81B2A3C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 ldrb r5, [r3] ldrb r3, [r3, 0x1] lsls r4, r2, 1 adds r4, r2 ldr r2, =gUnknown_086157FC adds r4, r2 str r4, [sp] movs r2, 0 str r2, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0 adds r2, r5, 0 bl box_print add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B2A3C thumb_func_start sub_81B2A70 sub_81B2A70: @ 81B2A70 push {r4-r7,lr} sub sp, 0x14 adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2AC0 cmp r4, 0x1 bne _081B2AAA ldr r5, [r6] ldrb r0, [r6, 0x8] ldrb r1, [r5, 0x4] lsrs r1, 3 ldrb r2, [r5, 0x5] lsrs r2, 3 ldrb r3, [r5, 0x6] lsrs r3, 3 ldrb r4, [r5, 0x7] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2AAA: adds r0, r7, 0 add r1, sp, 0x8 bl GetMonNickname ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x4 add r1, sp, 0x8 movs r2, 0 bl sub_81B2A3C _081B2AC0: add sp, 0x14 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2A70 thumb_func_start sub_81B2AC8 sub_81B2AC8: @ 81B2AC8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2B34 adds r0, r6, 0 bl sub_81B205C lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B2AF6 cmp r0, 0x6 bne _081B2B34 _081B2AF6: cmp r4, 0 beq _081B2B1C ldr r5, [r7] ldrb r0, [r7, 0x8] ldrb r1, [r5, 0x8] lsrs r1, 3 ldrb r2, [r5, 0x9] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0xA] lsrs r3, 3 ldrb r4, [r5, 0xB] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2B1C: mov r0, r8 cmp r0, 0x2 beq _081B2B34 adds r0, r6, 0 movs r1, 0x38 bl GetMonData lsls r0, 24 lsrs r0, 24 adds r1, r7, 0 bl sub_81B2B40 _081B2B34: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2AC8 thumb_func_start sub_81B2B40 sub_81B2B40: @ 81B2B40 push {r4-r6,lr} adds r2, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r2, 24 ldr r5, =gStringVar2 adds r0, r5, 0 adds r1, r2, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar1 ldr r1, =gUnknown_085E8D4D adds r0, r4, 0 bl StringCopy adds r0, r4, 0 adds r1, r5, 0 bl StringAppend ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x8 adds r1, r4, 0 movs r2, 0 bl sub_81B2A3C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2B40 thumb_func_start sub_81B2B8C sub_81B2B8C: @ 81B2B8C push {r4-r7,lr} sub sp, 0x14 adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0x1 bne _081B2BBE ldr r5, [r7] ldrb r0, [r7, 0x8] ldrb r1, [r5, 0xC] lsrs r1, 3 ldrb r2, [r5, 0xD] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0xE] lsrs r3, 3 ldrb r4, [r5, 0xF] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2BBE: adds r0, r6, 0 add r1, sp, 0x8 bl GetMonNickname adds r0, r6, 0 bl GetMonGender adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 movs r1, 0xB bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 add r2, sp, 0x8 adds r3, r7, 0 bl sub_81B2BF4 add sp, 0x14 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2B8C thumb_func_start sub_81B2BF4 sub_81B2BF4: @ 81B2BF4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} mov r9, r2 adds r7, r3, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r1, 16 lsrs r4, r1, 16 adds r5, r4, 0 ldrb r0, [r7, 0x8] movs r1, 0x5 bl GetWindowAttribute lsls r0, 28 lsrs r6, r0, 24 cmp r4, 0 beq _081B2CBA cmp r4, 0x20 beq _081B2C24 cmp r4, 0x1D bne _081B2C38 _081B2C24: movs r0, 0xB adds r1, r5, 0 muls r1, r0 ldr r0, =gSpeciesNames adds r1, r0 mov r0, r9 bl StringCompare cmp r0, 0 beq _081B2CBA _081B2C38: mov r0, r8 cmp r0, 0 beq _081B2C48 cmp r0, 0xFE beq _081B2C88 b _081B2CBA .pool _081B2C48: ldr r5, =gUnknown_08615AC3 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB6 ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r7, 0x8] ldr r1, =gUnknown_085E8D49 ldr r3, [r7] adds r3, 0xC movs r2, 0x2 bl sub_81B2A3C b _081B2CBA .pool _081B2C88: ldr r5, =gUnknown_08615AC5 ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB6 ldrb r1, [r4] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r6 movs r2, 0x2 bl LoadPalette ldrb r0, [r7, 0x8] ldr r1, =gUnknown_085E8D4B ldr r3, [r7] adds r3, 0xC movs r2, 0x2 bl sub_81B2A3C _081B2CBA: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2BF4 thumb_func_start sub_81B2CD4 sub_81B2CD4: @ 81B2CD4 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2D2E cmp r4, 0 beq _081B2D16 ldr r5, [r6] ldrb r0, [r6, 0x8] ldrb r1, [r5, 0x10] lsrs r1, 3 ldrb r2, [r5, 0x11] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0x12] lsrs r3, 3 ldrb r4, [r5, 0x13] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2D16: mov r0, r8 cmp r0, 0x2 beq _081B2D2E adds r0, r7, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_81B2D3C _081B2D2E: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2CD4 thumb_func_start sub_81B2D3C sub_81B2D3C: @ 81B2D3C push {r4,r5,lr} adds r2, r0, 0 adds r4, r1, 0 lsls r2, 16 lsrs r2, 16 ldr r5, =gStringVar1 adds r0, r5, 0 adds r1, r2, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN movs r1, 0xBA strb r1, [r0] movs r1, 0xFF strb r1, [r0, 0x1] ldrb r0, [r4, 0x8] ldr r3, [r4] adds r3, 0x10 adds r1, r5, 0 movs r2, 0 bl sub_81B2A3C pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B2D3C thumb_func_start sub_81B2D74 sub_81B2D74: @ 81B2D74 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 adds r7, r0, 0 adds r6, r1, 0 lsls r2, 24 lsrs r4, r2, 24 mov r8, r4 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2DD0 cmp r4, 0 beq _081B2DB8 ldr r5, [r6] ldrb r0, [r6, 0x8] ldrb r1, [r5, 0x14] lsrs r1, 3 adds r1, 0x1 ldrb r2, [r5, 0x15] lsrs r2, 3 adds r2, 0x1 ldrb r3, [r5, 0x16] lsrs r3, 3 ldrb r4, [r5, 0x17] lsrs r4, 3 str r4, [sp] movs r4, 0 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2DB8: mov r0, r8 cmp r0, 0x2 beq _081B2DD0 adds r0, r7, 0 movs r1, 0x3A bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r6, 0 bl sub_81B2DDC _081B2DD0: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B2D74 thumb_func_start sub_81B2DDC sub_81B2DDC: @ 81B2DDC push {r4-r6,lr} adds r2, r0, 0 adds r6, r1, 0 lsls r2, 16 lsrs r2, 16 ldr r5, =gStringVar2 adds r0, r5, 0 adds r1, r2, 0 movs r2, 0x1 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar1 ldr r1, =gUnknown_085E8D3E adds r0, r4, 0 bl StringCopy adds r0, r4, 0 adds r1, r5, 0 bl StringAppend ldrb r0, [r6, 0x8] ldr r3, [r6] adds r3, 0x14 adds r1, r4, 0 movs r2, 0 bl sub_81B2A3C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B2DDC thumb_func_start sub_81B2E28 sub_81B2E28: @ 81B2E28 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B2E5C adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0x3A bl GetMonData adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 adds r2, r6, 0 bl sub_81B2E64 _081B2E5C: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B2E28 thumb_func_start sub_81B2E64 sub_81B2E64: @ 81B2E64 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x8 adds r6, r2, 0 lsls r0, 16 lsrs r0, 16 mov r8, r0 lsls r1, 16 lsrs r1, 16 mov r9, r1 ldrb r0, [r6, 0x8] movs r1, 0x5 bl GetWindowAttribute lsls r0, 28 lsrs r7, r0, 24 mov r1, r8 lsls r0, r1, 16 asrs r0, 16 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 bl sub_8075060 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _081B2EB0 cmp r0, 0x2 blt _081B2EE0 cmp r0, 0x4 bgt _081B2EE0 ldr r5, =gUnknown_08615AC7 b _081B2EB2 .pool _081B2EB0: ldr r5, =gUnknown_08615AC9 _081B2EB2: ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB8 ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette b _081B2F04 .pool _081B2EE0: ldr r5, =gUnknown_08615ACB ldrb r0, [r5] bl sub_81B2564 ldr r4, =gUnknown_08615AB8 ldrb r1, [r4] adds r1, r7 movs r2, 0x2 bl LoadPalette ldrb r0, [r5, 0x1] bl sub_81B2564 ldrb r1, [r4, 0x1] adds r1, r7 movs r2, 0x2 bl LoadPalette _081B2F04: mov r1, r8 lsls r0, r1, 16 asrs r0, 16 mov r2, r9 lsls r1, r2, 16 asrs r1, 16 ldr r2, [r6] ldrb r2, [r2, 0x1A] bl sub_8075034 lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r6, 0x8] ldr r4, =gUnknown_08615AB8 ldrb r1, [r4, 0x1] ldr r3, [r6] ldrb r2, [r3, 0x18] ldrb r3, [r3, 0x19] str r5, [sp] movs r7, 0x1 str r7, [sp, 0x4] bl FillWindowPixelRect ldrb r0, [r6, 0x8] ldrb r1, [r4] ldr r3, [r6] ldrb r2, [r3, 0x18] ldrb r3, [r3, 0x19] adds r3, 0x1 str r5, [sp] movs r4, 0x2 str r4, [sp, 0x4] bl FillWindowPixelRect ldr r1, [r6] ldrb r0, [r1, 0x1A] cmp r5, r0 beq _081B2F88 ldrb r0, [r6, 0x8] ldrb r2, [r1, 0x18] adds r2, r5 ldrb r3, [r1, 0x19] ldrb r1, [r1, 0x1A] subs r1, r5 lsls r1, 16 lsrs r1, 16 str r1, [sp] str r7, [sp, 0x4] movs r1, 0xD bl FillWindowPixelRect ldrb r0, [r6, 0x8] ldr r1, [r6] ldrb r2, [r1, 0x18] adds r2, r5 ldrb r3, [r1, 0x19] adds r3, 0x1 ldrb r1, [r1, 0x1A] subs r1, r5 lsls r1, 16 lsrs r1, 16 str r1, [sp] str r4, [sp, 0x4] movs r1, 0x2 bl FillWindowPixelRect _081B2F88: ldrb r0, [r6, 0x8] movs r1, 0x2 bl CopyWindowToVram add sp, 0x8 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2E64 thumb_func_start sub_81B2FA8 sub_81B2FA8: @ 81B2FA8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r6, r1, 0 lsls r0, 24 lsrs r0, 24 mov r8, r0 lsls r2, 24 lsrs r7, r2, 24 cmp r7, 0 beq _081B2FF2 ldr r5, [r6] ldrb r1, [r5, 0x1C] movs r4, 0x7 adds r0, r1, 0 ands r0, r4 ldrb r2, [r5, 0x1E] adds r0, r2 adds r3, r0, 0x7 asrs r3, 3 ldrb r2, [r5, 0x1D] adds r0, r2, 0 ands r0, r4 ldrb r4, [r5, 0x1F] adds r0, r4 adds r4, r0, 0x7 ldrb r0, [r6, 0x8] lsrs r1, 3 lsrs r2, 3 lsrs r4, 3 str r4, [sp] movs r4, 0x1 str r4, [sp, 0x4] ldr r4, [r5] bl _call_via_r4 _081B2FF2: cmp r7, 0x2 beq _081B3018 ldrb r0, [r6, 0x8] ldr r1, [r6] ldrb r2, [r1, 0x1C] ldrb r3, [r1, 0x1D] ldr r1, =gUnknown_086157FC str r1, [sp] movs r1, 0 str r1, [sp, 0x4] ldr r4, =gUnknown_08615B60 mov r5, r8 lsls r1, r5, 2 adds r1, r4 ldr r1, [r1] str r1, [sp, 0x8] movs r1, 0x1 bl box_print _081B3018: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B2FA8 thumb_func_start sub_81B302C sub_81B302C: @ 81B302C push {r4,lr} adds r4, r0, 0 ldrb r0, [r4] cmp r0, 0xFF beq _081B304C movs r1, 0 bl sub_8198070 ldrb r0, [r4] bl RemoveWindow movs r0, 0xFF strb r0, [r4] movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram _081B304C: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B302C thumb_func_start display_pokemon_menu_message display_pokemon_menu_message: @ 81B3054 push {r4-r6,lr} sub sp, 0xC adds r6, r0, 0 ldr r0, =gUnknown_0203CEC4 ldr r4, [r0] adds r5, r4, 0 adds r5, 0xD ldrb r0, [r4, 0xD] cmp r0, 0xFF beq _081B306E adds r0, r5, 0 bl sub_81B302C _081B306E: cmp r6, 0x7F beq _081B313C adds r0, r6, 0 subs r0, 0x15 cmp r0, 0x5 bhi _081B30D4 lsls r0, 2 ldr r1, =_081B308C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B308C: .4byte _081B30A4 .4byte _081B30BC .4byte _081B30BC .4byte _081B30AC .4byte _081B30B4 .4byte _081B30C4 _081B30A4: ldr r0, =gUnknown_08615928 b _081B30C6 .pool _081B30AC: ldr r0, =gUnknown_08615930 b _081B30C6 .pool _081B30B4: ldr r0, =gUnknown_08615938 b _081B30C6 .pool _081B30BC: ldr r0, =gUnknown_08615940 b _081B30C6 .pool _081B30C4: ldr r0, =gUnknown_08615948 _081B30C6: bl AddWindow strb r0, [r5] b _081B30DC .pool _081B30D4: ldr r0, =gUnknown_08615920 bl AddWindow strb r0, [r4, 0xD] _081B30DC: cmp r6, 0 bne _081B3104 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x8] lsls r0, 31 cmp r0, 0 beq _081B30F8 movs r6, 0x2 b _081B3104 .pool _081B30F8: bl sub_81B314C lsls r0, 24 cmp r0, 0 bne _081B3104 movs r6, 0x1 _081B3104: ldrb r0, [r5] movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle ldr r4, =gStringVar4 ldr r1, =gUnknown_08615AF4 lsls r0, r6, 2 adds r0, r1 ldr r1, [r0] adds r0, r4, 0 bl StringExpandPlaceholders ldrb r0, [r5] movs r1, 0x1 str r1, [sp] movs r1, 0 str r1, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0x1 adds r2, r4, 0 movs r3, 0 bl PrintTextOnWindow movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram _081B313C: add sp, 0xC pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end display_pokemon_menu_message thumb_func_start sub_81B314C sub_81B314C: @ 81B314C push {r4-r7,lr} ldr r7, =gPlayerParty movs r6, 0 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _081B3168 _081B315A: movs r0, 0x1 b _081B31AA .pool _081B3168: movs r5, 0 _081B316A: movs r0, 0x64 muls r0, r5 adds r4, r7, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B319A adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B3194 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B319A _081B3194: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _081B319A: cmp r6, 0x1 bhi _081B315A adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _081B316A movs r0, 0 _081B31AA: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81B314C thumb_func_start sub_81B31B0 sub_81B31B0: @ 81B31B0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x1C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x1 beq _081B320C cmp r4, 0x1 bgt _081B31CC cmp r4, 0 beq _081B31D2 b _081B321C _081B31CC: cmp r4, 0x2 beq _081B3214 b _081B321C _081B31D2: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldrb r0, [r1, 0x17] lsls r0, 1 movs r3, 0x13 subs r3, r0 lsls r3, 24 lsrs r3, 24 movs r0, 0xA str r0, [sp] ldrb r0, [r1, 0x17] lsls r0, 25 lsrs r0, 24 str r0, [sp, 0x4] movs r0, 0xE str r0, [sp, 0x8] ldr r0, =0x000002e9 str r0, [sp, 0xC] add r0, sp, 0x14 movs r1, 0x2 movs r2, 0x13 bl SetWindowTemplateFields b _081B3226 .pool _081B320C: ldr r0, =gUnknown_08615950 b _081B321E .pool _081B3214: ldr r0, =gUnknown_08615958 b _081B321E .pool _081B321C: ldr r0, =gUnknown_08615960 _081B321E: ldr r1, [r0, 0x4] ldr r0, [r0] str r0, [sp, 0x14] str r1, [sp, 0x18] _081B3226: add r0, sp, 0x14 bl AddWindow ldr r6, =gUnknown_0203CEC4 ldr r1, [r6] strb r0, [r1, 0xC] ldr r0, [r6] ldrb r0, [r0, 0xC] movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle cmp r4, 0x3 bne _081B3250 ldr r0, [r6] b _081B32E2 .pool _081B3250: movs r0, 0x1 movs r1, 0 bl GetMenuCursorDimensionByFont lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0x1 movs r1, 0x2 bl GetFontAttribute lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 ldr r0, [r6] ldrb r0, [r0, 0x17] cmp r5, r0 bcs _081B32CA adds r7, r6, 0 movs r6, 0 _081B327A: ldr r1, [r7] adds r0, r1, 0 adds r0, 0xF adds r4, r0, r5 ldrb r0, [r4] movs r2, 0x3 cmp r0, 0x12 bls _081B328C movs r2, 0x4 _081B328C: ldrb r0, [r1, 0xC] lsls r3, r5, 4 adds r3, 0x1 lsls r3, 24 lsrs r3, 24 mov r1, r8 str r1, [sp] str r6, [sp, 0x4] lsls r1, r2, 1 adds r1, r2 ldr r2, =gUnknown_086157FC adds r1, r2 str r1, [sp, 0x8] str r6, [sp, 0xC] ldr r2, =gUnknown_08615C08 ldrb r1, [r4] lsls r1, 3 adds r1, r2 ldr r1, [r1] str r1, [sp, 0x10] movs r1, 0x1 mov r2, r9 bl AddTextPrinterParametrized2 adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 ldr r0, [r7] ldrb r0, [r0, 0x17] cmp r5, r0 bcc _081B327A _081B32CA: ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] ldrb r0, [r1, 0xC] ldrb r1, [r1, 0x17] movs r2, 0 movs r3, 0x1 bl InitMenuInUpperLeftCorner movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r0, [r4] _081B32E2: ldrb r0, [r0, 0xC] add sp, 0x1C pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B31B0 thumb_func_start sub_81B3300 sub_81B3300: @ 81B3300 push {r4,lr} sub sp, 0x10 adds r4, r0, 0 movs r0, 0x6 movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle ldr r2, =gTextFlags ldrb r0, [r2] movs r1, 0x1 orrs r0, r1 strb r0, [r2] bl sav2_get_text_speed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 movs r0, 0 str r0, [sp] movs r0, 0x2 str r0, [sp, 0x4] movs r0, 0x1 str r0, [sp, 0x8] movs r0, 0x3 str r0, [sp, 0xC] movs r0, 0x6 movs r1, 0x1 adds r2, r4, 0 bl AddTextPrinterParametrized add sp, 0x10 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3300 thumb_func_start sub_81B334C sub_81B334C: @ 81B334C push {lr} ldr r0, =gUnknown_08615968 movs r1, 0x4F movs r2, 0xD movs r3, 0 bl CreateYesNoMenu pop {r0} bx r0 .pool thumb_func_end sub_81B334C thumb_func_start sub_81B3364 sub_81B3364: @ 81B3364 push {r4,lr} ldr r0, =gUnknown_08615970 bl AddWindow ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] strb r0, [r1, 0xC] ldr r0, [r4] ldrb r0, [r0, 0xC] movs r1, 0 movs r2, 0x4F movs r3, 0xD bl SetWindowBorderStyle ldr r0, [r4] ldrb r0, [r0, 0xC] pop {r4} pop {r1} bx r1 .pool thumb_func_end sub_81B3364 thumb_func_start sub_81B3394 sub_81B3394: @ 81B3394 push {r4,lr} ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] ldrb r0, [r0, 0xC] bl ClearWindowTilemap ldr r0, [r4] adds r0, 0xC bl sub_81B302C pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3394 thumb_func_start sub_81B33B4 sub_81B33B4: @ 81B33B4 push {r4,lr} lsls r1, 24 lsrs r1, 24 lsls r2, 24 lsrs r2, 24 cmp r2, 0 bne _081B33C8 bl sub_81B3414 b _081B3400 _081B33C8: ldr r4, =gUnknown_0203CEC4 ldr r1, [r4] ldr r0, =gUnknown_08615D70 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r1, 0x17] movs r3, 0 ldr r0, [r4] ldrb r0, [r0, 0x17] cmp r3, r0 bcs _081B3400 ldr r1, =gUnknown_08615D38 lsls r0, r2, 2 adds r2, r0, r1 _081B33E4: ldr r1, [r4] adds r1, 0xF adds r1, r3 ldr r0, [r2] adds r0, r3 ldrb r0, [r0] strb r0, [r1] adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 ldr r0, [r4] ldrb r0, [r0, 0x17] cmp r3, r0 bcc _081B33E4 _081B3400: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B33B4 thumb_func_start sub_81B3414 sub_81B3414: @ 81B3414 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 mov r9, r0 lsls r1, 24 lsrs r1, 24 mov r10, r1 ldr r2, =gUnknown_0203CEC4 ldr r1, [r2] movs r0, 0 strb r0, [r1, 0x17] ldr r1, [r2] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0 bl AppendToList movs r7, 0 ldr r0, =gUnknown_08615D7E ldrh r0, [r0] str r0, [sp] _081B3446: movs r4, 0 adds r0, r7, 0x1 mov r8, r0 ldr r1, [sp] cmp r1, 0xE beq _081B34A0 movs r0, 0x64 mov r6, r10 muls r6, r0 ldr r5, =gUnknown_08615D7E _081B345A: mov r1, r9 adds r0, r1, r6 adds r1, r7, 0 adds r1, 0xD bl GetMonData lsls r1, r4, 1 adds r1, r5 ldrh r1, [r1] cmp r0, r1 bne _081B3490 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 adds r2, r4, 0 adds r2, 0x13 lsls r2, 24 lsrs r2, 24 bl AppendToList b _081B34A0 .pool _081B3490: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 lsls r0, r4, 1 adds r0, r5 ldrh r0, [r0] cmp r0, 0xE bne _081B345A _081B34A0: mov r1, r8 lsls r0, r1, 24 lsrs r7, r0, 24 cmp r7, 0x3 bls _081B3446 bl InBattlePike lsls r0, 24 cmp r0, 0 bne _081B3518 mov r0, r9 adds r0, 0x64 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B34D2 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x1 bl AppendToList _081B34D2: movs r0, 0x64 mov r1, r10 muls r1, r0 adds r0, r1, 0 add r0, r9 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B3508 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x6 bl AppendToList b _081B3518 .pool _081B3508: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x3 bl AppendToList _081B3518: ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] adds r0, r1, 0 adds r0, 0xF adds r1, 0x17 movs r2, 0x2 bl AppendToList 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_81B3414 thumb_func_start sub_81B353C sub_81B353C: @ 81B353C push {r4,lr} adds r4, r0, 0 ldr r1, =gUnknown_0203CEC8 ldrb r0, [r1, 0x8] lsls r0, 28 lsrs r0, 28 adds r2, r1, 0 cmp r0, 0xC bhi _081B35FE lsls r0, 2 ldr r1, =_081B3560 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B3560: .4byte _081B3594 .4byte _081B35B0 .4byte _081B35FE .4byte _081B35FE .4byte _081B35BC .4byte _081B35FE .4byte _081B35DC .4byte _081B35FE .4byte _081B35EE .4byte _081B35F2 .4byte _081B35F6 .4byte _081B35FE .4byte _081B35FA _081B3594: bl InMultiBattleRoom lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B35AC adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B35FE _081B35AC: movs r1, 0x1 b _081B3600 _081B35B0: adds r0, r4, 0 bl sub_81B8A2C lsls r0, 24 lsrs r1, r0, 24 b _081B3600 _081B35BC: movs r0, 0x9 ldrsb r0, [r2, r0] bl sub_81B856C lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B35D4 cmp r0, 0x1 beq _081B35D8 movs r1, 0x7 b _081B3600 _081B35D4: movs r1, 0x4 b _081B3600 _081B35D8: movs r1, 0x5 b _081B3600 _081B35DC: adds r0, r4, 0 movs r1, 0x2D bl GetMonData movs r1, 0x6 cmp r0, 0 beq _081B3600 movs r1, 0x7 b _081B3600 _081B35EE: movs r1, 0xA b _081B3600 _081B35F2: movs r1, 0xB b _081B3600 _081B35F6: movs r1, 0xC b _081B3600 _081B35FA: movs r1, 0xD b _081B3600 _081B35FE: movs r1, 0 _081B3600: adds r0, r1, 0 pop {r4} pop {r1} bx r1 thumb_func_end sub_81B353C thumb_func_start sub_81B3608 sub_81B3608: @ 81B3608 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r0, r1 ldr r7, =gPlayerParty adds r5, r0, r7 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xC beq _081B3674 ldrb r4, [r4, 0x9] adds r0, r5, 0 bl sub_81B353C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 adds r1, r4, 0 bl sub_81B33B4 movs r0, 0 bl sub_81B31B0 movs r0, 0x15 bl display_pokemon_menu_message b _081B36EA .pool _081B3674: adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 cmp r6, 0 bne _081B36C0 ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9980 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] movs r0, 0 b _081B36EC .pool _081B36C0: ldrb r4, [r4, 0x9] adds r0, r5, 0 bl sub_81B353C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r7, 0 adds r1, r4, 0 bl sub_81B33B4 movs r0, 0x1 bl sub_81B31B0 ldr r1, =gStringVar2 adds r0, r6, 0 bl CopyItemName movs r0, 0x1A bl display_pokemon_menu_message _081B36EA: movs r0, 0x1 _081B36EC: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B3608 thumb_func_start sub_81B36FC sub_81B36FC: @ 81B36FC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 bl sub_81B3608 lsls r0, 24 cmp r0, 0 beq _081B3720 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] _081B3720: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B36FC thumb_func_start sub_81B3730 sub_81B3730: @ 81B3730 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B37EE bl sub_81221EC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B37EE lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r5, r0, r1 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] ldrb r0, [r0, 0x17] cmp r0, 0x3 bhi _081B3774 bl ProcessMenuInputNoWrapAround_other b _081B3778 .pool _081B3774: bl ProcessMenuInput_other _081B3778: lsls r0, 24 lsrs r4, r0, 24 bl GetMenuCursorPos lsls r0, 24 lsrs r0, 24 strh r0, [r5] lsls r0, r4, 24 asrs r5, r0, 24 movs r0, 0x2 negs r0, r0 cmp r5, r0 beq _081B37EE adds r0, 0x1 cmp r5, r0 bne _081B37CC movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xE bl sub_81B302C ldr r2, =gUnknown_08615C08 ldr r0, [r4] ldrb r1, [r0, 0x17] adds r0, r1 ldrb r0, [r0, 0xE] lsls r0, 3 adds r2, 0x4 adds r0, r2 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 b _081B37EE .pool _081B37CC: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xE bl sub_81B302C ldr r1, =gUnknown_08615C08 ldr r0, [r4] adds r0, 0xF adds r0, r5 ldrb r0, [r0] lsls r0, 3 adds r1, 0x4 adds r0, r1 ldr r1, [r0] adds r0, r6, 0 bl _call_via_r1 _081B37EE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B3730 thumb_func_start sub_81B37FC sub_81B37FC: @ 81B37FC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B3828 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B37FC thumb_func_start sub_81B3828 sub_81B3828: @ 81B3828 push {r4,lr} sub sp, 0x4 ldr r4, =gUnknown_0203CEC8 ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _081B3868 bl pokemon_change_order ldr r1, =gPlayerParty ldrb r2, [r4, 0x9] ldr r0, =gPlayerPartyCount ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, =sub_81B3894 str r0, [sp] movs r0, 0x1 bl sub_81BF8EC b _081B3880 .pool _081B3868: ldr r1, =gPlayerParty ldrb r2, [r4, 0x9] ldr r0, =gPlayerPartyCount ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, =sub_81B3894 str r0, [sp] movs r0, 0 bl sub_81BF8EC _081B3880: add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3828 thumb_func_start sub_81B3894 sub_81B3894: @ 81B3894 push {lr} sub sp, 0xC ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r3, =gUnknown_0203CEC8 ldr r0, =gUnknown_0203CF20 ldrb r0, [r0] strb r0, [r3, 0x9] ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r3, 0xB] movs r1, 0x15 str r1, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r3] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B3894 thumb_func_start brm_switch brm_switch: @ 81B38DC push {r4-r6,lr} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203CEC8 movs r0, 0x8 strb r0, [r5, 0xB] ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, [r4] adds r0, 0xC bl sub_81B302C movs r0, 0x3 bl display_pokemon_menu_message ldrb r0, [r5, 0x9] movs r1, 0x1 bl sub_81B0FCC ldrb r0, [r5, 0x9] strb r0, [r5, 0xA] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1370 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end brm_switch thumb_func_start sub_81B3938 sub_81B3938: @ 81B3938 push {r4-r7,lr} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 lsls r0, r7, 2 adds r0, r7 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 ldr r3, =gUnknown_0203CEC8 movs r1, 0xA ldrsb r1, [r3, r1] movs r0, 0x9 ldrsb r0, [r3, r0] cmp r1, r0 bne _081B3968 adds r0, r7, 0 bl sub_81B407C b _081B3ABA .pool _081B3968: add r2, sp, 0x8 movs r0, 0x9 ldrsb r0, [r3, r0] ldr r1, =gUnknown_0203CEDC ldr r1, [r1] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] movs r4, 0 strb r0, [r2] adds r0, r2, 0 ldrb r0, [r0] movs r1, 0x1 bl GetWindowAttribute strh r0, [r6] add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x2 bl GetWindowAttribute strh r0, [r6, 0x2] add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x3 bl GetWindowAttribute strh r0, [r6, 0x4] add r0, sp, 0x8 ldrb r0, [r0] movs r1, 0x4 bl GetWindowAttribute strh r0, [r6, 0x6] strh r4, [r6, 0x10] movs r1, 0x4 ldrsh r0, [r6, r1] cmp r0, 0xA bne _081B39C4 movs r2, 0x1 negs r2, r2 adds r0, r2, 0 b _081B39C6 .pool _081B39C4: movs r0, 0x1 _081B39C6: strh r0, [r6, 0x14] add r2, sp, 0x8 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xA] lsls r0, 24 asrs r0, 24 ldr r1, =gUnknown_0203CEDC ldr r1, [r1] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] movs r4, 0 strb r0, [r2, 0x1] adds r0, r2, 0 ldrb r0, [r0, 0x1] movs r1, 0x1 bl GetWindowAttribute strh r0, [r6, 0x8] add r0, sp, 0x8 ldrb r0, [r0, 0x1] movs r1, 0x2 bl GetWindowAttribute strh r0, [r6, 0xA] add r0, sp, 0x8 ldrb r0, [r0, 0x1] movs r1, 0x3 bl GetWindowAttribute strh r0, [r6, 0xC] add r0, sp, 0x8 ldrb r0, [r0, 0x1] movs r1, 0x4 bl GetWindowAttribute strh r0, [r6, 0xE] strh r4, [r6, 0x12] movs r1, 0xC ldrsh r0, [r6, r1] cmp r0, 0xA bne _081B3A2C movs r2, 0x1 negs r2, r2 adds r0, r2, 0 b _081B3A2E .pool _081B3A2C: movs r0, 0x1 _081B3A2E: strh r0, [r6, 0x16] ldr r4, =gUnknown_0203CEF0 movs r0, 0x4 ldrsh r1, [r6, r0] movs r2, 0x6 ldrsh r0, [r6, r2] lsls r0, 1 muls r0, r1 bl Alloc str r0, [r4] ldr r5, =gUnknown_0203CEF4 movs r0, 0xC ldrsh r1, [r6, r0] movs r2, 0xE ldrsh r0, [r6, r2] lsls r0, 1 muls r0, r1 bl Alloc str r0, [r5] ldr r1, [r4] ldrb r2, [r6] ldrb r3, [r6, 0x2] ldrb r0, [r6, 0x4] str r0, [sp] ldrb r0, [r6, 0x6] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC ldr r1, [r5] ldrb r2, [r6, 0x8] ldrb r3, [r6, 0xA] ldrb r0, [r6, 0xC] str r0, [sp] ldrb r0, [r6, 0xE] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC add r0, sp, 0x8 ldrb r0, [r0] bl ClearWindowTilemap add r0, sp, 0x8 ldrb r0, [r0, 0x1] bl ClearWindowTilemap ldr r4, =gUnknown_0203CEC8 movs r0, 0x9 strb r0, [r4, 0xB] ldrb r0, [r4, 0x9] movs r1, 0x1 bl sub_81B0FCC ldrb r0, [r4, 0xA] movs r1, 0x1 bl sub_81B0FCC adds r0, r7, 0 bl sub_81B3CC0 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B3D48 str r1, [r0] _081B3ABA: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B3938 thumb_func_start sub_81B3AD8 sub_81B3AD8: @ 81B3AD8 push {r4-r7,lr} mov r7, r8 push {r7} adds r6, r2, 0 mov r12, r3 ldr r7, [sp, 0x18] lsls r0, 16 lsrs r3, r0, 16 adds r5, r3, 0 lsls r1, 16 lsrs r2, r1, 16 mov r8, r2 lsls r0, r3, 16 asrs r1, r0, 16 lsls r0, r2, 16 asrs r0, 16 adds r4, r1, r0 cmp r4, 0 blt _081B3B02 cmp r1, 0x1F ble _081B3B06 _081B3B02: movs r0, 0 b _081B3B34 _081B3B06: cmp r1, 0 bge _081B3B1A negs r0, r1 strb r0, [r6] movs r0, 0 mov r1, r12 strb r0, [r1] adds r0, r2, r3 strb r0, [r7] b _081B3B32 _081B3B1A: movs r0, 0 strb r0, [r6] mov r0, r12 strb r5, [r0] cmp r4, 0x1F ble _081B3B2E movs r0, 0x20 subs r0, r5 strb r0, [r7] b _081B3B32 _081B3B2E: mov r1, r8 strb r1, [r7] _081B3B32: movs r0, 0x1 _081B3B34: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81B3AD8 thumb_func_start sub_81B3B40 sub_81B3B40: @ 81B3B40 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x34 str r0, [sp, 0x28] ldr r0, [sp, 0x54] ldr r4, [sp, 0x58] lsls r2, 16 lsrs r2, 16 mov r9, r2 lsls r3, 16 lsls r0, 16 lsrs r0, 16 mov r10, r0 lsls r4, 16 lsrs r4, 16 str r4, [sp, 0x30] lsls r1, 16 asrs r7, r1, 16 lsrs r0, r3, 16 str r0, [sp, 0x2C] asrs r3, 16 mov r8, r3 mov r5, sp adds r5, 0x25 mov r6, sp adds r6, 0x26 str r6, [sp] adds r0, r7, 0 mov r1, r8 add r2, sp, 0x24 adds r3, r5, 0 bl sub_81B3AD8 lsls r0, 24 cmp r0, 0 beq _081B3BFA ldrb r2, [r5] mov r1, r9 lsls r0, r1, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r6] str r0, [sp] mov r1, r10 lsls r0, r1, 24 lsrs r4, r0, 24 str r4, [sp, 0x4] movs r0, 0 movs r1, 0 mov r3, r9 bl FillBgTilemapBufferRect_Palette0 ldr r1, [sp, 0x30] lsls r0, r1, 16 asrs r0, 16 adds r0, r7, r0 lsls r0, 16 asrs r0, 16 str r6, [sp] mov r1, r8 add r2, sp, 0x24 adds r3, r5, 0 bl sub_81B3AD8 lsls r0, 24 cmp r0, 0 beq _081B3BFA add r0, sp, 0x24 ldrb r2, [r0] ldr r1, [sp, 0x2C] lsls r0, r1, 24 lsrs r0, 24 str r0, [sp] str r4, [sp, 0x4] ldrb r0, [r5] str r0, [sp, 0x8] mov r0, r9 str r0, [sp, 0xC] ldrb r0, [r6] str r0, [sp, 0x10] str r4, [sp, 0x14] movs r0, 0x11 str r0, [sp, 0x18] movs r0, 0 str r0, [sp, 0x1C] str r0, [sp, 0x20] ldr r1, [sp, 0x28] movs r3, 0 bl CopyRectToBgTilemapBufferRect _081B3BFA: add sp, 0x34 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B3B40 thumb_func_start sub_81B3C0C sub_81B3C0C: @ 81B3C0C push {r4,lr} ldr r4, =gSprites ldrb r2, [r0, 0xB] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r4 lsls r1, 16 asrs r1, 13 ldrh r2, [r3, 0x24] adds r2, r1 strh r2, [r3, 0x24] ldrb r3, [r0, 0xA] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r4 ldrh r3, [r2, 0x24] adds r3, r1 strh r3, [r2, 0x24] ldrb r3, [r0, 0x9] lsls r2, r3, 4 adds r2, r3 lsls r2, 2 adds r2, r4 ldrh r3, [r2, 0x24] adds r3, r1 strh r3, [r2, 0x24] ldrb r2, [r0, 0xC] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r4 ldrh r2, [r0, 0x24] adds r2, r1 strh r2, [r0, 0x24] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3C0C thumb_func_start sub_81B3C60 sub_81B3C60: @ 81B3C60 push {r4,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r4, r1, r0 movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 beq _081B3C8E ldr r2, =gUnknown_0203CEDC ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r2, 0x14 ldrsh r1, [r4, r2] bl sub_81B3C0C _081B3C8E: movs r1, 0x16 ldrsh r0, [r4, r1] cmp r0, 0 beq _081B3CAC ldr r2, =gUnknown_0203CEDC ldr r0, =gUnknown_0203CEC8 movs r1, 0xA ldrsb r1, [r0, r1] lsls r1, 4 ldr r0, [r2] adds r0, r1 movs r2, 0x16 ldrsh r1, [r4, r2] bl sub_81B3C0C _081B3CAC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B3C60 thumb_func_start sub_81B3CC0 sub_81B3CC0: @ 81B3CC0 push {r4-r6,lr} sub sp, 0x8 lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r5, r1, r0 movs r1, 0x14 ldrsh r0, [r5, r1] cmp r0, 0 beq _081B3D00 ldr r0, =gUnknown_0203CEF0 ldr r0, [r0] ldrh r1, [r5, 0x10] ldrh r2, [r5] adds r1, r2 lsls r1, 16 asrs r1, 16 movs r3, 0x2 ldrsh r2, [r5, r3] movs r4, 0x4 ldrsh r3, [r5, r4] movs r6, 0x6 ldrsh r4, [r5, r6] str r4, [sp] movs r6, 0x14 ldrsh r4, [r5, r6] str r4, [sp, 0x4] bl sub_81B3B40 _081B3D00: movs r1, 0x16 ldrsh r0, [r5, r1] cmp r0, 0 beq _081B3D2E ldr r0, =gUnknown_0203CEF4 ldr r0, [r0] ldrh r1, [r5, 0x12] ldrh r2, [r5, 0x8] adds r1, r2 lsls r1, 16 asrs r1, 16 movs r3, 0xA ldrsh r2, [r5, r3] movs r4, 0xC ldrsh r3, [r5, r4] movs r6, 0xE ldrsh r4, [r5, r6] str r4, [sp] movs r6, 0x16 ldrsh r4, [r5, r6] str r4, [sp, 0x4] bl sub_81B3B40 _081B3D2E: movs r0, 0 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B3CC0 thumb_func_start sub_81B3D48 sub_81B3D48: @ 81B3D48 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 lsls r0, r4, 2 adds r0, r4 lsls r7, r0, 3 ldr r0, =gTasks + 0x8 mov r8, r0 adds r6, r7, r0 adds r0, r4, 0 bl sub_81B3CC0 adds r0, r4, 0 bl sub_81B3C60 ldrh r1, [r6, 0x14] ldrh r2, [r6, 0x10] adds r1, r2 strh r1, [r6, 0x10] ldrh r0, [r6, 0x16] ldrh r3, [r6, 0x12] adds r0, r3 strh r0, [r6, 0x12] add r2, sp, 0x8 ldrh r0, [r6] adds r0, r1 strh r0, [r2] adds r1, r2, 0 ldrh r0, [r6, 0x12] ldrh r3, [r6, 0x8] adds r2, r0, r3 strh r2, [r1, 0x2] adds r0, r1, 0 ldrh r0, [r0] cmp r0, 0x21 bls _081B3E3A lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0x21 bls _081B3E3A movs r1, 0x14 ldrsh r0, [r6, r1] negs r0, r0 strh r0, [r6, 0x14] movs r2, 0x16 ldrsh r0, [r6, r2] negs r0, r0 strh r0, [r6, 0x16] bl swap_pokemon_and_oams ldr r4, =gUnknown_0203CEC8 ldrb r0, [r4, 0x9] bl sub_81B0948 ldrb r0, [r4, 0xA] bl sub_81B0948 movs r0, 0x9 ldrsb r0, [r4, r0] ldr r5, =gUnknown_0203CEDC ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0xA ldrsb r0, [r4, r0] ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap ldr r0, =gUnknown_0203CEF0 ldr r1, [r0] ldrb r2, [r6] ldrb r3, [r6, 0x2] ldrb r0, [r6, 0x4] str r0, [sp] ldrb r0, [r6, 0x6] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC ldr r0, =gUnknown_0203CEF4 ldr r1, [r0] ldrb r2, [r6, 0x8] ldrb r3, [r6, 0xA] ldrb r0, [r6, 0xC] str r0, [sp] ldrb r0, [r6, 0xE] str r0, [sp, 0x4] movs r0, 0 bl sub_8199CBC movs r0, 0x9 ldrsb r0, [r4, r0] ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl ClearWindowTilemap movs r0, 0xA ldrsb r0, [r4, r0] ldr r1, [r5] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl ClearWindowTilemap mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, =sub_81B3E60 str r1, [r0] _081B3E3A: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B3D48 thumb_func_start sub_81B3E60 sub_81B3E60: @ 81B3E60 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r0, r6, 2 adds r0, r6 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 adds r0, r6, 0 bl sub_81B3CC0 adds r0, r6, 0 bl sub_81B3C60 movs r1, 0x14 ldrsh r0, [r4, r1] cmp r0, 0 bne _081B3EE4 movs r2, 0x16 ldrsh r0, [r4, r2] cmp r0, 0 bne _081B3EE4 ldr r5, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r5, r0] ldr r4, =gUnknown_0203CEDC ldr r1, [r4] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0xA ldrsb r0, [r5, r0] ldr r1, [r4] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0x8] bl PutWindowTilemap movs r0, 0 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gUnknown_0203CEF0 ldr r0, [r0] bl Free ldr r0, =gUnknown_0203CEF4 ldr r0, [r0] bl Free adds r0, r6, 0 bl sub_81B407C b _081B3F08 .pool _081B3EE4: ldrh r1, [r4, 0x14] ldrh r0, [r4, 0x10] adds r1, r0 strh r1, [r4, 0x10] ldrh r0, [r4, 0x16] ldrh r2, [r4, 0x12] adds r0, r2 strh r0, [r4, 0x12] lsls r1, 16 asrs r1, 16 cmp r1, 0 bne _081B3EFE strh r1, [r4, 0x14] _081B3EFE: movs r1, 0x12 ldrsh r0, [r4, r1] cmp r0, 0 bne _081B3F08 strh r0, [r4, 0x16] _081B3F08: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B3E60 thumb_func_start oamt_swap_pos oamt_swap_pos: @ 81B3F10 push {r4-r6,lr} mov r6, r10 mov r5, r9 mov r4, r8 push {r4-r6} ldrb r3, [r0] ldrb r2, [r1] strb r2, [r0] strb r3, [r1] ldr r5, =gSprites ldrb r2, [r0] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r5 ldrh r6, [r3, 0x20] ldrh r2, [r3, 0x22] mov r8, r2 ldrh r2, [r3, 0x24] mov r9, r2 ldrh r2, [r3, 0x26] mov r10, r2 ldrb r4, [r1] lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x20] strh r2, [r3, 0x20] ldrb r2, [r0] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r5 ldrb r4, [r1] lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x22] strh r2, [r3, 0x22] ldrb r2, [r0] lsls r3, r2, 4 adds r3, r2 lsls r3, 2 adds r3, r5 ldrb r4, [r1] lsls r2, r4, 4 adds r2, r4 lsls r2, 2 adds r2, r5 ldrh r2, [r2, 0x24] strh r2, [r3, 0x24] ldrb r0, [r0] lsls r2, r0, 4 adds r2, r0 lsls r2, 2 adds r2, r5 ldrb r3, [r1] lsls r0, r3, 4 adds r0, r3 lsls r0, 2 adds r0, r5 ldrh r0, [r0, 0x26] strh r0, [r2, 0x26] ldrb r2, [r1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 strh r6, [r0, 0x20] ldrb r2, [r1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 mov r2, r8 strh r2, [r0, 0x22] ldrb r2, [r1] lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r5 mov r2, r9 strh r2, [r0, 0x24] ldrb r1, [r1] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r5 mov r1, r10 strh r1, [r0, 0x26] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end oamt_swap_pos thumb_func_start swap_pokemon_and_oams swap_pokemon_and_oams: @ 81B3FDC push {r4-r6,lr} sub sp, 0x8 ldr r1, =gUnknown_0203CEDC ldr r2, =gUnknown_0203CEC8 movs r3, 0x9 ldrsb r3, [r2, r3] lsls r0, r3, 4 ldr r1, [r1] adds r0, r1, r0 str r0, [sp] ldrb r2, [r2, 0xA] lsls r2, 24 asrs r2, 24 lsls r0, r2, 4 adds r0, r1, r0 str r0, [sp, 0x4] movs r1, 0x64 adds r4, r3, 0 muls r4, r1 ldr r0, =gPlayerParty adds r4, r0 adds r5, r2, 0 muls r5, r1 adds r5, r0 movs r0, 0x64 bl Alloc adds r6, r0, 0 adds r1, r4, 0 movs r2, 0x64 bl memcpy adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x64 bl memcpy adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x64 bl memcpy adds r0, r6, 0 bl Free ldr r0, [sp] adds r0, 0xB ldr r1, [sp, 0x4] adds r1, 0xB bl oamt_swap_pos ldr r0, [sp] adds r0, 0xA ldr r1, [sp, 0x4] adds r1, 0xA bl oamt_swap_pos ldr r0, [sp] adds r0, 0x9 ldr r1, [sp, 0x4] adds r1, 0x9 bl oamt_swap_pos ldr r0, [sp] adds r0, 0xC ldr r1, [sp, 0x4] adds r1, 0xC bl oamt_swap_pos add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end swap_pokemon_and_oams thumb_func_start sub_81B407C sub_81B407C: @ 81B407C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C ldr r4, =gUnknown_0203CEC8 movs r0, 0 strb r0, [r4, 0xB] ldrb r0, [r4, 0x9] movs r1, 0 bl sub_81B0FCC ldrb r0, [r4, 0xA] strb r0, [r4, 0x9] ldrb r0, [r4, 0xA] movs r1, 0x1 bl sub_81B0FCC movs r0, 0 bl display_pokemon_menu_message ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1370 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B407C thumb_func_start brm_cancel_1 brm_cancel_1: @ 81B40D4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x6 bne _081B4110 movs r0, 0xF bl display_pokemon_menu_message b _081B4116 .pool _081B4110: movs r0, 0 bl display_pokemon_menu_message _081B4116: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end brm_cancel_1 thumb_func_start sub_81B4134 sub_81B4134: @ 81B4134 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gPlayerParty ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] movs r2, 0x8 bl sub_81B33B4 movs r0, 0x1 bl sub_81B31B0 movs r0, 0x18 bl display_pokemon_menu_message ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B4134 thumb_func_start sub_81B4198 sub_81B4198: @ 81B4198 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B41C4 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4198 thumb_func_start sub_81B41C4 sub_81B41C4: @ 81B41C4 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _081B41E0 ldr r2, =c2_8123744 movs r0, 0x2 movs r1, 0x5 bl GoToBagMenu b _081B41E8 .pool _081B41E0: ldr r1, =c2_8123744 movs r0, 0x2 bl sub_81C4F98 _081B41E8: pop {r0} bx r0 .pool thumb_func_end sub_81B41C4 thumb_func_start c2_8123744 c2_8123744: @ 81B41F0 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r6, =gUnknown_0203CE7C ldrh r0, [r6] cmp r0, 0 bne _081B4224 ldr r3, =gUnknown_0203CEC8 ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r3, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r3] b _081B425A .pool _081B4224: ldr r4, =gUnknown_0203CEFC ldr r5, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r5, r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r7, =gPlayerParty adds r0, r7 movs r1, 0xC bl GetMonData strh r0, [r4] lsls r0, 16 cmp r0, 0 beq _081B4278 ldrb r0, [r5, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r5, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B4350 str r1, [sp, 0x4] ldr r1, [r5] _081B425A: str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 b _081B42C0 .pool _081B4278: ldrh r0, [r6] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B42A4 ldrh r0, [r6] movs r1, 0x1 bl RemoveBagItem movs r0, 0x9 ldrsb r0, [r5, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 ldrh r1, [r6] bl sub_81B1DB8 bl sub_81B452C b _081B42C0 _081B42A4: ldrb r0, [r5, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r5, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B42D0 str r1, [sp, 0x4] ldr r1, [r5] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 _081B42C0: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end c2_8123744 thumb_func_start sub_81B42D0 sub_81B42D0: @ 81B42D0 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B432C ldr r0, =gUnknown_0203CE7C ldrh r4, [r0] ldr r0, =gUnknown_0203CEC8 mov r8, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 adds r1, r4, 0 movs r2, 0 movs r3, 0 bl sub_81B1C84 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r6 adds r0, r5 adds r1, r4, 0 bl sub_81B1DB8 adds r0, r4, 0 movs r1, 0x1 bl RemoveBagItem ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] _081B432C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B42D0 thumb_func_start sub_81B4350 sub_81B4350: @ 81B4350 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B4388 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_0203CEFC ldrh r1, [r1] movs r2, 0x1 bl sub_81B1D1C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B43A8 str r1, [r0] _081B4388: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4350 thumb_func_start sub_81B43A8 sub_81B43A8: @ 81B43A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B43CC bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B43DC str r0, [r1] _081B43CC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B43A8 thumb_func_start sub_81B43DC sub_81B43DC: @ 81B43DC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B4402 cmp r1, 0 bgt _081B43FC movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B44D8 b _081B44EC _081B43FC: cmp r1, 0x1 beq _081B44DE b _081B44EC _081B4402: ldr r5, =gUnknown_0203CE7C ldrh r0, [r5] movs r1, 0x1 bl RemoveBagItem ldr r6, =gUnknown_0203CEFC ldrh r0, [r6] movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081B4458 ldrh r0, [r5] movs r1, 0x1 bl AddBagItem ldrh r0, [r6] bl pokemon_item_not_removed ldr r0, =gStringVar4 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B44EC .pool _081B4458: ldrh r0, [r5] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B4498 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrh r1, [r5] bl sub_81B1DB8 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B44FC str r1, [r0] b _081B44EC .pool _081B4498: ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrh r1, [r5] bl sub_81B1DB8 ldrh r0, [r5] ldrh r1, [r6] movs r2, 0x1 bl sub_81B1D68 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] b _081B44EC .pool _081B44D8: movs r0, 0x5 bl PlaySE _081B44DE: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B44EC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B43DC thumb_func_start sub_81B44FC sub_81B44FC: @ 81B44FC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B451C ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B452C str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 _081B451C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B44FC thumb_func_start sub_81B452C sub_81B452C: @ 81B452C push {lr} ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x40 bl GetMonData lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr lsls r2, r0, 3 adds r2, r0 lsls r2, 2 ldr r0, =0x00002be0 adds r2, r0 ldr r1, [r1] adds r1, r2 ldr r2, =sub_81B4578 movs r0, 0x4 movs r3, 0x3 bl sub_811A20C pop {r0} bx r0 .pool thumb_func_end sub_81B452C thumb_func_start sub_81B4578 sub_81B4578: @ 81B4578 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 ldr r0, =gScriptResult ldrh r7, [r0] cmp r7, 0 bne _081B45F8 adds r0, r5, 0 bl sub_80D4680 ldr r4, =gUnknown_0203CEFC adds r0, r5, 0 movs r1, 0xC adds r2, r4, 0 bl SetMonData ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem mov r0, r8 movs r1, 0x1 bl AddBagItem ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r6, 0xB] str r7, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r6] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 b _081B4614 .pool _081B45F8: ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r6, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B4624 str r1, [sp, 0x4] ldr r1, [r6] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 _081B4614: add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4578 thumb_func_start sub_81B4624 sub_81B4624: @ 81B4624 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B468A ldr r1, =gUnknown_0203CEFC ldrh r0, [r1] cmp r0, 0 bne _081B4670 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_0203CE7C ldrh r1, [r1] movs r2, 0 movs r3, 0 bl sub_81B1C84 b _081B467C .pool _081B4670: ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] ldrh r1, [r1] movs r2, 0 bl sub_81B1D68 _081B467C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B469C str r0, [r1] _081B468A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4624 thumb_func_start sub_81B469C sub_81B469C: @ 81B469C push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r6, r1, r0 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B471C ldr r5, =gUnknown_0203CEDC movs r0, 0x9 ldrsb r0, [r4, r0] lsls r0, 4 ldr r1, [r5] adds r1, r0 adds r0, r6, 0 bl sub_81B5C94 ldrb r1, [r4, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xC bne _081B4716 adds r0, r6, 0 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B4704 movs r0, 0x9 ldrsb r0, [r4, r0] lsls r0, 4 ldr r1, [r5] adds r1, r0 movs r0, 0xB movs r2, 0x1 bl sub_81B2FA8 b _081B4716 .pool _081B4704: movs r0, 0x9 ldrsb r0, [r4, r0] lsls r0, 4 ldr r1, [r5] adds r1, r0 movs r0, 0xC movs r2, 0x1 bl sub_81B2FA8 _081B4716: adds r0, r7, 0 bl sub_81B1C1C _081B471C: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B469C thumb_func_start sub_81B4724 sub_81B4724: @ 81B4724 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl sub_81B1E00 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B4788 cmp r0, 0x1 beq _081B47AC adds r0, r5, 0 adds r1, r6, 0 movs r2, 0x1 bl sub_81B1CD0 b _081B47BA .pool _081B4788: ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9980 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 b _081B47B4 .pool _081B47AC: adds r0, r6, 0 bl pokemon_item_not_removed ldr r0, =gStringVar4 _081B47B4: movs r1, 0x1 bl sub_81B1B5C _081B47BA: movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gTasks lsls r1, r7, 2 adds r1, r7 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B469C str r0, [r1] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4724 thumb_func_start sub_81B47E0 sub_81B47E0: @ 81B47E0 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r5, r0, 16 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C cmp r5, 0 bne _081B4864 ldr r1, =gStringVar1 adds r0, r7, 0 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9980 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C b _081B488A .pool _081B4864: ldr r1, =gStringVar1 adds r0, r5, 0 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9E00 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B48A8 _081B488A: str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B47E0 thumb_func_start sub_81B48A8 sub_81B48A8: @ 81B48A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B48CC bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B48DC str r0, [r1] _081B48CC: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B48A8 thumb_func_start sub_81B48DC sub_81B48DC: @ 81B48DC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B491A cmp r1, 0 bgt _081B4914 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B4964 b _081B4978 .pool _081B4914: cmp r1, 0x1 beq _081B496A b _081B4978 _081B491A: adds r0, r4, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r1, =gStringVar1 bl CopyItemName ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9E14 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B4988 str r1, [r0] b _081B4978 .pool _081B4964: movs r0, 0x5 bl PlaySE _081B496A: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B4978: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B48DC thumb_func_start sub_81B4988 sub_81B4988: @ 81B4988 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B49EC movs r1, 0 mov r0, sp strh r1, [r0] adds r0, r5, 0 movs r1, 0xC mov r2, sp bl SetMonData ldr r4, =gUnknown_0203CEDC movs r0, 0x9 ldrsb r0, [r6, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 adds r0, r5, 0 bl sub_81B5C94 movs r0, 0x9 ldrsb r0, [r6, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 movs r0, 0xC movs r2, 0x1 bl sub_81B2FA8 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B49EC: add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4988 thumb_func_start sub_81B4A08 sub_81B4A08: @ 81B4A08 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gPlayerParty ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] movs r2, 0x9 bl sub_81B33B4 movs r0, 0x2 bl sub_81B31B0 movs r0, 0x19 bl display_pokemon_menu_message ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B4A08 thumb_func_start sub_81B4A6C sub_81B4A6C: @ 81B4A6C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B4A98 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4A6C thumb_func_start sub_81B4A98 sub_81B4A98: @ 81B4A98 push {lr} ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x40 bl GetMonData ldr r2, =gSaveBlock1Ptr lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, =0x00002be0 adds r1, r0 ldr r0, [r2] adds r0, r1 ldr r1, =sub_81B4AE0 movs r2, 0x1 bl sub_8121478 pop {r0} bx r0 .pool thumb_func_end sub_81B4A98 thumb_func_start sub_81B4AE0 sub_81B4AE0: @ 81B4AE0 push {lr} sub sp, 0xC ldr r2, =gPaletteFade ldrb r0, [r2, 0x8] movs r1, 0x80 orrs r0, r1 strb r0, [r2, 0x8] ldr r3, =gUnknown_0203CEC8 ldrb r0, [r3, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r3, 0xB] movs r1, 0x15 str r1, [sp] ldr r1, =sub_81B36FC str r1, [sp, 0x4] ldr r1, [r3] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B4AE0 thumb_func_start brm_take_2 brm_take_2: @ 81B4B20 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] adds r0, 0xD bl sub_81B302C ldr r0, [r5] adds r0, 0xC bl sub_81B302C ldr r0, =gUnknown_085E9855 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B4B6C str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end brm_take_2 thumb_func_start sub_81B4B6C sub_81B4B6C: @ 81B4B6C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B4B90 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B4BA0 str r0, [r1] _081B4B90: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4B6C thumb_func_start sub_81B4BA0 sub_81B4BA0: @ 81B4BA0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B4BC6 cmp r1, 0 bgt _081B4BC0 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B4C30 b _081B4C4C _081B4BC0: cmp r1, 0x1 beq _081B4C36 b _081B4C4C _081B4BC6: ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 bl sub_80D4700 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF beq _081B4C0C ldr r0, =gUnknown_085E9877 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C b _081B4C4A .pool _081B4C0C: ldr r0, =gUnknown_085E9897 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C b _081B4C4A .pool _081B4C30: movs r0, 0x5 bl PlaySE _081B4C36: ldr r0, =gUnknown_085E98B4 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B4C60 _081B4C4A: str r1, [r0] _081B4C4C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4BA0 thumb_func_start sub_81B4C60 sub_81B4C60: @ 81B4C60 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B4C84 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B4C94 str r0, [r1] _081B4C84: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4C60 thumb_func_start sub_81B4C94 sub_81B4C94: @ 81B4C94 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B4CBE cmp r1, 0 bgt _081B4CB8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B4D50 b _081B4D64 _081B4CB8: cmp r1, 0x1 beq _081B4D56 b _081B4D64 _081B4CBE: ldr r0, =gUnknown_0203CEC8 mov r8, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r7, 0x64 muls r0, r7 ldr r6, =gPlayerParty adds r0, r6 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B4D24 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r7 adds r0, r6 bl sub_80D4680 ldr r0, =gUnknown_085E99B8 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B469C str r1, [r0] b _081B4D64 .pool _081B4D24: adds r0, r4, 0 bl pokemon_item_not_removed ldr r0, =gStringVar4 movs r1, 0 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B4D64 .pool _081B4D50: movs r0, 0x5 bl PlaySE _081B4D56: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1C1C str r0, [r1] _081B4D64: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4C94 thumb_func_start sub_81B4D78 sub_81B4D78: @ 81B4D78 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r5, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r5, r1] movs r0, 0x64 muls r0, r1 ldr r6, =gPlayerParty adds r7, r0, r6 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldrb r4, [r5, 0x9] adds r0, r7, 0 bl sub_81B353C adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r6, 0 adds r1, r4, 0 bl sub_81B33B4 ldrb r1, [r5, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0xC beq _081B4DE4 movs r0, 0 bl sub_81B31B0 movs r0, 0x15 bl display_pokemon_menu_message b _081B4E02 .pool _081B4DE4: movs r0, 0x1 bl sub_81B31B0 adds r0, r7, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 ldr r1, =gStringVar2 bl CopyItemName movs r0, 0x1A bl display_pokemon_menu_message _081B4E02: ldr r1, =gTasks mov r2, r8 lsls r0, r2, 2 add r0, r8 lsls r0, 3 adds r0, r1 movs r1, 0xFF strh r1, [r0, 0x8] ldr r1, =sub_81B3730 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4D78 thumb_func_start brm_shift_sendout brm_shift_sendout: @ 81B4E2C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 bl PlaySE ldr r5, =gUnknown_0203CEC4 ldr r0, [r5] adds r0, 0xC bl sub_81B302C bl sub_81B8A7C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B4E5C adds r0, r4, 0 bl sub_81B12C0 b _081B4E7A .pool _081B4E5C: ldr r0, [r5] adds r0, 0xD bl sub_81B302C ldr r0, =gStringVar4 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B4E7A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end brm_shift_sendout thumb_func_start sub_81B4E8C sub_81B4E8C: @ 81B4E8C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r7, r0, 24 ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C bl sub_81B8830 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 cmp r5, r6 bcs _081B4F36 ldr r2, =gUnknown_0203CEC8 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 mov r8, r0 _081B4EC6: ldr r0, =gUnknown_0203CEF8 adds r4, r5, r0 ldrb r0, [r4] cmp r0, 0 bne _081B4F2C movs r0, 0x5 str r2, [sp] bl PlaySE ldr r2, [sp] ldrb r0, [r2, 0x9] adds r0, 0x1 strb r0, [r4] adds r0, r5, 0x2 lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEDC ldrb r2, [r2, 0x9] lsls r2, 24 asrs r2, 24 lsls r2, 4 ldr r1, [r1] adds r1, r2 movs r2, 0x1 bl sub_81B2FA8 subs r0, r6, 0x1 cmp r5, r0 bne _081B4F04 bl sub_81B4F88 _081B4F04: movs r0, 0 bl display_pokemon_menu_message ldr r0, =sub_81B1370 mov r1, r8 str r0, [r1] b _081B4F68 .pool _081B4F2C: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, r6 bcc _081B4EC6 _081B4F36: ldr r0, =gStringVar1 adds r1, r6, 0 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9830 adds r0, r4, 0 bl StringExpandPlaceholders movs r0, 0x20 bl PlaySE adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B4F68: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4E8C thumb_func_start sub_81B4F88 sub_81B4F88: @ 81B4F88 push {r4,lr} ldr r4, =gUnknown_0203CEC8 ldrb r0, [r4, 0x9] movs r1, 0 bl sub_81B0FCC movs r0, 0x6 strb r0, [r4, 0x9] movs r1, 0x1 bl sub_81B0FCC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B4F88 thumb_func_start sub_81B4FA8 sub_81B4FA8: @ 81B4FA8 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r0, 0x5 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C bl sub_81B8830 lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _081B502A ldr r6, =gUnknown_0203CEF8 subs r2, r5, 0x1 adds r7, r6, 0 ldr r3, =gUnknown_0203CEC8 _081B4FE2: adds r0, r4, r6 ldrb r1, [r0] movs r0, 0x9 ldrsb r0, [r3, r0] adds r0, 0x1 cmp r1, r0 bne _081B5020 adds r0, r4, 0 adds r4, r2, 0 cmp r0, r4 bge _081B500C adds r3, r7, 0 _081B4FFA: adds r2, r0, r3 adds r1, r0, 0x1 adds r0, r1, r3 ldrb r0, [r0] strb r0, [r2] lsls r1, 24 lsrs r0, r1, 24 cmp r0, r4 blt _081B4FFA _081B500C: adds r1, r0, r6 movs r0, 0 strb r0, [r1] b _081B502A .pool _081B5020: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 bcc _081B4FE2 _081B502A: ldr r6, =gUnknown_0203CEDC ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 lsls r0, 4 ldr r1, [r6] adds r1, r0 movs r0, 0x1 movs r2, 0x1 bl sub_81B2FA8 movs r4, 0 subs r5, 0x1 mov r0, r8 lsls r7, r0, 2 cmp r4, r5 bge _081B5078 _081B504E: ldr r0, =gUnknown_0203CEF8 adds r1, r4, r0 ldrb r0, [r1] cmp r0, 0 beq _081B506E adds r0, r4, 0x2 lsls r0, 24 lsrs r0, 24 ldrb r2, [r1] lsls r2, 4 subs r2, 0x10 ldr r1, [r6] adds r1, r2 movs r2, 0x1 bl sub_81B2FA8 _081B506E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r5 blt _081B504E _081B5078: movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks mov r2, r8 adds r1, r7, r2 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B4FA8 thumb_func_start sub_81B50AC sub_81B50AC: @ 81B50AC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B12C0 pop {r4} pop {r0} bx r0 thumb_func_end sub_81B50AC thumb_func_start sub_81B50C8 sub_81B50C8: @ 81B50C8 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 mov r9, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x41 bl GetMonData adds r6, r0, 0 lsls r6, 16 lsrs r6, 16 mov r1, r9 movs r0, 0x9 ldrsb r0, [r1, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r4 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r9 movs r0, 0x9 ldrsb r0, [r1, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r4 movs r1, 0x50 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800F7DC ldr r0, [r0] adds r1, r6, 0 adds r2, r5, 0 adds r3, r4, 0 bl sub_807A8D0 cmp r0, 0x1 beq _081B515C cmp r0, 0x2 beq _081B5170 movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl sub_81B12C0 b _081B51B0 .pool _081B515C: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA210 bl StringExpandPlaceholders b _081B5178 .pool _081B5170: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA234 bl StringExpandPlaceholders _081B5178: movs r0, 0x20 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r4, =gStringVar4 ldr r1, =gUnknown_085EA1CA adds r0, r4, 0 bl StringAppend adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] _081B51B0: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B50C8 thumb_func_start brm_trade_1 brm_trade_1: @ 81B51D4 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 mov r8, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r6, 0x64 muls r0, r6 ldr r4, =gPlayerParty adds r0, r4 movs r1, 0x41 bl GetMonData mov r9, r0 mov r1, r9 lsls r1, 16 lsrs r1, 16 mov r9, r1 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r6 adds r0, r4 movs r1, 0xB bl GetMonData adds r5, r0, 0 lsls r5, 16 lsrs r5, 16 mov r1, r8 movs r0, 0x9 ldrsb r0, [r1, r0] muls r0, r6 adds r0, r4 movs r1, 0x50 bl GetMonData adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_800F7DC ldr r0, [r0] ldr r1, =gUnknown_02022C38 ldr r1, [r1] ldr r2, =gUnknown_02022C3C ldrh r3, [r2] ldr r2, =gUnknown_02022C3E ldrb r2, [r2] str r2, [sp] str r5, [sp, 0x4] str r4, [sp, 0x8] mov r2, r9 bl sub_807A7E0 cmp r0, 0 beq _081B52C8 ldr r5, =gStringVar4 ldr r1, =gUnknown_08615E0C subs r0, 0x1 lsls r0, 2 adds r0, r1 ldr r1, [r0] adds r0, r5, 0 bl StringExpandPlaceholders movs r0, 0x20 bl PlaySE ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r1, =gUnknown_085EA1CA adds r0, r5, 0 bl StringAppend adds r0, r5, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B52D4 .pool _081B52C8: movs r0, 0x5 bl PlaySE adds r0, r7, 0 bl sub_81B12C0 _081B52D4: add sp, 0xC pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end brm_trade_1 thumb_func_start sub_81B52E4 sub_81B52E4: @ 81B52E4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] adds r0, 0xC bl sub_81B302C ldr r0, [r4] adds r0, 0xD bl sub_81B302C ldr r0, =gPlayerParty ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl sub_807A918 cmp r0, 0x2 beq _081B5340 cmp r0, 0x2 bgt _081B5328 cmp r0, 0x1 beq _081B532E b _081B5368 .pool _081B5328: cmp r0, 0x3 beq _081B5354 b _081B5368 _081B532E: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA1E8 bl StringExpandPlaceholders b _081B53C0 .pool _081B5340: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA210 bl StringExpandPlaceholders b _081B53C0 .pool _081B5354: ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA234 bl StringExpandPlaceholders b _081B53C0 .pool _081B5368: movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gUnknown_085EA1CD adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B53FC b _081B53E4 .pool _081B53C0: movs r0, 0x20 bl PlaySE ldr r4, =gStringVar4 ldr r1, =gUnknown_085EA1CA adds r0, r4, 0 bl StringAppend adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C _081B53E4: str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B52E4 thumb_func_start sub_81B53FC sub_81B53FC: @ 81B53FC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B5420 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B5430 str r0, [r1] _081B5420: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B53FC thumb_func_start sub_81B5430 sub_81B5430: @ 81B5430 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B5456 cmp r1, 0 bgt _081B5450 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B545E b _081B546A _081B5450: cmp r1, 0x1 beq _081B5464 b _081B546A _081B5456: adds r0, r4, 0 bl sub_81B12C0 b _081B546A _081B545E: movs r0, 0x5 bl PlaySE _081B5464: adds r0, r4, 0 bl sub_81B1C1C _081B546A: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5430 thumb_func_start sub_81B5470 sub_81B5470: @ 81B5470 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 bl GetMenuCursorPos ldr r5, =gUnknown_0203CEC4 ldr r1, [r5] lsls r0, 24 lsrs r0, 24 adds r1, 0xF adds r1, r0 ldrb r0, [r1] subs r0, 0x13 lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x5 bl PlaySE ldr r1, =gUnknown_08615D9C lsls r0, r4, 3 adds r7, r0, r1 ldr r0, [r7] cmp r0, 0 bne _081B54A2 b _081B5664 _081B54A2: ldr r0, [r5] adds r0, 0xC bl sub_81B302C ldr r0, [r5] adds r0, 0xD bl sub_81B302C bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B54C6 bl InUnionRoom cmp r0, 0x1 bne _081B54E8 _081B54C6: adds r0, r4, 0 subs r0, 0xB lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bhi _081B54E4 movs r0, 0xD bl display_pokemon_menu_message b _081B5656 .pool _081B54E4: ldrb r0, [r7, 0x4] b _081B5652 _081B54E8: cmp r4, 0x7 bhi _081B5524 ldr r1, =0x00000867 adds r0, r4, r1 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B5524 ldr r0, =gUnknown_085E97FC movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B1C1C str r1, [r0] b _081B5664 .pool _081B5524: ldr r1, =gUnknown_08615D9C lsls r0, r4, 3 adds r5, r0, r1 ldr r0, [r5] bl _call_via_r0 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B553A b _081B563C _081B553A: subs r0, r4, 0x5 cmp r0, 0x7 bhi _081B5624 lsls r0, 2 ldr r1, =_081B5554 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B5554: .4byte _081B5614 .4byte _081B5624 .4byte _081B5624 .4byte _081B557C .4byte _081B55B8 .4byte _081B5624 .4byte _081B5574 .4byte _081B5574 _081B5574: adds r0, r6, 0 bl sub_8161560 b _081B5664 _081B557C: ldr r0, =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0x1C ldrsb r0, [r1, r0] lsls r0, 16 lsrs r0, 16 ldrb r1, [r1, 0x1D] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r1, r0, 0 ldr r0, =gStringVar1 ldrb r1, [r1, 0x14] bl sub_81245DC ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA196 b _081B55E8 .pool _081B55B8: ldr r0, =gSaveBlock1Ptr ldr r1, [r0] adds r0, r1, 0 adds r0, 0x24 ldrb r0, [r0] lsls r0, 24 asrs r0, 24 lsls r0, 16 lsrs r0, 16 adds r1, 0x25 ldrb r1, [r1] lsls r1, 24 asrs r1, 24 lsls r1, 16 lsrs r1, 16 bl get_mapheader_by_bank_and_number adds r1, r0, 0 ldr r0, =gStringVar1 ldrb r1, [r1, 0x14] bl sub_81245DC ldr r0, =gStringVar4 ldr r1, =gUnknown_085EA16B _081B55E8: bl StringExpandPlaceholders adds r0, r6, 0 bl sub_81B5674 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0x86 lsls r1, 2 adds r0, r1 strh r4, [r0] b _081B5664 .pool _081B5614: ldr r1, =gUnknown_0203CEC8 ldr r0, =sub_8124690 b _081B5628 .pool _081B5624: ldr r1, =gUnknown_0203CEC8 ldr r0, =c2_exit_to_overworld_2_switch _081B5628: str r0, [r1] adds r0, r6, 0 bl sub_81B12C0 b _081B5664 .pool _081B563C: cmp r4, 0x1 beq _081B564A cmp r4, 0x4 bne _081B5650 bl sub_81B5864 b _081B5656 _081B564A: bl sub_81B57DC b _081B5656 _081B5650: ldrb r0, [r5, 0x4] _081B5652: bl display_pokemon_menu_message _081B5656: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =task_brm_cancel_1_on_keypad_a_or_b str r0, [r1] _081B5664: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5470 thumb_func_start sub_81B5674 sub_81B5674: @ 81B5674 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gStringVar4 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B56A4 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B5674 thumb_func_start sub_81B56A4 sub_81B56A4: @ 81B56A4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B56C8 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B56D8 str r0, [r1] _081B56C8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B56A4 thumb_func_start sub_81B56D8 sub_81B56D8: @ 81B56D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B56FE cmp r1, 0 bgt _081B56F8 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B5714 b _081B572A _081B56F8: cmp r1, 0x1 beq _081B571A b _081B572A _081B56FE: ldr r1, =gUnknown_0203CEC8 ldr r0, =c2_exit_to_overworld_2_switch str r0, [r1] adds r0, r4, 0 bl sub_81B12C0 b _081B572A .pool _081B5714: movs r0, 0x5 bl PlaySE _081B571A: ldr r0, =gUnknown_03005DB0 movs r1, 0 str r1, [r0] ldr r0, =gUnknown_0203CEEC str r1, [r0] adds r0, r4, 0 bl sub_81B1C1C _081B572A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B56D8 thumb_func_start hm_add_c3_launch_phase_2 hm_add_c3_launch_phase_2: @ 81B5738 push {lr} bl pal_fill_black ldr r0, =task_launch_hm_phase_2 movs r1, 0x8 bl CreateTask movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end hm_add_c3_launch_phase_2 thumb_func_start task_launch_hm_phase_2 task_launch_hm_phase_2: @ 81B5750 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80ABDFC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B577C bl brm_get_selected_species ldr r1, =gFieldEffectSpawnParams lsls r0, 16 lsrs r0, 16 str r0, [r1] ldr r0, =gUnknown_0203CEEC ldr r0, [r0] bl _call_via_r0 adds r0, r4, 0 bl DestroyTask _081B577C: pop {r4} pop {r0} bx r0 .pool thumb_func_end task_launch_hm_phase_2 thumb_func_start brm_get_selected_species brm_get_selected_species: @ 81B578C push {lr} ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 pop {r1} bx r1 .pool thumb_func_end brm_get_selected_species thumb_func_start task_brm_cancel_1_on_keypad_a_or_b task_brm_cancel_1_on_keypad_a_or_b: @ 81B57B4 push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081B57CE movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B57D4 _081B57CE: adds r0, r2, 0 bl brm_cancel_1 _081B57D4: pop {r0} bx r0 .pool thumb_func_end task_brm_cancel_1_on_keypad_a_or_b thumb_func_start sub_81B57DC sub_81B57DC: @ 81B57DC push {lr} ldr r0, =0x00000888 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B57F8 movs r0, 0xC bl display_pokemon_menu_message b _081B57FE .pool _081B57F8: movs r0, 0xD bl display_pokemon_menu_message _081B57FE: pop {r0} bx r0 thumb_func_end sub_81B57DC thumb_func_start hm_surf_run_dp02scr hm_surf_run_dp02scr: @ 81B5804 push {lr} bl brm_get_pokemon_selection ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] movs r0, 0x9 bl FieldEffectStart pop {r0} bx r0 .pool thumb_func_end hm_surf_run_dp02scr thumb_func_start sub_81B5820 sub_81B5820: @ 81B5820 push {lr} bl PartyHasMonWithSurf lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B585C bl IsPlayerFacingSurfableFishableWater lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B585C ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_launch_phase_2 str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm_surf_run_dp02scr str r0, [r1] movs r0, 0x1 b _081B585E .pool _081B585C: movs r0, 0 _081B585E: pop {r1} bx r1 thumb_func_end sub_81B5820 thumb_func_start sub_81B5864 sub_81B5864: @ 81B5864 push {lr} movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 beq _081B587A movs r0, 0x9 bl display_pokemon_menu_message b _081B5880 _081B587A: movs r0, 0x8 bl display_pokemon_menu_message _081B5880: pop {r0} bx r0 thumb_func_end sub_81B5864 thumb_func_start sub_81B5884 sub_81B5884: @ 81B5884 push {lr} ldr r0, =gMapHeader ldrb r0, [r0, 0x17] bl is_light_level_1_2_3_or_6 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B58A0 movs r0, 0 b _081B58A2 .pool _081B58A0: movs r0, 0x1 _081B58A2: pop {r1} bx r1 thumb_func_end sub_81B5884 thumb_func_start sub_81B58A8 sub_81B58A8: @ 81B58A8 push {lr} sub sp, 0xC movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_8086194 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B58A8 thumb_func_start hm2_waterfall hm2_waterfall: @ 81B58D4 push {lr} bl brm_get_pokemon_selection ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] movs r0, 0x2B bl FieldEffectStart pop {r0} bx r0 .pool thumb_func_end hm2_waterfall thumb_func_start hm_prepare_waterfall hm_prepare_waterfall: @ 81B58F0 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 lsls r0, 24 lsrs r0, 24 bl MetatileBehavior_IsWaterfall lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B594C bl IsPlayerSurfingNorth lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B594C ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_launch_phase_2 str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =hm2_waterfall str r0, [r1] movs r0, 0x1 b _081B594E .pool _081B594C: movs r0, 0 _081B594E: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end hm_prepare_waterfall thumb_func_start sub_81B5958 sub_81B5958: @ 81B5958 push {lr} bl brm_get_pokemon_selection ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1] movs r0, 0x2C bl FieldEffectStart pop {r0} bx r0 .pool thumb_func_end sub_81B5958 thumb_func_start sub_81B5974 sub_81B5974: @ 81B5974 push {lr} bl sub_809D1E8 ldr r1, =gFieldEffectSpawnParams lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x4] cmp r0, 0 bne _081B5990 movs r0, 0 b _081B599E .pool _081B5990: ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_launch_phase_2 str r0, [r1] ldr r1, =gUnknown_0203CEEC ldr r0, =sub_81B5958 str r0, [r1] movs r0, 0x1 _081B599E: pop {r1} bx r1 .pool thumb_func_end sub_81B5974 thumb_func_start party_menu_icon_anim @ void party_menu_icon_anim(struct pokemon *mon, int a2, int a3) party_menu_icon_anim: @ 81B59B4 push {r4-r7,lr} sub sp, 0x4 adds r5, r0, 0 adds r7, r1, 0 adds r4, r2, 0 movs r6, 0x1 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B59EA ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B59EA ldr r0, =gUnknown_08616020 adds r0, r4, r0 ldrb r1, [r0] eors r1, r6 negs r0, r1 orrs r0, r1 lsrs r6, r0, 31 _081B59EA: adds r0, r5, 0 movs r1, 0x41 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r5, 0 movs r1, 0 bl GetMonData adds r1, r0, 0 str r6, [sp] adds r0, r4, 0 adds r2, r7, 0 movs r3, 0x1 bl party_menu_link_mon_icon_anim ldrb r0, [r7, 0x9] adds r1, r5, 0 bl sub_81B5B38 add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end party_menu_icon_anim thumb_func_start party_menu_link_mon_icon_anim @ void party_menu_link_mon_icon_anim(u16 speciesId, u32 personality, int a3, char a4, int a5) party_menu_link_mon_icon_anim: @ 81B5A2C push {r4-r7,lr} sub sp, 0xC adds r6, r1, 0 adds r4, r2, 0 lsls r0, 16 lsrs r5, r0, 16 lsls r3, 24 lsrs r7, r3, 24 cmp r5, 0 beq _081B5A7A ldr r1, =sub_80D3014 ldr r0, [r4, 0x4] ldrb r2, [r0] ldrb r3, [r0, 0x1] movs r0, 0x4 str r0, [sp] str r6, [sp, 0x4] ldr r0, [sp, 0x20] str r0, [sp, 0x8] adds r0, r5, 0 bl sub_80D2CC4 strb r0, [r4, 0x9] ldr r2, =gSprites ldrb r0, [r4, 0x9] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 movs r0, 0x3 adds r2, r7, 0 ands r2, r0 lsls r2, 2 ldrb r3, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r3 orrs r0, r2 strb r0, [r1, 0x5] _081B5A7A: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_icon_anim thumb_func_start sub_81B5A8C sub_81B5A8C: @ 81B5A8C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 adds r0, r1, 0 adds r1, r2, 0 bl sub_8075060 lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 beq _081B5AEC cmp r0, 0x2 bgt _081B5AB4 cmp r0, 0x1 beq _081B5B04 b _081B5B1C _081B5AB4: cmp r0, 0x3 beq _081B5AD4 cmp r0, 0x4 bne _081B5B1C lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0 bl sub_80D32C8 b _081B5B2C .pool _081B5AD4: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl sub_80D32C8 b _081B5B2C .pool _081B5AEC: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x2 bl sub_80D32C8 b _081B5B2C .pool _081B5B04: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x3 bl sub_80D32C8 b _081B5B2C .pool _081B5B1C: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x4 bl sub_80D32C8 _081B5B2C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B5A8C thumb_func_start sub_81B5B38 sub_81B5B38: @ 81B5B38 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 adds r0, r6, 0 movs r1, 0x39 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 adds r0, r6, 0 movs r1, 0x3A bl GetMonData adds r2, r0, 0 lsls r2, 16 lsrs r2, 16 adds r0, r5, 0 adds r1, r4, 0 bl sub_81B5A8C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B5B38 thumb_func_start sub_81B5B6C sub_81B5B6C: @ 81B5B6C push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 ldr r5, =gSprites lsls r0, r4, 4 adds r0, r4 lsls r6, r0, 2 adds r2, r6, r5 movs r7, 0 movs r3, 0 strh r3, [r2, 0x2E] mov r12, r5 cmp r1, 0 bne _081B5BC4 movs r1, 0x20 ldrsh r0, [r2, r1] cmp r0, 0x10 bne _081B5BA4 strh r3, [r2, 0x24] ldr r0, =0x0000fffc strh r0, [r2, 0x26] b _081B5BAA .pool _081B5BA4: ldr r0, =0x0000fffc strh r0, [r2, 0x24] strh r3, [r2, 0x26] _081B5BAA: lsls r0, r4, 4 adds r0, r4 lsls r0, 2 mov r1, r12 adds r1, 0x1C adds r0, r1 ldr r1, =sub_81B5C08 b _081B5BD0 .pool _081B5BC4: strh r3, [r2, 0x24] strh r3, [r2, 0x26] adds r0, r5, 0 adds r0, 0x1C adds r0, r6, r0 ldr r1, =sub_81B5BDC _081B5BD0: str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5B6C thumb_func_start sub_81B5BDC sub_81B5BDC: @ 81B5BDC push {r4,lr} adds r4, r0, 0 bl sub_80D30DC lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081B5C02 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081B5C00 ldr r0, =0x0000fffd strh r0, [r4, 0x26] b _081B5C02 .pool _081B5C00: strh r1, [r4, 0x26] _081B5C02: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5BDC thumb_func_start sub_81B5C08 sub_81B5C08: @ 81B5C08 push {lr} bl sub_80D30DC pop {r0} bx r0 thumb_func_end sub_81B5C08 thumb_func_start party_menu_held_item_object party_menu_held_item_object: @ 81B5C14 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B5C3C ldr r0, =gUnknown_08615EC0 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x3] movs r3, 0 bl CreateSprite strb r0, [r4, 0xA] adds r0, r5, 0 adds r1, r4, 0 bl sub_81B5C94 _081B5C3C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_held_item_object thumb_func_start party_menu_link_mon_held_item_object party_menu_link_mon_held_item_object: @ 81B5C48 push {r4,r5,lr} adds r4, r2, 0 lsls r0, 16 lsls r1, 16 lsrs r5, r1, 16 cmp r0, 0 beq _081B5C84 ldr r0, =gUnknown_08615EC0 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x2] ldrb r2, [r2, 0x3] movs r3, 0 bl CreateSprite strb r0, [r4, 0xA] ldr r2, =gSprites ldrb r0, [r4, 0xA] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] adds r0, r5, 0 adds r1, r4, 0 bl sub_81B5CB0 _081B5C84: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_held_item_object thumb_func_start sub_81B5C94 sub_81B5C94: @ 81B5C94 push {r4,lr} adds r4, r1, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r0, 16 adds r1, r4, 0 bl sub_81B5CB0 pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5C94 thumb_func_start sub_81B5CB0 sub_81B5CB0: @ 81B5CB0 push {r4,lr} adds r4, r1, 0 lsls r0, 16 lsrs r0, 16 cmp r0, 0 bne _081B5CD8 ldr r2, =gSprites ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081B5D24 .pool _081B5CD8: bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B5CFC ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0x1 bl StartSpriteAnim b _081B5D0E .pool _081B5CFC: ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, =gSprites adds r0, r1 movs r1, 0 bl StartSpriteAnim _081B5D0E: ldr r2, =gSprites ldrb r1, [r4, 0xA] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081B5D24: strb r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B5CB0 thumb_func_start sub_81B5D30 sub_81B5D30: @ 81B5D30 push {lr} ldr r0, =gUnknown_08615EB0 bl LoadSpriteSheet ldr r0, =gUnknown_08615EB8 bl LoadSpritePalette pop {r0} bx r0 .pool thumb_func_end sub_81B5D30 thumb_func_start sub_81B5D4C sub_81B5D4C: @ 81B5D4C push {r4-r7,lr} adds r6, r0, 0 adds r7, r1, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0 beq _081B5D60 cmp r2, 0x1 beq _081B5DA8 b _081B5DE4 _081B5D60: movs r5, 0 ldrb r0, [r6] cmp r5, r0 bcs _081B5DE4 _081B5D68: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _081B5D94 adds r0, r7, r5 ldrb r4, [r0] adds r0, r1, 0 bl itemid_is_mail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B5DF0 _081B5D94: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 ldrb r0, [r6] cmp r5, r0 bcc _081B5D68 b _081B5DE4 .pool _081B5DA8: movs r5, 0 b _081B5DDE _081B5DAC: movs r0, 0x64 muls r0, r5 ldr r1, =gEnemyParty adds r0, r1 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 beq _081B5DD8 adds r0, r5, r7 ldrb r4, [r0, 0x6] adds r0, r1, 0 bl itemid_is_mail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B5DF0 _081B5DD8: adds r0, r5, 0x1 lsls r0, 16 lsrs r5, r0, 16 _081B5DDE: ldrb r0, [r6, 0x1] cmp r5, r0 bcc _081B5DAC _081B5DE4: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5D4C thumb_func_start sub_81B5DF0 sub_81B5DF0: @ 81B5DF0 push {r4-r6,lr} mov r6, r9 mov r5, r8 push {r5,r6} adds r6, r0, 0 mov r9, r1 lsls r6, 24 lsrs r6, 24 mov r0, r9 lsls r0, 24 lsrs r0, 24 mov r9, r0 ldr r0, =gSprites mov r8, r0 lsls r0, r6, 4 adds r0, r6 lsls r0, 2 add r0, r8 adds r0, 0x43 ldrb r3, [r0] ldr r0, =gUnknown_08615EC0 subs r3, 0x1 lsls r3, 24 lsrs r3, 24 movs r1, 0xFA movs r2, 0xAA bl CreateSprite lsls r0, 24 lsrs r0, 24 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 mov r0, r8 adds r5, r4, r0 movs r0, 0x4 strh r0, [r5, 0x24] movs r0, 0xA strh r0, [r5, 0x26] movs r0, 0x1C add r8, r0 add r4, r8 ldr r0, =sub_81B5E74 str r0, [r4] strh r6, [r5, 0x3C] adds r0, r5, 0 mov r1, r9 bl StartSpriteAnim ldr r1, [r4] adds r0, r5, 0 bl _call_via_r1 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B5DF0 thumb_func_start sub_81B5E74 sub_81B5E74: @ 81B5E74 push {r4,lr} adds r4, r0, 0 ldrh r1, [r4, 0x3C] lsls r1, 24 lsrs r1, 24 ldr r2, =gSprites lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r2, r0, r2 adds r0, r2, 0 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _081B5EA8 adds r0, r4, 0 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 strb r1, [r0] b _081B5EC6 .pool _081B5EA8: adds r3, r4, 0 adds r3, 0x3E ldrb r1, [r3] movs r0, 0x5 negs r0, r0 ands r0, r1 strb r0, [r3] ldrh r0, [r2, 0x24] ldrh r1, [r2, 0x20] adds r0, r1 strh r0, [r4, 0x20] ldrh r0, [r2, 0x26] ldrh r2, [r2, 0x22] adds r0, r2 strh r0, [r4, 0x22] _081B5EC6: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B5E74 thumb_func_start party_menu_pokeball_object party_menu_pokeball_object: @ 81B5ECC push {r4,lr} adds r4, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B5EEA ldr r0, =gUnknown_08615F08 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x6] ldrb r2, [r2, 0x7] movs r3, 0x8 bl CreateSprite strb r0, [r4, 0xB] _081B5EEA: pop {r4} pop {r0} bx r0 .pool thumb_func_end party_menu_pokeball_object thumb_func_start party_menu_link_mon_pokeball_object party_menu_link_mon_pokeball_object: @ 81B5EF4 push {r4,lr} adds r4, r1, 0 lsls r0, 16 cmp r0, 0 beq _081B5F24 ldr r0, =gUnknown_08615F08 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x6] ldrb r2, [r2, 0x7] movs r3, 0x8 bl CreateSprite strb r0, [r4, 0xB] ldr r2, =gSprites ldrb r0, [r4, 0xB] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _081B5F24: pop {r4} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_pokeball_object thumb_func_start sub_81B5F34 sub_81B5F34: @ 81B5F34 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_08615F08 adds r1, r3, 0 movs r3, 0x8 bl CreateSprite lsls r0, 24 lsrs r0, 24 ldr r2, =gSprites lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r3, [r1, 0x5] movs r2, 0xD negs r2, r2 ands r2, r3 movs r3, 0x8 orrs r2, r3 strb r2, [r1, 0x5] pop {r1} bx r1 .pool thumb_func_end sub_81B5F34 thumb_func_start sub_81B5F74 sub_81B5F74: @ 81B5F74 push {lr} adds r3, r0, 0 adds r2, r1, 0 lsls r3, 24 lsrs r3, 24 lsls r2, 24 lsrs r2, 24 ldr r0, =gUnknown_08615F78 adds r1, r3, 0 movs r3, 0x8 bl CreateSprite lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool thumb_func_end sub_81B5F74 thumb_func_start sub_81B5F98 sub_81B5F98: @ 81B5F98 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r1, 24 lsrs r1, 24 lsls r0, r2, 4 adds r0, r2 lsls r0, 2 ldr r2, =gSprites adds r0, r2 bl StartSpriteAnim pop {r0} bx r0 .pool thumb_func_end sub_81B5F98 thumb_func_start sub_81B5FBC sub_81B5FBC: @ 81B5FBC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r7, r1, 24 lsls r2, 24 lsrs r6, r2, 24 cmp r6, 0 bne _081B6000 lsls r4, r0, 4 adds r4, r0 lsls r4, 2 ldr r0, =gSprites mov r8, r0 add r4, r8 adds r0, r4, 0 movs r1, 0x2 bl StartSpriteAnim lsls r5, r7, 4 adds r5, r7 lsls r5, 2 add r5, r8 adds r0, r5, 0 movs r1, 0x4 bl StartSpriteAnim strh r6, [r4, 0x26] strh r6, [r5, 0x26] b _081B602C .pool _081B6000: lsls r5, r0, 4 adds r5, r0 lsls r5, 2 ldr r0, =gSprites mov r8, r0 add r5, r8 adds r0, r5, 0 movs r1, 0x3 bl StartSpriteAnim lsls r4, r7, 4 adds r4, r7 lsls r4, 2 add r4, r8 adds r0, r4, 0 movs r1, 0x5 bl StartSpriteAnim ldr r0, =0x0000fffc strh r0, [r5, 0x26] movs r0, 0x4 strh r0, [r4, 0x26] _081B602C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B5FBC thumb_func_start sub_81B6040 sub_81B6040: @ 81B6040 push {lr} ldr r0, =gUnknown_08615EF8 bl LoadCompressedObjectPic ldr r0, =gUnknown_08615F70 bl LoadCompressedObjectPic ldr r0, =gUnknown_08615F00 bl LoadCompressedObjectPalette pop {r0} bx r0 .pool thumb_func_end sub_81B6040 thumb_func_start party_menu_status_condition_object party_menu_status_condition_object: @ 81B6064 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B608C ldr r0, =gUnknown_08616008 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x4] ldrb r2, [r2, 0x5] movs r3, 0 bl CreateSprite strb r0, [r4, 0xC] adds r0, r5, 0 adds r1, r4, 0 bl party_menu_get_status_condition_and_update_object _081B608C: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_status_condition_object thumb_func_start party_menu_link_mon_status_condition_object party_menu_link_mon_status_condition_object: @ 81B6098 push {r4,r5,lr} adds r4, r2, 0 lsls r0, 16 lsls r1, 24 lsrs r5, r1, 24 cmp r0, 0 beq _081B60D4 ldr r0, =gUnknown_08616008 ldr r2, [r4, 0x4] ldrb r1, [r2, 0x4] ldrb r2, [r2, 0x5] movs r3, 0 bl CreateSprite strb r0, [r4, 0xC] adds r0, r5, 0 adds r1, r4, 0 bl party_menu_update_status_condition_object ldr r2, =gSprites ldrb r0, [r4, 0xC] lsls r1, r0, 4 adds r1, r0 lsls r1, 2 adds r1, r2 ldrb r2, [r1, 0x5] movs r0, 0xD negs r0, r0 ands r0, r2 strb r0, [r1, 0x5] _081B60D4: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_link_mon_status_condition_object thumb_func_start party_menu_get_status_condition_and_update_object @ void party_menu_get_status_condition_and_update_object(struct pokemon *mon, void *a2, void *a3) party_menu_get_status_condition_and_update_object: @ 81B60E4 push {r4,lr} adds r4, r1, 0 bl sub_81B205C lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 bl party_menu_update_status_condition_object pop {r4} pop {r0} bx r0 thumb_func_end party_menu_get_status_condition_and_update_object thumb_func_start party_menu_update_status_condition_object @ void party_menu_update_status_condition_object(u8 a1, void *a2) party_menu_update_status_condition_object: @ 81B60FC push {r4,r5,lr} adds r5, r1, 0 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _081B610C cmp r2, 0x6 bne _081B6128 _081B610C: ldr r2, =gSprites ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r1, [r0] movs r2, 0x4 orrs r1, r2 b _081B6152 .pool _081B6128: ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r4, =gSprites adds r0, r4 subs r1, r2, 0x1 lsls r1, 24 lsrs r1, 24 bl StartSpriteAnim ldrb r1, [r5, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r4 adds r0, 0x3E ldrb r2, [r0] movs r1, 0x5 negs r1, r1 ands r1, r2 _081B6152: strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end party_menu_update_status_condition_object thumb_func_start sub_81B6160 sub_81B6160: @ 81B6160 push {lr} ldr r0, =gUnknown_08615FF8 bl LoadCompressedObjectPic ldr r0, =gUnknown_08616000 bl LoadCompressedObjectPalette pop {r0} bx r0 .pool thumb_func_end sub_81B6160 thumb_func_start sub_81B617C sub_81B617C: @ 81B617C push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0xC ldr r0, =c2_815ABFC mov r8, r0 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B61BC movs r7, 0x1 bl sub_81B8984 lsls r0, 24 lsrs r6, r0, 24 b _081B61C0 .pool _081B61B0: ldr r0, =gUnknown_0203CEC8 strb r5, [r0, 0x9] b _081B6204 .pool _081B61BC: movs r7, 0 movs r6, 0 _081B61C0: ldr r4, =gUnknown_0203CE7C ldrh r0, [r4] bl GetItemEffectType lsls r0, 24 lsrs r0, 24 cmp r0, 0xA bne _081B621C ldr r1, =gUnknown_0203CEC8 movs r0, 0 strb r0, [r1, 0x9] movs r5, 0 _081B61D8: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B61FA adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081B61B0 _081B61FA: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x5 bls _081B61D8 _081B6204: ldr r0, =sub_81B6280 movs r1, 0x7F b _081B6230 .pool _081B621C: ldrh r0, [r4] bl GetPocketByItemId lsls r0, 24 lsrs r0, 24 movs r1, 0x5 cmp r0, 0x3 bne _081B622E movs r1, 0x4 _081B622E: ldr r0, =sub_81B1370 _081B6230: str r1, [sp] str r0, [sp, 0x4] mov r0, r8 str r0, [sp, 0x8] adds r0, r7, 0 adds r1, r6, 0 movs r2, 0x3 movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B617C thumb_func_start c2_815ABFC c2_815ABFC: @ 81B6254 push {lr} bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _081B626C movs r0, 0xC movs r1, 0x5 movs r2, 0 bl GoToBagMenu b _081B6276 _081B626C: ldr r0, =gUnknown_0203CF30 ldr r1, [r0] movs r0, 0x4 bl sub_81C4F98 _081B6276: pop {r0} bx r0 .pool thumb_func_end c2_815ABFC thumb_func_start sub_81B6280 sub_81B6280: @ 81B6280 push {lr} lsls r0, 24 lsrs r3, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B62B2 ldr r0, =gUnknown_0203CEC8 ldrb r1, [r0, 0x8] movs r0, 0xF ands r0, r1 cmp r0, 0x1 bne _081B62A6 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B9140 str r0, [r1, 0x4] _081B62A6: ldr r0, =gUnknown_03006328 ldr r1, =sub_81B6794 ldr r2, [r0] adds r0, r3, 0 bl _call_via_r2 _081B62B2: pop {r0} bx r0 .pool thumb_func_end sub_81B6280 thumb_func_start IsHPRecoveryItem @ bool8 IsHPRecoveryItem(u16 itemId) IsHPRecoveryItem: @ 81B62D0 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0xAF bne _081B62EC ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r0, r1 b _081B62F6 .pool _081B62EC: ldr r1, =gItemEffectTable subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] _081B62F6: ldrb r1, [r0, 0x4] movs r0, 0x4 ands r0, r1 cmp r0, 0 bne _081B6308 movs r0, 0 b _081B630A .pool _081B6308: movs r0, 0x1 _081B630A: pop {r1} bx r1 thumb_func_end IsHPRecoveryItem thumb_func_start GetMedicineItemEffectMessage @ void GetMedicineItemEffectMessage(u16 itemId) GetMedicineItemEffectMessage: @ 81B6310 push {lr} lsls r0, 16 lsrs r0, 16 bl GetItemEffectType lsls r0, 24 lsrs r0, 24 subs r0, 0x3 cmp r0, 0x12 bls _081B6326 b _081B64BC _081B6326: lsls r0, 2 ldr r1, =_081B6334 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B6334: .4byte _081B6380 .4byte _081B6394 .4byte _081B63A8 .4byte _081B63BC .4byte _081B63D0 .4byte _081B63E4 .4byte _081B63F8 .4byte _081B64BC .4byte _081B640C .4byte _081B6430 .4byte _081B6420 .4byte _081B6460 .4byte _081B6470 .4byte _081B6450 .4byte _081B6440 .4byte _081B64BC .4byte _081B6494 .4byte _081B6494 .4byte _081B64A8 _081B6380: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9C3E bl StringExpandPlaceholders b _081B64C4 .pool _081B6394: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9C7C bl StringExpandPlaceholders b _081B64C4 .pool _081B63A8: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9C8A bl StringExpandPlaceholders b _081B64C4 .pool _081B63BC: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9CA2 bl StringExpandPlaceholders b _081B64C4 .pool _081B63D0: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9C5F bl StringExpandPlaceholders b _081B64C4 .pool _081B63E4: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9DBE bl StringExpandPlaceholders b _081B64C4 .pool _081B63F8: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9DE1 bl StringExpandPlaceholders b _081B64C4 .pool _081B640C: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9CE0 bl StringExpandPlaceholders b _081B64C4 .pool _081B6420: ldr r0, =gStringVar2 ldr r1, =gUnknown_085E96E3 b _081B6474 .pool _081B6430: ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA33C b _081B6474 .pool _081B6440: ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA343 b _081B6474 .pool _081B6450: ldr r0, =gStringVar2 ldr r1, =gUnknown_085EA35B b _081B6474 .pool _081B6460: ldr r0, =gStringVar2 ldr r1, =gUnknown_085E96E6 b _081B6474 .pool _081B6470: ldr r0, =gStringVar2 ldr r1, =gUnknown_085E96EE _081B6474: bl StringCopy ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9D25 bl StringExpandPlaceholders b _081B64C4 .pool _081B6494: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9CF5 bl StringExpandPlaceholders b _081B64C4 .pool _081B64A8: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9CB7 bl StringExpandPlaceholders b _081B64C4 .pool _081B64BC: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E96F6 bl StringExpandPlaceholders _081B64C4: pop {r0} bx r0 .pool thumb_func_end GetMedicineItemEffectMessage thumb_func_start UsingHPEVItemOnShedinja @ bool8 UsingHPEVItemOnShedinja(struct pokemon *mon, u16 itemId) UsingHPEVItemOnShedinja: @ 81B64D0 push {r4,lr} adds r4, r0, 0 lsls r0, r1, 16 lsrs r0, 16 bl GetItemEffectType lsls r0, 24 lsrs r0, 24 cmp r0, 0xD bne _081B64FC adds r0, r4, 0 movs r1, 0xB bl GetMonData ldr r1, =0x0000012f cmp r0, r1 bne _081B64FC movs r0, 0 b _081B64FE .pool _081B64FC: movs r0, 0x1 _081B64FE: pop {r4} pop {r1} bx r1 thumb_func_end UsingHPEVItemOnShedinja thumb_func_start IsBlueYellowRedFlute @ bool8 IsBlueYellowRedFlute(u16 itemId) IsBlueYellowRedFlute: @ 81B6504 push {lr} lsls r0, 16 lsrs r0, 16 cmp r0, 0x27 beq _081B6516 cmp r0, 0x29 beq _081B6516 cmp r0, 0x28 bne _081B651A _081B6516: movs r0, 0x1 b _081B651C _081B651A: movs r0, 0 _081B651C: pop {r1} bx r1 thumb_func_end IsBlueYellowRedFlute thumb_func_start ExecuteTableBasedItemEffect__ @ bool8 ExecuteTableBasedItemEffect__(u8 partyMonIndex, u16 itemId, u8 monMoveIndex) ExecuteTableBasedItemEffect__: @ 81B6520 push {r4-r6,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 24 lsrs r6, r2, 24 ldr r0, =gMain ldr r1, =0x00000439 adds r0, r1 ldrb r1, [r0] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _081B6558 movs r0, 0x64 muls r0, r3 ldr r1, =gPlayerParty adds r0, r1 adds r1, r5, 0 adds r2, r3, 0 b _081B6572 .pool _081B6558: movs r0, 0x64 adds r4, r3, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 adds r0, r3, 0 bl sub_81B8F38 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 _081B6572: adds r3, r6, 0 bl ExecuteTableBasedItemEffect_ lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end ExecuteTableBasedItemEffect__ thumb_func_start ItemUseCB_Medicine ItemUseCB_Medicine: @ 81B6588 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 str r1, [sp, 0x4] lsls r0, 24 lsrs r0, 24 mov r9, r0 movs r0, 0 mov r10, r0 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r0, =gUnknown_0203CE7C ldrh r6, [r0] adds r0, r5, 0 adds r1, r6, 0 bl UsingHPEVItemOnShedinja lsls r0, 24 cmp r0, 0 beq _081B6600 adds r0, r6, 0 bl IsHPRecoveryItem lsls r0, 24 lsrs r0, 24 mov r8, r0 cmp r0, 0x1 bne _081B65EE adds r0, r5, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r10, r0 adds r0, r5, 0 movs r1, 0x3A bl GetMonData cmp r10, r0 bne _081B65EE movs r1, 0 mov r8, r1 _081B65EE: ldr r4, =gUnknown_0203CEC8 ldrb r0, [r4, 0x9] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B6624 _081B6600: ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_085E96F6 b _081B66F4 .pool _081B6624: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] adds r0, r6, 0 bl IsBlueYellowRedFlute lsls r0, 24 cmp r0, 0 bne _081B6650 movs r0, 0x1 bl PlaySE ldrb r0, [r4, 0xB] cmp r0, 0xE beq _081B6656 adds r0, r6, 0 movs r1, 0x1 bl RemoveBagItem b _081B6656 .pool _081B6650: movs r0, 0x75 bl PlaySE _081B6656: ldr r4, =gUnknown_0203CEDC ldr r7, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r7, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 adds r0, r5, 0 bl party_menu_get_status_condition_and_update_object ldr r2, =gSprites movs r0, 0x9 ldrsb r0, [r7, r0] ldr r1, [r4] lsls r0, 4 adds r3, r0, r1 ldrb r1, [r3, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _081B6694 adds r0, r5, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_81B2AC8 _081B6694: mov r2, r8 cmp r2, 0x1 bne _081B66E4 mov r0, r10 cmp r0, 0 bne _081B66A8 ldrb r0, [r7, 0x9] movs r1, 0x1 bl sub_81B0FCC _081B66A8: adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r3, r0, 0 mov r1, r10 subs r3, r1 lsls r3, 16 asrs r3, 16 ldrb r1, [r7, 0x9] ldr r0, =sub_81B672C str r0, [sp] mov r0, r9 movs r2, 0x1 bl sub_81B1F18 mov r0, r9 movs r1, 0 mov r2, r10 bl sub_81B1FA8 b _081B6710 .pool _081B66E4: ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname adds r0, r6, 0 bl GetMedicineItemEffectMessage ldr r0, =gStringVar4 _081B66F4: movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks mov r2, r9 lsls r0, r2, 2 add r0, r9 lsls r0, 3 adds r0, r1 ldr r1, [sp, 0x4] str r1, [r0] _081B6710: add sp, 0x8 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ItemUseCB_Medicine thumb_func_start sub_81B672C sub_81B672C: @ 81B672C push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9C17 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram bl sub_805EAE8 ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B672C thumb_func_start sub_81B6794 sub_81B6794: @ 81B6794 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B67BA ldr r0, =gUnknown_0203CEE8 ldrb r1, [r0] cmp r1, 0 bne _081B67B4 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] str r1, [r0, 0x4] _081B67B4: adds r0, r4, 0 bl sub_81B12C0 _081B67BA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6794 thumb_func_start sub_81B67C8 sub_81B67C8: @ 81B67C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC str r1, [sp] lsls r0, 24 lsrs r0, 24 mov r10, r0 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r0, =gUnknown_0203CE7C ldrh r6, [r0] adds r0, r6, 0 bl GetItemEffectType lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x20 bl GetMonData lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x4] adds r0, r5, 0 adds r1, r7, 0 bl sub_81B691C lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] ldrb r0, [r4, 0x9] adds r1, r6, 0 movs r2, 0 bl ExecuteTableBasedItemEffect__ adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 movs r1, 0x20 bl GetMonData lsls r0, 16 lsrs r0, 16 mov r9, r0 adds r0, r5, 0 adds r1, r7, 0 bl sub_81B691C lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r4, 0 bne _081B6850 ldr r0, [sp, 0x4] cmp r0, r9 bne _081B6874 ldr r1, [sp, 0x8] cmp r1, r8 bne _081B6874 _081B6850: ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_085E96F6 b _081B68E2 .pool _081B6874: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] movs r0, 0x1 bl PlaySE adds r0, r6, 0 movs r1, 0x1 bl RemoveBagItem ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r1, =gStringVar2 adds r0, r7, 0 bl option_menu_get_string ldr r2, [sp, 0x4] cmp r2, r9 beq _081B68D8 ldr r0, [sp, 0x8] cmp r0, r8 beq _081B68C4 ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9D45 bl StringExpandPlaceholders b _081B68E0 .pool _081B68C4: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9D90 bl StringExpandPlaceholders b _081B68E0 .pool _081B68D8: ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9D6D bl StringExpandPlaceholders _081B68E0: ldr r0, =gStringVar4 _081B68E2: movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks mov r2, r10 lsls r0, r2, 2 add r0, r10 lsls r0, 3 adds r0, r1 ldr r1, [sp] str r1, [r0] add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B67C8 thumb_func_start sub_81B691C sub_81B691C: @ 81B691C push {r4,lr} adds r4, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r1, 0 subs r0, 0xC cmp r0, 0x5 bhi _081B6992 lsls r0, 2 ldr r1, =_081B693C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B693C: .4byte _081B696C .4byte _081B6954 .4byte _081B697E .4byte _081B6984 .4byte _081B6978 .4byte _081B6972 _081B6954: adds r0, r4, 0 movs r1, 0xB bl GetMonData ldr r1, =0x0000012f cmp r0, r1 beq _081B6992 adds r0, r4, 0 movs r1, 0x1A b _081B6988 .pool _081B696C: adds r0, r4, 0 movs r1, 0x1B b _081B6988 _081B6972: adds r0, r4, 0 movs r1, 0x1C b _081B6988 _081B6978: adds r0, r4, 0 movs r1, 0x1D b _081B6988 _081B697E: adds r0, r4, 0 movs r1, 0x1E b _081B6988 _081B6984: adds r0, r4, 0 movs r1, 0x1F _081B6988: bl GetMonData lsls r0, 16 lsrs r0, 16 b _081B6994 _081B6992: movs r0, 0 _081B6994: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B691C thumb_func_start option_menu_get_string option_menu_get_string: @ 81B699C push {lr} adds r2, r1, 0 lsls r0, 24 lsrs r0, 24 subs r0, 0xC cmp r0, 0x5 bhi _081B6A08 lsls r0, 2 ldr r1, =_081B69B8 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081B69B8: .4byte _081B69D8 .4byte _081B69D0 .4byte _081B69F0 .4byte _081B6A00 .4byte _081B69E8 .4byte _081B69E0 _081B69D0: ldr r1, =gUnknown_085E96E3 b _081B69F2 .pool _081B69D8: ldr r1, =gUnknown_085EA33C b _081B69F2 .pool _081B69E0: ldr r1, =gUnknown_085EA343 b _081B69F2 .pool _081B69E8: ldr r1, =gUnknown_085EA35B b _081B69F2 .pool _081B69F0: ldr r1, =gUnknown_085E96E6 _081B69F2: adds r0, r2, 0 bl StringCopy b _081B6A08 .pool _081B6A00: ldr r1, =gUnknown_085E96EE adds r0, r2, 0 bl StringCopy _081B6A08: pop {r0} bx r0 .pool thumb_func_end option_menu_get_string thumb_func_start sub_81B6A10 sub_81B6A10: @ 81B6A10 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r7, 0 movs r0, 0x1 mov r10, r0 movs r0, 0x3 bl sub_81B31B0 lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r0, 0x64 adds r1, r4, 0 muls r1, r0 mov r8, r1 ldr r0, =gPlayerParty mov r9, r0 _081B6A40: adds r1, r5, 0 adds r1, 0xD mov r0, r8 add r0, r9 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 movs r0, 0xD adds r2, r4, 0 muls r2, r0 ldr r0, =gMoveNames adds r2, r0 lsls r0, r5, 4 adds r0, 0x1 lsls r0, 24 lsrs r0, 24 str r0, [sp] movs r0, 0xFF str r0, [sp, 0x4] movs r0, 0 str r0, [sp, 0x8] adds r0, r6, 0 mov r1, r10 movs r3, 0x8 bl PrintTextOnWindow cmp r4, 0 beq _081B6A82 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 _081B6A82: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081B6A40 adds r0, r6, 0 adds r1, r7, 0 movs r2, 0 bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0xC pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B6A10 thumb_func_start ether_effect_related_3 ether_effect_related_3: @ 81B6AB4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl ProcessMenuInput lsls r0, 24 asrs r1, r0, 24 movs r0, 0x2 negs r0, r0 cmp r1, r0 beq _081B6AF0 adds r0, 0x1 cmp r1, r0 bne _081B6AE0 movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B6BB4 b _081B6AF0 _081B6AE0: ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xD bl sub_81B302C adds r0, r5, 0 bl ether_effect_related_2 _081B6AF0: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ether_effect_related_3 thumb_func_start dp05_ether dp05_ether: @ 81B6AFC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] cmp r0, 0xAF bne _081B6B20 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r0, r1 b _081B6B2A .pool _081B6B20: ldr r1, =gItemEffectTable subs r0, 0xD lsls r0, 2 adds r0, r1 ldr r0, [r0] _081B6B2A: ldrb r1, [r0, 0x4] movs r0, 0x10 ands r0, r1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0 bne _081B6B4C ldr r0, =gUnknown_0203CEC8 strh r1, [r0, 0xE] adds r0, r4, 0 bl ether_effect_related b _081B6B6E .pool _081B6B4C: movs r0, 0x5 bl PlaySE movs r0, 0x16 bl display_pokemon_menu_message ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] bl sub_81B6A10 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =ether_effect_related_3 str r1, [r0] _081B6B6E: pop {r4} pop {r0} bx r0 .pool thumb_func_end dp05_ether thumb_func_start ether_effect_related_2 ether_effect_related_2: @ 81B6B80 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] adds r0, 0xC bl sub_81B302C bl GetMenuCursorPos ldr r1, =gUnknown_0203CEC8 lsls r0, 24 lsrs r0, 24 strh r0, [r1, 0xE] adds r0, r4, 0 bl ether_effect_related pop {r4} pop {r0} bx r0 .pool thumb_func_end ether_effect_related_2 thumb_func_start sub_81B6BB4 sub_81B6BB4: @ 81B6BB4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldr r0, =sub_81B1370 str r0, [r1] ldr r0, =gUnknown_0203CEC4 ldr r0, [r0] movs r1, 0 str r1, [r0, 0x4] adds r0, 0xC bl sub_81B302C movs r0, 0x5 bl display_pokemon_menu_message pop {r0} bx r0 .pool thumb_func_end sub_81B6BB4 thumb_func_start ether_effect_related ether_effect_related: @ 81B6BEC push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r7, =gUnknown_0203CED6 ldr r0, =gUnknown_0203CE7C ldrh r5, [r0] movs r0, 0xE negs r0, r0 adds r0, r7 mov r8, r0 ldrb r0, [r0, 0x9] ldrb r2, [r7] adds r1, r5, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B6C34 ldr r0, =gUnknown_0203CEE8 strb r4, [r0] movs r0, 0x5 bl PlaySE ldr r0, =gUnknown_085E96F6 b _081B6C7E .pool _081B6C34: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] mov r0, r8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 adds r4, r1, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 movs r0, 0x1 bl PlaySE adds r0, r5, 0 movs r1, 0x1 bl RemoveBagItem movs r0, 0 ldrsh r1, [r7, r0] adds r1, 0xD adds r0, r4, 0 bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r0, =gStringVar1 movs r1, 0xD muls r1, r4 ldr r2, =gMoveNames adds r1, r2 bl StringCopy adds r0, r5, 0 bl GetMedicineItemEffectMessage ldr r0, =gStringVar4 _081B6C7E: movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end ether_effect_related thumb_func_start dp05_pp_up dp05_pp_up: @ 81B6CC0 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x5 bl PlaySE movs r0, 0x17 bl display_pokemon_menu_message ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] bl sub_81B6A10 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =ether_effect_related_3 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end dp05_pp_up thumb_func_start ItemIdToBattleMoveId ItemIdToBattleMoveId: @ 81B6CFC lsls r0, 16 ldr r1, =0xfedf0000 adds r0, r1 ldr r1, =gUnknown_08616040 lsrs r0, 15 adds r0, r1 ldrh r0, [r0] bx lr .pool thumb_func_end ItemIdToBattleMoveId thumb_func_start sub_81B6D14 sub_81B6D14: @ 81B6D14 push {lr} lsls r0, 16 lsrs r2, r0, 16 movs r1, 0 ldr r3, =gUnknown_08616040 _081B6D1E: adds r0, r1, 0 adds r0, 0x32 lsls r0, 1 adds r0, r3 ldrh r0, [r0] cmp r0, r2 bne _081B6D34 movs r0, 0x1 b _081B6D40 .pool _081B6D34: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x7 bls _081B6D1E movs r0, 0 _081B6D40: pop {r1} bx r1 thumb_func_end sub_81B6D14 thumb_func_start pokemon_has_move pokemon_has_move: @ 81B6D44 push {r4-r6,lr} adds r6, r0, 0 lsls r1, 16 lsrs r5, r1, 16 movs r4, 0 _081B6D4E: adds r1, r4, 0 adds r1, 0xD adds r0, r6, 0 bl GetMonData cmp r0, r5 bne _081B6D60 movs r0, 0x1 b _081B6D6C _081B6D60: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081B6D4E movs r0, 0 _081B6D6C: pop {r4-r6} pop {r1} bx r1 thumb_func_end pokemon_has_move thumb_func_start sub_81B6D74 sub_81B6D74: @ 81B6D74 push {r4,lr} adds r1, r0, 0 ldr r4, =gStringVar4 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6D74 thumb_func_start sub_81B6D98 sub_81B6D98: @ 81B6D98 push {r4,lr} adds r4, r0, 0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 bl sub_81B6D74 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6D98 thumb_func_start sub_81B6DC4 sub_81B6DC4: @ 81B6DC4 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x5 bl PlaySE ldr r7, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 movs r0, 0xE adds r0, r7 mov r8, r0 ldr r0, =gUnknown_0203CE7C ldrh r4, [r0] ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname adds r0, r4, 0 bl ItemIdToBattleMoveId strh r0, [r7, 0xE] ldr r0, =gStringVar2 movs r1, 0xE ldrsh r2, [r7, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy movs r0, 0 mov r1, r8 strh r0, [r1, 0x2] adds r0, r5, 0 adds r1, r4, 0 movs r2, 0 bl sub_81B22D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B6E70 cmp r0, 0x2 beq _081B6E78 ldrh r1, [r7, 0xE] adds r0, r5, 0 bl GiveMoveToMon lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 beq _081B6E88 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B6EB4 str r0, [r1] b _081B6E9C .pool _081B6E70: ldr r1, =gUnknown_085E9AB4 b _081B6E7A .pool _081B6E78: ldr r1, =gUnknown_085E9C00 _081B6E7A: adds r0, r6, 0 bl sub_81B6D98 b _081B6E9C .pool _081B6E88: ldr r0, =gUnknown_085E9AE9 bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] _081B6E9C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B6DC4 thumb_func_start sub_81B6EB4 sub_81B6EB4: @ 81B6EB4 push {r4-r7,lr} lsls r0, 24 lsrs r7, r0, 24 ldr r2, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r2, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r6, r2, 0 adds r6, 0xE ldr r0, =gUnknown_0203CE7C ldrh r4, [r0] movs r1, 0x2 ldrsh r0, [r6, r1] cmp r0, 0 bne _081B6EF0 adds r0, r5, 0 movs r1, 0x4 bl AdjustFriendship movs r0, 0xA9 lsls r0, 1 cmp r4, r0 bhi _081B6EF0 adds r0, r4, 0 movs r1, 0x1 bl RemoveBagItem _081B6EF0: ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0 ldrsh r2, [r6, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9AA5 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6F60 str r1, [r0] pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B6EB4 thumb_func_start sub_81B6F60 sub_81B6F60: @ 81B6F60 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B6F86 ldr r0, =0x0000016f bl PlayFanfare ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6F98 str r1, [r0] _081B6F86: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6F60 thumb_func_start sub_81B6F98 sub_81B6F98: @ 81B6F98 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl IsFanfareTaskInactive lsls r0, 24 cmp r0, 0 beq _081B6FEA ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r2, 0x1 adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _081B6FC0 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B6FEA _081B6FC0: ldr r0, =gUnknown_0203CEC8 movs r1, 0x10 ldrsh r0, [r0, r1] cmp r0, 0x1 bne _081B6FDC adds r0, r4, 0 bl sub_81B77AC b _081B6FEA .pool _081B6FDC: cmp r0, 0x2 bne _081B6FE4 ldr r0, =gScriptResult strh r2, [r0] _081B6FE4: adds r0, r5, 0 bl sub_81B12C0 _081B6FEA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B6F98 thumb_func_start sub_81B6FF4 sub_81B6FF4: @ 81B6FF4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7018 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B7028 str r0, [r1] _081B7018: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B6FF4 thumb_func_start sub_81B7028 sub_81B7028: @ 81B7028 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B704E cmp r1, 0 bgt _081B7048 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B7074 b _081B7080 _081B7048: cmp r1, 0x1 beq _081B707A b _081B7080 _081B704E: ldr r0, =gUnknown_085E9B96 movs r1, 0x1 bl sub_81B1B5C ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B7088 str r1, [r0] b _081B7080 .pool _081B7074: movs r0, 0x5 bl PlaySE _081B707A: adds r0, r4, 0 bl sub_81B7230 _081B7080: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B7028 thumb_func_start sub_81B7088 sub_81B7088: @ 81B7088 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B70A8 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B70B8 str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 _081B70A8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B7088 thumb_func_start sub_81B70B8 sub_81B70B8: @ 81B70B8 push {r4,lr} sub sp, 0x4 ldr r0, =gPlayerParty ldr r4, =gUnknown_0203CEC8 ldrb r1, [r4, 0x9] ldr r2, =gPlayerPartyCount ldrb r2, [r2] subs r2, 0x1 lsls r2, 24 lsrs r2, 24 ldr r3, =sub_81B70F0 ldrh r4, [r4, 0xE] str r4, [sp] bl sub_81BFA38 add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B70B8 thumb_func_start sub_81B70F0 sub_81B70F0: @ 81B70F0 push {lr} sub sp, 0xC movs r0, 0x7F str r0, [sp] ldr r0, =sub_81B711C str r0, [sp, 0x4] ldr r0, =gUnknown_0203CEC8 ldr r0, [r0] str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0x1 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B70F0 thumb_func_start sub_81B711C sub_81B711C: @ 81B711C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B714E bl sub_81C1B94 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 beq _081B7148 adds r0, r4, 0 bl sub_81B7154 b _081B714E .pool _081B7148: adds r0, r5, 0 bl sub_81B7230 _081B714E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B711C thumb_func_start sub_81B7154 sub_81B7154: @ 81B7154 push {r4-r6,lr} adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, =gPlayerParty adds r5, r0 bl sub_81C1B94 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r1, 0xD adds r0, r5, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xD muls r1, r4 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r0, =gUnknown_085E9BB8 bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B71D4 str r1, [r0] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B7154 thumb_func_start sub_81B71D4 sub_81B71D4: @ 81B71D4 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7220 ldr r5, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r5, r1] movs r0, 0x64 adds r4, r1, 0 muls r4, r0 ldr r0, =gPlayerParty adds r4, r0 bl sub_81C1B94 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl RemoveMonPPBonus ldrh r5, [r5, 0xE] bl sub_81C1B94 adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 adds r0, r4, 0 adds r1, r5, 0 bl SetMonMoveSlot adds r0, r6, 0 bl sub_81B6EB4 _081B7220: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B71D4 thumb_func_start sub_81B7230 sub_81B7230: @ 81B7230 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gStringVar2 ldr r1, =gUnknown_0203CEC8 movs r3, 0xE ldrsh r2, [r1, r3] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9B5D adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B7294 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B7230 thumb_func_start sub_81B7294 sub_81B7294: @ 81B7294 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B72B8 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B72C8 str r0, [r1] _081B72B8: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B7294 thumb_func_start sub_81B72C8 sub_81B72C8: @ 81B72C8 push {r4-r7,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r7, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 bl sub_8198C58 lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 beq _081B7306 cmp r5, 0 bgt _081B7300 movs r0, 0x1 negs r0, r0 cmp r5, r0 beq _081B738C b _081B73C2 .pool _081B7300: cmp r5, 0x1 beq _081B7392 b _081B73C2 _081B7306: ldr r1, =gStringVar1 adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xE ldrsh r2, [r7, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9B76 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r3, 0x10 ldrsh r0, [r7, r3] cmp r0, 0x1 bne _081B7368 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B73E4 str r0, [r1] b _081B73C2 .pool _081B7368: cmp r0, 0x2 bne _081B7370 ldr r0, =gScriptResult strh r5, [r0] _081B7370: ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B6794 str r0, [r1] b _081B73C2 .pool _081B738C: movs r0, 0x5 bl PlaySE _081B7392: ldr r1, =gStringVar1 adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar2 ldr r1, =gUnknown_0203CEC8 movs r3, 0xE ldrsh r2, [r1, r3] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r0, =gUnknown_085E9AE9 bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] _081B73C2: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B72C8 thumb_func_start sub_81B73E4 sub_81B73E4: @ 81B73E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B73FC adds r0, r4, 0 bl sub_81B77AC _081B73FC: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B73E4 thumb_func_start dp05_rare_candy dp05_rare_candy: @ 81B7404 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} mov r10, r1 lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gUnknown_0203CEC8 mov r9, r0 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r0, =gUnknown_0203CEC4 ldr r6, [r0] movs r1, 0x86 lsls r1, 2 adds r4, r6, r1 ldr r2, =gUnknown_0203CE7C mov r8, r2 adds r0, r5, 0 movs r1, 0x38 bl GetMonData cmp r0, 0x64 beq _081B7478 adds r0, r5, 0 adds r1, r4, 0 bl sub_81B79A0 mov r1, r9 ldrb r0, [r1, 0x9] mov r2, r8 ldrh r1, [r2] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x89 lsls r0, 2 adds r1, r6, r0 adds r0, r5, 0 bl sub_81B79A0 b _081B747A .pool _081B7478: movs r4, 0x1 _081B747A: movs r0, 0x5 bl PlaySE cmp r4, 0 beq _081B74B4 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_085E96F6 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 mov r1, r10 b _081B7516 .pool _081B74B4: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] movs r0, 0 bl PlayFanfareByFanfareNum ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0x9] adds r1, r5, 0 bl sub_81B754C ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r4, =gStringVar2 adds r0, r5, 0 movs r1, 0x38 bl GetMonData adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 movs r3, 0x3 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9D0A adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B75D4 _081B7516: str r1, [r0] pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end dp05_rare_candy thumb_func_start sub_81B754C sub_81B754C: @ 81B754C push {r4-r7,lr} adds r5, r1, 0 lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldr r6, =gUnknown_0203CEDC lsls r4, r7, 4 ldr r1, [r6] adds r1, r4 adds r0, r5, 0 bl party_menu_get_status_condition_and_update_object ldr r2, =gSprites ldr r0, [r6] adds r3, r4, r0 ldrb r1, [r3, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _081B7588 adds r0, r5, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_81B2AC8 _081B7588: ldr r1, [r6] adds r1, r4 adds r0, r5, 0 movs r2, 0x1 bl sub_81B2CD4 ldr r1, [r6] adds r1, r4 adds r0, r5, 0 movs r2, 0x1 bl sub_81B2D74 ldr r1, [r6] adds r1, r4 adds r0, r5, 0 bl sub_81B2E28 ldr r0, [r6] adds r0, r4, r0 ldrb r0, [r0, 0x9] adds r1, r5, 0 bl sub_81B5B38 adds r0, r7, 0 movs r1, 0x1 bl sub_81B0FCC movs r0, 0 bl schedule_bg_copy_tilemap_to_vram pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B754C thumb_func_start sub_81B75D4 sub_81B75D4: @ 81B75D4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _081B7620 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7620 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081B7606 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B7620 _081B7606: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B767C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B7634 str r0, [r1] _081B7620: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B75D4 thumb_func_start sub_81B7634 sub_81B7634: @ 81B7634 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081B764E movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B7668 _081B764E: movs r0, 0x5 bl PlaySE adds r0, r4, 0 bl sub_81B76C8 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B7704 str r0, [r1] _081B7668: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B7634 thumb_func_start sub_81B767C sub_81B767C: @ 81B767C push {r4,r5,lr} sub sp, 0x8 ldr r0, =gUnknown_0203CEC4 ldr r5, [r0] movs r0, 0x86 lsls r0, 2 adds r4, r5, r0 bl sub_81B3364 lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x18] ldrh r0, [r4, 0x18] movs r1, 0x89 lsls r1, 2 adds r2, r5, r1 movs r1, 0x2 str r1, [sp] movs r1, 0x3 str r1, [sp, 0x4] adds r1, r4, 0 movs r3, 0x1 bl sub_81D3640 ldrb r0, [r4, 0x18] movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B767C thumb_func_start sub_81B76C8 sub_81B76C8: @ 81B76C8 push {r4,lr} sub sp, 0x4 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] movs r0, 0x86 lsls r0, 2 adds r4, r1, r0 ldrh r0, [r4, 0x18] movs r2, 0x89 lsls r2, 2 adds r1, r2 movs r2, 0x3 str r2, [sp] movs r2, 0x1 movs r3, 0x2 bl sub_81D3784 ldrb r0, [r4, 0x18] movs r1, 0x2 bl CopyWindowToVram movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram add sp, 0x4 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B76C8 thumb_func_start sub_81B7704 sub_81B7704: @ 81B7704 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 movs r0, 0 bl WaitFanfare lsls r0, 24 cmp r0, 0 beq _081B77A6 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r6, 0x1 adds r0, r6, 0 ands r0, r1 cmp r0, 0 bne _081B772C movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B77A6 _081B772C: bl sub_81B3394 ldr r4, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r4, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x1 bl MonTryLearningNewMove lsls r0, 16 lsrs r1, r0, 16 strh r6, [r4, 0x10] ldr r0, =0x0000fffe cmp r1, r0 beq _081B7788 cmp r1, r0 bgt _081B776C cmp r1, 0 beq _081B7778 b _081B77A0 .pool _081B776C: ldr r0, =0x0000ffff cmp r1, r0 beq _081B7780 b _081B77A0 .pool _081B7778: adds r0, r5, 0 bl sub_81B7810 b _081B77A6 _081B7780: adds r0, r5, 0 bl sub_81B787C b _081B77A6 _081B7788: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B77AC str r0, [r1] b _081B77A6 .pool _081B77A0: adds r0, r5, 0 bl sub_81B7910 _081B77A6: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B7704 thumb_func_start sub_81B77AC sub_81B77AC: @ 81B77AC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0 bl MonTryLearningNewMove lsls r0, 16 lsrs r1, r0, 16 ldr r0, =0x0000fffe cmp r1, r0 beq _081B780A cmp r1, r0 bgt _081B77E8 cmp r1, 0 beq _081B77F4 b _081B7804 .pool _081B77E8: ldr r0, =0x0000ffff cmp r1, r0 beq _081B77FC b _081B7804 .pool _081B77F4: adds r0, r4, 0 bl sub_81B7810 b _081B780A _081B77FC: adds r0, r4, 0 bl sub_81B787C b _081B780A _081B7804: adds r0, r4, 0 bl sub_81B7910 _081B780A: pop {r4} pop {r0} bx r0 thumb_func_end sub_81B77AC thumb_func_start sub_81B7810 sub_81B7810: @ 81B7810 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r7, r1, r0 adds r0, r7, 0 movs r1, 0 movs r2, 0 bl GetEvolutionTargetSpecies lsls r0, 16 lsrs r4, r0, 16 cmp r4, 0 beq _081B7860 bl sub_81B06F4 ldr r0, =gUnknown_030061E8 ldr r1, [r6] str r1, [r0] ldrb r3, [r6, 0x9] adds r0, r7, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_813DA40 adds r0, r5, 0 bl DestroyTask b _081B786E .pool _081B7860: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B6794 str r0, [r1] _081B786E: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7810 thumb_func_start sub_81B787C sub_81B787C: @ 81B787C push {r4-r6,lr} mov r6, r8 push {r6} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC8 mov r8, r0 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar2 ldr r6, =gMoveToLearn ldrh r2, [r6] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9AE9 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldrh r0, [r6] mov r1, r8 strh r0, [r1, 0xE] ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B787C thumb_func_start sub_81B7910 sub_81B7910: @ 81B7910 push {r4-r6,lr} mov r6, r8 push {r6} adds r6, r0, 0 adds r5, r1, 0 lsls r6, 24 lsrs r6, 24 lsls r5, 16 lsrs r5, 16 ldr r0, =gUnknown_0203CEC8 mov r8, r0 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xD muls r1, r5 ldr r2, =gMoveNames adds r1, r2 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9AA5 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram mov r0, r8 strh r5, [r0, 0xE] ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6F60 str r1, [r0] pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B7910 thumb_func_start sub_81B79A0 sub_81B79A0: @ 81B79A0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r1, 0x3A bl GetMonData strh r0, [r5] adds r0, r4, 0 movs r1, 0x3B bl GetMonData strh r0, [r5, 0x2] adds r0, r4, 0 movs r1, 0x3C bl GetMonData strh r0, [r5, 0x4] adds r0, r4, 0 movs r1, 0x3E bl GetMonData strh r0, [r5, 0x8] adds r0, r4, 0 movs r1, 0x3F bl GetMonData strh r0, [r5, 0xA] adds r0, r4, 0 movs r1, 0x3D bl GetMonData strh r0, [r5, 0x6] pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B79A0 thumb_func_start sub_81B79E8 sub_81B79E8: @ 81B79E8 push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CEC4 ldr r2, [r1] movs r3, 0x86 lsls r3, 2 adds r1, r2, r3 movs r3, 0 strh r3, [r1] ldr r4, =0x0000021a adds r1, r2, r4 strh r3, [r1] ldr r1, =gUnknown_0203CEC8 ldrb r1, [r1, 0x9] lsls r1, 24 asrs r1, 24 movs r3, 0x87 lsls r3, 2 adds r2, r3 strh r1, [r2] bl sub_81B7A28 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B79E8 thumb_func_start sub_81B7A28 sub_81B7A28: @ 81B7A28 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 lsls r0, 24 lsrs r4, r0, 24 mov r8, r4 ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B7A6E adds r0, r5, 0 movs r1, 0x39 bl GetMonData lsls r0, 16 lsrs r7, r0, 16 ldrb r0, [r6, 0x9] ldr r1, =gUnknown_0203CE7C ldrh r1, [r1] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B7A94 _081B7A6E: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =task_intro_gamefreak str r0, [r1] b _081B7B2A .pool _081B7A94: movs r0, 0x1 bl PlaySE ldr r4, =gUnknown_0203CEDC movs r0, 0x9 ldrsb r0, [r6, r0] lsls r0, 4 ldr r1, [r4] adds r1, r0 adds r0, r5, 0 bl party_menu_get_status_condition_and_update_object ldr r2, =gSprites movs r0, 0x9 ldrsb r0, [r6, r0] ldr r1, [r4] lsls r0, 4 adds r3, r0, r1 ldrb r1, [r3, 0xC] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 adds r0, r2 adds r0, 0x3E ldrb r0, [r0] lsls r0, 29 cmp r0, 0 bge _081B7AD6 adds r0, r5, 0 adds r1, r3, 0 movs r2, 0x1 bl sub_81B2AC8 _081B7AD6: ldr r4, =gUnknown_0203CEC4 ldr r0, [r4] movs r1, 0x87 lsls r1, 2 adds r0, r1 ldrb r0, [r0] movs r1, 0 bl sub_81B0FCC ldrb r0, [r6, 0x9] movs r1, 0x1 bl sub_81B0FCC adds r0, r5, 0 movs r1, 0x39 bl GetMonData adds r3, r0, 0 subs r3, r7 lsls r3, 16 asrs r3, 16 ldrb r1, [r6, 0x9] ldr r0, =sub_81B7C10 str r0, [sp] mov r0, r8 movs r2, 0x1 bl sub_81B1F18 mov r0, r8 movs r1, 0 adds r2, r7, 0 bl sub_81B1FA8 ldr r0, [r4] movs r2, 0x86 lsls r2, 2 adds r1, r0, r2 movs r2, 0x1 strh r2, [r1] ldr r1, =0x0000021a adds r0, r1 strh r2, [r0] _081B7B2A: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7A28 thumb_func_start task_intro_gamefreak task_intro_gamefreak: @ 81B7B4C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7C0A ldr r5, =gUnknown_0203CEC4 ldr r2, [r5] movs r0, 0x86 lsls r0, 2 adds r1, r2, r0 movs r3, 0 ldrsh r0, [r1, r3] ldr r3, =gUnknown_0203CEC8 cmp r0, 0x1 bne _081B7B82 movs r0, 0 strh r0, [r1] movs r1, 0x9 ldrsb r1, [r3, r1] movs r6, 0x87 lsls r6, 2 adds r0, r2, r6 strh r1, [r0] _081B7B82: ldrb r0, [r3, 0x9] adds r0, 0x1 strb r0, [r3, 0x9] lsls r0, 24 asrs r0, 24 cmp r0, 0x6 bne _081B7C04 ldr r0, [r5] ldr r1, =0x0000021a adds r0, r1 movs r2, 0 ldrsh r1, [r0, r2] cmp r1, 0 bne _081B7BC8 ldr r0, =gUnknown_0203CEE8 strb r1, [r0] ldr r0, =gUnknown_085E96F6 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram b _081B7BD8 .pool _081B7BC8: ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem _081B7BD8: ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6794 str r1, [r0] ldr r1, =gUnknown_0203CEC8 movs r0, 0 strb r0, [r1, 0x9] b _081B7C0A .pool _081B7C04: adds r0, r4, 0 bl sub_81B7A28 _081B7C0A: pop {r4-r6} pop {r0} bx r0 thumb_func_end task_intro_gamefreak thumb_func_start sub_81B7C10 sub_81B7C10: @ 81B7C10 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r4, =gStringVar4 ldr r1, =gUnknown_085E9C17 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 movs r1, 0 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =task_intro_gamefreak str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B7C10 thumb_func_start sub_81B7C74 sub_81B7C74: @ 81B7C74 push {r4-r6,lr} adds r6, r1, 0 lsls r0, 24 lsrs r5, r0, 24 movs r0, 0x5 bl PlaySE ldr r2, =gUnknown_030061E8 ldr r1, =gUnknown_0203CEC8 ldr r0, [r1] str r0, [r2] ldrb r0, [r1, 0x9] ldr r4, =gUnknown_0203CE7C ldrh r1, [r4] movs r2, 0 bl ExecuteTableBasedItemEffect__ lsls r0, 24 cmp r0, 0 beq _081B7CD8 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] ldr r0, =gUnknown_085E96F6 movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 str r6, [r0] b _081B7CE4 .pool _081B7CD8: ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem bl sub_81B06F4 _081B7CE4: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B7C74 thumb_func_start GetItemEffectType @ u8 GetItemEffectType(u16 itemId) GetItemEffectType: @ 81B7CEC push {r4,r5,lr} lsls r0, 16 lsrs r1, r0, 16 adds r2, r1, 0 subs r2, 0xD lsls r0, r2, 16 lsrs r0, 16 cmp r0, 0xA5 bls _081B7D00 b _081B7E40 _081B7D00: cmp r1, 0xAF bne _081B7D18 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldr r1, =0x00003214 adds r4, r0, r1 b _081B7D20 .pool _081B7D18: ldr r1, =gItemEffectTable lsls r0, r2, 2 adds r0, r1 ldr r4, [r0] _081B7D20: ldrb r1, [r4] movs r5, 0x3F adds r0, r5, 0 ands r0, r1 cmp r0, 0 bne _081B7D42 ldrb r0, [r4, 0x1] cmp r0, 0 bne _081B7D42 ldrb r0, [r4, 0x2] cmp r0, 0 bne _081B7D42 ldrb r3, [r4, 0x3] movs r0, 0x80 ands r0, r3 cmp r0, 0 beq _081B7D4C _081B7D42: movs r0, 0 b _081B7E46 .pool _081B7D4C: movs r2, 0x40 adds r0, r2, 0 ands r0, r1 cmp r0, 0 beq _081B7D5A movs r0, 0xA b _081B7E46 _081B7D5A: adds r0, r2, 0 ands r0, r3 cmp r0, 0 beq _081B7D66 movs r0, 0x1 b _081B7E46 _081B7D66: adds r2, r5, 0 ands r2, r3 cmp r2, 0 bne _081B7D74 lsrs r0, r1, 7 cmp r0, 0 beq _081B7DB6 _081B7D74: cmp r2, 0x20 bne _081B7D7C movs r0, 0x4 b _081B7E46 _081B7D7C: cmp r2, 0x10 bne _081B7D84 movs r0, 0x3 b _081B7E46 _081B7D84: cmp r2, 0x8 bne _081B7D8C movs r0, 0x5 b _081B7E46 _081B7D8C: cmp r2, 0x4 bne _081B7D94 movs r0, 0x6 b _081B7E46 _081B7D94: cmp r2, 0x2 bne _081B7D9C movs r0, 0x7 b _081B7E46 _081B7D9C: cmp r2, 0x1 bne _081B7DA4 movs r0, 0x8 b _081B7E46 _081B7DA4: lsrs r0, r1, 7 cmp r0, 0 beq _081B7DB2 cmp r2, 0 bne _081B7DB2 movs r0, 0x9 b _081B7E46 _081B7DB2: movs r0, 0xB b _081B7E46 _081B7DB6: ldrb r1, [r4, 0x4] movs r0, 0x44 ands r0, r1 adds r2, r1, 0 cmp r0, 0 beq _081B7DC6 movs r0, 0x2 b _081B7E46 _081B7DC6: movs r5, 0x2 adds r0, r5, 0 ands r0, r2 cmp r0, 0 beq _081B7DD4 movs r0, 0xC b _081B7E46 _081B7DD4: movs r3, 0x1 adds r0, r3, 0 ands r0, r2 cmp r0, 0 beq _081B7DE2 movs r0, 0xD b _081B7E46 _081B7DE2: ldrb r1, [r4, 0x5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081B7DF0 movs r0, 0xE b _081B7E46 _081B7DF0: movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081B7DFC movs r0, 0xF b _081B7E46 _081B7DFC: adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _081B7E08 movs r0, 0x10 b _081B7E46 _081B7E08: adds r0, r3, 0 ands r0, r1 cmp r0, 0 beq _081B7E14 movs r0, 0x11 b _081B7E46 _081B7E14: movs r0, 0x80 ands r0, r2 cmp r0, 0 beq _081B7E20 movs r0, 0x12 b _081B7E46 _081B7E20: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _081B7E2C movs r0, 0x13 b _081B7E46 _081B7E2C: movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081B7E38 movs r0, 0x14 b _081B7E46 _081B7E38: movs r0, 0x18 ands r0, r2 cmp r0, 0 bne _081B7E44 _081B7E40: movs r0, 0x16 b _081B7E46 _081B7E44: movs r0, 0x15 _081B7E46: pop {r4,r5} pop {r1} bx r1 thumb_func_end GetItemEffectType thumb_func_start sub_81B7E4C sub_81B7E4C: @ 81B7E4C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B7F1C ldr r7, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 movs r0, 0xE adds r0, r7 mov r8, r0 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r4, =gSpecialVar_0x8005 ldrb r0, [r4] bl sub_81B2360 strh r0, [r7, 0xE] ldr r0, =gStringVar2 movs r1, 0xE ldrsh r2, [r7, r1] movs r1, 0xD muls r1, r2 ldr r2, =gMoveNames adds r1, r2 bl StringCopy movs r0, 0x2 mov r1, r8 strh r0, [r1, 0x2] ldrb r2, [r4] adds r0, r5, 0 movs r1, 0 bl sub_81B22D8 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B7EF0 cmp r0, 0x2 beq _081B7EF8 ldrh r1, [r7, 0xE] adds r0, r5, 0 bl GiveMoveToMon lsls r0, 16 ldr r1, =0xffff0000 cmp r0, r1 beq _081B7F08 adds r0, r6, 0 bl sub_81B6EB4 b _081B7F1C .pool _081B7EF0: ldr r1, =gUnknown_085E9AB4 b _081B7EFA .pool _081B7EF8: ldr r1, =gUnknown_085E9C00 _081B7EFA: adds r0, r6, 0 bl sub_81B6D98 b _081B7F1C .pool _081B7F08: ldr r0, =gUnknown_085E9AE9 bl sub_81B6D74 ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B6FF4 str r1, [r0] _081B7F1C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7E4C thumb_func_start CB2_PartyMenuFromStartMenu CB2_PartyMenuFromStartMenu: @ 81B7F34 push {lr} sub sp, 0xC movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_8086194 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end CB2_PartyMenuFromStartMenu thumb_func_start sub_81B7F60 sub_81B7F60: @ 81B7F60 push {lr} sub sp, 0xC bl InBattlePyramid lsls r0, 24 ldr r1, =sub_81C4F84 cmp r0, 0 bne _081B7F72 ldr r1, =c2_815ABFC _081B7F72: movs r0, 0x6 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] str r1, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x5 movs r3, 0 bl sub_81B0038 ldr r1, =gUnknown_0203CEC8 ldr r0, =gUnknown_0203CE7C ldrh r0, [r0] strh r0, [r1, 0xC] add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B7F60 thumb_func_start sub_81B7FAC sub_81B7FAC: @ 81B7FAC push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 ldr r5, =gUnknown_0203CEFC ldr r0, =gUnknown_0203CEC8 mov r9, r0 ldrb r0, [r0, 0x9] lsls r0, 24 asrs r0, 24 movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r7, =gPlayerParty adds r0, r7 movs r1, 0xC bl GetMonData strh r0, [r5] lsls r0, 16 cmp r0, 0 bne _081B7FF8 adds r0, r4, 0 bl sub_81B8044 b _081B8030 .pool _081B7FF8: ldrh r0, [r5] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B800C adds r0, r4, 0 bl sub_81B83B8 b _081B8030 _081B800C: mov r1, r9 movs r0, 0x9 ldrsb r0, [r1, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r7 ldrh r1, [r5] movs r2, 0x1 bl sub_81B1D1C ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B82A0 str r1, [r0] _081B8030: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B7FAC thumb_func_start sub_81B8044 sub_81B8044: @ 81B8044 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r5, =gUnknown_0203CEC8 ldrh r0, [r5, 0xC] bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B807C ldrh r0, [r5, 0xC] bl sub_81B83F0 ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B814C str r0, [r1, 0x4] adds r0, r4, 0 bl sub_81B12C0 b _081B8082 .pool _081B807C: adds r0, r4, 0 bl sub_81B8088 _081B8082: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B8044 thumb_func_start sub_81B8088 sub_81B8088: @ 81B8088 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r7, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B80E4 ldr r4, =gUnknown_0203CEC8 ldrh r5, [r4, 0xC] movs r0, 0x9 ldrsb r0, [r4, r0] movs r1, 0x64 mov r8, r1 mov r1, r8 muls r1, r0 adds r0, r1, 0 ldr r6, =gPlayerParty adds r0, r6 adds r1, r5, 0 movs r2, 0 movs r3, 0x1 bl sub_81B1C84 movs r0, 0x9 ldrsb r0, [r4, r0] mov r1, r8 muls r1, r0 adds r0, r1, 0 adds r0, r6 adds r1, r5, 0 bl sub_81B1DB8 adds r0, r5, 0 bl sub_81B83F0 ldr r1, =gTasks lsls r0, r7, 2 adds r0, r7 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B8104 str r1, [r0] _081B80E4: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B8088 thumb_func_start sub_81B8104 sub_81B8104: @ 81B8104 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gUnknown_0203CEC8 ldrb r4, [r0, 0x9] bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B8138 lsls r2, r4, 24 asrs r2, 24 movs r0, 0x64 muls r0, r2 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gUnknown_0203CEDC lsls r2, 4 ldr r1, [r1] adds r1, r2 bl sub_81B5C94 adds r0, r5, 0 bl sub_81B12C0 _081B8138: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B8104 thumb_func_start sub_81B814C sub_81B814C: @ 81B814C push {r4-r6,lr} ldr r4, =gUnknown_0203CEC8 movs r0, 0x9 ldrsb r0, [r4, r0] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 ldrh r1, [r4, 0xC] bl sub_81B1DB8 movs r0, 0x9 ldrsb r0, [r4, r0] muls r0, r6 adds r0, r5 movs r1, 0x40 bl GetMonData lsls r0, 24 lsrs r0, 24 ldr r1, =gSaveBlock1Ptr lsls r2, r0, 3 adds r2, r0 lsls r2, 2 ldr r0, =0x00002be0 adds r2, r0 ldr r1, [r1] adds r1, r2 ldr r2, =sub_81B81A8 movs r0, 0x4 movs r3, 0x3 bl sub_811A20C pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B814C thumb_func_start sub_81B81A8 sub_81B81A8: @ 81B81A8 push {r4-r7,lr} sub sp, 0xC ldr r6, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r6, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r7, r0, 16 ldr r0, =gScriptResult ldrh r0, [r0] cmp r0, 0 bne _081B8208 adds r0, r5, 0 bl sub_80D4680 ldr r4, =gUnknown_0203CEFC adds r0, r5, 0 movs r1, 0xC adds r2, r4, 0 bl SetMonData ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem adds r0, r7, 0 bl sub_81B841C ldr r0, [r6] bl SetMainCallback2 b _081B8224 .pool _081B8208: ldrb r0, [r6, 0x8] lsls r0, 28 lsrs r0, 28 ldrb r2, [r6, 0xB] movs r1, 0x7F str r1, [sp] ldr r1, =sub_81B8230 str r1, [sp, 0x4] ldr r1, [r6] str r1, [sp, 0x8] movs r1, 0xFF movs r3, 0x1 bl sub_81B0038 _081B8224: add sp, 0xC pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B81A8 thumb_func_start sub_81B8230 sub_81B8230: @ 81B8230 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B828A ldr r1, =gUnknown_0203CEFC ldrh r0, [r1] cmp r0, 0 beq _081B8264 ldr r0, =gUnknown_0203CEC8 ldrh r0, [r0, 0xC] ldrh r1, [r1] movs r2, 0 bl sub_81B1D68 b _081B827C .pool _081B8264: ldr r2, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r2, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldrh r1, [r2, 0xC] movs r2, 0 movs r3, 0x1 bl sub_81B1C84 _081B827C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B8104 str r0, [r1] _081B828A: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B8230 thumb_func_start sub_81B82A0 sub_81B82A0: @ 81B82A0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81B1BD4 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B82C4 bl sub_81B334C ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B82D4 str r0, [r1] _081B82C4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B82A0 thumb_func_start sub_81B82D4 sub_81B82D4: @ 81B82D4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_8198C58 lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 beq _081B82FA cmp r1, 0 bgt _081B82F4 movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _081B8394 b _081B83A8 _081B82F4: cmp r1, 0x1 beq _081B839A b _081B83A8 _081B82FA: ldr r7, =gUnknown_0203CEC8 ldrh r4, [r7, 0xC] adds r0, r4, 0 bl sub_81B83F0 ldr r6, =gUnknown_0203CEFC ldrh r0, [r6] movs r1, 0x1 bl AddBagItem lsls r0, 24 cmp r0, 0 bne _081B8338 adds r0, r4, 0 bl sub_81B841C ldrh r0, [r6] bl pokemon_item_not_removed ldr r0, =gStringVar4 movs r1, 0 bl sub_81B1B5C b _081B8378 .pool _081B8338: adds r0, r4, 0 bl itemid_is_mail lsls r0, 24 cmp r0, 0 beq _081B835C ldr r0, =gUnknown_0203CEC4 ldr r1, [r0] ldr r0, =sub_81B814C str r0, [r1, 0x4] adds r0, r5, 0 bl sub_81B12C0 b _081B83A8 .pool _081B835C: movs r1, 0x9 ldrsb r1, [r7, r1] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 bl sub_81B1DB8 ldrh r1, [r6] adds r0, r4, 0 movs r2, 0x1 bl sub_81B1D68 _081B8378: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B8104 str r1, [r0] b _081B83A8 .pool _081B8394: movs r0, 0x5 bl PlaySE _081B839A: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B8104 str r0, [r1] _081B83A8: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B82D4 thumb_func_start sub_81B83B8 sub_81B83B8: @ 81B83B8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gUnknown_085E98EC movs r1, 0x1 bl sub_81B1B5C movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =sub_81B8104 str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B83B8 thumb_func_start sub_81B83F0 sub_81B83F0: @ 81B83F0 push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x6 bne _081B8410 lsls r0, r1, 24 lsrs r0, 24 movs r1, 0x1 bl sub_80D6E48 b _081B8418 .pool _081B8410: adds r0, r1, 0 movs r1, 0x1 bl RemoveBagItem _081B8418: pop {r0} bx r0 thumb_func_end sub_81B83F0 thumb_func_start sub_81B841C sub_81B841C: @ 81B841C push {lr} lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x5 beq _081B8438 adds r0, r1, 0 movs r1, 0x1 bl sub_80D6D70 b _081B8440 .pool _081B8438: adds r0, r1, 0 movs r1, 0x1 bl AddBagItem _081B8440: lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_81B841C thumb_func_start sub_81B8448 sub_81B8448: @ 81B8448 push {lr} sub sp, 0xC movs r0, 0x6 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_816BB28 str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0x7 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8448 thumb_func_start sub_81B8474 sub_81B8474: @ 81B8474 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gUnknown_0203CEC8 movs r1, 0x9 ldrsb r1, [r0, r1] movs r0, 0x64 muls r1, r0 ldr r0, =gPlayerParty adds r5, r1, r0 ldr r1, =gUnknown_0203CEE8 movs r0, 0 strb r0, [r1] ldr r2, =gSaveBlock1Ptr ldr r0, =gUnknown_0203BCB8 ldrh r1, [r0] adds r1, 0x6 ldrh r0, [r0, 0x2] adds r1, r0 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =0x00002be0 adds r0, r1 ldr r1, [r2] adds r4, r1, r0 adds r0, r5, 0 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B84DC ldr r0, =gUnknown_085E9A08 movs r1, 0x1 bl sub_81B1B5C b _081B84F2 .pool _081B84DC: adds r0, r5, 0 adds r1, r4, 0 bl sub_80D460C adds r0, r4, 0 bl sub_80D439C ldr r0, =gUnknown_085E9A40 movs r1, 0x1 bl sub_81B1B5C _081B84F2: movs r0, 0x2 bl schedule_bg_copy_tilemap_to_vram ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B8104 str r0, [r1] pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B8474 thumb_func_start sub_81B8518 sub_81B8518: @ 81B8518 push {lr} sub sp, 0xC bl sub_81B8558 movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =gMain ldr r0, [r0, 0x8] str r0, [sp, 0x8] movs r0, 0x4 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 ldr r1, =gUnknown_0203CEC8 ldr r0, =sub_81B879C str r0, [r1, 0x4] add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8518 thumb_func_start sub_81B8558 sub_81B8558: @ 81B8558 push {lr} ldr r0, =gUnknown_0203CEF8 movs r1, 0 movs r2, 0x4 bl memset pop {r0} bx r0 .pool thumb_func_end sub_81B8558 thumb_func_start sub_81B856C sub_81B856C: @ 81B856C push {r4,lr} lsls r0, 24 asrs r4, r0, 24 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 bl sub_81B85AC lsls r0, 24 cmp r0, 0 bne _081B858C movs r0, 0x2 b _081B85A4 .pool _081B858C: adds r0, r4, 0x1 lsls r0, 24 lsrs r0, 24 bl sub_81B8770 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B85A2 movs r0, 0 b _081B85A4 _081B85A2: movs r0, 0x1 _081B85A4: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B856C thumb_func_start sub_81B85AC sub_81B85AC: @ 81B85AC push {r4-r6,lr} adds r5, r0, 0 movs r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B8608 adds r0, r5, 0 movs r1, 0x38 bl GetMonData adds r4, r0, 0 bl sub_81B8888 lsls r0, 24 lsrs r0, 24 cmp r4, r0 bhi _081B8608 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] ldrh r1, [r0, 0x4] ldr r0, =0x0000191a cmp r1, r0 bne _081B85EA adds r0, r5, 0 movs r1, 0xC bl GetMonData cmp r0, 0 bne _081B8608 _081B85EA: ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B864A cmp r0, 0x9 bne _081B8618 adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B864A _081B8608: movs r0, 0 b _081B864C .pool _081B8618: adds r0, r5, 0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r4, r0, 16 ldr r3, =gUnknown_08611C9A lsls r1, r6, 1 adds r0, r1, r3 ldrh r0, [r0] ldr r2, =0x0000ffff cmp r0, r2 beq _081B864A _081B8632: adds r0, r1, r3 ldrh r0, [r0] cmp r0, r4 beq _081B8608 adds r0, r6, 0x1 lsls r0, 16 lsrs r6, r0, 16 lsls r1, r6, 1 adds r0, r1, r3 ldrh r0, [r0] cmp r0, r2 bne _081B8632 _081B864A: movs r0, 0x1 _081B864C: pop {r4-r6} pop {r1} bx r1 .pool thumb_func_end sub_81B85AC thumb_func_start sub_81B865C sub_81B865C: @ 81B865C push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} bl sub_81B885C lsls r0, 24 lsrs r2, r0, 24 adds r1, r2, 0 ldr r3, =gUnknown_0203CEF8 adds r0, r2, r3 subs r0, 0x1 ldrb r0, [r0] cmp r0, 0 bne _081B869C cmp r2, 0x1 bne _081B8688 movs r0, 0xE b _081B8758 .pool _081B8688: ldr r0, =gStringVar1 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN movs r0, 0x11 b _081B8758 .pool _081B869C: ldr r0, =0x000040cf bl VarGet lsls r0, 24 movs r1, 0xF8 lsls r1, 24 adds r0, r1 lsrs r0, 24 cmp r0, 0x1 bhi _081B86C0 b _081B8756 .pool _081B86B8: movs r0, 0x12 b _081B8758 _081B86BC: movs r0, 0x13 b _081B8758 _081B86C0: bl sub_81B8830 lsls r0, 24 lsrs r0, 24 mov r8, r0 movs r5, 0 b _081B8750 _081B86CE: ldr r3, =gUnknown_0203CEF8 adds r4, r3, r5 ldrb r0, [r4] movs r1, 0x64 muls r0, r1 subs r0, 0x64 ldr r3, =gPlayerParty adds r0, r3, r0 movs r1, 0xB bl GetMonData lsls r0, 16 lsrs r0, 16 mov r10, r0 ldrb r0, [r4] movs r1, 0x64 muls r0, r1 subs r0, 0x64 ldr r3, =gPlayerParty adds r0, r3, r0 movs r1, 0xC bl GetMonData lsls r0, 16 lsrs r6, r0, 16 adds r1, r5, 0x1 lsls r0, r1, 24 lsrs r4, r0, 24 mov r9, r1 cmp r4, r8 bcs _081B8748 movs r7, 0x64 _081B870E: ldr r0, =gUnknown_0203CEF8 adds r5, r0, r4 ldrb r0, [r5] muls r0, r7 subs r0, 0x64 ldr r1, =gPlayerParty adds r0, r1, r0 movs r1, 0xB bl GetMonData cmp r10, r0 beq _081B86B8 cmp r6, 0 beq _081B873E ldrb r0, [r5] muls r0, r7 subs r0, 0x64 ldr r3, =gPlayerParty adds r0, r3, r0 movs r1, 0xC bl GetMonData cmp r6, r0 beq _081B86BC _081B873E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, r8 bcc _081B870E _081B8748: mov r1, r9 lsls r0, r1, 24 lsrs r5, r0, 24 mov r0, r8 _081B8750: subs r0, 0x1 cmp r5, r0 blt _081B86CE _081B8756: movs r0, 0xFF _081B8758: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B865C thumb_func_start sub_81B8770 sub_81B8770: @ 81B8770 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 ldr r3, =gUnknown_0203CEF8 _081B877A: adds r0, r1, r3 ldrb r0, [r0] cmp r0, r2 bne _081B878C movs r0, 0x1 b _081B8798 .pool _081B878C: adds r0, r1, 0x1 lsls r0, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _081B877A movs r0, 0 _081B8798: pop {r1} bx r1 thumb_func_end sub_81B8770 thumb_func_start sub_81B879C sub_81B879C: @ 81B879C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 bl sub_81B865C lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xFF beq _081B87D4 movs r0, 0x20 bl PlaySE adds r0, r4, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B87E8 str r0, [r1] b _081B87E0 .pool _081B87D4: movs r0, 0x5 bl PlaySE adds r0, r5, 0 bl sub_81B12C0 _081B87E0: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81B879C thumb_func_start sub_81B87E8 sub_81B87E8: @ 81B87E8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081B8802 movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _081B881C _081B8802: movs r0, 0x5 bl PlaySE movs r0, 0 bl display_pokemon_menu_message ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B1370 str r0, [r1] _081B881C: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B87E8 thumb_func_start sub_81B8830 sub_81B8830: @ 81B8830 push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B884C cmp r0, 0x9 bne _081B8850 movs r0, 0x3 b _081B8854 .pool _081B884C: movs r0, 0x2 b _081B8854 _081B8850: ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] _081B8854: pop {r1} bx r1 .pool thumb_func_end sub_81B8830 thumb_func_start sub_81B885C sub_81B885C: @ 81B885C push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B8878 cmp r0, 0x9 bne _081B887C movs r0, 0x1 b _081B8880 .pool _081B8878: movs r0, 0x2 b _081B8880 _081B887C: ldr r0, =gSpecialVar_0x8005 ldrb r0, [r0] _081B8880: pop {r1} bx r1 .pool thumb_func_end sub_81B885C thumb_func_start sub_81B8888 sub_81B8888: @ 81B8888 push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 16 lsrs r0, 16 cmp r0, 0x8 beq _081B88A4 cmp r0, 0x9 bne _081B88A8 _081B889C: movs r0, 0x64 b _081B88B2 .pool _081B88A4: movs r0, 0x1E b _081B88B2 _081B88A8: ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r0, 0 bne _081B889C movs r0, 0x32 _081B88B2: pop {r1} bx r1 .pool thumb_func_end sub_81B8888 thumb_func_start sub_81B88BC sub_81B88BC: @ 81B88BC push {lr} ldr r0, =0x000040cf bl VarGet lsls r0, 24 lsrs r1, r0, 24 movs r2, 0xF8 lsls r2, 24 adds r0, r2 lsrs r0, 24 cmp r0, 0x1 bhi _081B88E0 ldr r0, =gUnknown_085EA126 b _081B88FA .pool _081B88E0: cmp r1, 0x1 bne _081B88F8 ldr r0, =gSpecialVar_0x8005 ldrh r0, [r0] cmp r0, 0x2 bne _081B88F8 ldr r0, =gUnknown_085EA139 b _081B88FA .pool _081B88F8: ldr r0, =gUnknown_085EA155 _081B88FA: pop {r1} bx r1 .pool thumb_func_end sub_81B88BC thumb_func_start sub_81B8904 sub_81B8904: @ 81B8904 push {lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 movs r2, 0 str r2, [sp] ldr r2, =sub_81B1370 str r2, [sp, 0x4] str r1, [sp, 0x8] movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8904 thumb_func_start sub_81B892C sub_81B892C: @ 81B892C push {lr} sub sp, 0xC movs r0, 0x4 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music str r0, [sp, 0x8] movs r0, 0 movs r1, 0 movs r2, 0xC movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B892C thumb_func_start sub_81B8958 sub_81B8958: @ 81B8958 push {lr} sub sp, 0xC movs r0, 0x1 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music str r0, [sp, 0x8] movs r0, 0xB movs r1, 0 movs r2, 0xD movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B8958 thumb_func_start sub_81B8984 sub_81B8984: @ 81B8984 push {lr} bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _081B8994 movs r0, 0 b _081B89A6 _081B8994: bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _081B89A4 movs r0, 0x1 b _081B89A6 _081B89A4: movs r0, 0x2 _081B89A6: pop {r1} bx r1 thumb_func_end sub_81B8984 thumb_func_start sub_81B89AC sub_81B89AC: @ 81B89AC push {r4,lr} sub sp, 0xC adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl sub_81B8984 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_8059D40 str r0, [sp, 0x8] movs r0, 0x1 adds r2, r4, 0 movs r3, 0 bl sub_81B0038 bl nullsub_35 bl pokemon_change_order add sp, 0xC pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B89AC thumb_func_start sub_81B89F0 sub_81B89F0: @ 81B89F0 push {lr} sub sp, 0xC bl sub_81B8984 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 movs r0, 0x5 str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =c2_815ABFC str r0, [sp, 0x8] movs r0, 0x1 movs r2, 0x3 movs r3, 0 bl sub_81B0038 bl nullsub_35 bl pokemon_change_order add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B89F0 thumb_func_start sub_81B8A2C sub_81B8A2C: @ 81B8A2C push {r4,lr} adds r4, r0, 0 ldr r0, =gPlayerParty + 0x64 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B8A74 adds r0, r4, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 bne _081B8A74 ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x1 bne _081B8A5C movs r0, 0x3 b _081B8A76 .pool _081B8A5C: ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 lsls r1, 11 ands r0, r1 cmp r0, 0 bne _081B8A74 movs r0, 0x2 b _081B8A76 .pool _081B8A74: movs r0, 0x7 _081B8A76: pop {r4} pop {r1} bx r1 thumb_func_end sub_81B8A2C thumb_func_start sub_81B8A7C sub_81B8A7C: @ 81B8A7C push {r4-r7,lr} mov r7, r8 push {r7} bl brm_get_pokemon_selection lsls r0, 24 lsrs r5, r0, 24 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B8AC4 cmp r5, 0x1 beq _081B8AA2 cmp r5, 0x4 beq _081B8AA2 cmp r5, 0x5 bne _081B8AC4 _081B8AA2: ldr r4, =gStringVar1 bl sub_806EBF8 adds r1, r0, 0 adds r0, r4, 0 bl StringCopy ldr r0, =gStringVar4 ldr r1, =gUnknown_085E97B2 b _081B8C42 .pool _081B8AC4: movs r0, 0x64 adds r1, r5, 0 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 bne _081B8AF8 ldr r1, =gStringVar1 adds r0, r4, 0 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gUnknown_085E978F b _081B8C42 .pool _081B8AF8: movs r4, 0 b _081B8B24 _081B8AFC: adds r0, r4, 0 bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081B8B1E adds r0, r5, 0 bl sub_81B8F38 lsls r0, 24 ldr r2, =gBattlePartyID lsls r1, r4, 1 adds r1, r2 lsrs r0, 24 ldrh r1, [r1] cmp r0, r1 beq _081B8BFC _081B8B1E: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B8B24: ldr r0, =gNoOfAllBanks ldrb r0, [r0] cmp r4, r0 bcc _081B8AFC movs r7, 0x64 adds r0, r5, 0 muls r0, r7 ldr r1, =gPlayerParty mov r8, r1 adds r6, r0, r1 adds r0, r6, 0 movs r1, 0x2D bl GetMonData cmp r0, 0 beq _081B8B60 ldr r0, =gStringVar4 ldr r1, =gUnknown_085E97E5 b _081B8C42 .pool _081B8B60: adds r0, r5, 0 bl sub_81B8F38 ldr r1, =gBattleStruct ldr r1, [r1] adds r1, 0x8B lsls r0, 24 lsrs r0, 24 ldrb r1, [r1] cmp r0, r1 bne _081B8B94 ldr r1, =gStringVar1 adds r0, r6, 0 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gUnknown_085E976F b _081B8C42 .pool _081B8B94: ldr r0, =gUnknown_0203CEC8 ldrb r0, [r0, 0xB] cmp r0, 0x4 bne _081B8BA8 bl sub_806E994 b _081B8C46 .pool _081B8BA8: cmp r0, 0x2 beq _081B8C20 adds r0, r5, 0 bl sub_81B8F38 ldr r1, =gUnknown_0203CEE9 strb r0, [r1] ldr r1, =gUnknown_0203CEE8 movs r0, 0x1 strb r0, [r1] ldr r1, =gBattlePartyID ldr r0, =gUnknown_020244B8 ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 adds r1, r5, 0 bl sub_81B8FB0 adds r0, r4, 0 muls r0, r7 add r0, r8 adds r1, r6, 0 bl sub_81B1288 movs r0, 0x1 b _081B8C48 .pool _081B8BFC: movs r0, 0x64 muls r0, r5 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9754 b _081B8C42 .pool _081B8C20: ldr r0, =gUnknown_020244B8 ldrb r0, [r0] ldr r1, =gBattlePartyID lsls r0, 1 adds r0, r1 ldrb r0, [r0] bl pokemon_order_func lsls r0, 24 lsrs r0, 24 muls r0, r7 add r0, r8 ldr r1, =gStringVar1 bl GetMonNickname ldr r0, =gStringVar4 ldr r1, =gUnknown_085E9738 _081B8C42: bl StringExpandPlaceholders _081B8C46: movs r0, 0 _081B8C48: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .pool thumb_func_end sub_81B8A7C thumb_func_start sub_81B8C68 sub_81B8C68: @ 81B8C68 push {r4,lr} ldr r4, =gUnknown_0203CF00 bl sub_806D7EC adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl sub_81B8C88 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B8C68 thumb_func_start sub_81B8C88 sub_81B8C88: @ 81B8C88 push {r4-r6,lr} sub sp, 0x8 adds r6, r0, 0 lsls r1, 24 lsrs r4, r1, 24 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B8CBE cmp r4, 0 beq _081B8CB0 movs r0, 0x30 strb r0, [r6] movs r0, 0x45 strb r0, [r6, 0x1] movs r0, 0x12 strb r0, [r6, 0x2] b _081B8D58 _081B8CB0: movs r0, 0x3 strb r0, [r6] movs r0, 0x12 strb r0, [r6, 0x1] movs r0, 0x45 strb r0, [r6, 0x2] b _081B8D58 _081B8CBE: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _081B8CFC movs r5, 0x1 movs r0, 0 bl GetBankByPlayerAI mov r2, sp ldr r1, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r1 ldrh r0, [r0] strb r0, [r2] movs r4, 0 mov r1, sp _081B8CE2: ldrb r0, [r1] cmp r4, r0 beq _081B8CF0 mov r2, sp adds r0, r2, r5 strb r4, [r0] adds r5, 0x1 _081B8CF0: adds r4, 0x1 cmp r4, 0x5 ble _081B8CE2 b _081B8D40 .pool _081B8CFC: movs r5, 0x2 movs r0, 0 bl GetBankByPlayerAI mov r1, sp ldr r4, =gBattlePartyID lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] strb r0, [r1] movs r0, 0x2 bl GetBankByPlayerAI mov r1, sp lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrh r0, [r0] strb r0, [r1, 0x1] movs r4, 0 _081B8D26: ldrb r0, [r1] cmp r4, r0 beq _081B8D3A ldrb r0, [r1, 0x1] cmp r4, r0 beq _081B8D3A mov r2, sp adds r0, r2, r5 strb r4, [r0] adds r5, 0x1 _081B8D3A: adds r4, 0x1 cmp r4, 0x5 ble _081B8D26 _081B8D40: movs r4, 0 mov r3, sp _081B8D44: adds r0, r6, r4 ldrb r1, [r3] lsls r1, 4 ldrb r2, [r3, 0x1] orrs r1, r2 strb r1, [r0] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _081B8D44 _081B8D58: add sp, 0x8 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B8C88 thumb_func_start sub_81B8D64 sub_81B8D64: @ 81B8D64 push {lr} adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 lsls r1, 24 lsrs r1, 24 ldr r0, =gBattleStruct lsls r3, r2, 1 adds r3, r2 adds r3, 0x60 ldr r0, [r0] adds r0, r3 bl sub_81B8D88 pop {r0} bx r0 .pool thumb_func_end sub_81B8D64 thumb_func_start sub_81B8D88 sub_81B8D88: @ 81B8D88 push {r4-r7,lr} sub sp, 0x8 adds r5, r0, 0 adds r0, r2, 0 lsls r1, 24 lsrs r7, r1, 24 lsls r0, 24 lsrs r0, 24 bl GetBankSide lsls r0, 24 cmp r0, 0 bne _081B8DB0 movs r0, 0 bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x2 b _081B8DBC _081B8DB0: movs r0, 0x1 bl GetBankByPlayerAI lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x3 _081B8DBC: bl GetBankByPlayerAI lsls r0, 24 lsrs r6, r0, 24 bl sub_81B1250 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B8DF0 cmp r7, 0 beq _081B8DE2 movs r0, 0x30 strb r0, [r5] movs r0, 0x45 strb r0, [r5, 0x1] movs r0, 0x12 strb r0, [r5, 0x2] b _081B8E72 _081B8DE2: movs r0, 0x3 strb r0, [r5] movs r0, 0x12 strb r0, [r5, 0x1] movs r0, 0x45 strb r0, [r5, 0x2] b _081B8E72 _081B8DF0: bl battle_type_is_double lsls r0, 24 cmp r0, 0 bne _081B8E28 movs r3, 0x1 mov r2, sp ldr r1, =gBattlePartyID lsls r0, r4, 1 adds r0, r1 ldrh r0, [r0] strb r0, [r2] movs r4, 0 mov r1, sp _081B8E0C: ldrb r0, [r1] cmp r4, r0 beq _081B8E1A mov r2, sp adds r0, r2, r3 strb r4, [r0] adds r3, 0x1 _081B8E1A: adds r4, 0x1 cmp r4, 0x5 ble _081B8E0C b _081B8E5A .pool _081B8E28: movs r3, 0x2 mov r1, sp ldr r2, =gBattlePartyID lsls r0, r4, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1] lsls r0, r6, 1 adds r0, r2 ldrh r0, [r0] strb r0, [r1, 0x1] movs r4, 0 _081B8E40: ldrb r0, [r1] cmp r4, r0 beq _081B8E54 ldrb r0, [r1, 0x1] cmp r4, r0 beq _081B8E54 mov r2, sp adds r0, r2, r3 strb r4, [r0] adds r3, 0x1 _081B8E54: adds r4, 0x1 cmp r4, 0x5 ble _081B8E40 _081B8E5A: movs r4, 0 mov r3, sp _081B8E5E: adds r0, r5, r4 ldrb r1, [r3] lsls r1, 4 ldrb r2, [r3, 0x1] orrs r1, r2 strb r1, [r0] adds r3, 0x2 adds r4, 0x1 cmp r4, 0x2 ble _081B8E5E _081B8E72: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B8D88 thumb_func_start sub_81B8E80 sub_81B8E80: @ 81B8E80 push {r4-r7,lr} sub sp, 0x8 lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 movs r7, 0 bl sub_81B1250 lsls r0, 24 cmp r0, 0 beq _081B8F2E ldr r0, =gBattleStruct lsls r1, r4, 1 adds r1, r4 adds r1, 0x60 ldr r0, [r0] adds r4, r0, r1 movs r2, 0 add r6, sp mov r12, r6 movs r6, 0xF mov r3, sp _081B8EB2: adds r1, r4, r2 ldrb r0, [r1] lsrs r0, 4 strb r0, [r3] adds r3, 0x1 ldrb r1, [r1] adds r0, r6, 0 ands r0, r1 strb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r2, 0x2 ble _081B8EB2 mov r0, r12 ldrb r3, [r0] movs r2, 0 mov r0, sp ldrb r0, [r0] cmp r0, r5 bne _081B8EE8 mov r0, sp ldrb r7, [r0] strb r3, [r0] b _081B8EFC .pool _081B8EE8: adds r2, 0x1 cmp r2, 0x5 bgt _081B8EFC mov r0, sp adds r1, r0, r2 ldrb r0, [r1] cmp r0, r5 bne _081B8EE8 adds r7, r0, 0 strb r3, [r1] _081B8EFC: cmp r2, 0x6 beq _081B8F2E mov r0, r12 strb r7, [r0] mov r0, sp ldrb r0, [r0] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x1] orrs r0, r1 strb r0, [r4] mov r0, sp ldrb r0, [r0, 0x2] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x3] orrs r0, r1 strb r0, [r4, 0x1] mov r0, sp ldrb r0, [r0, 0x4] lsls r0, 4 mov r1, sp ldrb r1, [r1, 0x5] orrs r0, r1 strb r0, [r4, 0x2] _081B8F2E: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B8E80 thumb_func_start sub_81B8F38 sub_81B8F38: @ 81B8F38 push {lr} lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1 ands r1, r2 lsrs r2, r0, 25 cmp r1, 0 beq _081B8F58 ldr r0, =gUnknown_0203CF00 adds r0, r2, r0 ldrb r0, [r0] movs r1, 0xF ands r1, r0 b _081B8F60 .pool _081B8F58: ldr r0, =gUnknown_0203CF00 adds r0, r2, r0 ldrb r0, [r0] lsrs r1, r0, 4 _081B8F60: adds r0, r1, 0 pop {r1} bx r1 .pool thumb_func_end sub_81B8F38 thumb_func_start sub_81B8F6C sub_81B8F6C: @ 81B8F6C push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 24 lsrs r4, r1, 24 movs r1, 0x1 ands r1, r3 lsrs r3, r0, 25 cmp r1, 0 beq _081B8F94 ldr r0, =gUnknown_0203CF00 adds r0, r3, r0 ldrb r2, [r0] movs r1, 0xF0 ands r1, r2 orrs r1, r4 strb r1, [r0] b _081B8FA4 .pool _081B8F94: ldr r2, =gUnknown_0203CF00 adds r2, r3, r2 ldrb r1, [r2] movs r0, 0xF ands r0, r1 lsls r1, r4, 4 orrs r0, r1 strb r0, [r2] _081B8FA4: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B8F6C thumb_func_start sub_81B8FB0 sub_81B8FB0: @ 81B8FB0 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 lsls r5, 24 lsrs r5, 24 lsls r6, 24 lsrs r6, 24 adds r0, r5, 0 bl sub_81B8F38 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r6, 0 bl sub_81B8F38 adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r5, 0 bl sub_81B8F6C adds r0, r6, 0 adds r1, r4, 0 bl sub_81B8F6C pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81B8FB0 thumb_func_start pokemon_order_func pokemon_order_func: @ 81B8FEC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 movs r3, 0 movs r2, 0 ldr r5, =gUnknown_0203CF00 _081B8FF8: adds r0, r3, r5 ldrb r1, [r0] lsrs r0, r1, 4 cmp r0, r4 beq _081B9010 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 movs r0, 0xF ands r0, r1 cmp r0, r4 bne _081B9018 _081B9010: adds r0, r2, 0 b _081B902A .pool _081B9018: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x2 bls _081B8FF8 movs r0, 0 _081B902A: pop {r4,r5} pop {r1} bx r1 thumb_func_end pokemon_order_func thumb_func_start pokemon_change_order pokemon_change_order: @ 81B9030 push {r4-r6,lr} movs r4, 0x96 lsls r4, 2 adds r0, r4, 0 bl Alloc adds r5, r0, 0 ldr r1, =gPlayerParty adds r2, r4, 0 bl memcpy movs r4, 0 movs r6, 0x64 _081B904A: adds r0, r4, 0 bl pokemon_order_func lsls r0, 24 lsrs r0, 24 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 muls r1, r6 adds r1, r5 movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B904A adds r0, r5, 0 bl Free pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end pokemon_change_order thumb_func_start sub_81B9080 sub_81B9080: @ 81B9080 push {r4-r6,lr} movs r4, 0x96 lsls r4, 2 adds r0, r4, 0 bl Alloc adds r5, r0, 0 ldr r1, =gPlayerParty adds r2, r4, 0 bl memcpy movs r4, 0 movs r6, 0x64 _081B909A: adds r0, r4, 0 bl sub_81B8F38 lsls r0, 24 lsrs r0, 24 muls r0, r6 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 muls r1, r6 adds r1, r5 movs r2, 0x64 bl memcpy adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B909A adds r0, r5, 0 bl Free pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B9080 thumb_func_start sub_81B90D0 sub_81B90D0: @ 81B90D0 push {r4-r7,lr} mov r7, r8 push {r7} movs r6, 0x1 movs r7, 0x64 ldr r0, =gPlayerParty mov r8, r0 _081B90DE: adds r0, r6, 0 bl sub_81B8F38 lsls r0, 24 lsrs r0, 24 muls r0, r7 mov r1, r8 adds r5, r0, r1 adds r0, r5, 0 movs r1, 0xB bl GetMonData cmp r0, 0 beq _081B912C adds r0, r5, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _081B912C movs r0, 0 bl sub_81B8F38 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 adds r1, r6, 0 bl sub_81B8FB0 adds r0, r4, 0 muls r0, r7 add r0, r8 adds r1, r5, 0 bl sub_81B1288 b _081B9136 .pool _081B912C: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _081B90DE _081B9136: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_81B90D0 thumb_func_start sub_81B9140 sub_81B9140: @ 81B9140 push {lr} ldr r0, =sub_8059D40 bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_81B9140 thumb_func_start sub_81B9150 sub_81B9150: @ 81B9150 push {lr} sub sp, 0xC movs r0, 0x7F str r0, [sp] ldr r0, =sub_81B917C str r0, [sp, 0x4] ldr r0, =gMain ldr r0, [r0, 0x8] str r0, [sp, 0x8] movs r0, 0x5 movs r1, 0x3 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B9150 thumb_func_start sub_81B917C sub_81B917C: @ 81B917C push {r4,lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gTasks lsls r4, r0, 2 adds r4, r0 lsls r4, 3 adds r4, r1 movs r1, 0x80 lsls r1, 1 strh r1, [r4, 0x8] bl sub_81B9294 movs r1, 0x80 lsls r1, 9 movs r0, 0x2 movs r2, 0 bl ChangeBgX ldr r0, =sub_81B91B4 str r0, [r4] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B917C thumb_func_start sub_81B91B4 sub_81B91B4: @ 81B91B4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r6, r5, 2 adds r0, r6, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r4, r0, r1 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081B9220 ldrh r0, [r4] subs r0, 0x8 strh r0, [r4] adds r0, r5, 0 bl sub_81B9294 movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0 bne _081B9220 movs r4, 0x3 ldr r7, =gUnknown_02022FF8 _081B91E8: subs r0, r4, 0x3 lsls r0, 5 adds r0, r7 ldrh r0, [r0] cmp r0, 0 beq _081B9204 ldr r0, =gUnknown_0203CEDC ldr r1, [r0] lsls r0, r4, 4 adds r0, r1 ldrb r0, [r0, 0x9] movs r1, 0 bl sub_81B5B6C _081B9204: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x5 bls _081B91E8 movs r0, 0x78 bl PlaySE ldr r0, =gTasks adds r1, r6, r5 lsls r1, 3 adds r1, r0 ldr r0, =sub_81B9240 str r0, [r1] _081B9220: pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B91B4 thumb_func_start sub_81B9240 sub_81B9240: @ 81B9240 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r0, r2, 2 adds r0, r2 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r0, r1 ldrh r1, [r0] adds r1, 0x1 strh r1, [r0] lsls r1, 16 movs r0, 0x80 lsls r0, 17 cmp r1, r0 bne _081B9266 adds r0, r2, 0 bl sub_81B12C0 _081B9266: pop {r0} bx r0 .pool thumb_func_end sub_81B9240 thumb_func_start sub_81B9270 sub_81B9270: @ 81B9270 push {lr} lsls r0, 24 lsrs r2, r0, 24 lsls r1, 16 lsrs r3, r1, 16 cmp r1, 0 blt _081B928A ldr r1, =gSprites lsls r0, r2, 4 adds r0, r2 lsls r0, 2 adds r0, r1 strh r3, [r0, 0x24] _081B928A: pop {r0} bx r0 .pool thumb_func_end sub_81B9270 thumb_func_start sub_81B9294 sub_81B9294: @ 81B9294 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r5, r1, r0 movs r6, 0x3 ldr r7, =gUnknown_0203CEDC _081B92A8: ldr r0, =gUnknown_02022FF8 subs r1, r6, 0x3 lsls r1, 5 adds r1, r0 ldrh r0, [r1] cmp r0, 0 beq _081B9300 ldr r0, [r7] lsls r4, r6, 4 adds r0, r4, r0 ldrb r0, [r0, 0x9] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 ldr r0, [r7] adds r0, r4, r0 ldrb r0, [r0, 0xA] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 ldr r0, [r7] adds r0, r4, r0 ldrb r0, [r0, 0xB] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 ldr r0, [r7] adds r4, r0 ldrb r0, [r4, 0xC] ldrh r1, [r5] subs r1, 0x8 lsls r1, 16 asrs r1, 16 bl sub_81B9270 _081B9300: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x5 bls _081B92A8 movs r1, 0x80 lsls r1, 4 movs r0, 0x2 movs r2, 0x1 bl ChangeBgX pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B9294 thumb_func_start sub_81B9328 sub_81B9328: @ 81B9328 push {lr} sub sp, 0xC movs r0, 0xF str r0, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9390 str r0, [sp, 0x8] movs r0, 0x6 movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B9328 thumb_func_start sub_81B9354 sub_81B9354: @ 81B9354 push {lr} sub sp, 0xC lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03005DB0 ldr r1, =hm_add_c3_without_phase_2 str r1, [r2] movs r1, 0 str r1, [sp] ldr r1, =sub_81B1370 str r1, [sp, 0x4] ldr r1, =c2_exit_to_overworld_2_switch str r1, [sp, 0x8] movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 add sp, 0xC pop {r0} bx r0 .pool thumb_func_end sub_81B9354 thumb_func_start sub_81B9390 sub_81B9390: @ 81B9390 push {r4,lr} ldr r4, =gSpecialVar_0x8004 bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 strh r0, [r4] cmp r0, 0x5 bls _081B93A6 movs r0, 0xFF strh r0, [r4] _081B93A6: ldr r0, =gUnknown_03005DB0 ldr r1, =hm_add_c3_without_phase_2 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B9390 thumb_func_start hm_add_c3_without_phase_2 hm_add_c3_without_phase_2: @ 81B93C8 push {lr} bl pal_fill_black ldr r0, =task_hm_without_phase_2 movs r1, 0xA bl CreateTask movs r0, 0x1 pop {r1} bx r1 .pool thumb_func_end hm_add_c3_without_phase_2 thumb_func_start task_hm_without_phase_2 task_hm_without_phase_2: @ 81B93E0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80ABDFC lsls r0, 24 cmp r0, 0 beq _081B93FE adds r0, r4, 0 bl DestroyTask bl ScriptContext2_Disable bl EnableBothScriptContexts _081B93FE: pop {r4} pop {r0} bx r0 thumb_func_end task_hm_without_phase_2 thumb_func_start sub_81B9404 sub_81B9404: @ 81B9404 push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, =sub_81B9424 movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B9404 thumb_func_start sub_81B9424 sub_81B9424: @ 81B9424 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B945C bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9470 str r0, [sp, 0x8] movs r0, 0x2 movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B945C: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9424 thumb_func_start sub_81B9470 sub_81B9470: @ 81B9470 push {lr} bl brm_get_pokemon_selection ldr r2, =gUnknown_02039F24 strb r0, [r2] lsls r0, 24 lsrs r0, 24 cmp r0, 0x5 bls _081B9486 movs r0, 0xFF strb r0, [r2] _081B9486: ldr r1, =gSpecialVar_0x8004 ldrb r0, [r2] strh r0, [r1] ldr r1, =gUnknown_03005DB0 ldr r0, =hm_add_c3_without_phase_2 str r0, [r1] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r0} bx r0 .pool thumb_func_end sub_81B9470 thumb_func_start sub_81B94B0 sub_81B94B0: @ 81B94B0 push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, =sub_81B94D0 movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B94B0 thumb_func_start sub_81B94D0 sub_81B94D0: @ 81B94D0 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B9508 bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9390 str r0, [sp, 0x8] movs r0, 0x3 movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B9508: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B94D0 thumb_func_start sub_81B951C sub_81B951C: @ 81B951C push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, =sub_81B953C movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B951C thumb_func_start sub_81B953C sub_81B953C: @ 81B953C push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B9574 bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9588 str r0, [sp, 0x8] movs r0, 0x7 movs r1, 0 movs r2, 0xB movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B9574: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B953C thumb_func_start sub_81B9588 sub_81B9588: @ 81B9588 push {r4,r5,lr} ldr r5, =gSpecialVar_0x8004 bl brm_get_pokemon_selection lsls r0, 24 lsrs r0, 24 strh r0, [r5] cmp r0, 0x5 bls _081B95A4 movs r0, 0xFF strh r0, [r5] b _081B95BA .pool _081B95A4: ldr r4, =gSpecialVar_0x8005 ldrh r1, [r5] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 bl GetNumberOfRelearnableMoves lsls r0, 24 lsrs r0, 24 strh r0, [r4] _081B95BA: ldr r0, =gUnknown_03005DB0 ldr r1, =hm_add_c3_without_phase_2 str r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch bl SetMainCallback2 pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9588 thumb_func_start sub_81B95E0 sub_81B95E0: @ 81B95E0 push {r4,r5,lr} ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 b _081B95FA .pool _081B95F4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _081B95FA: cmp r4, 0x2 bhi _081B9614 movs r0, 0x64 muls r0, r4 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0xC bl GetMonData cmp r0, 0 beq _081B95F4 movs r0, 0x1 strh r0, [r5] _081B9614: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B95E0 thumb_func_start sub_81B9620 sub_81B9620: @ 81B9620 push {lr} bl ScriptContext2_Enable movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, =sub_81B9640 movs r1, 0xA bl CreateTask pop {r0} bx r0 .pool thumb_func_end sub_81B9620 thumb_func_start sub_81B9640 sub_81B9640: @ 81B9640 push {r4,r5,lr} sub sp, 0xC lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0 bne _081B9678 bl overworld_free_bg_tilemaps str r4, [sp] ldr r0, =sub_81B1370 str r0, [sp, 0x4] ldr r0, =sub_81B9390 str r0, [sp, 0x8] movs r0, 0xC movs r1, 0 movs r2, 0 movs r3, 0 bl sub_81B0038 adds r0, r5, 0 bl DestroyTask _081B9678: add sp, 0xC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9640 thumb_func_start sub_81B968C sub_81B968C: @ 81B968C push {lr} sub sp, 0x4 ldr r1, =gPlayerParty ldr r0, =gSpecialVar_0x8004 ldrb r2, [r0] ldr r0, =gPlayerPartyCount ldrb r3, [r0] subs r3, 0x1 lsls r3, 24 lsrs r3, 24 ldr r0, =c2_exit_to_overworld_2_switch str r0, [sp] movs r0, 0x3 bl sub_81BF8EC ldr r1, =gUnknown_03005DAC ldr r0, =sub_80AF168 str r0, [r1] add sp, 0x4 pop {r0} bx r0 .pool thumb_func_end sub_81B968C thumb_func_start sub_81B96D0 sub_81B96D0: @ 81B96D0 push {r4,r5,lr} ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] movs r4, 0 adds r5, r1, 0 _081B96DC: ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 adds r1, 0xD bl GetMonData cmp r0, 0 beq _081B96FA ldrh r0, [r5] adds r0, 0x1 strh r0, [r5] _081B96FA: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081B96DC pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B96D0 thumb_func_start sub_81B9718 sub_81B9718: @ 81B9718 push {r4,r5,lr} ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 adds r5, r1, 0 muls r5, r0 ldr r0, =gPlayerParty adds r5, r0 ldr r0, =gSpecialVar_0x8005 ldrh r1, [r0] adds r1, 0xD adds r0, r5, 0 bl GetMonData adds r4, r0, 0 lsls r4, 16 lsrs r4, 16 ldr r1, =gStringVar1 adds r0, r5, 0 bl GetMonNickname ldr r0, =gStringVar2 movs r1, 0xD muls r1, r4 ldr r2, =gMoveNames adds r1, r2 bl StringCopy pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9718 thumb_func_start sub_81B9770 sub_81B9770: @ 81B9770 push {r4-r6,lr} mov r6, r8 push {r6} ldr r0, =gSpecialVar_0x8004 mov r8, r0 ldrh r0, [r0] movs r6, 0x64 muls r0, r6 ldr r5, =gPlayerParty adds r0, r5 ldr r4, =gSpecialVar_0x8005 ldrb r2, [r4] movs r1, 0 bl SetMonMoveSlot mov r1, r8 ldrh r0, [r1] muls r0, r6 adds r0, r5 ldrb r1, [r4] bl RemoveMonPPBonus ldrh r4, [r4] cmp r4, 0x2 bhi _081B97C4 _081B97A2: ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 lsls r1, r4, 24 lsrs r1, 24 adds r4, 0x1 lsls r2, r4, 24 lsrs r2, 24 bl sub_81B97DC lsls r4, 16 lsrs r4, 16 cmp r4, 0x2 bls _081B97A2 _081B97C4: pop {r3} mov r8, r3 pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_81B9770 thumb_func_start sub_81B97DC sub_81B97DC: @ 81B97DC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x20 mov r8, r0 adds r5, r1, 0 adds r4, r2, 0 lsls r5, 24 lsrs r5, 24 lsls r4, 24 lsrs r4, 24 adds r0, r5, 0 adds r0, 0xD str r0, [sp, 0x8] mov r0, r8 ldr r1, [sp, 0x8] bl GetMonData mov r1, sp adds r1, 0x2 str r1, [sp, 0x14] strh r0, [r1] adds r3, r4, 0 adds r3, 0xD str r3, [sp, 0xC] mov r0, r8 adds r1, r3, 0 bl GetMonData mov r1, sp strh r0, [r1] adds r7, r5, 0 adds r7, 0x11 str r7, [sp, 0x10] mov r0, r8 adds r1, r7, 0 bl GetMonData mov r1, sp adds r1, 0x5 str r1, [sp, 0x18] strb r0, [r1] adds r3, r4, 0 adds r3, 0x11 str r3, [sp, 0x1C] mov r0, r8 adds r1, r3, 0 bl GetMonData add r7, sp, 0x4 mov r10, r7 strb r0, [r7] mov r0, r8 movs r1, 0x15 bl GetMonData mov r6, sp adds r6, 0x6 strb r0, [r6] ldr r1, =gUnknown_08329D22 adds r0, r5, r1 ldrb r0, [r0] mov r9, r0 ldrb r0, [r6] adds r2, r0, 0 mov r3, r9 ands r2, r3 lsls r5, 1 asrs r2, r5 lsls r2, 24 lsrs r2, 24 adds r1, r4, r1 ldrb r3, [r1] adds r1, r0, 0 ands r1, r3 lsls r4, 1 asrs r1, r4 lsls r1, 24 lsrs r1, 24 mov r7, r9 bics r0, r7 strb r0, [r6] ldrb r0, [r6] bics r0, r3 strb r0, [r6] lsls r2, r4 lsls r1, r5 adds r2, r1 ldrb r0, [r6] orrs r0, r2 strb r0, [r6] mov r0, r8 ldr r1, [sp, 0x8] mov r2, sp bl SetMonData mov r0, r8 ldr r1, [sp, 0xC] ldr r2, [sp, 0x14] bl SetMonData mov r0, r8 ldr r1, [sp, 0x10] mov r2, r10 bl SetMonData mov r0, r8 ldr r1, [sp, 0x1C] ldr r2, [sp, 0x18] bl SetMonData mov r0, r8 movs r1, 0x15 adds r2, r6, 0 bl SetMonData add sp, 0x20 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B97DC thumb_func_start sub_81B98DC sub_81B98DC: @ 81B98DC push {lr} ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 movs r1, 0x2D bl GetMonData adds r1, r0, 0 cmp r1, 0 beq _081B990C ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] b _081B9910 .pool _081B990C: ldr r0, =gScriptResult strh r1, [r0] _081B9910: pop {r0} bx r0 .pool thumb_func_end sub_81B98DC thumb_func_start sub_81B9918 sub_81B9918: @ 81B9918 push {r4-r7,lr} mov r7, r8 push {r7} ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] ldr r0, =gSpecialVar_0x8004 ldrh r1, [r0] movs r0, 0x64 muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] adds r1, 0xD bl GetMonData lsls r0, 16 lsrs r0, 16 mov r8, r0 cmp r0, 0x39 bne _081B999C movs r6, 0 b _081B9980 .pool _081B9958: ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] cmp r6, r0 beq _081B997E movs r4, 0 movs r0, 0x64 adds r5, r6, 0 muls r5, r0 ldr r7, =gPlayerParty _081B996A: adds r1, r4, 0 adds r1, 0xD adds r0, r5, r7 bl GetMonData cmp r0, 0x39 beq _081B999C adds r4, 0x1 cmp r4, 0x3 bls _081B996A _081B997E: adds r6, 0x1 _081B9980: bl CalculatePlayerPartyCount lsls r0, 24 lsrs r0, 24 cmp r6, r0 bcc _081B9958 mov r0, r8 bl sub_80D23A8 cmp r0, 0x1 beq _081B999C ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] _081B999C: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B9918 thumb_func_start sub_81B99B4 sub_81B99B4: @ 81B99B4 push {lr} ldr r1, =gUnknown_086160B4 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81B99B4 thumb_func_start sub_81B99D4 sub_81B99D4: @ 81B99D4 push {lr} ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000ca8 adds r0, r2 movs r2, 0 strb r2, [r0] ldr r1, [r1] ldr r3, =0x00000cb2 adds r0, r1, r3 strh r2, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, =gSaveBlock1Ptr ldr r0, [r0] 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 .pool thumb_func_end sub_81B99D4 thumb_func_start sub_81B9A28 sub_81B9A28: @ 81B9A28 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000e6a adds r0, r2 ldrh r0, [r0] strh r0, [r1] bx lr .pool thumb_func_end sub_81B9A28 thumb_func_start sub_81B9A44 sub_81B9A44: @ 81B9A44 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r2, =0x00000e6a adds r0, r2 strh r1, [r0] bx lr .pool thumb_func_end sub_81B9A44 thumb_func_start sub_81B9A60 sub_81B9A60: @ 81B9A60 push {r4,lr} ldr r4, =gTrainerBattleOpponent_A bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0xFF bl __umodsi3 lsls r0, 16 lsrs r0, 16 lsls r1, r0, 2 adds r1, r0 lsrs r1, 6 strh r1, [r4] ldrh r0, [r4] movs r1, 0 bl sub_8162614 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B9A60 thumb_func_start sub_81B9A90 sub_81B9A90: @ 81B9A90 push {lr} ldr r3, =gTrainerBattleOpponent_A ldrh r1, [r3] ldr r0, =0x0000012b cmp r1, r0 bhi _081B9AAC ldr r2, =gUnknown_0203BC88 movs r0, 0x34 muls r1, r0 ldr r0, [r2] adds r0, r1 adds r0, 0xC bl ConvertBattleFrontierTrainerSpeechToString _081B9AAC: pop {r0} bx r0 .pool thumb_func_end sub_81B9A90 thumb_func_start sub_81B9ABC sub_81B9ABC: @ 81B9ABC push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B9ABC thumb_func_start sub_81B9B00 sub_81B9B00: @ 81B9B00 push {r4,r5,lr} ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r5, =gUnknown_086160D4 bl Random ldrh r0, [r5] ldr r1, =0x00000e6a adds r4, r1 strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9B00 thumb_func_start sub_81B9B28 sub_81B9B28: @ 81B9B28 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000e6a adds r0, r1 ldrh r0, [r0] movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _081B9B70 ldr r0, [r4] ldr r1, =0x00000e6a adds r0, r1 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, [r4] ldr r1, =0x00000e6a adds r0, r1 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r5, [r0] b _081B9B76 .pool _081B9B70: ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _081B9B76: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9B28 thumb_func_start sub_81B9B80 sub_81B9B80: @ 81B9B80 push {lr} ldr r1, =gUnknown_086160D8 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81B9B80 thumb_func_start sub_81B9BA0 sub_81B9BA0: @ 81B9BA0 push {lr} ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000ca8 adds r0, r2 movs r2, 0 strb r2, [r0] ldr r1, [r1] ldr r3, =0x00000cb2 adds r0, r1, r3 strh r2, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, =gSaveBlock1Ptr ldr r0, [r0] 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 .pool thumb_func_end sub_81B9BA0 thumb_func_start sub_81B9BF4 sub_81B9BF4: @ 81B9BF4 ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000e6c adds r0, r2 ldrh r0, [r0] strh r0, [r1] bx lr .pool thumb_func_end sub_81B9BF4 thumb_func_start sub_81B9C10 sub_81B9C10: @ 81B9C10 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r2, =0x00000e6c adds r0, r2 strh r1, [r0] bx lr .pool thumb_func_end sub_81B9C10 thumb_func_start sub_81B9C2C sub_81B9C2C: @ 81B9C2C push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B9C2C thumb_func_start sub_81B9C70 sub_81B9C70: @ 81B9C70 push {r4,r5,lr} ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r5, =gUnknown_086160F4 bl Random ldrh r0, [r5] ldr r1, =0x00000e6c adds r4, r1 strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9C70 thumb_func_start sub_81B9C98 sub_81B9C98: @ 81B9C98 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000e6c adds r0, r1 ldrh r0, [r0] movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _081B9CE0 ldr r0, [r4] ldr r1, =0x00000e6c adds r0, r1 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, [r4] ldr r1, =0x00000e6c adds r0, r1 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r5, [r0] b _081B9CE6 .pool _081B9CE0: ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _081B9CE6: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9C98 thumb_func_start sub_81B9CF0 sub_81B9CF0: @ 81B9CF0 push {lr} ldr r0, =gStringVar1 ldr r1, =gTrainerBattleOpponent_A ldrh r1, [r1] bl sub_8162E20 pop {r0} bx r0 .pool thumb_func_end sub_81B9CF0 thumb_func_start sub_81B9D08 sub_81B9D08: @ 81B9D08 push {lr} ldr r1, =gUnknown_086160F8 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 pop {r0} bx r0 .pool thumb_func_end sub_81B9D08 thumb_func_start sub_81B9D28 sub_81B9D28: @ 81B9D28 push {lr} ldr r1, =gSaveBlock2Ptr ldr r0, [r1] ldr r2, =0x00000ca8 adds r0, r2 movs r2, 0 strb r2, [r0] ldr r1, [r1] ldr r3, =0x00000cb2 adds r0, r1, r3 strh r2, [r0] ldr r0, =0x00000ca9 adds r1, r0 ldrb r2, [r1] movs r0, 0x5 negs r0, r0 ands r0, r2 strb r0, [r1] ldr r0, =gSaveBlock1Ptr ldr r0, [r0] 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 .pool thumb_func_end sub_81B9D28 thumb_func_start sub_81B9D7C sub_81B9D7C: @ 81B9D7C ldr r1, =gScriptResult ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r2, =0x00000e6e adds r0, r2 ldrh r0, [r0] strh r0, [r1] bx lr .pool thumb_func_end sub_81B9D7C thumb_func_start sub_81B9D98 sub_81B9D98: @ 81B9D98 ldr r0, =gSaveBlock2Ptr ldr r0, [r0] ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] ldr r2, =0x00000e6e adds r0, r2 strh r1, [r0] bx lr .pool thumb_func_end sub_81B9D98 thumb_func_start sub_81B9DB4 sub_81B9DB4: @ 81B9DB4 push {r4,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =gSpecialVar_0x8005 ldrh r1, [r1] ldr r2, =0x00000ca8 adds r0, r2 strb r1, [r0] movs r0, 0x80 lsls r0, 7 movs r1, 0 bl VarSet ldr r1, [r4] ldr r0, =0x00000ca9 adds r1, r0 ldrb r0, [r1] movs r2, 0x4 orrs r0, r2 strb r0, [r1] bl sub_81A4C30 pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_81B9DB4 thumb_func_start sub_81B9DF8 sub_81B9DF8: @ 81B9DF8 push {r4,r5,lr} ldr r0, =gSaveBlock2Ptr ldr r4, [r0] ldr r5, =gUnknown_08616120 bl Random ldrh r0, [r5] ldr r1, =0x00000e6e adds r4, r1 strh r0, [r4] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9DF8 thumb_func_start sub_81B9E20 sub_81B9E20: @ 81B9E20 push {r4,r5,lr} ldr r4, =gSaveBlock2Ptr ldr r0, [r4] ldr r1, =0x00000e6e adds r0, r1 ldrh r0, [r0] movs r1, 0x1 bl AddBagItem lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x1 bne _081B9E68 ldr r0, [r4] ldr r1, =0x00000e6e adds r0, r1 ldrh r0, [r0] ldr r1, =gStringVar1 bl CopyItemName ldr r0, [r4] ldr r1, =0x00000e6e adds r0, r1 movs r1, 0 strh r1, [r0] ldr r0, =gScriptResult strh r5, [r0] b _081B9E6E .pool _081B9E68: ldr r1, =gScriptResult movs r0, 0 strh r0, [r1] _081B9E6E: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_81B9E20 thumb_func_start sub_81B9E78 sub_81B9E78: @ 81B9E78 push {lr} bl ZeroPlayerPartyMons bl sub_819A4F8 pop {r0} bx r0 thumb_func_end sub_81B9E78 thumb_func_start sub_81B9E88 sub_81B9E88: @ 81B9E88 push {lr} bl sub_819DC00 pop {r0} bx r0 thumb_func_end sub_81B9E88 thumb_func_start sub_81B9E94 sub_81B9E94: @ 81B9E94 push {lr} movs r2, 0 ldr r1, =gMapHeader ldrb r0, [r1, 0x14] cmp r0, 0x8 bne _081B9EB2 ldr r3, =0xfffffe7f adds r0, r3, 0 ldrh r1, [r1, 0x12] adds r0, r1 lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bhi _081B9EB2 movs r2, 0x1 _081B9EB2: adds r0, r2, 0 pop {r1} bx r1 .pool thumb_func_end sub_81B9E94 thumb_func_start sub_81B9EC0 sub_81B9EC0: @ 81B9EC0 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x3C ldr r1, =gUnknown_0203BC88 ldr r0, =gSlateportBattleTentTrainers str r0, [r1] add r0, sp, 0xC mov r9, r0 mov r1, sp adds r1, 0x18 str r1, [sp, 0x2C] ldr r5, =gUnknown_0203BC8C ldr r4, =gSlateportBattleTentMons movs r2, 0 adds r3, r1, 0 mov r1, r9 mov r0, sp movs r6, 0x5 mov r8, r6 _081B9EEC: strh r2, [r0] strh r2, [r1] strh r2, [r3] adds r3, 0x2 adds r1, 0x2 adds r0, 0x2 movs r7, 0x1 negs r7, r7 add r8, r7 mov r6, r8 cmp r6, 0 bge _081B9EEC str r4, [r5] movs r7, 0 mov r10, r7 movs r0, 0 mov r8, r0 ldr r1, [sp, 0x2C] str r1, [sp, 0x30] mov r2, sp str r2, [sp, 0x34] lsls r6, r0, 1 str r6, [sp, 0x24] add r6, r9 str r6, [sp, 0x28] _081B9F1E: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x46 bl __umodsi3 lsls r0, 16 lsrs r5, r0, 16 movs r2, 0 mov r7, r8 adds r6, r2, r7 cmp r2, r6 bge _081B9F7C ldr r1, [sp, 0x28] ldrh r0, [r1] cmp r0, r5 beq _081B9F7C ldr r0, =gUnknown_0203BC8C ldr r1, [r0] lsls r0, r5, 4 adds r4, r0, r1 ldrh r7, [r4] mov r12, r7 lsls r3, r2, 1 ldr r1, [sp, 0x24] add r1, sp str r6, [sp, 0x38] _081B9F56: ldrh r0, [r1] cmp r0, r12 bne _081B9F66 mov r0, r10 cmp r0, 0 bne _081B9F7C ldrh r7, [r4] mov r10, r7 _081B9F66: adds r3, 0x2 adds r1, 0x2 adds r2, 0x1 ldr r0, [sp, 0x38] cmp r2, r0 bge _081B9F7C mov r7, r9 adds r0, r7, r3 ldrh r0, [r0] cmp r0, r5 bne _081B9F56 _081B9F7C: cmp r2, r6 bne _081BA01C movs r2, 0 cmp r2, r6 bge _081B9FD4 ldr r0, =gBattleFrontierHeldItems mov r12, r0 ldr r7, =gUnknown_0203BC8C ldr r1, [sp, 0x24] ldr r0, [sp, 0x2C] adds r4, r1, r0 _081B9F92: ldrh r3, [r4] cmp r3, 0 beq _081B9FCC ldr r1, [r7] lsls r0, r5, 4 adds r1, r0, r1 ldrb r0, [r1, 0xA] lsls r0, 1 add r0, r12 ldrh r0, [r0] cmp r3, r0 bne _081B9FCC ldrh r0, [r1] cmp r0, r10 bne _081B9FD4 movs r1, 0 mov r10, r1 b _081B9FD4 .pool _081B9FCC: adds r4, 0x2 adds r2, 0x1 cmp r2, r6 blt _081B9F92 _081B9FD4: cmp r2, r6 bne _081BA01C ldr r0, =gSaveBlock2Ptr ldr r1, [r0] mov r2, r8 lsls r3, r2, 1 adds r0, r3, r2 lsls r0, 2 adds r1, r0 movs r6, 0xE7 lsls r6, 4 adds r1, r6 strh r5, [r1] ldr r0, =gUnknown_0203BC8C ldr r0, [r0] lsls r1, r5, 4 adds r1, r0 ldrh r0, [r1] ldr r7, [sp, 0x34] strh r0, [r7] ldr r2, =gBattleFrontierHeldItems ldrb r0, [r1, 0xA] lsls r0, 1 adds r0, r2 ldrh r0, [r0] ldr r1, [sp, 0x30] strh r0, [r1] add r3, r9 strh r5, [r3] adds r1, 0x2 str r1, [sp, 0x30] adds r2, r7, 0 adds r2, 0x2 str r2, [sp, 0x34] movs r6, 0x1 add r8, r6 _081BA01C: mov r7, r8 cmp r7, 0x6 beq _081BA024 b _081B9F1E _081BA024: add sp, 0x3C pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81B9EC0 thumb_func_start sub_81BA040 sub_81BA040: @ 81BA040 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x10 movs r0, 0 mov r10, r0 ldr r1, =gUnknown_0203BC88 ldr r0, =gSlateportBattleTentTrainers str r0, [r1] ldr r1, =gUnknown_0203BC8C ldr r0, =gSlateportBattleTentMons str r0, [r1] ldr r7, =gSaveBlock2Ptr ldr r1, =0x0000ffff mov r8, r1 _081BA062: mov r2, r10 lsls r6, r2, 1 _081BA066: bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x1E bl __umodsi3 lsls r0, 16 lsrs r3, r0, 16 movs r5, 0 ldr r1, [r7] ldr r4, =0x00000cb2 adds r0, r1, r4 ldrh r0, [r0] cmp r5, r0 bge _081BA0AA ldr r2, =0x00000cb4 adds r0, r1, r2 ldrh r0, [r0] cmp r0, r3 beq _081BA0AA ldr r0, =gSaveBlock2Ptr ldr r1, [r0] adds r0, r1, r4 ldrh r2, [r0] adds r4, 0x2 adds r1, r4 _081BA09C: adds r1, 0x2 adds r5, 0x1 cmp r5, r2 bge _081BA0AA ldrh r0, [r1] cmp r0, r3 bne _081BA09C _081BA0AA: ldr r0, [r7] ldr r1, =0x00000cb2 adds r0, r1 ldrh r0, [r0] cmp r5, r0 bne _081BA066 ldr r2, =gTrainerBattleOpponent_A strh r3, [r2] ldrh r3, [r2] ldr r4, =gUnknown_0203BC88 ldr r1, [r4] movs r0, 0x34 muls r0, r3 adds r0, r1 ldr r0, [r0, 0x30] adds r1, r6, r0 ldrh r0, [r1] cmp r0, r8 beq _081BA0DE ldr r3, =0x0000ffff _081BA0D2: adds r1, 0x2 movs r6, 0x1 add r10, r6 ldrh r0, [r1] cmp r0, r3 bne _081BA0D2 _081BA0DE: mov r0, r10 cmp r0, 0x8 bgt _081BA110 movs r1, 0 mov r10, r1 b _081BA062 .pool _081BA110: ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r6, =0x00000cb2 adds r3, r1, r6 ldrh r0, [r3] cmp r0, 0x1 bhi _081BA12A lsls r0, 1 ldr r3, =0x00000cb4 adds r1, r3 adds r1, r0 ldrh r0, [r2] strh r0, [r1] _081BA12A: ldrh r1, [r2] ldr r2, [r4] movs r0, 0x34 muls r0, r1 adds r0, r2 ldr r0, [r0, 0x30] mov r9, r0 movs r5, 0 ldr r7, =gUnknown_03001298 mov r8, sp _081BA13E: bl Random lsls r0, 16 lsrs r0, 16 mov r1, r10 bl __modsi3 lsls r0, 1 add r0, r9 ldrh r0, [r0] strh r0, [r7] movs r2, 0 ldrh r0, [r7] ldr r4, =gUnknown_0203BC8C ldr r3, [r4] lsls r0, 4 adds r0, r3 ldr r1, =gSaveBlock2Ptr ldrh r6, [r0] ldr r1, [r1] _081BA166: movs r4, 0xE7 lsls r4, 4 adds r0, r1, r4 ldrh r0, [r0] lsls r0, 4 adds r0, r3 ldrh r0, [r0] cmp r6, r0 beq _081BA180 adds r1, 0xC adds r2, 0x1 cmp r2, 0x5 ble _081BA166 _081BA180: cmp r2, 0x6 bne _081BA220 movs r4, 0 cmp r4, r5 bge _081BA1B0 mov r0, sp ldrh r0, [r0] cmp r0, r6 beq _081BA1B0 ldr r6, =gUnknown_03001298 ldr r3, =gUnknown_0203BC8C mov r2, sp _081BA198: adds r2, 0x2 adds r4, 0x1 cmp r4, r5 bge _081BA1B0 ldrh r0, [r6] ldr r1, [r3] lsls r0, 4 adds r0, r1 ldrh r1, [r2] ldrh r0, [r0] cmp r1, r0 bne _081BA198 _081BA1B0: cmp r4, r5 bne _081BA220 movs r4, 0 cmp r4, r5 bge _081BA1E6 ldr r6, =gBattleFrontierHeldItems mov r12, r6 add r3, sp, 0x8 _081BA1C0: ldrh r2, [r3] cmp r2, 0 beq _081BA1DE ldr r1, =gUnknown_03001298 ldrh r0, [r1] ldr r6, =gUnknown_0203BC8C ldr r1, [r6] lsls r0, 4 adds r0, r1 ldrb r0, [r0, 0xA] lsls r0, 1 add r0, r12 ldrh r0, [r0] cmp r2, r0 beq _081BA1E6 _081BA1DE: adds r3, 0x2 adds r4, 0x1 cmp r4, r5 blt _081BA1C0 _081BA1E6: cmp r4, r5 bne _081BA220 lsls r2, r5, 1 ldrh r0, [r7] ldr r1, =gUnknown_0203BC8C ldr r4, [r1] lsls r0, 4 adds r0, r4 ldrh r0, [r0] mov r3, r8 strh r0, [r3] add r1, sp, 0x8 adds r1, r2 ldr r3, =gBattleFrontierHeldItems ldrh r0, [r7] lsls r0, 4 adds r0, r4 ldrb r0, [r0, 0xA] lsls r0, 1 adds r0, r3 ldrh r0, [r0] strh r0, [r1] ldr r0, =gUnknown_03006298 adds r2, r0 ldrh r0, [r7] strh r0, [r2] movs r4, 0x2 add r8, r4 adds r5, 0x1 _081BA220: cmp r5, 0x3 bne _081BA13E add sp, 0x10 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_81BA040 thumb_func_start Font6Func @ int Font6Func(struct TextPrinter *x) Font6Func: @ 81BA250 push {r4-r6,lr} adds r6, r0, 0 adds r4, r6, 0 adds r4, 0x14 ldrb r0, [r6, 0x1C] cmp r0, 0x6 bls _081BA260 b _081BA660 _081BA260: lsls r0, 2 ldr r1, =_081BA270 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081BA270: .4byte _081BA28C .4byte _081BA554 .4byte _081BA566 .4byte _081BA590 .4byte _081BA5C8 .4byte _081BA63C .4byte _081BA64E _081BA28C: ldr r2, =gMain ldrh r1, [r2, 0x2C] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _081BA2A6 ldrb r1, [r4] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081BA2A6 movs r0, 0 strb r0, [r6, 0x1E] _081BA2A6: ldrb r1, [r6, 0x1E] cmp r1, 0 beq _081BA2E8 ldrb r0, [r6, 0x1D] cmp r0, 0 beq _081BA2E8 subs r0, r1, 0x1 strb r0, [r6, 0x1E] ldr r0, =gTextFlags ldrb r1, [r0] movs r0, 0x1 ands r0, r1 cmp r0, 0 bne _081BA2C4 b _081BA50E _081BA2C4: ldrh r1, [r2, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 bne _081BA2D0 b _081BA50E _081BA2D0: ldrb r0, [r4] movs r1, 0x10 orrs r0, r1 strb r0, [r4] movs r0, 0 strb r0, [r6, 0x1E] b _081BA50E .pool _081BA2E8: ldr r2, =gTextFlags ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081BA2FC movs r0, 0x3 b _081BA2FE .pool _081BA2FC: ldrb r0, [r6, 0x1D] _081BA2FE: strb r0, [r6, 0x1E] ldr r0, [r6] ldrb r3, [r0] adds r0, 0x1 str r0, [r6] adds r0, r3, 0 subs r0, 0xF8 cmp r0, 0x7 bls _081BA312 b _081BA52E _081BA312: lsls r0, 2 ldr r1, =_081BA320 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081BA320: .4byte _081BA524 .4byte _081BA512 .4byte _081BA504 .4byte _081BA500 .4byte _081BA36E .4byte _081BA368 .4byte _081BA340 .4byte _081BA660 _081BA340: ldrb r0, [r6, 0x6] strb r0, [r6, 0x8] ldrb r1, [r6, 0x5] ldr r0, =gFonts ldr r2, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r6, 0xB] ldrb r0, [r0, 0x5] adds r1, r0 ldrb r0, [r6, 0x9] adds r0, r1 strb r0, [r6, 0x9] _081BA35E: movs r0, 0x2 b _081BA662 .pool _081BA368: ldr r0, [r6] adds r0, 0x1 b _081BA4C4 _081BA36E: ldr r0, [r6] ldrb r3, [r0] adds r0, 0x1 str r0, [r6] subs r0, r3, 0x1 cmp r0, 0xF bls _081BA37E b _081BA52E _081BA37E: lsls r0, 2 ldr r1, =_081BA38C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _081BA38C: .4byte _081BA3CC .4byte _081BA3EE .4byte _081BA412 .4byte _081BA42C .4byte _081BA478 .4byte _081BA47E .4byte _081BA35E .4byte _081BA498 .4byte _081BA4A8 .4byte _081BA4BC .4byte _081BA4C0 .4byte _081BA4C8 .4byte _081BA4D2 .4byte _081BA4DE .4byte _081BA4EE .4byte _081BA4C0 _081BA3CC: ldr r2, [r6] ldrb r1, [r2] lsls r1, 4 ldrb r3, [r6, 0xC] movs r0, 0xF ands r0, r3 orrs r0, r1 strb r0, [r6, 0xC] adds r2, 0x1 str r2, [r6] lsls r0, 24 lsrs r0, 28 ldrb r2, [r6, 0xD] lsls r1, r2, 28 lsrs r1, 28 lsrs r2, 4 b _081BA472 _081BA3EE: ldr r1, [r6] ldrb r2, [r1] movs r0, 0xF ands r0, r2 ldrb r3, [r6, 0xD] movs r2, 0x10 negs r2, r2 ands r2, r3 orrs r2, r0 strb r2, [r6, 0xD] adds r1, 0x1 str r1, [r6] ldrb r0, [r6, 0xC] lsrs r0, 4 lsls r1, r2, 28 lsrs r1, 28 lsrs r2, 4 b _081BA472 _081BA412: ldr r1, [r6] ldrb r0, [r1] lsls r0, 4 ldrb r3, [r6, 0xD] movs r2, 0xF ands r2, r3 orrs r2, r0 strb r2, [r6, 0xD] adds r1, 0x1 str r1, [r6] ldrb r0, [r6, 0xC] lsrs r0, 4 b _081BA46A _081BA42C: ldr r3, [r6] ldrb r1, [r3] lsls r1, 4 ldrb r4, [r6, 0xC] movs r2, 0xF adds r0, r2, 0 ands r0, r4 orrs r0, r1 strb r0, [r6, 0xC] adds r5, r3, 0x1 str r5, [r6] ldrb r3, [r3, 0x1] adds r1, r2, 0 ands r1, r3 ldrb r4, [r6, 0xD] movs r3, 0x10 negs r3, r3 ands r3, r4 orrs r3, r1 strb r3, [r6, 0xD] adds r4, r5, 0x1 str r4, [r6] ldrb r1, [r5, 0x1] lsls r1, 4 ands r2, r3 orrs r2, r1 strb r2, [r6, 0xD] adds r4, 0x1 str r4, [r6] lsls r0, 24 lsrs r0, 28 _081BA46A: lsls r1, r2, 28 lsrs r1, 28 lsls r2, 24 lsrs r2, 28 _081BA472: bl GenerateFontHalfRowLookupTable b _081BA35E _081BA478: ldr r0, [r6] adds r0, 0x1 b _081BA4C4 _081BA47E: ldr r0, [r6] ldrb r0, [r0] movs r1, 0xF ands r1, r0 ldrb r2, [r4] movs r0, 0x10 negs r0, r0 ands r0, r2 orrs r0, r1 strb r0, [r4] ldr r0, [r6] adds r0, 0x1 b _081BA4C4 _081BA498: ldr r0, [r6] ldrb r1, [r0] strb r1, [r6, 0x1E] adds r0, 0x1 str r0, [r6] movs r0, 0x6 strb r0, [r6, 0x1C] b _081BA35E _081BA4A8: movs r0, 0x1 strb r0, [r6, 0x1C] ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081BA50E movs r0, 0 strb r0, [r4, 0x2] b _081BA50E _081BA4BC: movs r0, 0x5 b _081BA64A _081BA4C0: ldr r0, [r6] adds r0, 0x2 _081BA4C4: str r0, [r6] b _081BA35E _081BA4C8: ldr r1, [r6] adds r0, r1, 0x1 str r0, [r6] ldrb r3, [r1, 0x1] b _081BA52E _081BA4D2: ldr r1, [r6] ldrb r0, [r1] ldrb r2, [r6, 0x6] adds r0, r2 strb r0, [r6, 0x8] b _081BA4E8 _081BA4DE: ldr r1, [r6] ldrb r0, [r1] ldrb r2, [r6, 0x7] adds r0, r2 strb r0, [r6, 0x9] _081BA4E8: adds r1, 0x1 str r1, [r6] b _081BA35E _081BA4EE: ldrb r0, [r6, 0x4] ldrb r2, [r6, 0xD] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl FillWindowPixelBuffer b _081BA35E _081BA500: movs r0, 0x2 b _081BA506 _081BA504: movs r0, 0x3 _081BA506: strb r0, [r6, 0x1C] adds r0, r6, 0 bl TextPrinterInitDownArrowCounters _081BA50E: movs r0, 0x3 b _081BA662 _081BA512: ldr r0, [r6] ldrb r3, [r0] movs r2, 0x80 lsls r2, 1 adds r1, r2, 0 orrs r3, r1 adds r0, 0x1 str r0, [r6] b _081BA52E _081BA524: ldr r0, [r6] adds r0, 0x1 str r0, [r6] movs r0, 0 b _081BA662 _081BA52E: adds r0, r3, 0 bl DecompressGlyphFont6 adds r0, r6, 0 bl CopyGlyphToWindow ldr r0, =gUnknown_03002F90 adds r0, 0x80 ldrb r1, [r6, 0xA] ldrb r0, [r0] adds r1, r0 ldrb r0, [r6, 0x8] adds r0, r1 strb r0, [r6, 0x8] movs r0, 0 b _081BA662 .pool _081BA554: adds r0, r6, 0 bl TextPrinterWait lsls r0, 16 cmp r0, 0 beq _081BA50E movs r0, 0 strb r0, [r6, 0x1C] b _081BA50E _081BA566: adds r0, r6, 0 bl TextPrinterWaitWithDownArrow lsls r0, 16 cmp r0, 0 beq _081BA50E ldrb r0, [r6, 0x4] ldrb r2, [r6, 0xD] lsls r2, 28 lsrs r1, r2, 4 orrs r1, r2 lsrs r1, 24 bl FillWindowPixelBuffer ldrb r0, [r6, 0x6] movs r1, 0 strb r0, [r6, 0x8] ldrb r0, [r6, 0x7] strb r0, [r6, 0x9] strb r1, [r6, 0x1C] b _081BA50E _081BA590: adds r0, r6, 0 bl TextPrinterWaitWithDownArrow lsls r0, 16 cmp r0, 0 beq _081BA50E adds r0, r6, 0 bl TextPrinterClearDownArrow ldrb r1, [r6, 0x5] ldr r0, =gFonts ldr r2, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r1, [r6, 0xB] ldrb r0, [r0, 0x5] adds r1, r0 strb r1, [r6, 0x1F] ldrb r0, [r6, 0x6] strb r0, [r6, 0x8] movs r0, 0x4 strb r0, [r6, 0x1C] b _081BA50E .pool _081BA5C8: ldrb r2, [r6, 0x1F] cmp r2, 0 beq _081BA638 ldr r4, =gUnknown_08616124 ldr r5, =gSaveBlock2Ptr ldr r0, [r5] ldrb r0, [r0, 0x14] lsls r1, r0, 29 lsrs r0, r1, 29 adds r0, r4 ldrb r0, [r0] cmp r2, r0 bcs _081BA604 ldrb r0, [r6, 0x4] ldrb r1, [r6, 0xD] lsls r1, 28 lsrs r3, r1, 4 orrs r3, r1 lsrs r3, 24 movs r1, 0 bl ScrollWindow movs r0, 0 strb r0, [r6, 0x1F] b _081BA62E .pool _081BA604: ldrb r0, [r6, 0x4] lsrs r1, 29 adds r1, r4 ldrb r2, [r1] ldrb r1, [r6, 0xD] lsls r1, 28 lsrs r3, r1, 4 orrs r3, r1 lsrs r3, 24 movs r1, 0 bl ScrollWindow ldr r0, [r5] ldrb r0, [r0, 0x14] lsls r0, 29 lsrs r0, 29 adds r0, r4 ldrb r1, [r6, 0x1F] ldrb r0, [r0] subs r1, r0 strb r1, [r6, 0x1F] _081BA62E: ldrb r0, [r6, 0x4] movs r1, 0x2 bl CopyWindowToVram b _081BA50E _081BA638: strb r2, [r6, 0x1C] b _081BA50E _081BA63C: bl IsSEPlaying lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _081BA64A b _081BA50E _081BA64A: strb r0, [r6, 0x1C] b _081BA50E _081BA64E: ldrb r0, [r6, 0x1E] adds r1, r0, 0 cmp r1, 0 beq _081BA65C subs r0, 0x1 strb r0, [r6, 0x1E] b _081BA50E _081BA65C: strb r1, [r6, 0x1C] b _081BA50E _081BA660: movs r0, 0x1 _081BA662: pop {r4-r6} pop {r1} bx r1 thumb_func_end Font6Func thumb_func_start DecompressGlyphFont6 DecompressGlyphFont6: @ 81BA668 push {r4,r5,lr} lsls r0, 16 lsrs r2, r0, 19 lsls r2, 9 movs r1, 0xE0 lsls r1, 11 ands r1, r0 lsrs r1, 11 ldr r0, =gFont6BrailleGlyphs adds r1, r0 adds r5, r2, r1 ldr r4, =gUnknown_03002F90 adds r0, r5, 0 adds r1, r4, 0 bl DecompressGlyphTile adds r0, r5, 0 adds r0, 0x10 adds r1, r4, 0 adds r1, 0x20 bl DecompressGlyphTile movs r1, 0x80 lsls r1, 1 adds r0, r5, r1 adds r1, r4, 0 adds r1, 0x40 bl DecompressGlyphTile movs r1, 0x88 lsls r1, 1 adds r0, r5, r1 adds r1, r4, 0 adds r1, 0x60 bl DecompressGlyphTile adds r0, r4, 0 adds r0, 0x80 movs r1, 0x10 strb r1, [r0] adds r0, 0x1 strb r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end DecompressGlyphFont6 thumb_func_start GetGlyphWidthFont6 GetGlyphWidthFont6: @ 81BA6CC movs r0, 0x10 bx lr thumb_func_end GetGlyphWidthFont6 .align 2, 0 @ Don't pad with nop.