#include "asm/constants/gba_constants.inc" #include "asm/macros.inc" .syntax unified .text thumb_func_start sub_809A8B8 sub_809A8B8: push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x8 lsls r0, 16 asrs r0, 16 mov r9, r0 mov r0, sp strh r1, [r0] ldr r1, _0809A928 mov r2, r9 lsls r0, r2, 3 add r0, r9 lsls r0, 2 ldr r2, _0809A92C adds r0, r2 ldr r1, [r1] adds r7, r1, r0 movs r0, 0x1 mov r10, r0 movs r1, 0 str r1, [sp, 0x4] ldr r0, [r7, 0x20] cmp r0, 0 beq _0809A8F6 bl CloseFile ldr r2, [sp, 0x4] str r2, [r7, 0x20] _0809A8F6: mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl sub_80A7DDC mov r0, sp ldrh r0, [r0] subs r0, 0xA lsls r0, 16 lsrs r0, 16 cmp r0, 0x13 bhi _0809A9D6 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A8D54 adds r5, r0, 0 cmp r5, 0 bne _0809A930 movs r2, 0 mov r10, r2 b _0809A9D6 .align 2, 0 _0809A928: .4byte gUnknown_3001B64 _0809A92C: .4byte 0x0000043c _0809A930: bl sub_808D3BC cmp r5, r0 bne _0809A940 mov r1, sp movs r0, 0x21 strh r0, [r1] b _0809A9D6 _0809A940: bl sub_808D3F8 cmp r5, r0 bne _0809A950 mov r1, sp movs r0, 0x22 strh r0, [r1] b _0809A9D6 _0809A950: ldrb r0, [r5, 0x4] subs r0, 0x43 lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _0809A990 movs r0, 0 ldrsh r1, [r4, r0] ldr r0, _0809A978 cmp r1, r0 beq _0809A9D6 cmp r1, r0 ble _0809A97C adds r0, 0x16 cmp r1, r0 bgt _0809A98A subs r0, 0x1 cmp r1, r0 blt _0809A98A b _0809A9D6 .align 2, 0 _0809A978: .4byte 0x00000183 _0809A97C: movs r0, 0x82 lsls r0, 1 cmp r1, r0 beq _0809A9D6 adds r0, 0x2F cmp r1, r0 beq _0809A9D6 _0809A98A: movs r1, 0 mov r10, r1 b _0809A9D6 _0809A990: movs r2, 0 ldrsh r1, [r4, r2] movs r0, 0x87 lsls r0, 1 cmp r1, r0 bgt _0809A9B0 subs r0, 0x2 cmp r1, r0 bge _0809A9D6 cmp r1, 0x90 blt _0809A9D2 cmp r1, 0x92 ble _0809A9D6 cmp r1, 0x96 beq _0809A9D6 b _0809A9D2 _0809A9B0: movs r0, 0xCF lsls r0, 1 cmp r1, r0 bgt _0809A9CC subs r0, 0x4 cmp r1, r0 bge _0809A9D6 subs r0, 0x87 cmp r1, r0 bgt _0809A9D2 subs r0, 0x1 cmp r1, r0 blt _0809A9D2 b _0809A9D6 _0809A9CC: ldr r0, _0809A9F0 cmp r1, r0 beq _0809A9D6 _0809A9D2: movs r0, 0 mov r10, r0 _0809A9D6: mov r0, sp ldrh r0, [r0] subs r0, 0x1 lsls r0, 16 asrs r0, 16 cmp r0, 0x21 bhi _0809AA98 lsls r0, 2 ldr r1, _0809A9F4 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809A9F0: .4byte 0x000001a7 _0809A9F4: .4byte _0809A9F8 .align 2, 0 _0809A9F8: .4byte _0809AA80 .4byte _0809AA80 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA80 .4byte _0809AA80 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA98 .4byte _0809AA80 .4byte _0809AA80 _0809AA80: movs r1, 0 ldrsh r0, [r4, r1] bl sub_80A8CF0 lsls r0, 24 cmp r0, 0 beq _0809AA94 movs r2, 0x1 str r2, [sp, 0x4] b _0809AA98 _0809AA94: movs r0, 0 mov r10, r0 _0809AA98: mov r0, sp movs r2, 0 ldrsh r1, [r0, r2] movs r0, 0x1 negs r0, r0 cmp r1, r0 beq _0809AB34 mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] bl sub_80A7AE8 lsls r0, 16 asrs r1, r0, 16 cmp r1, 0 blt _0809AACE mov r0, sp ldrh r0, [r0] movs r2, 0 mov r8, r2 movs r6, 0 strh r0, [r7] adds r0, r1, 0 bl sub_80A8BFC strh r0, [r7, 0x2] b _0809AAE6 _0809AACE: ldrh r1, [r4] movs r2, 0 ldrsh r0, [r4, r2] cmp r0, 0 beq _0809AB34 mov r0, sp ldrh r0, [r0] movs r2, 0 mov r8, r2 movs r6, 0 strh r0, [r7] strh r1, [r7, 0x2] _0809AAE6: mov r0, r9 lsls r4, r0, 2 add r4, r9 lsls r4, 4 ldr r0, _0809AB28 adds r0, r4, r0 ldr r5, _0809AB2C adds r1, r5, 0 bl strcpy ldr r0, _0809AB30 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl strcpy mov r1, r10 strb r1, [r7, 0x4] mov r2, sp ldrb r2, [r2, 0x4] strb r2, [r7, 0x5] movs r0, 0xFF strb r0, [r7, 0x6] mov r0, r8 strb r0, [r7, 0x7] str r6, [r7, 0x8] str r6, [r7, 0xC] str r6, [r7, 0x10] str r6, [r7, 0x14] strb r0, [r7, 0x1C] movs r0, 0x1 b _0809AB3C .align 2, 0 _0809AB28: .4byte gFormatBuffer_Monsters _0809AB2C: .4byte gUndefineText _0809AB30: .4byte gFormatBuffer_Names _0809AB34: mov r0, r9 bl sub_809A83C movs r0, 0 _0809AB3C: 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_809A8B8 thumb_func_start sub_809AB4C sub_809AB4C: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0809AB78 lsls r0, r5, 3 adds r0, r5 lsls r0, 2 ldr r3, _0809AB7C adds r0, r3 ldr r2, [r2] adds r6, r2, r0 adds r0, r5, 0 bl sub_809A8B8 lsls r0, 24 cmp r0, 0 bne _0809AB80 movs r0, 0 b _0809ABA0 .align 2, 0 _0809AB78: .4byte gUnknown_3001B64 _0809AB7C: .4byte 0x0000043c _0809AB80: lsls r4, r5, 2 adds r4, r5 lsls r4, 4 ldr r0, _0809ABA8 adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] bl CopyCyanMonsterNametoBuffer ldr r0, _0809ABAC adds r4, r0 ldr r1, _0809ABB0 adds r0, r4, 0 bl strcpy movs r0, 0x1 _0809ABA0: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809ABA8: .4byte gFormatBuffer_Monsters _0809ABAC: .4byte gFormatBuffer_Names _0809ABB0: .4byte gSpeechBubbleChar thumb_func_end sub_809AB4C thumb_func_start sub_809ABB4 sub_809ABB4: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0809ABE0 lsls r0, r5, 3 adds r0, r5 lsls r0, 2 ldr r3, _0809ABE4 adds r0, r3 ldr r2, [r2] adds r6, r2, r0 adds r0, r5, 0 bl sub_809A8B8 lsls r0, 24 cmp r0, 0 bne _0809ABE8 movs r0, 0 b _0809AC0A .align 2, 0 _0809ABE0: .4byte gUnknown_3001B64 _0809ABE4: .4byte 0x0000043c _0809ABE8: lsls r4, r5, 2 adds r4, r5 lsls r4, 4 ldr r5, _0809AC10 adds r5, r4, r5 movs r0, 0x2 ldrsh r1, [r6, r0] adds r0, r5, 0 bl CopyCyanMonsterNametoBuffer ldr r0, _0809AC14 adds r4, r0 adds r0, r4, 0 adds r1, r5, 0 bl strcpy movs r0, 0x1 _0809AC0A: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809AC10: .4byte gFormatBuffer_Monsters _0809AC14: .4byte gFormatBuffer_Names thumb_func_end sub_809ABB4 thumb_func_start sub_809AC18 sub_809AC18: push {r4-r6,lr} lsls r0, 16 asrs r5, r0, 16 lsls r1, 16 asrs r1, 16 ldr r2, _0809AC44 lsls r0, r5, 3 adds r0, r5 lsls r0, 2 ldr r3, _0809AC48 adds r0, r3 ldr r2, [r2] adds r6, r2, r0 adds r0, r5, 0 bl sub_809A8B8 lsls r0, 24 cmp r0, 0 bne _0809AC4C movs r0, 0 b _0809AC6E .align 2, 0 _0809AC44: .4byte gUnknown_3001B64 _0809AC48: .4byte 0x0000043c _0809AC4C: lsls r4, r5, 2 adds r4, r5 lsls r4, 4 ldr r0, _0809AC74 adds r0, r4, r0 movs r2, 0x2 ldrsh r1, [r6, r2] bl CopyCyanMonsterNametoBuffer ldr r0, _0809AC78 adds r4, r0 movs r3, 0 ldrsh r1, [r6, r3] adds r0, r4, 0 bl sub_80A8EC0 movs r0, 0x1 _0809AC6E: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0809AC74: .4byte gFormatBuffer_Monsters _0809AC78: .4byte gFormatBuffer_Names thumb_func_end sub_809AC18 thumb_func_start sub_809AC7C sub_809AC7C: push {r4-r6,lr} lsls r0, 16 asrs r0, 16 lsls r1, 24 asrs r5, r1, 24 lsls r2, 24 lsrs r6, r2, 24 ldr r2, _0809AD10 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0809AD14 adds r1, r0 ldr r0, [r2] adds r4, r0, r1 ldr r0, [r4, 0x20] cmp r0, 0 beq _0809ACA8 bl CloseFile movs r0, 0 str r0, [r4, 0x20] _0809ACA8: movs r0, 0x2 ldrsh r1, [r4, r0] cmp r1, 0 bge _0809ACB2 b _0809ADC0 _0809ACB2: movs r0, 0x1 negs r0, r0 cmp r5, r0 bne _0809ACBC b _0809ADC0 _0809ACBC: cmp r1, 0 bne _0809ACC2 b _0809ADC0 _0809ACC2: cmp r6, 0x15 beq _0809ACCE movs r0, 0 strb r6, [r4, 0x7] str r0, [r4, 0x8] str r0, [r4, 0xC] _0809ACCE: ldr r2, _0809AD18 ldrb r0, [r4, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r4, 0x8] ldrh r0, [r0] adds r0, r1 movs r6, 0 movs r3, 0 strh r0, [r4, 0x18] ldrb r0, [r4, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r4, 0xC] ldrh r0, [r0, 0x2] adds r0, r1 strh r0, [r4, 0x1A] ldrb r0, [r4, 0x7] lsls r0, 3 adds r0, r2 ldrb r0, [r0, 0x4] strb r0, [r4, 0x1D] strb r6, [r4, 0x1E] movs r0, 0x2 negs r0, r0 cmp r5, r0 bne _0809AD1C strb r5, [r4, 0x6] str r3, [r4, 0x10] str r3, [r4, 0x14] strb r6, [r4, 0x1C] movs r0, 0 b _0809ADD2 .align 2, 0 _0809AD10: .4byte gUnknown_3001B64 _0809AD14: .4byte 0x0000043c _0809AD18: .4byte gUnknown_8116040 _0809AD1C: ldrb r0, [r4, 0x4] cmp r0, 0 beq _0809ADC0 movs r1, 0x2 ldrsh r0, [r4, r1] bl OpenPokemonDialogueSpriteFile str r0, [r4, 0x20] cmp r0, 0 beq _0809ADB6 strb r5, [r4, 0x6] str r0, [r4, 0x10] movs r1, 0 bl GetFileDataPtr movs r1, 0 ldrsh r0, [r4, r1] cmp r0, 0x4D beq _0809AD62 cmp r0, 0x4D bgt _0809AD4C cmp r0, 0x47 beq _0809AD56 b _0809ADA8 _0809AD4C: cmp r0, 0x53 beq _0809AD76 cmp r0, 0x73 beq _0809AD8A b _0809ADA8 _0809AD56: movs r0, 0xF ands r0, r5 cmp r0, 0x5 bgt _0809ADA8 adds r0, r5, 0x6 b _0809AD9C _0809AD62: ldrb r0, [r4, 0x1D] cmp r0, 0 beq _0809ADA8 movs r0, 0xF ands r0, r5 cmp r0, 0x3 bgt _0809ADA8 strb r6, [r4, 0x1D] adds r0, r5, 0x4 b _0809AD9C _0809AD76: ldrb r0, [r4, 0x1D] cmp r0, 0 beq _0809ADA8 movs r0, 0xF ands r0, r5 cmp r0, 0 bgt _0809ADA8 strb r6, [r4, 0x1D] adds r0, r5, 0x1 b _0809AD9C _0809AD8A: ldrb r0, [r4, 0x1D] cmp r0, 0 beq _0809ADA8 movs r0, 0xF ands r0, r5 cmp r0, 0x1 bgt _0809ADA8 strb r6, [r4, 0x1D] adds r0, r5, 0x2 _0809AD9C: lsls r0, 24 asrs r5, r0, 24 movs r0, 0x40 orrs r5, r0 lsls r0, r5, 24 asrs r5, r0, 24 _0809ADA8: ldr r0, [r4, 0x20] ldr r0, [r0, 0x4] str r0, [r4, 0x14] movs r0, 0xF ands r5, r0 strb r5, [r4, 0x1C] b _0809ADBC _0809ADB6: str r0, [r4, 0x10] str r0, [r4, 0x14] strb r6, [r4, 0x1C] _0809ADBC: movs r0, 0x1 b _0809ADD2 _0809ADC0: movs r0, 0xFF strb r0, [r4, 0x6] movs r0, 0 strb r0, [r4, 0x7] str r0, [r4, 0x8] str r0, [r4, 0xC] str r0, [r4, 0x10] str r0, [r4, 0x14] strb r0, [r4, 0x1C] _0809ADD2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809AC7C thumb_func_start sub_809ADD8 sub_809ADD8: push {r4,lr} adds r4, r1, 0 lsls r0, 16 asrs r0, 16 ldr r2, _0809AE28 lsls r1, r0, 3 adds r1, r0 lsls r1, 2 ldr r0, _0809AE2C adds r1, r0 ldr r0, [r2] adds r3, r0, r1 movs r1, 0x2 ldrsh r0, [r3, r1] cmp r0, 0 blt _0809AE34 cmp r0, 0 beq _0809AE34 ldr r0, [r4] ldr r1, [r4, 0x4] str r0, [r3, 0x8] str r1, [r3, 0xC] ldr r2, _0809AE30 ldrb r0, [r3, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r3, 0x8] ldrh r0, [r0] adds r0, r1 strh r0, [r3, 0x18] ldrb r0, [r3, 0x7] lsls r0, 3 adds r0, r2 ldr r1, [r3, 0xC] ldrh r0, [r0, 0x2] adds r0, r1 strh r0, [r3, 0x1A] movs r0, 0x1 b _0809AE36 .align 2, 0 _0809AE28: .4byte gUnknown_3001B64 _0809AE2C: .4byte 0x0000043c _0809AE30: .4byte gUnknown_8116040 _0809AE34: movs r0, 0 _0809AE36: pop {r4} pop {r1} bx r1 thumb_func_end sub_809ADD8 thumb_func_start sub_809AE3C sub_809AE3C: push {r4,lr} lsls r0, 16 asrs r2, r0, 16 cmp r2, 0 blt _0809AE88 ldr r1, _0809AE80 lsls r0, r2, 3 adds r0, r2 lsls r0, 2 ldr r3, _0809AE84 adds r0, r3 ldr r1, [r1] adds r4, r1, r0 movs r1, 0x2 ldrsh r0, [r4, r1] cmp r0, 0 beq _0809AE74 movs r1, 0x6 ldrsb r1, [r4, r1] movs r0, 0x1 negs r0, r0 cmp r1, r0 bne _0809AE74 adds r0, r2, 0 movs r1, 0 movs r2, 0 bl sub_809AC7C _0809AE74: ldr r0, [r4, 0x10] cmp r0, 0 beq _0809AE88 adds r0, r4, 0 adds r0, 0x10 b _0809AE8A .align 2, 0 _0809AE80: .4byte gUnknown_3001B64 _0809AE84: .4byte 0x0000043c _0809AE88: movs r0, 0 _0809AE8A: pop {r4} pop {r1} bx r1 thumb_func_end sub_809AE3C thumb_func_start ScriptPrintText ScriptPrintText: push {r4-r6,lr} adds r5, r0, 0 adds r4, r2, 0 lsls r1, 16 asrs r6, r1, 16 cmp r4, 0 bne _0809AEA4 bl ScriptPrintNullTextbox b _0809AEE0 _0809AEA4: ldrb r0, [r4] cmp r0, 0 beq _0809AEDC ldr r1, _0809AED0 lsls r0, r5, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl xxx_script_textboxes_809A680 ldr r0, _0809AED4 ldr r0, [r0] adds r0, 0xC ldr r2, _0809AED8 lsls r1, r5, 1 adds r1, r2 ldrh r1, [r1] adds r2, r6, 0 adds r3, r4, 0 bl ScriptPrintText_809B2B8 b _0809AEE0 .align 2, 0 _0809AED0: .4byte gUnknown_8116134 _0809AED4: .4byte gUnknown_3001B64 _0809AED8: .4byte gUnknown_8116148 _0809AEDC: bl ScriptPrintEmptyTextbox _0809AEE0: lsls r0, 24 lsrs r0, 24 pop {r4-r6} pop {r1} bx r1 thumb_func_end ScriptPrintText thumb_func_start sub_809AEEC sub_809AEEC: push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _0809AF1C ldrb r0, [r4] cmp r0, 0 beq _0809AF1C movs r0, 0x2 movs r1, 0x1 bl xxx_script_textboxes_809A680 ldr r0, _0809AF18 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0xC2 adds r3, r4, 0 bl ScriptPrintText_809B2B8 b _0809AF20 .align 2, 0 _0809AF18: .4byte gUnknown_3001B64 _0809AF1C: bl ScriptPrintNullTextbox _0809AF20: lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AEEC thumb_func_start sub_809AF2C sub_809AF2C: push {r4,lr} adds r4, r0, 0 cmp r4, 0 beq _0809AF5C ldrb r0, [r4] cmp r0, 0 beq _0809AF5C movs r0, 0x2 movs r1, 0x1 bl xxx_script_textboxes_809A680 ldr r0, _0809AF58 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0xC2 adds r3, r4, 0 bl ScriptPrintText_809B2B8 b _0809AF60 .align 2, 0 _0809AF58: .4byte gUnknown_3001B64 _0809AF5C: bl ScriptPrintNullTextbox _0809AF60: lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AF2C thumb_func_start sub_809AF6C sub_809AF6C: push {r4,lr} adds r4, r1, 0 cmp r4, 0 beq _0809AF9C ldrb r0, [r4] cmp r0, 0 beq _0809AF9C movs r0, 0x3 movs r1, 0x1 bl xxx_script_textboxes_809A680 ldr r0, _0809AF98 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0x65 adds r3, r4, 0 bl ScriptPrintText_809B2B8 b _0809AFA0 .align 2, 0 _0809AF98: .4byte gUnknown_3001B64 _0809AF9C: bl ScriptPrintNullTextbox _0809AFA0: lsls r0, 24 lsrs r0, 24 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AF6C thumb_func_start sub_809AFAC sub_809AFAC: push {lr} movs r1, 0 ldr r0, _0809AFC4 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x4 bne _0809AFBC movs r1, 0x1 _0809AFBC: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809AFC4: .4byte gUnknown_3001B64 thumb_func_end sub_809AFAC thumb_func_start sub_809AFC8 sub_809AFC8: push {r4,r5,lr} sub sp, 0x8 adds r5, r1, 0 adds r1, r2, 0 lsls r0, 24 lsrs r0, 24 lsls r1, 16 asrs r1, 16 ldr r4, _0809AFF8 negs r2, r0 orrs r2, r0 lsrs r2, 31 str r1, [sp] str r3, [sp, 0x4] adds r0, r4, 0 movs r1, 0 adds r3, r5, 0 bl sub_809B028 add sp, 0x8 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0809AFF8: .4byte gUnknown_81160E8 thumb_func_end sub_809AFC8 thumb_func_start sub_809AFFC sub_809AFFC: push {r4,lr} sub sp, 0x4 adds r4, r0, 0 mov r0, sp bl sub_809B18C lsls r0, 24 lsrs r2, r0, 24 cmp r4, 0 beq _0809B01C movs r1, 0 ldr r0, [sp] cmp r0, 0x1 bne _0809B01A movs r1, 0x1 _0809B01A: strb r1, [r4] _0809B01C: adds r0, r2, 0 add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_809AFFC thumb_func_start sub_809B028 sub_809B028: push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x14 mov r8, r0 adds r7, r2, 0 adds r6, r3, 0 ldr r0, [sp, 0x2C] lsls r1, 24 lsrs r5, r1, 24 lsls r0, 16 asrs r4, r0, 16 ldr r1, _0809B084 lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 bl xxx_script_textboxes_809A680 ldr r0, _0809B088 ldr r1, [r0] ldr r0, _0809B08C adds r2, r1, r0 movs r0, 0x1 str r0, [r2] movs r0, 0x83 lsls r0, 3 adds r2, r1, r0 movs r0, 0 str r0, [r2] ldr r2, _0809B090 adds r0, r1, r2 mov r2, r8 str r2, [r0] movs r2, 0x84 lsls r2, 3 adds r0, r1, r2 movs r2, 0x2 str r2, [r0] ldr r0, _0809B094 adds r1, r0 cmp r5, 0 beq _0809B098 str r2, [r1] b _0809B09A .align 2, 0 _0809B084: .4byte gUnknown_8116134 _0809B088: .4byte gUnknown_3001B64 _0809B08C: .4byte 0x00000414 _0809B090: .4byte 0x0000041c _0809B094: .4byte 0x00000424 _0809B098: str r5, [r1] _0809B09A: ldr r0, _0809B0D4 ldr r0, [r0] movs r1, 0x85 lsls r1, 3 adds r2, r0, r1 movs r1, 0 str r1, [r2] movs r2, 0x86 lsls r2, 3 adds r0, r2 str r7, [r0] ldr r0, _0809B0D8 lsls r2, r6, 1 adds r0, r2, r0 ldrh r1, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r1 adds r5, r2, 0 cmp r0, 0 beq _0809B0F6 cmp r4, 0 bge _0809B0E4 ldr r0, _0809B0DC ldr r1, _0809B0E0 bl strcpy b _0809B0F6 .align 2, 0 _0809B0D4: .4byte gUnknown_3001B64 _0809B0D8: .4byte gUnknown_8116148 _0809B0DC: .4byte gSpeakerNameBuffer _0809B0E0: .4byte gFormattedSpeechBubble _0809B0E4: ldr r0, _0809B134 ldr r1, _0809B138 lsls r2, r4, 2 adds r2, r4 lsls r2, 4 ldr r3, _0809B13C adds r2, r3 bl sprintfStatic _0809B0F6: adds r0, r4, 0 bl sub_809AE3C ldr r4, _0809B140 movs r1, 0 str r1, [sp] movs r3, 0x4 str r3, [sp, 0x4] str r1, [sp, 0x8] str r0, [sp, 0xC] ldr r0, _0809B144 adds r0, r5, r0 ldrh r2, [r0] movs r0, 0x80 lsls r0, 1 ands r0, r2 cmp r0, 0 beq _0809B11C movs r1, 0xC _0809B11C: movs r0, 0x80 lsls r0, 2 ands r0, r2 cmp r0, 0 beq _0809B128 orrs r1, r3 _0809B128: movs r0, 0x20 ands r0, r2 cmp r0, 0 beq _0809B148 movs r0, 0x21 b _0809B14A .align 2, 0 _0809B134: .4byte gSpeakerNameBuffer _0809B138: .4byte gUnknown_8116188 _0809B13C: .4byte gFormatBuffer_Names _0809B140: .4byte sub_809B428 _0809B144: .4byte gUnknown_8116148 _0809B148: movs r0, 0x1 _0809B14A: orrs r0, r1 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x10] ldr r0, [sp, 0x30] adds r1, r4, 0 adds r2, r7, 0 mov r3, r8 bl CreateMenuDialogueBoxAndPortrait ldr r0, _0809B184 ldr r0, [r0] ldr r1, _0809B188 adds r0, r1 ldr r0, [r0] movs r1, 0x2 ands r0, r1 cmp r0, 0 beq _0809B176 movs r0, 0x1 bl sub_809A6E4 _0809B176: add sp, 0x14 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0809B184: .4byte gUnknown_3001B64 _0809B188: .4byte 0x00000424 thumb_func_end sub_809B028 thumb_func_start sub_809B18C sub_809B18C: push {lr} adds r1, r0, 0 ldr r2, _0809B1BC cmp r1, 0 beq _0809B1A2 ldr r0, [r2] movs r3, 0x86 lsls r3, 3 adds r0, r3 ldr r0, [r0] str r0, [r1] _0809B1A2: movs r1, 0 ldr r0, [r2] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x3 bne _0809B1B4 movs r1, 0x1 _0809B1B4: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809B1BC: .4byte gUnknown_3001B64 thumb_func_end sub_809B18C thumb_func_start sub_809B1C0 sub_809B1C0: push {lr} adds r3, r2, 0 movs r2, 0 bl sub_809B1D4 lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 thumb_func_end sub_809B1C0 thumb_func_start sub_809B1D4 sub_809B1D4: push {r4-r7,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 adds r7, r3, 0 cmp r4, 0xB beq _0809B1E8 cmp r4, 0xC beq _0809B1F0 b _0809B202 _0809B1E8: adds r0, r5, 0 bl sub_8021700 b _0809B1F8 _0809B1F0: bl sub_8001D88 bl sub_802FCF0 _0809B1F8: lsls r0, 24 cmp r0, 0 beq _0809B202 movs r0, 0 b _0809B24C _0809B202: movs r0, 0x4 movs r1, 0 bl xxx_script_textboxes_809A680 ldr r0, _0809B254 ldr r1, [r0] ldr r2, _0809B258 adds r0, r1, r2 str r4, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r1, r3 movs r2, 0 str r2, [r0] adds r3, 0x4 adds r0, r1, r3 str r2, [r0] movs r0, 0x84 lsls r0, 3 adds r2, r1, r0 movs r0, 0x1 str r0, [r2] ldr r2, _0809B25C adds r0, r1, r2 str r5, [r0] adds r3, 0xC adds r0, r1, r3 str r6, [r0] adds r2, 0x8 adds r0, r1, r2 str r7, [r0] adds r3, 0x8 adds r1, r3 movs r0, 0x1 negs r0, r0 str r0, [r1] movs r0, 0x1 _0809B24C: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _0809B254: .4byte gUnknown_3001B64 _0809B258: .4byte 0x00000414 _0809B25C: .4byte 0x00000424 thumb_func_end sub_809B1D4 thumb_func_start sub_809B260 sub_809B260: push {lr} adds r1, r0, 0 ldr r2, _0809B290 cmp r1, 0 beq _0809B276 ldr r0, [r2] movs r3, 0x86 lsls r3, 3 adds r0, r3 ldr r0, [r0] str r0, [r1] _0809B276: movs r1, 0 ldr r0, [r2] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x3 bne _0809B288 movs r1, 0x1 _0809B288: adds r0, r1, 0 pop {r1} bx r1 .align 2, 0 _0809B290: .4byte gUnknown_3001B64 thumb_func_end sub_809B260 thumb_func_start ResetTextbox_809B294 ResetTextbox_809B294: push {lr} movs r0, 0x3 bl SetCharacterMask ldr r0, _0809B2B4 ldr r0, [r0] adds r0, 0xC movs r2, 0x1 negs r2, r2 movs r1, 0 movs r3, 0 bl ScriptPrintText_809B2B8 pop {r0} bx r0 .align 2, 0 _0809B2B4: .4byte gUnknown_3001B64 thumb_func_end ResetTextbox_809B294 thumb_func_start ScriptPrintText_809B2B8 ScriptPrintText_809B2B8: push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x14 adds r4, r0, 0 adds r7, r3, 0 lsls r1, 16 lsrs r5, r1, 16 lsls r2, 16 asrs r6, r2, 16 strh r5, [r4] cmp r7, 0 bne _0809B2F6 cmp r5, 0 bne _0809B2DE str r7, [r4, 0x4] movs r0, 0 b _0809B3FC _0809B2DE: movs r0, 0x4 ands r0, r5 cmp r0, 0 bne _0809B2E8 b _0809B3FA _0809B2E8: bl sub_8014490 movs r0, 0 movs r1, 0x1 bl xxx_script_textboxes_809A680 b _0809B3FA _0809B2F6: movs r0, 0x1 str r0, [r4, 0x4] adds r0, 0xFF ands r0, r5 cmp r0, 0 beq _0809B32A cmp r6, 0 bge _0809B318 ldr r0, _0809B310 ldr r1, _0809B314 bl strcpy b _0809B32A .align 2, 0 _0809B310: .4byte gSpeakerNameBuffer _0809B314: .4byte gFormattedSpeechBubble _0809B318: ldr r0, _0809B3D0 ldr r1, _0809B3D4 lsls r2, r6, 2 adds r2, r6 lsls r2, 4 ldr r3, _0809B3D8 adds r2, r3 bl sprintfStatic _0809B32A: ldr r0, _0809B3DC mov r8, r0 ldr r0, [r0] ldr r0, [r0] cmp r0, 0x3 bne _0809B344 adds r4, 0x8 ldr r1, _0809B3E0 adds r0, r4, 0 adds r2, r7, 0 bl sprintfStatic adds r7, r4, 0 _0809B344: adds r0, r6, 0 bl sub_809AE3C ldr r1, _0809B3E4 mov r9, r1 movs r1, 0x1 negs r1, r1 mov r12, r1 movs r2, 0 str r2, [sp] movs r1, 0x3 str r1, [sp, 0x4] str r2, [sp, 0x8] str r0, [sp, 0xC] movs r6, 0x80 lsls r6, 1 adds r0, r5, 0 ands r0, r6 movs r1, 0 cmp r0, 0 beq _0809B370 movs r1, 0xC _0809B370: movs r4, 0x80 lsls r4, 2 adds r0, r5, 0 ands r0, r4 cmp r0, 0 beq _0809B380 movs r0, 0x4 orrs r1, r0 _0809B380: mov r0, r8 ldr r3, [r0] ldr r2, [r3] cmp r2, 0x3 bne _0809B38E movs r0, 0x10 orrs r1, r0 _0809B38E: cmp r2, 0x2 bne _0809B396 movs r0, 0x10 orrs r1, r0 _0809B396: adds r2, r1, 0 movs r1, 0x20 adds r0, r5, 0 ands r0, r1 cmp r0, 0 beq _0809B3A4 orrs r2, r1 _0809B3A4: lsrs r1, r5, 6 movs r0, 0x1 ands r1, r0 orrs r1, r2 movs r0, 0x80 ands r0, r5 cmp r0, 0 beq _0809B3B6 orrs r1, r6 _0809B3B6: movs r0, 0x4 ands r0, r5 cmp r0, 0 beq _0809B3C0 orrs r1, r4 _0809B3C0: ldr r0, [r3, 0x4] cmp r0, r12 beq _0809B3E8 movs r0, 0x2 orrs r0, r1 lsls r0, 16 b _0809B3EA .align 2, 0 _0809B3D0: .4byte gSpeakerNameBuffer _0809B3D4: .4byte gUnknown_8116188 _0809B3D8: .4byte gFormatBuffer_Names _0809B3DC: .4byte gUnknown_3001B64 _0809B3E0: .4byte gUnknown_8116190 _0809B3E4: .4byte sub_809B428 _0809B3E8: lsls r0, r1, 16 _0809B3EA: lsrs r0, 16 str r0, [sp, 0x10] adds r0, r7, 0 mov r1, r9 mov r2, r12 movs r3, 0 bl CreateMenuDialogueBoxAndPortrait _0809B3FA: movs r0, 0x1 _0809B3FC: add sp, 0x14 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end ScriptPrintText_809B2B8 thumb_func_start IsTextboxOpen_809B40C IsTextboxOpen_809B40C: push {lr} ldr r0, [r0, 0x4] cmp r0, 0 beq _0809B41C cmp r0, 0x3 bhi _0809B420 cmp r0, 0x2 bcc _0809B420 _0809B41C: movs r0, 0 b _0809B422 _0809B420: movs r0, 0x1 _0809B422: pop {r1} bx r1 thumb_func_end IsTextboxOpen_809B40C thumb_func_start sub_809B428 sub_809B428: push {r4,r5,lr} adds r5, r0, 0 adds r4, r2, 0 ldrb r0, [r5, 0x2] cmp r0, 0x4F beq _0809B44C cmp r0, 0x4F bgt _0809B43E cmp r0, 0x49 beq _0809B444 b _0809B46A _0809B43E: cmp r0, 0x57 beq _0809B454 b _0809B46A _0809B444: movs r0, 0x1E bl sub_8099A34 b _0809B462 _0809B44C: movs r0, 0x1E bl sub_8099A48 b _0809B462 _0809B454: bl sub_8099B94 lsls r0, 24 cmp r0, 0 beq _0809B462 adds r0, r5, 0 b _0809B46C _0809B462: adds r1, r4, 0 adds r1, 0x21 movs r0, 0x1 strb r0, [r1] _0809B46A: movs r0, 0 _0809B46C: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_809B428 thumb_func_start sub_809B474 sub_809B474: push {r4-r6,lr} ldr r0, _0809B498 ldr r1, [r0] ldr r2, [r1] adds r6, r0, 0 cmp r2, 0x3 bls _0809B56E cmp r2, 0x4 bne _0809B56E movs r5, 0x84 lsls r5, 3 adds r0, r1, r5 ldr r0, [r0] cmp r0, 0x1 beq _0809B49C cmp r0, 0x2 beq _0809B508 b _0809B56E .align 2, 0 _0809B498: .4byte gUnknown_3001B64 _0809B49C: bl sub_809B648 lsls r0, 24 cmp r0, 0 bne _0809B4B0 ldr r0, [r6] adds r0, r5 movs r1, 0x3 str r1, [r0] b _0809B4E8 _0809B4B0: ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r4, [r0] cmp r4, 0 beq _0809B4F8 ldr r0, [r4, 0x4] cmp r0, 0 beq _0809B4F2 bl ResetTextbox_809B294 ldr r0, [r4, 0x4] bl _call_via_r0 lsls r0, 24 cmp r0, 0 bne _0809B4F2 ldr r1, [r6] movs r3, 0x86 lsls r3, 3 adds r2, r1, r3 movs r0, 0x1 negs r0, r0 str r0, [r2] adds r1, r5 movs r0, 0x3 str r0, [r1] _0809B4E8: movs r0, 0 movs r1, 0x1 bl xxx_script_textboxes_809A680 b _0809B56E _0809B4F2: ldrh r0, [r4] bl sub_809A6E4 _0809B4F8: ldr r0, _0809B534 ldr r1, [r0] movs r2, 0x84 lsls r2, 3 adds r1, r2 movs r2, 0x2 str r2, [r1] adds r6, r0, 0 _0809B508: ldr r0, [r6] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r4, [r0] cmp r4, 0 beq _0809B54E ldr r0, [r4, 0xC] bl _call_via_r0 adds r2, r0, 0 cmp r2, 0x1 bls _0809B56E ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r1, r0, r3 cmp r2, 0x2 bne _0809B538 movs r0, 0x1 negs r0, r0 b _0809B53A .align 2, 0 _0809B534: .4byte gUnknown_3001B64 _0809B538: movs r0, 0 _0809B53A: str r0, [r1] ldr r0, [r4, 0x8] cmp r0, 0 beq _0809B546 bl _call_via_r0 _0809B546: ldrh r0, [r4] bl sub_809A6F8 b _0809B558 _0809B54E: bl sub_809B648 lsls r0, 24 cmp r0, 0 bne _0809B56E _0809B558: ldr r0, _0809B578 ldr r0, [r0] movs r1, 0x84 lsls r1, 3 adds r0, r1 movs r1, 0x3 str r1, [r0] movs r0, 0 movs r1, 0x1 bl xxx_script_textboxes_809A680 _0809B56E: bl sub_809B57C pop {r4-r6} pop {r0} bx r0 .align 2, 0 _0809B578: .4byte gUnknown_3001B64 thumb_func_end sub_809B474 thumb_func_start sub_809B57C sub_809B57C: push {r4,r5,lr} sub sp, 0x8 bl DrawDialogueBoxString ldr r5, _0809B5C8 ldr r0, [r5] ldr r1, [r0] cmp r1, 0x3 bhi _0809B5E4 cmp r1, 0x1 bcc _0809B5E4 movs r4, 0x84 lsls r4, 3 adds r0, r4 ldr r0, [r0] cmp r0, 0 beq _0809B5CC cmp r0, 0x3 beq _0809B5CC mov r0, sp bl sub_80144A4 cmp r0, 0 bne _0809B5E4 ldr r1, [sp] movs r0, 0x1 bl GroundScriptLock ldr r1, [r5] adds r2, r1, r4 movs r0, 0x3 str r0, [r2] movs r0, 0x86 lsls r0, 3 adds r1, r0 ldr r0, [sp] str r0, [r1] b _0809B5E4 .align 2, 0 _0809B5C8: .4byte gUnknown_3001B64 _0809B5CC: add r0, sp, 0x4 bl sub_80144A4 adds r4, r0, 0 cmp r4, 0 bne _0809B5E4 movs r0, 0 bl GroundScriptLockJumpZero ldr r0, _0809B5FC ldr r0, [r0] str r4, [r0] _0809B5E4: ldr r0, _0809B5FC ldr r0, [r0] ldr r1, _0809B600 adds r0, r1 ldr r0, [r0] cmp r0, 0 bge _0809B604 movs r0, 0 movs r1, 0 bl sub_8005838 b _0809B60C .align 2, 0 _0809B5FC: .4byte gUnknown_3001B64 _0809B600: .4byte 0x00000434 _0809B604: movs r0, 0 movs r1, 0x5 bl sub_8005838 _0809B60C: add sp, 0x8 pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_809B57C thumb_func_start sub_809B614 sub_809B614: push {lr} bl sub_80060EC ldr r0, _0809B62C ldr r2, _0809B630 ldrh r1, [r2] strh r1, [r0] ldr r0, _0809B634 ands r0, r1 strh r0, [r2] pop {r0} bx r0 .align 2, 0 _0809B62C: .4byte gUnknown_20399DE _0809B630: .4byte gUnknown_20399DC _0809B634: .4byte 0x0000fffd thumb_func_end sub_809B614 thumb_func_start sub_809B638 sub_809B638: push {lr} bl xxx_call_update_bg_vram pop {r0} bx r0 thumb_func_end sub_809B638 thumb_func_start nullsub_210 nullsub_210: bx lr thumb_func_end nullsub_210 thumb_func_start sub_809B648 sub_809B648: push {r4-r6,lr} sub sp, 0x24 ldr r0, _0809B66C ldr r1, [r0] ldr r2, _0809B670 adds r1, r2 ldr r1, [r1] subs r1, 0x2 adds r6, r0, 0 cmp r1, 0x2C bls _0809B662 bl _0809C392 _0809B662: lsls r0, r1, 2 ldr r1, _0809B674 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0809B66C: .4byte gUnknown_3001B64 _0809B670: .4byte 0x00000414 _0809B674: .4byte _0809B678 .align 2, 0 _0809B678: .4byte _0809B72C .4byte _0809B772 .4byte _0809B7AC .4byte _0809B834 .4byte _0809B89C .4byte _0809B8FC .4byte _0809B91C .4byte _0809B944 .4byte _0809B9D2 .4byte _0809BA2A .4byte _0809BAA8 .4byte _0809BB66 .4byte _0809BBDA .4byte _0809BBDA .4byte _0809BC26 .4byte _0809BC68 .4byte _0809C1B4 .4byte _0809BC78 .4byte _0809C1C2 .4byte _0809C1C2 .4byte _0809C1C8 .4byte _0809BCBC .4byte _0809BCBC .4byte _0809BD1C .4byte _0809BD64 .4byte _0809BDE8 .4byte _0809BE30 .4byte _0809BE40 .4byte _0809BE50 .4byte _0809BE60 .4byte _0809BE9C .4byte _0809BEB8 .4byte _0809BED4 .4byte _0809BF70 .4byte _0809BFFC .4byte _0809C072 .4byte _0809C0B8 .4byte _0809C0FC .4byte _0809C148 .4byte _0809C158 .4byte _0809C168 .4byte _0809C204 .4byte _0809C238 .4byte _0809C280 .4byte _0809C32A _0809B72C: ldr r2, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r2, r3 ldr r0, [r0] cmp r0, 0x1 beq _0809B780 ldr r0, _0809B754 ldrh r0, [r0, 0x2] movs r1, 0x3 ands r0, r1 cmp r0, 0 beq _0809B758 movs r0, 0x86 lsls r0, 3 adds r1, r2, r0 movs r0, 0x1 str r0, [r1] bl _0809C392 .align 2, 0 _0809B754: .4byte gRealInputs _0809B758: bl sub_8094D14 lsls r0, 24 cmp r0, 0 beq _0809B784 ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x2 str r1, [r0] bl _0809C392 _0809B772: ldr r0, [r6] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809B78A _0809B780: bl ResetTextbox_809B294 _0809B784: movs r0, 0x1 bl _0809C394 _0809B78A: ldr r0, _0809B7A8 ldrh r1, [r0] ldrh r0, [r0, 0x2] movs r2, 0x2 ands r0, r2 cmp r0, 0 beq _0809B79C bl _0809C392 _0809B79C: ands r1, r2 cmp r1, 0 bne _0809B784 bl _0809C392 .align 2, 0 _0809B7A8: .4byte gRealInputs _0809B7AC: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809B7F4 bl ResetTextbox_809B294 ldr r1, [r6] ldr r2, _0809B7D8 adds r0, r1, r2 ldr r0, [r0] cmp r0, 0 bne _0809B7E0 ldr r3, _0809B7DC adds r0, r1, r3 ldr r1, [r0] movs r0, 0 bl CreateConfirmNameMenu b _0809B784 .align 2, 0 _0809B7D8: .4byte 0x00000424 _0809B7DC: .4byte 0x0000042c _0809B7E0: ldr r2, _0809B7F0 adds r0, r1, r2 ldr r1, [r0] movs r0, 0x2 bl CreateConfirmNameMenu b _0809B784 .align 2, 0 _0809B7F0: .4byte 0x0000042c _0809B7F4: bl sub_8016080 cmp r0, 0x3 bne _0809B80C bl CleanConfirmNameMenu ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809C1BC _0809B80C: cmp r0, 0x2 bne _0809B784 ldr r0, [r6] ldr r1, _0809B830 adds r0, r1 ldr r0, [r0] cmp r0, 0 beq _0809B784 bl CleanConfirmNameMenu ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 _0809B828: movs r1, 0 str r1, [r0] bl _0809C392 .align 2, 0 _0809B830: .4byte 0x00000424 _0809B834: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809B85C bl ResetTextbox_809B294 ldr r0, [r6] ldr r1, _0809B858 adds r0, r1 ldr r1, [r0] movs r0, 0x1 bl CreateConfirmNameMenu b _0809B784 .align 2, 0 _0809B858: .4byte 0x0000042c _0809B85C: bl sub_8016080 cmp r0, 0x3 bne _0809B874 bl CleanConfirmNameMenu ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 bl _0809C1BC _0809B874: cmp r0, 0x2 beq _0809B87A b _0809B784 _0809B87A: ldr r0, [r6] ldr r3, _0809B898 adds r0, r3 ldr r0, [r0] cmp r0, 0 bne _0809B888 b _0809B784 _0809B888: bl CleanConfirmNameMenu ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 b _0809B828 .align 2, 0 _0809B898: .4byte 0x00000424 _0809B89C: ldr r0, [r6] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809B8C4 bl ResetTextbox_809B294 ldr r0, [r6] ldr r3, _0809B8C0 adds r0, r3 ldr r1, [r0] movs r0, 0x4 bl sub_80151C0 b _0809B784 .align 2, 0 _0809B8C0: .4byte 0x0000042c _0809B8C4: bl sub_80154F0 cmp r0, 0x3 bne _0809B8D4 bl sub_80155F0 bl _0809C1B4 _0809B8D4: cmp r0, 0x2 beq _0809B8DA b _0809B784 _0809B8DA: ldr r0, [r6] ldr r2, _0809B8F8 adds r0, r2 ldr r0, [r0] cmp r0, 0 bne _0809B8E8 b _0809B784 _0809B8E8: bl sub_80155F0 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B828 .align 2, 0 _0809B8F8: .4byte 0x00000424 _0809B8FC: ldr r0, [r6] ldr r1, _0809B914 adds r0, r1 ldr r0, [r0] bl sub_801D014 ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809B918 b _0809B932 .align 2, 0 _0809B914: .4byte 0x0000042c _0809B918: .4byte gUnknown_81161A8 _0809B91C: ldr r0, [r6] ldr r3, _0809B93C adds r0, r3 ldr r0, [r0] bl sub_801D014 ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809B940 _0809B932: str r1, [r0] movs r0, 0x4 bl PlayMenuSoundEffect b _0809B784 .align 2, 0 _0809B93C: .4byte 0x0000042c _0809B940: .4byte gUnknown_81161B8 _0809B944: bl ResetTextbox_809B294 ldr r4, _0809B984 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809B998 bl ResetTextbox_809B294 ldr r0, [r4] ldr r3, _0809B988 adds r0, r3 ldr r0, [r0] ldr r1, _0809B98C bl sub_8015080 lsls r0, 24 cmp r0, 0 bne _0809B990 ldr r0, [r4] _0809B972: movs r1, 0x86 lsls r1, 3 adds r0, r1 _0809B978: movs r1, 0x1 negs r1, r1 str r1, [r0] bl _0809C392 .align 2, 0 _0809B984: .4byte gUnknown_3001B64 _0809B988: .4byte 0x0000042c _0809B98C: .4byte gUnknown_811610C _0809B990: movs r0, 0x4 bl PlayMenuSoundEffect b _0809B784 _0809B998: bl sub_801516C cmp r0, 0x2 beq _0809B9BC cmp r0, 0x3 beq _0809B9A6 b _0809B784 _0809B9A6: bl sub_8015198 ldr r1, [r4] movs r2, 0x86 lsls r2, 3 adds r1, r2 str r0, [r1] bl sub_80151A4 bl _0809C392 _0809B9BC: ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_80151A4 bl _0809C392 _0809B9D2: bl ResetTextbox_809B294 ldr r4, _0809BA08 ldr r0, [r4] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BA1C bl ResetTextbox_809B294 ldr r0, [r4] ldr r2, _0809BA0C adds r0, r2 ldr r0, [r0] ldr r1, _0809BA10 bl sub_8015080 lsls r0, 24 cmp r0, 0 bne _0809BA14 ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BA08: .4byte gUnknown_3001B64 _0809BA0C: .4byte 0x0000042c _0809BA10: .4byte gUnknown_811612C _0809BA14: movs r0, 0x4 bl PlayMenuSoundEffect b _0809B784 _0809BA1C: bl sub_801516C cmp r0, 0x2 beq _0809B9BC cmp r0, 0x3 beq _0809B9A6 b _0809B784 _0809BA2A: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BA68 bl ResetTextbox_809B294 ldr r0, [r6] ldr r2, _0809BA5C adds r0, r2 ldr r0, [r0] movs r1, 0x3 bl sub_80211AC lsls r0, 24 cmp r0, 0 bne _0809BA60 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BA5C: .4byte 0x00000424 _0809BA60: movs r0, 0x4 bl PlayMenuSoundEffect b _0809B784 _0809BA68: movs r0, 0x1 bl sub_8021274 cmp r0, 0x2 beq _0809BA92 cmp r0, 0x3 beq _0809BA78 b _0809B784 _0809BA78: bl sub_802132C ldr r1, [r6] movs r2, 0x86 lsls r2, 3 adds r1, r2 lsls r0, 24 lsrs r0, 24 str r0, [r1] bl sub_80213A0 bl _0809C392 _0809BA92: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_80213A0 bl _0809C392 _0809BAA8: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BB10 movs r0, 0 movs r1, 0x12 bl GetScriptVarValue lsls r0, 16 asrs r0, 16 bl sub_80A2654 lsls r0, 16 asrs r4, r0, 16 bl ResetTextbox_809B294 movs r0, 0x3 movs r1, 0 movs r2, 0xA movs r3, 0x1 bl sub_802F73C lsls r0, 24 cmp r0, 0 bne _0809BAEA ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809B978 _0809BAEA: movs r5, 0x1 negs r5, r5 cmp r4, r5 beq _0809BB08 adds r0, r4, 0 bl sub_802F848 lsls r0, 24 cmp r0, 0 bne _0809BB08 movs r0, 0 movs r1, 0x12 adds r2, r5, 0 bl SetScriptVarValue _0809BB08: movs r0, 0x4 bl PlayMenuSoundEffect b _0809B784 _0809BB10: movs r0, 0x1 bl sub_802F8A0 cmp r0, 0x2 beq _0809BB50 cmp r0, 0x3 beq _0809BB20 b _0809B784 _0809BB20: bl sub_802F90C adds r4, r0, 0 lsls r4, 16 asrs r4, 16 adds r0, r4, 0 bl sub_80A26B8 adds r2, r0, 0 lsls r2, 16 asrs r2, 16 movs r0, 0 movs r1, 0x12 bl SetScriptVarValue ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 str r4, [r0] bl sub_802F974 bl _0809C392 _0809BB50: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_802F974 bl _0809C392 _0809BB66: ldr r0, [r6] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809BB9A bl ResetTextbox_809B294 movs r0, 0x3 movs r1, 0 movs r2, 0xA bl sub_80302E8 lsls r0, 24 cmp r0, 0 bne _0809BB92 ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 _0809BB92: movs r0, 0x4 bl PlayMenuSoundEffect b _0809B784 _0809BB9A: movs r0, 0x1 bl sub_80303AC cmp r0, 0x2 beq _0809BBC4 cmp r0, 0x3 beq _0809BBAA b _0809B784 _0809BBAA: bl sub_8030418 ldr r1, [r6] movs r2, 0x86 lsls r2, 3 adds r1, r2 lsls r0, 16 asrs r0, 16 str r0, [r1] bl sub_8030480 bl _0809C392 _0809BBC4: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_8030480 bl _0809C392 _0809BBDA: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BC14 bl ResetTextbox_809B294 ldr r0, [r6] ldr r2, _0809BC10 adds r0, r2 ldr r0, [r0] cmp r0, 0xE bne _0809BC02 movs r0, 0 movs r1, 0x18 movs r2, 0x1 bl SetScriptVarValue _0809BC02: movs r0, 0x1 bl sub_8011C28 movs r0, 0 bl PrepareSavePakWrite b _0809B784 .align 2, 0 _0809BC10: .4byte 0x00000414 _0809BC14: bl WriteSavePak lsls r0, 24 cmp r0, 0 beq _0809BC20 b _0809B784 _0809BC20: bl FinishWriteSavePak b _0809C392 _0809BC26: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl ResetTextbox_809B294 adds r0, r4, 0 bl CreateKangaskhanStorage lsls r0, 24 cmp r0, 0 beq _0809BC5C ldr r0, _0809BC54 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BC58 b _0809C266 .align 2, 0 _0809BC54: .4byte gUnknown_3001B64 _0809BC58: .4byte gUnknown_81161C8 _0809BC5C: ldr r0, _0809BC64 ldr r0, [r0] b _0809B972 .align 2, 0 _0809BC64: .4byte gUnknown_3001B64 _0809BC68: ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BC74 b _0809C266 .align 2, 0 _0809BC74: .4byte gUnknown_81161D8 _0809BC78: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl ResetTextbox_809B294 adds r0, r4, 0 bl CreateFelicityBank lsls r0, 24 cmp r0, 0 beq _0809BCB0 ldr r0, _0809BCA8 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BCAC b _0809C266 .align 2, 0 _0809BCA8: .4byte gUnknown_3001B64 _0809BCAC: .4byte gUnknown_81161E8 _0809BCB0: ldr r0, _0809BCB8 ldr r0, [r0] b _0809B972 .align 2, 0 _0809BCB8: .4byte gUnknown_3001B64 _0809BCBC: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r4, r0, 24 bl ResetTextbox_809B294 ldr r0, _0809BCE0 ldr r0, [r0] ldr r2, _0809BCE4 adds r0, r2 ldr r0, [r0] cmp r0, 0x17 bne _0809BCE8 negs r0, r4 orrs r0, r4 lsrs r0, 31 b _0809BCF0 .align 2, 0 _0809BCE0: .4byte gUnknown_3001B64 _0809BCE4: .4byte 0x00000414 _0809BCE8: movs r0, 0x2 cmp r4, 0 beq _0809BCF0 movs r0, 0x3 _0809BCF0: bl CreateKecleonBros lsls r0, 24 cmp r0, 0 beq _0809BD10 ldr r0, _0809BD08 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BD0C b _0809C266 .align 2, 0 _0809BD08: .4byte gUnknown_3001B64 _0809BD0C: .4byte gUnknown_81161F8 _0809BD10: ldr r0, _0809BD18 ldr r0, [r0] b _0809B972 .align 2, 0 _0809BD18: .4byte gUnknown_3001B64 _0809BD1C: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl ResetTextbox_809B294 adds r0, r4, 0 bl sub_801FB50 lsls r0, 24 cmp r0, 0 beq _0809BD54 ldr r0, _0809BD4C ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BD50 b _0809C266 .align 2, 0 _0809BD4C: .4byte gUnknown_3001B64 _0809BD50: .4byte gUnknown_8116208 _0809BD54: ldr r0, _0809BD60 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BD60: .4byte gUnknown_3001B64 _0809BD64: ldr r0, [r6] movs r1, 0x84 lsls r1, 3 adds r0, r1 ldr r0, [r0] cmp r0, 0x1 bne _0809BD84 bl ResetTextbox_809B294 movs r0, 0 movs r1, 0x39 bl ClearScriptVarArray bl sub_802465C b _0809B784 _0809BD84: bl sub_80246F0 adds r4, r0, 0 movs r0, 0 movs r1, 0x39 bl GetScriptVarValue cmp r0, 0 bne _0809BDB2 bl HasEvolutionCompleted lsls r0, 24 cmp r0, 0 beq _0809BDB2 movs r0, 0 movs r1, 0x39 movs r2, 0x1 bl SetScriptVarValue movs r0, 0x46 movs r1, 0 bl GroundMap_ExecuteEvent _0809BDB2: cmp r4, 0x3 bne _0809BDCC bl CleanLuminousCave ldr r0, _0809BDC8 ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809C1BC .align 2, 0 _0809BDC8: .4byte gUnknown_3001B64 _0809BDCC: cmp r4, 0x2 beq _0809BDD2 b _0809B784 _0809BDD2: bl CleanLuminousCave ldr r0, _0809BDE4 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B828 .align 2, 0 _0809BDE4: .4byte gUnknown_3001B64 _0809BDE8: movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 lsrs r4, 31 bl ResetTextbox_809B294 adds r0, r4, 0 bl CreateWigglytuffShop lsls r0, 24 cmp r0, 0 beq _0809BE20 ldr r0, _0809BE18 ldr r0, [r0] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809BE1C b _0809C266 .align 2, 0 _0809BE18: .4byte gUnknown_3001B64 _0809BE1C: .4byte gUnknown_8116218 _0809BE20: ldr r0, _0809BE2C ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809B978 .align 2, 0 _0809BE2C: .4byte gUnknown_3001B64 _0809BE30: ldr r0, [r6] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BE3C b _0809C266 .align 2, 0 _0809BE3C: .4byte gUnknown_8116228 _0809BE40: ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809BE4C b _0809C266 .align 2, 0 _0809BE4C: .4byte gUnknown_8116238 _0809BE50: ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BE5C b _0809C266 .align 2, 0 _0809BE5C: .4byte gUnknown_8116248 _0809BE60: bl ResetTextbox_809B294 movs r0, 0x98 lsls r0, 1 bl CreateHelperPelipperMenu lsls r0, 24 cmp r0, 0 bne _0809BE84 ldr r0, _0809BE80 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 b _0809B978 .align 2, 0 _0809BE80: .4byte gUnknown_3001B64 _0809BE84: ldr r0, _0809BE94 ldr r0, [r0] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809BE98 b _0809C266 .align 2, 0 _0809BE94: .4byte gUnknown_3001B64 _0809BE98: .4byte gUnknown_8116258 _0809BE9C: movs r0, 0x4 bl PlayMenuSoundEffect ldr r0, _0809BEB0 ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BEB4 b _0809C266 .align 2, 0 _0809BEB0: .4byte gUnknown_3001B64 _0809BEB4: .4byte gUnknown_8116268 _0809BEB8: movs r0, 0x4 bl PlayMenuSoundEffect ldr r0, _0809BECC ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809BED0 b _0809C266 .align 2, 0 _0809BECC: .4byte gUnknown_3001B64 _0809BED0: .4byte gUnknown_8116278 _0809BED4: mov r0, sp bl sub_8099328 lsls r0, 24 cmp r0, 0 beq _0809BF4E add r1, sp, 0x4 add r2, sp, 0x8 movs r0, 0x2 bl GetScriptVarScenario ldr r0, [sp, 0x8] cmp r0, 0x7 bgt _0809BF4E add r4, sp, 0xC _0809BEF2: lsls r1, r0, 24 lsrs r1, 24 mov r0, sp ldrb r2, [r0] adds r0, r4, 0 bl sub_8096AF8 ldrb r0, [r4] cmp r0, 0 beq _0809BF44 ldr r1, [sp, 0x4] ldr r2, [sp, 0x8] movs r0, 0x2 bl ScenarioCalc ldr r0, _0809BF40 ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r2, r0, r1 ldrh r1, [r4, 0x2] lsls r1, 16 asrs r1, 16 negs r0, r1 orrs r0, r1 lsrs r1, r0, 31 movs r3, 0x4 ldrsh r0, [r4, r3] cmp r0, 0 beq _0809BF30 adds r1, 0x2 _0809BF30: str r1, [r2] cmp r1, 0 beq _0809BF38 b _0809C392 _0809BF38: movs r0, 0x3 str r0, [r2] b _0809C392 .align 2, 0 _0809BF40: .4byte gUnknown_3001B64 _0809BF44: ldr r0, [sp, 0x8] adds r0, 0x1 str r0, [sp, 0x8] cmp r0, 0x7 ble _0809BEF2 _0809BF4E: ldr r0, _0809BF6C ldr r0, [r0] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0 str r1, [r0] bl sub_8096BD0 movs r0, 0x2 movs r1, 0 movs r2, 0 bl ScenarioCalc b _0809C392 .align 2, 0 _0809BF6C: .4byte gUnknown_3001B64 _0809BF70: mov r5, sp adds r5, 0x1 adds r0, r5, 0 bl sub_8099328 lsls r0, 24 cmp r0, 0 bne _0809BF82 b _0809C392 _0809BF82: add r1, sp, 0x14 add r2, sp, 0x18 movs r0, 0x2 bl GetScriptVarScenario add r4, sp, 0x1C ldr r1, [sp, 0x18] lsls r1, 24 lsrs r1, 24 ldrb r2, [r5] adds r0, r4, 0 bl sub_8096AF8 ldrb r0, [r4] cmp r0, 0 bne _0809BFA4 b _0809C392 _0809BFA4: ldr r0, [sp, 0x18] lsls r0, 24 lsrs r0, 24 ldrb r1, [r5] bl sub_802DB28 lsls r0, 24 cmp r0, 0 bne _0809BFB8 b _0809C392 _0809BFB8: movs r0, 0 movs r1, 0x19 bl GetScriptVarValue cmp r0, 0x63 bgt _0809BFCE adds r2, r0, 0x1 movs r0, 0 movs r1, 0x19 bl SetScriptVarValue _0809BFCE: movs r0, 0 movs r1, 0x39 movs r2, 0x1 bl SetScriptVarValue ldr r1, [sp, 0x14] ldr r2, [sp, 0x18] adds r2, 0x1 movs r0, 0x2 bl ScenarioCalc ldr r0, _0809BFF4 ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809BFF8 b _0809C266 .align 2, 0 _0809BFF4: .4byte gUnknown_3001B64 _0809BFF8: .4byte gUnknown_8116288 _0809BFFC: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809C036 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 lsrs r0, 24 negs r4, r0 orrs r4, r0 asrs r4, 31 movs r0, 0x4 ands r4, r0 bl ResetTextbox_809B294 adds r0, r4, 0 bl MakuhitaDojo_New lsls r0, 24 cmp r0, 0 beq _0809C032 bl _0809B784 _0809C032: ldr r0, [r6] b _0809B972 _0809C036: bl HandleMakuhitaDojoState cmp r0, 0x2 beq _0809C05E cmp r0, 0x3 beq _0809C046 bl _0809B784 _0809C046: bl sub_802FED0 ldr r1, [r6] movs r2, 0x86 lsls r2, 3 adds r1, r2 lsls r0, 16 asrs r0, 16 str r0, [r1] bl MakuhitaDojo_Delete b _0809C392 _0809C05E: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x1 negs r1, r1 str r1, [r0] bl MakuhitaDojo_Delete b _0809C392 _0809C072: movs r4, 0x1 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809C082 movs r4, 0x5 _0809C082: bl ResetTextbox_809B294 adds r0, r4, 0 bl MakuhitaDojo_New lsls r0, 24 cmp r0, 0 beq _0809C0A8 ldr r0, _0809C0A0 ldr r0, [r0] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809C0A4 b _0809C266 .align 2, 0 _0809C0A0: .4byte gUnknown_3001B64 _0809C0A4: .4byte gUnknown_8116298 _0809C0A8: ldr r0, _0809C0B4 ldr r0, [r0] movs r2, 0x86 lsls r2, 3 adds r0, r2 b _0809B978 .align 2, 0 _0809C0B4: .4byte gUnknown_3001B64 _0809C0B8: movs r4, 0x2 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809C0C8 movs r4, 0x6 _0809C0C8: bl ResetTextbox_809B294 adds r0, r4, 0 bl MakuhitaDojo_New lsls r0, 24 cmp r0, 0 beq _0809C0F0 ldr r0, _0809C0E8 ldr r0, [r0] movs r3, 0x83 lsls r3, 3 adds r0, r3 ldr r1, _0809C0EC b _0809C266 .align 2, 0 _0809C0E8: .4byte gUnknown_3001B64 _0809C0EC: .4byte gUnknown_81162A8 _0809C0F0: ldr r0, _0809C0F8 ldr r0, [r0] b _0809B972 .align 2, 0 _0809C0F8: .4byte gUnknown_3001B64 _0809C0FC: movs r4, 0x3 movs r0, 0x4 bl sub_80023E4 lsls r0, 24 cmp r0, 0 beq _0809C10C movs r4, 0x7 _0809C10C: bl ResetTextbox_809B294 adds r0, r4, 0 bl MakuhitaDojo_New lsls r0, 24 cmp r0, 0 beq _0809C134 ldr r0, _0809C12C ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C130 b _0809C266 .align 2, 0 _0809C12C: .4byte gUnknown_3001B64 _0809C130: .4byte gUnknown_81162B8 _0809C134: ldr r0, _0809C144 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809B978 .align 2, 0 _0809C144: .4byte gUnknown_3001B64 _0809C148: ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809C154 b _0809C266 .align 2, 0 _0809C154: .4byte gUnknown_81162C8 _0809C158: ldr r0, [r6] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C164 b _0809C266 .align 2, 0 _0809C164: .4byte gUnknown_81162D8 _0809C168: bl ResetTextbox_809B294 bl sub_803B050 lsls r0, 24 cmp r0, 0 beq _0809C1A0 ldr r4, _0809C194 ldr r0, [r4] ldr r3, _0809C198 adds r0, r3 movs r1, 0 ldrsh r0, [r0, r1] bl sub_803B100 ldr r0, [r4] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C19C b _0809C266 .align 2, 0 _0809C194: .4byte gUnknown_3001B64 _0809C198: .4byte 0x000005a4 _0809C19C: .4byte gUnknown_81162E8 _0809C1A0: ldr r0, _0809C1B0 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809B978 .align 2, 0 _0809C1B0: .4byte gUnknown_3001B64 _0809C1B4: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 _0809C1BC: movs r1, 0x1 str r1, [r0] b _0809C392 _0809C1C2: bl ResetTextbox_809B294 b _0809C392 _0809C1C8: movs r0, 0x2 bl CreateFriendListMenu lsls r0, 24 cmp r0, 0 beq _0809C1EC ldr r0, _0809C1E4 ldr r0, [r0] movs r2, 0x83 lsls r2, 3 adds r0, r2 ldr r1, _0809C1E8 b _0809C266 .align 2, 0 _0809C1E4: .4byte gUnknown_3001B64 _0809C1E8: .4byte gUnknown_81162F8 _0809C1EC: ldr r0, _0809C200 ldr r0, [r0] movs r3, 0x86 lsls r3, 3 adds r0, r3 movs r1, 0x2 negs r1, r1 str r1, [r0] b _0809C392 .align 2, 0 _0809C200: .4byte gUnknown_3001B64 _0809C204: ldr r1, [r6] ldr r2, _0809C230 adds r0, r1, r2 ldr r0, [r0] movs r3, 0x85 lsls r3, 3 adds r1, r3 ldr r1, [r1] bl sub_809CCDC ldr r1, [r6] movs r3, 0x86 lsls r3, 3 adds r2, r1, r3 str r0, [r2] movs r0, 0x83 lsls r0, 3 adds r1, r0 ldr r0, _0809C234 str r0, [r1] bl _0809B784 .align 2, 0 _0809C230: .4byte 0x00000424 _0809C234: .4byte gUnknown_8116308 _0809C238: ldr r0, [r6] movs r2, 0x85 lsls r2, 3 adds r1, r0, r2 ldr r5, [r1] ldr r3, _0809C26C adds r0, r3 ldrb r4, [r0] bl ResetTextbox_809B294 adds r0, r5, 0 adds r1, r4, 0 movs r2, 0x1 bl sub_801B60C lsls r0, 24 cmp r0, 0 beq _0809C274 ldr r0, [r6] movs r1, 0x83 lsls r1, 3 adds r0, r1 ldr r1, _0809C270 _0809C266: str r1, [r0] bl _0809B784 .align 2, 0 _0809C26C: .4byte 0x00000424 _0809C270: .4byte gUnknown_8116318 _0809C274: ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 bl _0809B978 _0809C280: ldr r0, [r6] movs r3, 0x84 lsls r3, 3 adds r0, r3 ldr r0, [r0] cmp r0, 0x1 bne _0809C2B8 bl ResetTextbox_809B294 movs r0, 0 movs r1, 0x1 movs r2, 0x1 bl xxx_call_save_unk_text_struct_800641C movs r0, 0 movs r1, 0 movs r2, 0 movs r3, 0xA bl sub_801A5D8 lsls r0, 24 cmp r0, 0 beq _0809C2B2 bl _0809B784 _0809C2B2: ldr r0, [r6] bl _0809B972 _0809C2B8: movs r0, 0x1 bl sub_801A6E8 cmp r0, 0x2 beq _0809C320 cmp r0, 0x3 beq _0809C2CA bl _0809B784 _0809C2CA: bl sub_801A8AC adds r5, r0, 0 ldr r0, _0809C304 ldr r0, [r0] lsls r1, r5, 2 adds r0, r1 ldrb r4, [r0, 0x2] adds r0, r4, 0 bl IsEdibleItem lsls r0, 24 cmp r0, 0 beq _0809C30C ldr r0, _0809C308 adds r1, r4, 0 movs r2, 0 bl BufferItemName adds r0, r5, 0 bl ShiftItemsDownFrom ldr r0, [r6] movs r2, 0x86 lsls r2, 3 adds r0, r2 movs r1, 0x1 b _0809C318 .align 2, 0 _0809C304: .4byte gTeamInventoryRef _0809C308: .4byte gFormatBuffer_Items _0809C30C: ldr r0, [r6] movs r3, 0x86 lsls r3, 3 adds r0, r3 _0809C314: movs r1, 0x1 negs r1, r1 _0809C318: str r1, [r0] bl sub_801A928 b _0809C392 _0809C320: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 b _0809C314 _0809C32A: adds r4, r6, 0 ldr r0, [r4] movs r2, 0x84 lsls r2, 3 adds r0, r2 ldr r0, [r0] cmp r0, 0x1 bne _0809C36C bl ResetTextbox_809B294 ldr r1, [r4] ldr r3, _0809C368 adds r0, r1, r3 ldr r0, [r0] movs r2, 0x85 lsls r2, 3 adds r1, r2 ldr r1, [r1] bl DrawCredits lsls r0, 24 cmp r0, 0 beq _0809C35C bl _0809B784 _0809C35C: ldr r0, [r4] movs r3, 0x86 lsls r3, 3 adds r0, r3 bl _0809B978 .align 2, 0 _0809C368: .4byte 0x00000424 _0809C36C: bl sub_8035574 cmp r0, 0x3 bls _0809C378 bl _0809B784 _0809C378: cmp r0, 0x2 bcs _0809C380 bl _0809B784 _0809C380: ldr r0, [r6] movs r1, 0x86 lsls r1, 3 adds r0, r1 movs r1, 0x1 negs r1, r1 str r1, [r0] bl sub_803565C _0809C392: movs r0, 0 _0809C394: add sp, 0x24 pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_809B648 .align 2,0