diff --git a/README.md b/README.md index 69794e87..689ea7d2 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ This is a work in progress decompilation of Metroid Fusion. -2635/3607 functions decompiled (73.05%, 972 left) +2640/3607 functions decompiled (73.19%, 967 left) -0x4c9ac8/0x6f9d24 bytes of data not in blobs (68.63%, 0x23025c left) +0x4c9b00/0x6f9d24 bytes of data not in blobs (68.63%, 0x230224 left) Progress can be seen here: https://docs.google.com/spreadsheets/d/1HvJ-jynb-4P9tfEBVJmkQFpIg6mJRDRUBvDIBiLxQIo/ diff --git a/asm/disasm_0x08074ffc.s b/asm/disasm_0x08074ffc.s index 096d753b..3e863104 100644 --- a/asm/disasm_0x08074ffc.s +++ b/asm/disasm_0x08074ffc.s @@ -8901,7557 +8901,3 @@ _08079730: pop {r4, r5, r6, r7} pop {r0} bx r0 - - thumb_func_start DrawLocationText -DrawLocationText: @ 0x08079740 - push {r4, r5, r6, lr} - sub sp, #8 - adds r5, r1, #0 - lsls r0, r0, #0x18 - lsls r5, r5, #0x18 - lsrs r5, r5, #0x18 - mov r2, sp - ldr r3, _080797AC @ =0x0000FFFF - adds r1, r3, #0 - strh r1, [r2] - ldr r4, _080797B0 @ =0x040000D4 - str r2, [r4] - movs r6, #0x80 - lsls r6, r6, #0x12 - str r6, [r4, #4] - ldr r1, _080797B4 @ =0x81000400 - str r1, [r4, #8] - ldr r1, [r4, #8] - ldr r2, _080797B8 @ =0x0879CDD8 - ldr r1, _080797BC @ =0x03000011 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - lsrs r0, r0, #0x16 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] - add r1, sp, #4 - movs r0, #1 - bl DrawLocationTextCharacters - str r6, [r4] - lsls r5, r5, #0xb - ldr r1, _080797C0 @ =0x06014000 - adds r0, r5, r1 - str r0, [r4, #4] - ldr r1, _080797C4 @ =0x840000E0 - str r1, [r4, #8] - ldr r0, [r4, #8] - ldr r0, _080797C8 @ =0x02000400 - str r0, [r4] - ldr r3, _080797CC @ =0x06014400 - adds r5, r5, r3 - str r5, [r4, #4] - str r1, [r4, #8] - ldr r0, [r4, #8] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_080797AC: .4byte 0x0000FFFF -_080797B0: .4byte 0x040000D4 -_080797B4: .4byte 0x81000400 -_080797B8: .4byte 0x0879CDD8 -_080797BC: .4byte 0x03000011 -_080797C0: .4byte 0x06014000 -_080797C4: .4byte 0x840000E0 -_080797C8: .4byte 0x02000400 -_080797CC: .4byte 0x06014400 - - thumb_func_start TextDrawMessageBanner -TextDrawMessageBanner: @ 0x080797D0 - push {r4, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r4, r1, #0x18 - lsls r2, r2, #0x18 - lsrs r3, r2, #0x18 - movs r1, #0xfc - lsls r1, r1, #0x18 - adds r2, r2, r1 - lsrs r2, r2, #0x18 - cmp r2, #1 - bhi _0807980E - adds r2, r0, #0 - cmp r2, #0x15 - ble _080797F4 - movs r2, #0x15 -_080797F4: - adds r2, #0x15 - ldr r1, _0807981C @ =0x0879CDF4 - ldr r0, _08079820 @ =0x03000011 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] -_0807980E: - cmp r3, #7 - bne _08079828 - ldr r1, _08079824 @ =0x0000FFFF - movs r2, #0x80 - lsls r2, r2, #0x12 - b _08079830 - .align 2, 0 -_0807981C: .4byte 0x0879CDF4 -_08079820: .4byte 0x03000011 -_08079824: .4byte 0x0000FFFF -_08079828: - cmp r3, #6 - bne _08079848 - ldr r1, _08079840 @ =0x0000FFFF - ldr r2, _08079844 @ =0x02000800 -_08079830: - movs r3, #0x80 - lsls r3, r3, #4 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl BitFill - b _080798C8 - .align 2, 0 -_08079840: .4byte 0x0000FFFF -_08079844: .4byte 0x02000800 -_08079848: - cmp r3, #5 - bne _08079850 - movs r0, #1 - b _08079856 -_08079850: - cmp r3, #4 - bne _0807985E - movs r0, #2 -_08079856: - add r1, sp, #4 - bl DrawLocationTextCharacters - b _080798C8 -_0807985E: - cmp r3, #3 - bne _08079878 - ldr r1, _08079870 @ =0x040000D4 - movs r0, #0x80 - lsls r0, r0, #0x12 - str r0, [r1] - lsls r0, r4, #0xb - ldr r2, _08079874 @ =0x06014000 - b _080798BE - .align 2, 0 -_08079870: .4byte 0x040000D4 -_08079874: .4byte 0x06014000 -_08079878: - cmp r3, #2 - bne _08079894 - ldr r1, _08079888 @ =0x040000D4 - ldr r0, _0807988C @ =0x02000400 - str r0, [r1] - lsls r0, r4, #0xb - ldr r2, _08079890 @ =0x06014400 - b _080798BE - .align 2, 0 -_08079888: .4byte 0x040000D4 -_0807988C: .4byte 0x02000400 -_08079890: .4byte 0x06014400 -_08079894: - cmp r3, #1 - bne _080798B0 - ldr r1, _080798A4 @ =0x040000D4 - ldr r0, _080798A8 @ =0x02000800 - str r0, [r1] - lsls r0, r4, #0xb - ldr r2, _080798AC @ =0x06014800 - b _080798BE - .align 2, 0 -_080798A4: .4byte 0x040000D4 -_080798A8: .4byte 0x02000800 -_080798AC: .4byte 0x06014800 -_080798B0: - cmp r3, #0 - bne _080798C8 - ldr r1, _080798D0 @ =0x040000D4 - ldr r0, _080798D4 @ =0x02000C00 - str r0, [r1] - lsls r0, r4, #0xb - ldr r2, _080798D8 @ =0x06014C00 -_080798BE: - adds r0, r0, r2 - str r0, [r1, #4] - ldr r0, _080798DC @ =0x840000E0 - str r0, [r1, #8] - ldr r0, [r1, #8] -_080798C8: - add sp, #8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080798D0: .4byte 0x040000D4 -_080798D4: .4byte 0x02000C00 -_080798D8: .4byte 0x06014C00 -_080798DC: .4byte 0x840000E0 - - thumb_func_start DisplayMessage -DisplayMessage: @ 0x080798E0 - push {r4, r5, r6, r7, lr} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r5, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r3, r1, #0x18 - movs r0, #0xfc - lsls r0, r0, #0x18 - adds r1, r1, r0 - lsrs r1, r1, #0x18 - cmp r1, #1 - bhi _08079964 - movs r2, #0x12 - ldr r0, _0807992C @ =gEventCounter - ldr r1, _08079930 @ =0x08575FA0 - ldrb r0, [r0] - ldr r7, _08079934 @ =0x0879CDF4 - ldr r6, _08079938 @ =0x03000011 - ldrb r4, [r1, #0x12] - cmp r0, r4 - beq _0807991C - adds r4, r1, #0 - adds r1, r0, #0 -_0807990E: - subs r2, #1 - cmp r2, #0 - beq _08079940 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r1, r0 - bne _0807990E -_0807991C: - cmp r2, #0 - beq _08079940 - ldr r1, _0807993C @ =0x08575FB4 - lsls r0, r2, #3 - adds r0, r0, r1 - ldrb r2, [r0, #4] - b _08079952 - .align 2, 0 -_0807992C: .4byte gEventCounter -_08079930: .4byte 0x08575FA0 -_08079934: .4byte 0x0879CDF4 -_08079938: .4byte 0x03000011 -_0807993C: .4byte 0x08575FB4 -_08079940: - ldr r1, _08079970 @ =gEquipment - ldrb r0, [r1, #0xd] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bhi _08079952 - ldrb r0, [r1, #0xd] - subs r2, r0, #1 -_08079952: - movs r0, #0 - ldrsb r0, [r6, r0] - lsls r0, r0, #2 - adds r0, r0, r7 - ldr r1, [r0] - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r0, [r0] - str r0, [sp, #4] -_08079964: - cmp r3, #7 - bne _08079978 - ldr r1, _08079974 @ =0x0000FFFF - movs r2, #0x80 - lsls r2, r2, #0x12 - b _08079980 - .align 2, 0 -_08079970: .4byte gEquipment -_08079974: .4byte 0x0000FFFF -_08079978: - cmp r3, #6 - bne _08079998 - ldr r1, _08079990 @ =0x0000FFFF - ldr r2, _08079994 @ =0x02000800 -_08079980: - movs r3, #0x80 - lsls r3, r3, #4 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl BitFill - b _08079A20 - .align 2, 0 -_08079990: .4byte 0x0000FFFF -_08079994: .4byte 0x02000800 -_08079998: - cmp r3, #5 - bne _080799A0 - movs r0, #1 - b _080799A6 -_080799A0: - cmp r3, #4 - bne _080799AE - movs r0, #2 -_080799A6: - add r1, sp, #4 - bl DrawLocationTextCharacters - b _08079A20 -_080799AE: - cmp r3, #3 - bne _080799CC - ldr r1, _080799C4 @ =0x040000D4 - movs r0, #0x80 - lsls r0, r0, #0x12 - str r0, [r1] - lsls r0, r5, #0xb - ldr r2, _080799C8 @ =0x06014000 - adds r0, r0, r2 - b _08079A18 - .align 2, 0 -_080799C4: .4byte 0x040000D4 -_080799C8: .4byte 0x06014000 -_080799CC: - cmp r3, #2 - bne _080799E8 - ldr r1, _080799DC @ =0x040000D4 - ldr r0, _080799E0 @ =0x02000400 - str r0, [r1] - lsls r0, r5, #0xb - ldr r4, _080799E4 @ =0x06014400 - b _08079A16 - .align 2, 0 -_080799DC: .4byte 0x040000D4 -_080799E0: .4byte 0x02000400 -_080799E4: .4byte 0x06014400 -_080799E8: - cmp r3, #1 - bne _08079A08 - ldr r1, _080799FC @ =0x040000D4 - ldr r0, _08079A00 @ =0x02000800 - str r0, [r1] - lsls r0, r5, #0xb - ldr r2, _08079A04 @ =0x06014800 - adds r0, r0, r2 - b _08079A18 - .align 2, 0 -_080799FC: .4byte 0x040000D4 -_08079A00: .4byte 0x02000800 -_08079A04: .4byte 0x06014800 -_08079A08: - cmp r3, #0 - bne _08079A20 - ldr r1, _08079A28 @ =0x040000D4 - ldr r0, _08079A2C @ =0x02000C00 - str r0, [r1] - lsls r0, r5, #0xb - ldr r4, _08079A30 @ =0x06014C00 -_08079A16: - adds r0, r0, r4 -_08079A18: - str r0, [r1, #4] - ldr r0, _08079A34 @ =0x840000E0 - str r0, [r1, #8] - ldr r0, [r1, #8] -_08079A20: - add sp, #8 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_08079A28: .4byte 0x040000D4 -_08079A2C: .4byte 0x02000C00 -_08079A30: .4byte 0x06014C00 -_08079A34: .4byte 0x840000E0 - - thumb_func_start ClearTextGraphics -ClearTextGraphics: @ 0x08079A38 - push {r4, r5, r6, lr} - sub sp, #4 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #1 - bne _08079A58 - ldr r0, _08079A54 @ =gNonGameplayRam - ldrb r0, [r0, #0x18] - movs r1, #3 - cmp r0, #0 - beq _08079A68 - movs r1, #5 - b _08079A68 - .align 2, 0 -_08079A54: .4byte gNonGameplayRam -_08079A58: - cmp r1, #2 - bne _08079A68 - ldr r0, _08079A70 @ =gNonGameplayRam - ldrb r0, [r0, #0x18] - movs r1, #4 - cmp r0, #0 - beq _08079A68 - movs r1, #6 -_08079A68: - cmp r1, #3 - bne _08079A78 - ldr r2, _08079A74 @ =0x06007000 - b _08079A92 - .align 2, 0 -_08079A70: .4byte gNonGameplayRam -_08079A74: .4byte 0x06007000 -_08079A78: - cmp r1, #4 - bne _08079A8C - ldr r6, _08079A84 @ =0x06007800 - ldr r2, _08079A88 @ =0x06007000 - b _08079AB0 - .align 2, 0 -_08079A84: .4byte 0x06007800 -_08079A88: .4byte 0x06007000 -_08079A8C: - cmp r1, #5 - bne _08079AA8 - ldr r2, _08079AA4 @ =0x06006000 -_08079A92: - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x20 - str r0, [sp] - movs r0, #3 - movs r1, #0 - bl BitFill - b _08079AEE - .align 2, 0 -_08079AA4: .4byte 0x06006000 -_08079AA8: - cmp r1, #6 - bne _08079ADC - ldr r6, _08079AD4 @ =0x06006800 - ldr r2, _08079AD8 @ =0x06006000 -_08079AB0: - movs r5, #0x80 - lsls r5, r5, #4 - movs r4, #0x20 - str r4, [sp] - movs r0, #3 - adds r1, r6, #0 - adds r3, r5, #0 - bl DmaTransfer - str r4, [sp] - movs r0, #3 - movs r1, #0 - adds r2, r6, #0 - adds r3, r5, #0 - bl BitFill - b _08079AEE - .align 2, 0 -_08079AD4: .4byte 0x06006800 -_08079AD8: .4byte 0x06006000 -_08079ADC: - ldr r2, _08079AF8 @ =0x06006000 - movs r3, #0x80 - lsls r3, r3, #6 - movs r0, #0x20 - str r0, [sp] - movs r0, #3 - movs r1, #0 - bl BitFill -_08079AEE: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_08079AF8: .4byte 0x06006000 - - thumb_func_start NavigationConversationProcessText -NavigationConversationProcessText: @ 0x08079AFC - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - sub sp, #4 - ldr r0, _08079B14 @ =gNonGameplayRam - ldrb r1, [r0, #0x17] - adds r5, r0, #0 - cmp r1, #0 - beq _08079B18 - ldrh r1, [r5, #4] - movs r0, #0x10 - b _08079B1C - .align 2, 0 -_08079B14: .4byte gNonGameplayRam -_08079B18: - ldrh r1, [r5, #4] - movs r0, #8 -_08079B1C: - ands r0, r1 - cmp r0, #0 - bne _08079B24 - b _0807A0EC -_08079B24: - ldrb r0, [r5, #0x18] - ldr r1, _08079B70 @ =0x06007000 - mov r8, r1 - cmp r0, #0 - beq _08079B32 - ldr r2, _08079B74 @ =0x06006000 - mov r8, r2 -_08079B32: - movs r7, #0 - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r4, r5, #0 - adds r4, #0xe - adds r2, r0, r4 - ldrh r1, [r2] - movs r0, #0xfc - lsls r0, r0, #8 - cmp r1, r0 - bne _08079B80 - ldr r0, _08079B78 @ =gChangedInput - ldrh r1, [r0] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - bne _08079B56 - b _0807A0EC -_08079B56: - ldr r0, _08079B7C @ =0x00000203 - bl SoundPlay - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r6, #0 - strh r7, [r0] - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r4, #4 - b _08079B94 - .align 2, 0 -_08079B70: .4byte 0x06007000 -_08079B74: .4byte 0x06006000 -_08079B78: .4byte gChangedInput -_08079B7C: .4byte 0x00000203 -_08079B80: - movs r0, #0xfe - lsls r0, r0, #8 - cmp r1, r0 - bne _08079BDA - movs r6, #0 - strh r7, [r2] - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r4, r5, #0 - adds r4, #0x12 -_08079B94: - adds r0, r0, r4 - ldrh r0, [r0] - cmp r0, #0xe0 - bls _08079BA2 - movs r0, #2 - bl ClearTextGraphics -_08079BA2: - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r1, #0xe0 - strh r1, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x36 - movs r1, #0xb - strb r1, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x34 - strb r6, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x35 - strb r6, [r0] - b _0807A0EC -_08079BDA: - movs r0, #0xfd - lsls r0, r0, #8 - cmp r1, r0 - bne _08079C48 - ldr r0, _08079C40 @ =gChangedInput - ldrh r1, [r0] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - bne _08079BF0 - b _0807A0EC -_08079BF0: - ldr r0, _08079C44 @ =0x00000203 - bl SoundPlay - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r0, r0, r4 - movs r4, #0 - strh r7, [r0] - movs r0, #1 - bl ClearTextGraphics - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x12 - adds r0, r0, r1 - strh r7, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x36 - movs r1, #0xb - strb r1, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x34 - strb r4, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x35 - strb r4, [r0] - b _0807A0EC - .align 2, 0 -_08079C40: .4byte gChangedInput -_08079C44: .4byte 0x00000203 -_08079C48: - ldr r0, _08079C60 @ =0x0000E001 - cmp r1, r0 - bne _08079C64 - ldrh r1, [r5, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - beq _08079C5C - b _0807A0EC -_08079C5C: - strh r7, [r2] - b _0807A0EC - .align 2, 0 -_08079C60: .4byte 0x0000E001 -_08079C64: - ldrb r0, [r5, #0x1f] - cmp r0, #0 - beq _08079C70 - subs r0, #1 - strb r0, [r5, #0x1f] - b _0807A0EC -_08079C70: - ldrb r0, [r5, #0x1a] - ldr r2, _08079CA8 @ =gButtonInput - cmp r0, #0 - beq _08079C84 - ldrh r1, [r2] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - bne _08079C84 - strb r7, [r5, #0x1a] -_08079C84: - ldrb r1, [r5, #0x18] - lsls r1, r1, #1 - adds r0, r5, #0 - adds r0, #0xe - adds r1, r1, r0 - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrh r1, [r2] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - beq _08079CAC - ldrb r0, [r5, #0x1a] - cmp r0, #0 - bne _08079CAC - movs r7, #1 - b _08079CC0 - .align 2, 0 -_08079CA8: .4byte gButtonInput -_08079CAC: - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0xe - adds r0, r0, r1 - ldrh r0, [r0] - ldrb r1, [r5, #0x1d] - cmp r0, r1 - bhs _08079CC0 - b _0807A0EC -_08079CC0: - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0xe - adds r0, r0, r1 - movs r1, #0 - strh r1, [r0] - movs r2, #0x88 - lsls r2, r2, #2 - adds r0, r5, r2 - ldrb r1, [r0] - subs r0, r1, #1 - lsls r3, r0, #1 - ldr r0, _08079D24 @ =gPreviousNavigationConversation - ldrb r0, [r0] - cmp r1, r0 - bne _08079CE4 - adds r3, #1 -_08079CE4: - ldr r1, _08079D28 @ =0x0879C0F0 - ldr r0, _08079D2C @ =0x03000011 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r6, [r0] - ldrh r0, [r5, #0xc] - lsls r1, r0, #1 - adds r6, r6, r1 - adds r0, #1 - strh r0, [r5, #0xc] -_08079D04: - movs r3, #0 - ldrh r0, [r6] - lsrs r1, r0, #0xc - movs r4, #0xff - lsls r4, r4, #8 - ands r4, r0 - subs r1, #8 - adds r2, r0, #0 - cmp r1, #7 - bls _08079D1A - b _08079F9C -_08079D1A: - lsls r0, r1, #2 - ldr r1, _08079D30 @ =_08079D34 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08079D24: .4byte gPreviousNavigationConversation -_08079D28: .4byte 0x0879C0F0 -_08079D2C: .4byte 0x03000011 -_08079D30: .4byte _08079D34 -_08079D34: @ jump table - .4byte _08079F2C @ case 0 - .4byte _08079F0C @ case 1 - .4byte _08079EEC @ case 2 - .4byte _08079E96 @ case 3 - .4byte _08079E90 @ case 4 - .4byte _08079F9C @ case 5 - .4byte _08079DCE @ case 6 - .4byte _08079D54 @ case 7 -_08079D54: - movs r0, #0xff - lsls r0, r0, #8 - cmp r2, r0 - bne _08079D60 - movs r0, #1 - b _08079DB8 -_08079D60: - movs r0, #0xfe - lsls r0, r0, #8 - cmp r2, r0 - bne _08079D78 -_08079D68: - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0xe - adds r0, r0, r1 - strh r2, [r0] -_08079D74: - movs r3, #1 - b _08079F9C -_08079D78: - movs r0, #0xfd - lsls r0, r0, #8 - cmp r2, r0 - beq _08079D88 - movs r0, #0xfc - lsls r0, r0, #8 - cmp r2, r0 - bne _08079DAC -_08079D88: - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0xe - adds r0, r0, r1 - strh r2, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x36 - movs r1, #3 - strb r1, [r0] - movs r0, #1 - strb r0, [r5, #0x1a] - movs r3, #2 - b _08079F9C -_08079DAC: - movs r0, #0xfb - lsls r0, r0, #8 - cmp r2, r0 - beq _08079DB6 - b _08079F9C -_08079DB6: - movs r0, #2 -_08079DB8: - strb r0, [r5, #0x1c] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x36 - movs r1, #3 - strb r1, [r0] - movs r3, #2 - b _08079F9C -_08079DCE: - movs r0, #0xe0 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079E00 - lsls r0, r2, #0x10 - lsrs r2, r0, #0x10 - cmp r2, r4 - bne _08079DF4 - ldrh r1, [r5, #4] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08079D74 - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - orrs r0, r1 - b _08079E82 -_08079DF4: - ldr r0, _08079DFC @ =0x0000E001 - cmp r2, r0 - bne _08079D74 - b _08079D68 - .align 2, 0 -_08079DFC: .4byte 0x0000E001 -_08079E00: - movs r0, #0xe1 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079E0C - strb r2, [r5, #0x1f] - b _08079D74 -_08079E0C: - movs r0, #0xe2 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079E5C - ldrh r1, [r6] - adds r0, #1 - cmp r1, r0 - bne _08079E2C - ldrh r0, [r5, #4] - movs r1, #2 - orrs r0, r1 - strh r0, [r5, #4] - movs r0, #1 - strb r0, [r5, #0x18] - strb r1, [r5, #0x19] - b _08079E56 -_08079E2C: - ldr r0, _08079E44 @ =0x0000E202 - cmp r1, r0 - bne _08079E48 - ldrh r1, [r5, #4] - movs r0, #4 - orrs r0, r1 - strh r0, [r5, #4] - movs r0, #1 - strb r0, [r5, #0x18] - movs r0, #2 - strb r0, [r5, #0x19] - b _08079E56 - .align 2, 0 -_08079E44: .4byte 0x0000E202 -_08079E48: - ldrh r0, [r5, #4] - movs r2, #1 - movs r1, #0 - orrs r0, r2 - strh r0, [r5, #4] - strb r1, [r5, #0x18] - strb r2, [r5, #0x19] -_08079E56: - ldrh r0, [r6] - strb r0, [r5, #0x17] - b _08079D74 -_08079E5C: - movs r0, #0xe3 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079D74 - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - cmp r1, r4 - bne _08079E74 - ldrh r1, [r5, #4] - movs r0, #0x40 - orrs r0, r1 - b _08079E82 -_08079E74: - ldr r0, _08079E88 @ =0x0000E301 - cmp r1, r0 - beq _08079E7C - b _08079D74 -_08079E7C: - ldrh r1, [r5, #4] - ldr r0, _08079E8C @ =0x0000FFBF - ands r0, r1 -_08079E82: - strh r0, [r5, #4] - b _08079D74 - .align 2, 0 -_08079E88: .4byte 0x0000E301 -_08079E8C: .4byte 0x0000FFBF -_08079E90: - movs r0, #6 - strb r0, [r5, #0x1c] - b _08079D74 -_08079E96: - lsls r0, r2, #0x10 - lsrs r1, r0, #0x10 - ldr r0, _08079EA8 @ =0x0000B001 - cmp r1, r0 - bne _08079EAC - movs r0, #0x99 - lsls r0, r0, #2 - adds r1, r5, r0 - b _08079EB8 - .align 2, 0 -_08079EA8: .4byte 0x0000B001 -_08079EAC: - ldr r0, _08079EC0 @ =0x0000B002 - cmp r1, r0 - bne _08079EC4 - movs r2, #0x99 - lsls r2, r2, #2 - adds r1, r5, r2 -_08079EB8: - movs r0, #1 - strb r0, [r1] - b _08079D74 - .align 2, 0 -_08079EC0: .4byte 0x0000B002 -_08079EC4: - ldr r0, _08079EE8 @ =0x0000B003 - cmp r1, r0 - bne _08079F9C - ldrb r0, [r5, #0x1c] - cmp r0, #5 - beq _08079F9A - cmp r0, #3 - beq _08079F9A - movs r0, #0x2a - movs r1, #2 - bl PlayMusic - movs r0, #0 - movs r1, #0xb - bl SoundEventUpdate - b _08079F9A - .align 2, 0 -_08079EE8: .4byte 0x0000B003 -_08079EEC: - ldr r1, _08079F04 @ =0x00000221 - adds r0, r5, r1 - ldrb r0, [r0] - rsbs r1, r0, #0 - orrs r1, r0 - ldr r0, _08079F08 @ =0x00000FFF - ands r0, r2 - lsrs r1, r1, #0x1f - bl unk_3c14 - b _08079F9A - .align 2, 0 -_08079F04: .4byte 0x00000221 -_08079F08: .4byte 0x00000FFF -_08079F0C: - ldr r1, _08079F24 @ =0x00000221 - adds r0, r5, r1 - ldrb r0, [r0] - rsbs r1, r0, #0 - orrs r1, r0 - ldr r0, _08079F28 @ =0x00000FFF - ands r0, r2 - lsrs r1, r1, #0x1f - bl unk_3bd4 - b _08079F9A - .align 2, 0 -_08079F24: .4byte 0x00000221 -_08079F28: .4byte 0x00000FFF -_08079F2C: - movs r0, #0x80 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079F46 - ldrb r1, [r5, #0x18] - lsls r1, r1, #1 - adds r0, r5, #0 - adds r0, #0x12 - adds r1, r1, r0 - movs r0, #0xff - ands r0, r2 - ldrh r2, [r1] - b _08079F96 -_08079F46: - movs r0, #0x81 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079F52 - strb r2, [r5, #0x1e] - b _08079F9A -_08079F52: - movs r0, #0x82 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079F68 - strb r2, [r5, #0x1d] - lsls r0, r2, #0x18 - cmp r0, #0 - bne _08079F9A - movs r0, #8 - strb r0, [r5, #0x1d] - b _08079F9A -_08079F68: - movs r0, #0x83 - lsls r0, r0, #8 - cmp r4, r0 - bne _08079F9A - ldrb r0, [r5, #0x18] - lsls r0, r0, #1 - adds r1, r5, #0 - adds r1, #0x12 - adds r1, r0, r1 - ldrh r0, [r1] - cmp r0, #0xdf - bls _08079F84 - movs r0, #0xe0 - b _08079F86 -_08079F84: - movs r0, #0 -_08079F86: - strh r0, [r1] - ldrb r1, [r5, #0x18] - lsls r1, r1, #1 - adds r0, r5, #0 - adds r0, #0x12 - adds r1, r1, r0 - ldrh r0, [r1] - ldrb r2, [r6] -_08079F96: - adds r0, r0, r2 - strh r0, [r1] -_08079F9A: - movs r3, #3 -_08079F9C: - cmp r3, #3 - bne _08079FB4 - ldr r1, _08079FB0 @ =gNonGameplayRam - ldrh r0, [r1, #0xc] - adds r0, #1 - strh r0, [r1, #0xc] - adds r6, #2 - adds r5, r1, #0 - b _08079D04 - .align 2, 0 -_08079FB0: .4byte gNonGameplayRam -_08079FB4: - cmp r3, #2 - bne _08079FE0 - ldr r2, _08079FDC @ =gNonGameplayRam - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x34 - movs r3, #0 - strb r3, [r0] - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x35 - strb r3, [r0] - b _0807A0EC - .align 2, 0 -_08079FDC: .4byte gNonGameplayRam -_08079FE0: - cmp r3, #1 - bne _08079FE6 - b _0807A0EC -_08079FE6: - ldrh r0, [r6] - bl GetCharacterWidth - ldr r4, _0807A01C @ =gNonGameplayRam - strb r0, [r4, #0x16] - ldrb r0, [r4, #0x18] - lsls r0, r0, #1 - adds r5, r4, #0 - adds r5, #0x12 - adds r2, r0, r5 - ldrh r1, [r2] - ldrb r0, [r4, #0x16] - adds r3, r1, r0 - movs r0, #0xe0 - lsls r0, r0, #1 - cmp r3, r0 - ble _0807A020 - movs r0, #2 - bl ClearTextGraphics - ldrb r0, [r4, #0x18] - lsls r0, r0, #1 - adds r0, r0, r5 - movs r1, #0xe0 - strh r1, [r0] - b _0807A02C - .align 2, 0 -_0807A01C: .4byte gNonGameplayRam -_0807A020: - cmp r3, #0xe0 - ble _0807A02C - cmp r1, #0xdf - bhi _0807A02C - movs r0, #0xe0 - strh r0, [r2] -_0807A02C: - ldr r0, _0807A098 @ =gNonGameplayRam - ldrb r1, [r0, #0x18] - lsls r1, r1, #1 - adds r2, r0, #0 - adds r2, #0x12 - adds r1, r1, r2 - ldrh r2, [r1] - adds r5, r0, #0 - cmp r2, #0 - beq _0807A044 - cmp r2, #0xe0 - bne _0807A046 -_0807A044: - strh r2, [r1] -_0807A046: - adds r4, r5, #0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r1, r0, r1 - ldrh r3, [r1] - cmp r3, #0xdf - bls _0807A060 - movs r0, #0x80 - lsls r0, r0, #4 - add r8, r0 - subs r3, #0xe0 -_0807A060: - asrs r0, r3, #3 - lsls r3, r0, #5 - add r8, r3 - ldrh r1, [r1] - movs r3, #7 - ldrh r0, [r6] - ldrb r2, [r4, #0x16] - ands r3, r1 - ldrb r1, [r4, #0x1e] - str r1, [sp] - mov r1, r8 - bl DrawCharacter - cmp r7, #0 - bne _0807A0BA - ldrh r0, [r6] - cmp r0, #0x40 - beq _0807A0BA - ldrb r0, [r4, #0x17] - cmp r0, #1 - bne _0807A09C - ldrh r0, [r6] - movs r1, #0x21 - bl PlayCharacterAppearingSound - movs r0, #2 - strb r0, [r4, #0x1b] - b _0807A0BA - .align 2, 0 -_0807A098: .4byte gNonGameplayRam -_0807A09C: - cmp r0, #2 - bne _0807A0AE - ldrh r0, [r6] - movs r1, #0x41 - bl PlayCharacterAppearingSound - movs r0, #3 - strb r0, [r4, #0x1b] - b _0807A0BA -_0807A0AE: - ldrh r0, [r6] - movs r1, #1 - bl PlayCharacterAppearingSound - movs r0, #1 - strb r0, [r5, #0x1b] -_0807A0BA: - movs r3, #1 - ldrh r2, [r6, #2] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r2 - cmp r0, #0 - beq _0807A0D4 - movs r1, #0xf0 - lsls r1, r1, #8 - bics r1, r2 - rsbs r0, r1, #0 - orrs r0, r1 - lsrs r3, r0, #0x1f -_0807A0D4: - cmp r3, #0 - beq _0807A0EC - ldr r2, _0807A0F8 @ =gNonGameplayRam - ldrb r1, [r2, #0x18] - lsls r1, r1, #1 - adds r0, r2, #0 - adds r0, #0x12 - adds r1, r1, r0 - ldrh r0, [r1] - ldrb r2, [r2, #0x16] - adds r0, r0, r2 - strh r0, [r1] -_0807A0EC: - add sp, #4 - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807A0F8: .4byte gNonGameplayRam - - thumb_func_start unk_7a0fc -unk_7a0fc: @ 0x0807A0FC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - lsls r0, r0, #0x18 - lsrs r3, r0, #0x18 - ldr r2, _0807A120 @ =gNonGameplayRam - ldrh r1, [r2, #4] - movs r0, #8 - ands r0, r1 - mov ip, r2 - cmp r0, #0 - bne _0807A124 - movs r0, #0 - b _0807A2C2 - .align 2, 0 -_0807A120: .4byte gNonGameplayRam -_0807A124: - movs r0, #0 - mov sl, r0 - mov sb, r0 - lsls r3, r3, #2 - str r3, [sp, #4] - mov r5, ip - mov r6, ip - adds r6, #0x21 - movs r1, #0x20 - add r1, ip - mov r8, r1 -_0807A13A: - ldr r1, _0807A174 @ =0x0879CDF4 - ldr r0, _0807A178 @ =0x03000011 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r2, [sp, #4] - adds r0, r2, r0 - adds r0, #0xac - ldr r4, [r0] - ldr r7, _0807A17C @ =0x06007000 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r4, r4, r0 - ldrh r1, [r4] - adds r3, r1, #0 - movs r0, #0xfe - lsls r0, r0, #8 - cmp r3, r0 - bne _0807A180 - movs r0, #0 - mov r1, r8 - strb r0, [r1] - movs r0, #0xe0 - mov r2, ip - b _0807A1D2 - .align 2, 0 -_0807A174: .4byte 0x0879CDF4 -_0807A178: .4byte 0x03000011 -_0807A17C: .4byte 0x06007000 -_0807A180: - movs r2, #0xff - lsls r2, r2, #8 - adds r0, r2, #0 - ands r1, r0 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r1, r0 - bne _0807A1A0 - movs r0, #0 - mov r1, r8 - strb r0, [r1] - ldrh r0, [r5, #0x22] - ldrb r4, [r4] - adds r0, r0, r4 - strh r0, [r5, #0x22] - b _0807A1D4 -_0807A1A0: - movs r0, #0x83 - lsls r0, r0, #8 - cmp r1, r0 - bne _0807A1E0 - movs r1, #0 - mov r2, r8 - strb r1, [r2] - ldrh r0, [r5, #0x22] - cmp r0, #0xdf - bls _0807A1BA - movs r0, #0xe0 - strh r0, [r5, #0x22] - b _0807A1BC -_0807A1BA: - strh r1, [r5, #0x22] -_0807A1BC: - ldrb r1, [r4] - mov r2, ip - ldrh r0, [r2, #0x22] - adds r3, r0, r1 - strh r3, [r2, #0x22] - ldrh r1, [r4] - ldr r0, _0807A1DC @ =0x000083A0 - cmp r1, r0 - bne _0807A1D4 - adds r0, r3, #0 - subs r0, #0x10 -_0807A1D2: - strh r0, [r2, #0x22] -_0807A1D4: - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - b _0807A13A - .align 2, 0 -_0807A1DC: .4byte 0x000083A0 -_0807A1E0: - mov r0, sb - cmp r0, #0 - bne _0807A22E - cmp r3, #0x40 - beq _0807A228 - ldrh r0, [r5, #0x22] - cmp r0, #0xdf - bhi _0807A228 - ldrb r0, [r5, #0x1a] - ldr r2, _0807A2D4 @ =gButtonInput - cmp r0, #0 - beq _0807A206 - ldrh r1, [r2] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - bne _0807A206 - mov r1, sb - strb r1, [r5, #0x1a] -_0807A206: - mov r1, r8 - ldrb r0, [r1] - adds r3, r0, #1 - strb r3, [r1] - ldrh r1, [r2] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - beq _0807A220 - mov r2, ip - ldrb r0, [r2, #0x1a] - cmp r0, #0 - beq _0807A228 -_0807A220: - lsls r0, r3, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0807A2C0 -_0807A228: - movs r0, #0 - mov r1, r8 - strb r0, [r1] -_0807A22E: - ldrh r0, [r4] - bl GetCharacterWidth - ldr r2, _0807A2D8 @ =gNonGameplayRam - strb r0, [r2, #0x16] - ldrh r1, [r2, #0x22] - ldrb r0, [r2, #0x16] - adds r0, r1, r0 - cmp r0, #0xe0 - ble _0807A24A - cmp r1, #0xdf - bhi _0807A24A - movs r0, #0xe0 - strh r0, [r2, #0x22] -_0807A24A: - ldr r1, _0807A2D8 @ =gNonGameplayRam - ldrh r0, [r1, #0x22] - cmp r0, #0 - beq _0807A256 - cmp r0, #0xe0 - bne _0807A258 -_0807A256: - strh r0, [r1, #0x22] -_0807A258: - ldrh r0, [r4] - cmp r0, #0x40 - beq _0807A292 - movs r1, #1 - bl PlayCharacterAppearingSound - ldr r2, _0807A2D8 @ =gNonGameplayRam - ldrh r0, [r2, #0x22] - cmp r0, #0xdf - bls _0807A278 - movs r1, #1 - mov sb, r1 - movs r1, #0x80 - lsls r1, r1, #4 - adds r7, r7, r1 - subs r0, #0xe0 -_0807A278: - asrs r0, r0, #3 - lsls r0, r0, #5 - adds r7, r7, r0 - ldrh r1, [r2, #0x22] - movs r3, #7 - ldrh r0, [r4] - ldrb r2, [r2, #0x16] - ands r3, r1 - movs r1, #0 - str r1, [sp] - adds r1, r7, #0 - bl DrawCharacter -_0807A292: - ldrh r0, [r5, #0x22] - ldrb r2, [r5, #0x16] - adds r0, r0, r2 - strh r0, [r5, #0x22] - ldrb r0, [r6] - adds r0, #1 - strb r0, [r6] - ldrh r0, [r4, #2] - ldr r1, _0807A2D8 @ =gNonGameplayRam - mov ip, r1 - movs r2, #0xff - lsls r2, r2, #8 - cmp r0, r2 - bne _0807A2B2 - movs r0, #1 - mov sl, r0 -_0807A2B2: - mov r1, sb - cmp r1, #0 - beq _0807A2C0 - mov r2, sl - cmp r2, #0 - bne _0807A2C0 - b _0807A13A -_0807A2C0: - mov r0, sl -_0807A2C2: - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807A2D4: .4byte gButtonInput -_0807A2D8: .4byte gNonGameplayRam - - thumb_func_start NavigationConversationGetCurrentConversation -NavigationConversationGetCurrentConversation: @ 0x0807A2DC - push {r4, r5, lr} - ldr r0, _0807A330 @ =gEventCounter - ldrb r2, [r0] - ldr r3, _0807A334 @ =0x08575A60 - ldr r4, _0807A338 @ =gNonGameplayRam - ldr r5, _0807A33C @ =gPreviousNavigationConversation - cmp r2, #0 - ble _0807A310 - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r1, r0, #2 - adds r0, r1, r3 - ldrb r0, [r0, #6] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0807A310 - adds r1, r1, r3 -_0807A300: - subs r1, #0xc - subs r2, #1 - cmp r2, #0 - ble _0807A310 - movs r0, #6 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0807A300 -_0807A310: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r3 - ldrb r1, [r0, #6] - movs r2, #0x88 - lsls r2, r2, #2 - adds r0, r4, r2 - strb r1, [r0] - ldrb r5, [r5] - cmp r1, r5 - bne _0807A344 - ldr r3, _0807A340 @ =0x00000221 - adds r1, r4, r3 - movs r0, #1 - b _0807A34A - .align 2, 0 -_0807A330: .4byte gEventCounter -_0807A334: .4byte 0x08575A60 -_0807A338: .4byte gNonGameplayRam -_0807A33C: .4byte gPreviousNavigationConversation -_0807A340: .4byte 0x00000221 -_0807A344: - ldr r0, _0807A394 @ =0x00000221 - adds r1, r4, r0 - movs r0, #0 -_0807A34A: - strb r0, [r1] - movs r0, #0 - bl ClearTextGraphics - movs r0, #1 - bl NavigationConversationUpdateTarget - bl NavigationConversationSetupOam - ldr r0, _0807A398 @ =gNonGameplayRam - movs r2, #0x8e - lsls r2, r2, #2 - adds r1, r0, r2 - movs r2, #0 - strb r2, [r1] - ldr r3, _0807A39C @ =0x00000239 - adds r1, r0, r3 - strb r2, [r1] - adds r3, #3 - adds r1, r0, r3 - strb r2, [r1] - adds r3, #1 - adds r1, r0, r3 - strb r2, [r1] - adds r3, #0x13 - adds r1, r0, r3 - strb r2, [r1] - adds r3, #1 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _0807A3A0 @ =0x00000252 - adds r0, r0, r1 - strb r2, [r0] - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807A394: .4byte 0x00000221 -_0807A398: .4byte gNonGameplayRam -_0807A39C: .4byte 0x00000239 -_0807A3A0: .4byte 0x00000252 - - thumb_func_start NavigationConversationHandler -NavigationConversationHandler: @ 0x0807A3A4 - push {r4, r5, r6, r7, lr} - bl unk_7b674 - bl NavigationConversionScrollToTarget - bl unk_7b56c - bl NavigationConversationUpdatePanel - bl unk_78c44 - movs r7, #0 - ldr r0, _0807A3D4 @ =gNonGameplayRam - ldrb r0, [r0, #7] - cmp r0, #0x15 - bls _0807A3C8 - bl _0807AE42 -_0807A3C8: - lsls r0, r0, #2 - ldr r1, _0807A3D8 @ =_0807A3DC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807A3D4: .4byte gNonGameplayRam -_0807A3D8: .4byte _0807A3DC -_0807A3DC: @ jump table - .4byte _0807A434 @ case 0 - .4byte _0807A468 @ case 1 - .4byte _0807A51A @ case 2 - .4byte _0807A6C0 @ case 3 - .4byte _0807A700 @ case 4 - .4byte _0807A718 @ case 5 - .4byte _0807A76C @ case 6 - .4byte _0807A79E @ case 7 - .4byte _0807A7B0 @ case 8 - .4byte _0807A890 @ case 9 - .4byte _0807A938 @ case 10 - .4byte _0807AA2A @ case 11 - .4byte _0807AA48 @ case 12 - .4byte _0807AA84 @ case 13 - .4byte _0807AAE0 @ case 14 - .4byte _0807AB14 @ case 15 - .4byte _0807AB40 @ case 16 - .4byte _0807ABB4 @ case 17 - .4byte _0807AC28 @ case 18 - .4byte _0807ACAE @ case 19 - .4byte _0807AD6C @ case 20 - .4byte _0807ADE8 @ case 21 -_0807A434: - ldr r4, _0807A454 @ =gNonGameplayRam - movs r0, #0 - strb r0, [r4, #6] - bl NavigationConversationSetupOam - ldr r1, _0807A458 @ =0x00000221 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A45C - movs r0, #4 - strb r0, [r4, #0x1c] - movs r0, #0x11 - strb r0, [r4, #7] - bl _0807AE42 - .align 2, 0 -_0807A454: .4byte gNonGameplayRam -_0807A458: .4byte 0x00000221 -_0807A45C: - strb r0, [r4, #0x1c] - ldrb r0, [r4, #7] - adds r0, #1 - strb r0, [r4, #7] - bl _0807AE42 -_0807A468: - ldr r1, _0807A4D4 @ =gNonGameplayRam - movs r2, #0x9a - lsls r2, r2, #2 - adds r3, r1, r2 - ldrh r2, [r3] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - movs r5, #0 - orrs r0, r2 - strh r0, [r3] - movs r2, #1 - strb r2, [r1, #9] - strb r2, [r1, #0xb] - movs r0, #8 - strb r0, [r1, #0x1d] - strb r5, [r1, #0x1e] - strb r5, [r1, #0x1f] - movs r3, #0x88 - lsls r3, r3, #2 - adds r0, r1, r3 - ldrb r0, [r0] - subs r0, #1 - lsls r3, r0, #1 - ldr r4, _0807A4D8 @ =0x00000221 - adds r0, r1, r4 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0 - beq _0807A4A6 - adds r3, #1 -_0807A4A6: - ldr r1, _0807A4DC @ =0x0879C0F0 - ldr r0, _0807A4E0 @ =0x03000011 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r3, [r0] - ldr r0, _0807A4E4 @ =0x0000E201 - cmp r3, r0 - bne _0807A4E8 - ldrh r0, [r4, #4] - movs r1, #2 - orrs r0, r1 - strh r0, [r4, #4] - strb r2, [r4, #0x18] - strb r1, [r4, #0x19] - strb r2, [r4, #0x17] - b _0807A512 - .align 2, 0 -_0807A4D4: .4byte gNonGameplayRam -_0807A4D8: .4byte 0x00000221 -_0807A4DC: .4byte 0x0879C0F0 -_0807A4E0: .4byte 0x03000011 -_0807A4E4: .4byte 0x0000E201 -_0807A4E8: - ldr r0, _0807A500 @ =0x0000E202 - cmp r3, r0 - bne _0807A504 - ldrh r0, [r4, #4] - movs r1, #4 - orrs r0, r1 - strh r0, [r4, #4] - strb r2, [r4, #0x18] - movs r0, #2 - strb r0, [r4, #0x19] - strb r0, [r4, #0x17] - b _0807A512 - .align 2, 0 -_0807A500: .4byte 0x0000E202 -_0807A504: - ldrh r0, [r4, #4] - movs r1, #1 - orrs r0, r1 - strh r0, [r4, #4] - strb r5, [r4, #0x18] - strb r1, [r4, #0x19] - strb r5, [r4, #0x17] -_0807A512: - ldrb r0, [r4, #7] - adds r0, #1 - movs r1, #0 - b _0807AC3E -_0807A51A: - ldr r1, _0807A584 @ =gNonGameplayRam - movs r0, #0 - strb r0, [r1, #0x1b] - ldrb r0, [r1, #0x1c] - adds r4, r1, #0 - cmp r0, #1 - bne _0807A5B8 - ldr r0, _0807A588 @ =gChangedInput - ldrh r1, [r0] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - beq _0807A590 - ldrh r1, [r4, #4] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0807A59C - ldr r1, _0807A58C @ =0x00000241 - adds r0, r4, r1 - ldrb r5, [r0] - cmp r5, #0 - bne _0807A590 - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x36 - strb r5, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x34 - strb r5, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x35 - strb r5, [r0] - movs r0, #0 - bl ClearTextGraphics - movs r0, #3 - strb r0, [r4, #7] - strb r5, [r4, #6] - bl _0807AE42 - .align 2, 0 -_0807A584: .4byte gNonGameplayRam -_0807A588: .4byte gChangedInput -_0807A58C: .4byte 0x00000241 -_0807A590: - ldrh r1, [r4, #4] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807A5F2 -_0807A59C: - ldrh r1, [r4, #4] - movs r2, #0x80 - lsls r2, r2, #3 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807A5AE - bl _0807AE42 -_0807A5AE: - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r4, #4] - bl _0807AE42 -_0807A5B8: - cmp r0, #2 - bne _0807A5E6 - ldrh r1, [r4, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - bne _0807A5F2 - adds r0, r4, #0 - adds r0, #0x24 - strb r1, [r0] - adds r2, r4, #0 - adds r2, #0x25 - movs r0, #1 - strb r0, [r2] - strb r0, [r4, #0x1a] - strb r1, [r4, #0x1b] - movs r0, #8 - strb r0, [r4, #7] - strb r1, [r4, #6] - b _0807A5F2 -_0807A5E6: - cmp r0, #6 - bne _0807A5EE - movs r7, #1 - b _0807A5F2 -_0807A5EE: - bl NavigationConversationProcessText -_0807A5F2: - ldr r3, _0807A628 @ =gNonGameplayRam - ldrb r0, [r3, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - adds r0, r1, #0 - adds r0, #0x36 - ldrb r0, [r0] - cmp r0, #3 - bne _0807A630 - movs r0, #0x74 - strh r0, [r1, #0x2e] - ldrb r0, [r3, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, _0807A62C @ =0x085766E0 - ldrb r0, [r3, #0x18] - lsls r0, r0, #1 - adds r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1, #0x2c] - bl _0807AE42 - .align 2, 0 -_0807A628: .4byte gNonGameplayRam -_0807A62C: .4byte 0x085766E0 -_0807A630: - movs r2, #0 - strh r2, [r1, #0x2e] - ldrb r1, [r3, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - strh r2, [r0, #0x2c] - ldrb r0, [r3, #0x18] - lsls r0, r0, #1 - adds r1, r3, #0 - adds r1, #0x12 - adds r0, r0, r1 - ldrh r2, [r0] - cmp r2, #0xdf - bls _0807A68C - ldrb r1, [r3, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - ldr r4, _0807A684 @ =0x0000FF28 - adds r1, r2, r4 - ldrh r2, [r0, #0x2e] - adds r1, r1, r2 - strh r1, [r0, #0x2e] - ldrb r0, [r3, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r3 - ldr r2, _0807A688 @ =0x085766E0 - ldrb r0, [r3, #0x18] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r0, #0x10 - ldrh r3, [r1, #0x2c] - adds r0, r0, r3 - strh r0, [r1, #0x2c] - bl _0807AE42 - .align 2, 0 -_0807A684: .4byte 0x0000FF28 -_0807A688: .4byte 0x085766E0 -_0807A68C: - ldrb r1, [r3, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r3 - adds r1, r2, #0 - adds r1, #8 - ldrh r4, [r0, #0x2e] - adds r1, r1, r4 - strh r1, [r0, #0x2e] - ldrb r0, [r3, #0x19] - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r0, _0807A6BC @ =0x085766E0 - ldrb r1, [r3, #0x18] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrh r0, [r2, #0x2c] - ldrb r1, [r1] - adds r0, r0, r1 - strh r0, [r2, #0x2c] - b _0807AE42 - .align 2, 0 -_0807A6BC: .4byte 0x085766E0 -_0807A6C0: - ldr r1, _0807A6F4 @ =gNonGameplayRam - movs r0, #0 - strb r0, [r1, #0x1b] - movs r2, #0x88 - lsls r2, r2, #2 - adds r0, r1, r2 - ldr r2, _0807A6F8 @ =gPreviousNavigationConversation - ldrb r0, [r0] - ldrb r3, [r2] - cmp r0, r3 - beq _0807A6E6 - strb r0, [r2] - ldr r4, _0807A6FC @ =0x00000221 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0807A6E6 - bl SoundEventUpdateForNavConversation -_0807A6E6: - ldr r0, _0807A6F4 @ =gNonGameplayRam - ldrb r1, [r0, #7] - adds r1, #1 - movs r2, #0 - strb r1, [r0, #7] - strb r2, [r0, #6] - b _0807AE42 - .align 2, 0 -_0807A6F4: .4byte gNonGameplayRam -_0807A6F8: .4byte gPreviousNavigationConversation -_0807A6FC: .4byte 0x00000221 -_0807A700: - ldr r2, _0807A714 @ =gNonGameplayRam - ldrb r0, [r2, #6] - cmp r0, #8 - bhi _0807A70A - b _0807AE42 -_0807A70A: - ldrb r0, [r2, #7] - adds r0, #1 - movs r1, #0 - b _0807A798 - .align 2, 0 -_0807A714: .4byte gNonGameplayRam -_0807A718: - ldr r3, _0807A768 @ =gNonGameplayRam - movs r0, #0x9a - lsls r0, r0, #2 - adds r2, r3, r0 - ldrh r0, [r2] - movs r4, #0x80 - lsls r4, r4, #1 - adds r1, r4, #0 - eors r0, r1 - strh r0, [r2] - ldrh r1, [r3, #4] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0807A73C - movs r0, #0x40 - eors r0, r1 - strh r0, [r3, #4] -_0807A73C: - ldrh r1, [r3, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807A74C - movs r0, #8 - eors r0, r1 - strh r0, [r3, #4] -_0807A74C: - ldrh r1, [r3, #4] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807A75C - movs r0, #0x10 - eors r0, r1 - strh r0, [r3, #4] -_0807A75C: - ldrb r0, [r3, #7] - adds r0, #1 - strb r0, [r3, #7] - movs r0, #0 - strb r0, [r3, #6] - b _0807AE42 - .align 2, 0 -_0807A768: .4byte gNonGameplayRam -_0807A76C: - ldr r2, _0807A790 @ =gNonGameplayRam - ldrh r1, [r2, #4] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807A78C - movs r0, #2 - ands r0, r1 - cmp r0, #0 - bne _0807A78C - movs r0, #4 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - cmp r1, #0 - beq _0807A794 -_0807A78C: - movs r0, #0 - b _0807AE44 - .align 2, 0 -_0807A790: .4byte gNonGameplayRam -_0807A794: - ldrb r0, [r2, #7] - adds r0, #1 -_0807A798: - strb r0, [r2, #7] - strb r1, [r2, #6] - b _0807AE42 -_0807A79E: - movs r7, #1 - ldr r1, _0807A7AC @ =gNonGameplayRam - movs r0, #0 - strb r0, [r1, #7] - strb r0, [r1, #6] - b _0807AE42 - .align 2, 0 -_0807A7AC: .4byte gNonGameplayRam -_0807A7B0: - ldr r5, _0807A818 @ =gNonGameplayRam - adds r6, r5, #0 - adds r6, #0x24 - ldrb r4, [r6] - cmp r4, #0 - bne _0807A824 - ldr r0, _0807A81C @ =gChangedInput - ldrh r1, [r0] - movs r0, #0x83 - ands r0, r1 - cmp r0, #0 - bne _0807A7CA - b _0807AE42 -_0807A7CA: - ldr r0, _0807A820 @ =0x00000203 - bl SoundPlay - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x36 - strb r4, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x34 - strb r4, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x35 - strb r4, [r0] - movs r0, #1 - bl ClearTextGraphics - movs r0, #1 - strb r0, [r6] - movs r0, #3 - strb r0, [r5, #0x1c] - adds r0, r5, #0 - adds r0, #0x20 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - strh r4, [r5, #0x22] - b _0807AE42 - .align 2, 0 -_0807A818: .4byte gNonGameplayRam -_0807A81C: .4byte gChangedInput -_0807A820: .4byte 0x00000203 -_0807A824: - cmp r4, #2 - bne _0807A832 - movs r1, #0 - movs r0, #9 - strb r0, [r5, #7] - strb r1, [r5, #6] - b _0807AE42 -_0807A832: - movs r0, #0 - bl unk_7a0fc - cmp r0, #0 - bne _0807A83E - b _0807AE42 -_0807A83E: - movs r3, #0 - movs r2, #2 - strb r2, [r6] - movs r0, #1 - strb r0, [r5, #0x1a] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x36 - strb r2, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x34 - strb r3, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x35 - strb r3, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x8c - strh r1, [r0, #0x2c] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - movs r1, #0x34 - strh r1, [r0, #0x2e] - b _0807AE42 -_0807A890: - movs r3, #0 - ldr r2, _0807A8C8 @ =gNonGameplayRam - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r5, #0 - movs r1, #0x8c - strh r1, [r0, #0x2c] - ldr r0, _0807A8CC @ =gChangedInput - ldrh r1, [r0] - movs r0, #0x20 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0807A8D0 - adds r5, r4, #0 - adds r5, #0x25 - ldrb r0, [r5] - movs r2, #1 - eors r0, r2 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r3, r1, #0x1f - strb r2, [r5] - b _0807A8F8 - .align 2, 0 -_0807A8C8: .4byte gNonGameplayRam -_0807A8CC: .4byte gChangedInput -_0807A8D0: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807A8E8 - adds r1, r4, #0 - adds r1, #0x25 - ldrb r0, [r1] - cmp r0, #0 - beq _0807A8E4 - movs r3, #1 -_0807A8E4: - strb r5, [r1] - b _0807A8F8 -_0807A8E8: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807A8F8 - movs r3, #2 - movs r0, #0xa - strb r0, [r4, #7] - strb r5, [r4, #6] -_0807A8F8: - adds r0, r4, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A910 - ldrb r0, [r4, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r0, #0x34 - b _0807A91C -_0807A910: - ldrb r0, [r4, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r0, #0x84 -_0807A91C: - strh r0, [r1, #0x2e] - cmp r3, #1 - bne _0807A924 - b _0807AD3E -_0807A924: - cmp r3, #2 - beq _0807A92A - b _0807AE42 -_0807A92A: - adds r0, r4, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A936 - b _0807AD56 -_0807A936: - b _0807AD60 -_0807A938: - ldr r2, _0807A994 @ =gNonGameplayRam - ldrh r1, [r2, #4] - movs r0, #0xc0 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - bne _0807AA18 - movs r0, #0x10 - strb r0, [r4, #7] - adds r0, r4, #0 - adds r0, #0x25 - ldrb r2, [r0] - cmp r2, #0 - bne _0807A9DA - ldr r0, _0807A998 @ =0x03000031 - ldrb r1, [r0] - movs r3, #0x84 - lsls r3, r3, #2 - adds r0, r4, r3 - strb r1, [r0] - ldr r0, _0807A99C @ =0x03000032 - ldrb r1, [r0] - adds r3, #1 - adds r0, r4, r3 - strb r1, [r0] - ldr r1, _0807A9A0 @ =0x00000212 - adds r0, r4, r1 - ldr r1, _0807A9A4 @ =gCurrentArea - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - beq _0807A9A8 - movs r0, #0xb - strb r0, [r4, #7] - subs r3, #0x5b - adds r0, r4, r3 - strb r2, [r0] - movs r1, #0xda - lsls r1, r1, #1 - adds r0, r4, r1 - strb r2, [r0] - subs r3, #1 - adds r0, r4, r3 - strb r2, [r0] - b _0807A9B8 - .align 2, 0 -_0807A994: .4byte gNonGameplayRam -_0807A998: .4byte 0x03000031 -_0807A99C: .4byte 0x03000032 -_0807A9A0: .4byte 0x00000212 -_0807A9A4: .4byte gCurrentArea -_0807A9A8: - movs r1, #0xd5 - lsls r1, r1, #1 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0807A9B8 - movs r0, #0xf - strb r0, [r4, #7] -_0807A9B8: - movs r2, #0xd5 - lsls r2, r2, #1 - adds r0, r4, r2 - movs r1, #0 - strb r1, [r0] - movs r3, #0xd4 - lsls r3, r3, #1 - adds r0, r4, r3 - strb r1, [r0] - subs r2, #1 - adds r0, r4, r2 - strb r1, [r0] - movs r2, #0 - strh r1, [r4, #0xc] - adds r3, #0x71 - adds r0, r4, r3 - strb r2, [r0] -_0807A9DA: - movs r0, #1 - bl ClearTextGraphics - ldr r2, _0807AA14 @ =gNonGameplayRam - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x36 - movs r3, #0 - strb r3, [r0] - movs r0, #1 - strb r0, [r2, #0x1a] - ldrb r0, [r2, #0x18] - lsls r0, r0, #1 - adds r1, r2, #0 - adds r1, #0x12 - adds r0, r0, r1 - movs r4, #0 - strh r3, [r0] - ldrb r0, [r2, #0x18] - lsls r0, r0, #1 - subs r1, #4 - adds r0, r0, r1 - strh r3, [r0] - strb r4, [r2, #0x1c] - b _0807AE40 - .align 2, 0 -_0807AA14: .4byte gNonGameplayRam -_0807AA18: - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - bne _0807AA22 - b _0807AE42 -_0807AA22: - movs r0, #0x40 - eors r0, r1 - strh r0, [r4, #4] - b _0807AE42 -_0807AA2A: - ldr r1, _0807AA44 @ =gNonGameplayRam - movs r0, #0x94 - lsls r0, r0, #2 - adds r4, r1, r0 - ldrb r2, [r4] - movs r0, #1 - movs r3, #0 - orrs r0, r2 - strb r0, [r4] - strb r3, [r1, #6] - movs r0, #0xc - strb r0, [r1, #7] - b _0807AE42 - .align 2, 0 -_0807AA44: .4byte gNonGameplayRam -_0807AA48: - ldr r5, _0807AA78 @ =gNonGameplayRam - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0807AA5C - b _0807AE42 -_0807AA5C: - ldr r0, _0807AA7C @ =gCurrentArea - ldrb r1, [r0] - ldr r2, _0807AA80 @ =0x00000212 - adds r0, r5, r2 - movs r4, #0 - strb r1, [r0] - movs r0, #1 - bl unk_75988 - strb r4, [r5, #6] - movs r0, #0xd - strb r0, [r5, #7] - b _0807AE42 - .align 2, 0 -_0807AA78: .4byte gNonGameplayRam -_0807AA7C: .4byte gCurrentArea -_0807AA80: .4byte 0x00000212 -_0807AA84: - ldr r6, _0807AAC8 @ =gNonGameplayRam - ldrb r0, [r6, #6] - cmp r0, #4 - bhi _0807AA8E - b _0807AE42 -_0807AA8E: - ldr r3, _0807AACC @ =0x00000212 - adds r4, r6, r3 - ldrb r0, [r4] - ldr r5, _0807AAD0 @ =0x02034000 - adds r1, r5, #0 - bl GetMinimapData - ldrb r0, [r4] - bl MinimapSetVisitedTilesAndCollectedItems - ldr r1, _0807AAD4 @ =0x040000D4 - str r5, [r1] - ldr r0, _0807AAD8 @ =0x0600E000 - str r0, [r1, #4] - ldr r0, _0807AADC @ =0x80000400 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r1, #0 - movs r0, #0xe - strb r0, [r6, #7] - strb r1, [r6, #6] - movs r4, #0x94 - lsls r4, r4, #2 - adds r2, r6, r4 - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - b _0807AE42 - .align 2, 0 -_0807AAC8: .4byte gNonGameplayRam -_0807AACC: .4byte 0x00000212 -_0807AAD0: .4byte 0x02034000 -_0807AAD4: .4byte 0x040000D4 -_0807AAD8: .4byte 0x0600E000 -_0807AADC: .4byte 0x80000400 -_0807AAE0: - ldr r2, _0807AB10 @ =gNonGameplayRam - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r2, r1 - ldrb r1, [r0] - cmp r1, #0 - beq _0807AAF0 - b _0807AE42 -_0807AAF0: - movs r4, #0xdb - lsls r4, r4, #1 - adds r3, r2, r4 - movs r0, #1 - strb r0, [r3] - movs r3, #0xda - lsls r3, r3, #1 - adds r0, r2, r3 - strb r1, [r0] - subs r4, #1 - adds r0, r2, r4 - strb r1, [r0] - strb r1, [r2, #6] - movs r0, #0x10 - strb r0, [r2, #7] - b _0807AE42 - .align 2, 0 -_0807AB10: .4byte gNonGameplayRam -_0807AB14: - ldr r4, _0807AB38 @ =gNonGameplayRam - movs r1, #0x84 - lsls r1, r1, #2 - adds r0, r4, r1 - ldrb r0, [r0] - ldr r2, _0807AB3C @ =0x00000211 - adds r1, r4, r2 - ldrb r1, [r1] - bl NavigationConversationScrollMapToDestination - cmp r0, #0 - bne _0807AB2E - b _0807AE42 -_0807AB2E: - movs r0, #0 - strb r0, [r4, #6] - movs r0, #0x10 - strb r0, [r4, #7] - b _0807AE42 - .align 2, 0 -_0807AB38: .4byte gNonGameplayRam -_0807AB3C: .4byte 0x00000211 -_0807AB40: - ldr r4, _0807ABAC @ =gNonGameplayRam - ldrb r0, [r4, #6] - cmp r0, #0x10 - bhi _0807AB4A - b _0807AE42 -_0807AB4A: - movs r0, #0 - bl NavigationConversationUpdateTarget - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r3, #0 - movs r1, #8 - strh r1, [r0, #0x2e] - ldrb r0, [r4, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - ldr r2, _0807ABB0 @ =0x085766E0 - ldrb r0, [r4, #0x18] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - strh r0, [r1, #0x2c] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x36 - movs r1, #0xb - strb r1, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x34 - strb r3, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x35 - strb r3, [r0] - movs r0, #1 - strb r0, [r4, #7] - strb r3, [r4, #6] - b _0807AE42 - .align 2, 0 -_0807ABAC: .4byte gNonGameplayRam -_0807ABB0: .4byte 0x085766E0 -_0807ABB4: - ldr r5, _0807AC24 @ =gNonGameplayRam - movs r3, #0x9a - lsls r3, r3, #2 - adds r1, r5, r3 - ldrh r3, [r1] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - movs r2, #0 - movs r4, #0 - orrs r0, r3 - strh r0, [r1] - movs r0, #8 - strb r0, [r5, #0x1d] - strb r2, [r5, #0x1e] - strb r2, [r5, #0x1f] - ldrh r0, [r5, #4] - movs r1, #1 - orrs r0, r1 - strh r0, [r5, #4] - strb r2, [r5, #0x18] - strb r1, [r5, #0x19] - strb r2, [r5, #0x17] - adds r0, r5, #0 - adds r0, #0x24 - strb r1, [r0] - adds r0, #0x1e - strb r2, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x34 - strb r2, [r0] - ldrb r1, [r5, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r5 - adds r0, #0x35 - strb r2, [r0] - adds r0, r5, #0 - adds r0, #0x20 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - strh r4, [r5, #0x22] - movs r0, #5 - strb r0, [r5, #0x1c] - ldrb r0, [r5, #7] - adds r0, #1 - strb r0, [r5, #7] - strb r2, [r5, #6] - b _0807AE42 - .align 2, 0 -_0807AC24: .4byte gNonGameplayRam -_0807AC28: - ldr r4, _0807AC44 @ =gNonGameplayRam - adds r5, r4, #0 - adds r5, #0x24 - ldrb r0, [r5] - cmp r0, #0 - bne _0807AC36 - b _0807AE42 -_0807AC36: - cmp r0, #2 - bne _0807AC48 - movs r1, #0 - movs r0, #0x13 -_0807AC3E: - strb r0, [r4, #7] - strb r1, [r4, #6] - b _0807AE42 - .align 2, 0 -_0807AC44: .4byte gNonGameplayRam -_0807AC48: - movs r0, #1 - bl unk_7a0fc - cmp r0, #0 - bne _0807AC54 - b _0807AE42 -_0807AC54: - movs r3, #0 - movs r2, #2 - strb r2, [r5] - movs r0, #1 - strb r0, [r4, #0x1a] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x36 - strb r2, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x34 - strb r3, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x35 - strb r3, [r0] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r2, #0 - movs r1, #0x8c - strh r1, [r0, #0x2c] - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - movs r1, #0x84 - strh r1, [r0, #0x2e] - adds r0, r4, #0 - adds r0, #0x25 - strb r2, [r0] - b _0807AE42 -_0807ACAE: - movs r3, #0 - ldr r2, _0807ACE4 @ =gNonGameplayRam - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r5, #0 - movs r1, #0x8c - strh r1, [r0, #0x2c] - ldr r0, _0807ACE8 @ =gChangedInput - ldrh r1, [r0] - movs r0, #0x20 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - beq _0807ACEC - adds r5, r4, #0 - adds r5, #0x25 - ldrb r0, [r5] - movs r2, #1 - eors r0, r2 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r3, r1, #0x1f - strb r2, [r5] - b _0807AD14 - .align 2, 0 -_0807ACE4: .4byte gNonGameplayRam -_0807ACE8: .4byte gChangedInput -_0807ACEC: - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _0807AD04 - adds r1, r4, #0 - adds r1, #0x25 - ldrb r0, [r1] - cmp r0, #0 - beq _0807AD00 - movs r3, #1 -_0807AD00: - strb r5, [r1] - b _0807AD14 -_0807AD04: - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _0807AD14 - movs r3, #2 - movs r0, #0x14 - strb r0, [r4, #7] - strb r5, [r4, #6] -_0807AD14: - adds r0, r4, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - beq _0807AD2C - ldrb r0, [r4, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r0, #0x34 - b _0807AD38 -_0807AD2C: - ldrb r0, [r4, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r4 - movs r0, #0x84 -_0807AD38: - strh r0, [r1, #0x2e] - cmp r3, #1 - bne _0807AD48 -_0807AD3E: - movs r0, #0xfd - lsls r0, r0, #1 - bl SoundPlay - b _0807AE42 -_0807AD48: - cmp r3, #2 - bne _0807AE42 - adds r0, r4, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #0 - beq _0807AD60 -_0807AD56: - movs r0, #0x81 - lsls r0, r0, #2 - bl SoundPlay - b _0807AE42 -_0807AD60: - ldr r0, _0807AD68 @ =0x00000205 - bl SoundPlay - b _0807AE42 - .align 2, 0 -_0807AD68: .4byte 0x00000205 -_0807AD6C: - ldr r4, _0807ADDC @ =gNonGameplayRam - movs r5, #0 - movs r0, #0x15 - strb r0, [r4, #7] - adds r0, r4, #0 - adds r0, #0x25 - ldrb r0, [r0] - cmp r0, #1 - bne _0807ADA4 - ldr r1, _0807ADE0 @ =gPreviousNavigationConversation - movs r0, #0xff - strb r0, [r1] - movs r1, #0xd5 - lsls r1, r1, #1 - adds r0, r4, r1 - strb r5, [r0] - movs r2, #0xd4 - lsls r2, r2, #1 - adds r0, r4, r2 - strb r5, [r0] - ldr r3, _0807ADE4 @ =0x000001A9 - adds r0, r4, r3 - strb r5, [r0] - movs r1, #0 - strh r5, [r4, #0xc] - adds r2, #0x71 - adds r0, r4, r2 - strb r1, [r0] -_0807ADA4: - movs r0, #1 - bl ClearTextGraphics - ldrb r1, [r4, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r4 - adds r0, #0x36 - strb r5, [r0] - movs r0, #1 - strb r0, [r4, #0x1a] - ldrb r0, [r4, #0x18] - lsls r0, r0, #1 - adds r1, r4, #0 - adds r1, #0x12 - adds r0, r0, r1 - movs r2, #0 - strh r5, [r0] - ldrb r0, [r4, #0x18] - lsls r0, r0, #1 - subs r1, #4 - adds r0, r0, r1 - strh r5, [r0] - strb r2, [r4, #0x1c] - strb r2, [r4, #6] - b _0807AE42 - .align 2, 0 -_0807ADDC: .4byte gNonGameplayRam -_0807ADE0: .4byte gPreviousNavigationConversation -_0807ADE4: .4byte 0x000001A9 -_0807ADE8: - ldr r2, _0807AE4C @ =gNonGameplayRam - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - movs r4, #0 - movs r1, #8 - strh r1, [r0, #0x2e] - ldrb r0, [r2, #0x19] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r3, _0807AE50 @ =0x085766E0 - ldrb r0, [r2, #0x18] - lsls r0, r0, #1 - adds r0, r0, r3 - ldrb r0, [r0] - strh r0, [r1, #0x2c] - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x36 - movs r1, #0xb - strb r1, [r0] - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x34 - strb r4, [r0] - ldrb r1, [r2, #0x19] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #2 - adds r0, r0, r2 - adds r0, #0x35 - strb r4, [r0] - movs r0, #1 - strb r0, [r2, #7] -_0807AE40: - strb r4, [r2, #6] -_0807AE42: - adds r0, r7, #0 -_0807AE44: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807AE4C: .4byte gNonGameplayRam -_0807AE50: .4byte 0x085766E0 - - thumb_func_start NavigationConversationSetupOam -NavigationConversationSetupOam: @ 0x0807AE54 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r6, _0807AF60 @ =gNonGameplayRam - adds r1, r6, #0 - adds r1, #0x5e - movs r0, #0 - mov sb, r0 - movs r2, #0 - mov sl, r2 - movs r0, #0x7c - strh r0, [r1] - subs r1, #2 - movs r0, #0xcc - strh r0, [r1] - subs r1, #2 - movs r0, #0x4b - strb r0, [r1] - adds r0, r6, #0 - adds r0, #0x58 - mov r3, sb - strb r3, [r0] - adds r0, #1 - strb r3, [r0] - movs r0, #1 - bl PauseScreenSetNavigationTextPanelOam - movs r4, #0x73 - adds r4, r4, r6 - mov r8, r4 - ldrb r1, [r4] - movs r2, #0xd - rsbs r2, r2, #0 - adds r0, r2, #0 - ands r0, r1 - movs r5, #4 - orrs r0, r5 - strb r0, [r4] - movs r0, #0x43 - adds r0, r0, r6 - mov ip, r0 - ldrb r1, [r0] - movs r7, #4 - rsbs r7, r7, #0 - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - mov r1, ip - strb r0, [r1] - movs r3, #0x5b - adds r3, r3, r6 - ldrb r1, [r3] - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - strb r0, [r3] - movs r4, #0x67 - adds r4, r4, r6 - ldrb r1, [r4] - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - strb r0, [r4] - movs r5, #0x85 - lsls r5, r5, #2 - adds r1, r6, r5 - ldr r0, _0807AF64 @ =0x085766D4 - ldm r0!, {r3, r4, r5} - stm r1!, {r3, r4, r5} - mov r0, sb - strb r0, [r6, #0x1a] - mov r1, sl - strh r1, [r6, #4] - adds r5, r6, #0 - adds r5, #0xa3 - ldrb r0, [r5] - adds r4, r2, #0 - ands r4, r0 - movs r3, #4 - orrs r4, r3 - strb r4, [r5] - adds r3, r6, #0 - adds r3, #0x4f - ldrb r1, [r3] - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - strb r0, [r3] - adds r3, #0x48 - ldrb r1, [r3] - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - strb r0, [r3] - subs r3, #0xc - ldrb r1, [r3] - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - strb r0, [r3] - subs r3, #0xc - ldrb r1, [r3] - adds r0, r7, #0 - ands r0, r1 - ands r0, r2 - strb r0, [r3] - adds r0, r6, #0 - adds r0, #0x82 - movs r2, #0xd4 - strh r2, [r0] - subs r0, #2 - movs r1, #0x44 - strh r1, [r0] - subs r0, #0xa - strh r2, [r0] - subs r0, #2 - strh r1, [r0] - ldrb r0, [r6] - cmp r0, #0 - beq _0807AF68 - mov r1, r8 - ldrb r0, [r1] - adds r1, r7, #0 - ands r1, r0 - movs r0, #1 - orrs r1, r0 - mov r2, r8 - strb r1, [r2] - ands r4, r7 - orrs r4, r0 - strb r4, [r5] - b _0807AF7C - .align 2, 0 -_0807AF60: .4byte gNonGameplayRam -_0807AF64: .4byte 0x085766D4 -_0807AF68: - ands r4, r7 - movs r2, #2 - orrs r4, r2 - strb r4, [r5] - mov r3, r8 - ldrb r1, [r3] - adds r0, r7, #0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] -_0807AF7C: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start NavigationConversationUpdateTarget -NavigationConversationUpdateTarget: @ 0x0807AF8C - push {r4, lr} - lsls r0, r0, #0x18 - lsrs r4, r0, #0x18 - bl NavigationConverstionFindTarget - cmp r0, #0 - beq _0807AFF2 - cmp r4, #0 - beq _0807AFF2 - ldr r1, _0807AFCC @ =gNonGameplayRam - movs r2, #0xd4 - lsls r2, r2, #1 - adds r0, r1, r2 - movs r2, #0 - strb r2, [r0] - ldr r3, _0807AFD0 @ =0x000001A9 - adds r0, r1, r3 - strb r2, [r0] - ldr r2, _0807AFD4 @ =0x0000020F - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, r1, #0 - cmp r0, #1 - bne _0807AFDC - ldr r1, _0807AFD8 @ =0x085767EC - adds r3, #0x6a - adds r0, r2, r3 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r1, [r0] - b _0807AFEA - .align 2, 0 -_0807AFCC: .4byte gNonGameplayRam -_0807AFD0: .4byte 0x000001A9 -_0807AFD4: .4byte 0x0000020F -_0807AFD8: .4byte 0x085767EC -_0807AFDC: - ldr r1, _0807AFF8 @ =0x00000212 - adds r0, r2, r1 - ldrb r0, [r0] - movs r1, #0xe - cmp r0, #0 - bne _0807AFEA - movs r1, #0xf -_0807AFEA: - movs r3, #0xd5 - lsls r3, r3, #1 - adds r0, r2, r3 - strb r1, [r0] -_0807AFF2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807AFF8: .4byte 0x00000212 - - thumb_func_start NavigationConverstionFindTarget -NavigationConverstionFindTarget: @ 0x0807AFFC - push {r4, r5, r6, r7, lr} - ldr r2, _0807B03C @ =gNonGameplayRam - ldr r1, _0807B040 @ =0x0000020F - adds r0, r2, r1 - movs r3, #0 - strb r3, [r0] - movs r0, #0x83 - lsls r0, r0, #2 - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] - ldr r0, _0807B044 @ =0x0000020D - adds r1, r2, r0 - movs r0, #1 - rsbs r0, r0, #0 - strb r0, [r1] - ldr r1, _0807B048 @ =0x0000020E - adds r0, r2, r1 - strb r3, [r0] - adds r1, #5 - adds r0, r2, r1 - strb r3, [r0] - ldr r0, _0807B04C @ =gPauseScreenFlag - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r5, r2, #0 - cmp r0, #4 - bne _0807B060 -_0807B036: - movs r0, #0 - b _0807B146 - .align 2, 0 -_0807B03C: .4byte gNonGameplayRam -_0807B040: .4byte 0x0000020F -_0807B044: .4byte 0x0000020D -_0807B048: .4byte 0x0000020E -_0807B04C: .4byte gPauseScreenFlag -_0807B050: - movs r4, #1 - ldrb r1, [r1, #4] - ldr r3, _0807B05C @ =0x00000213 - adds r0, r5, r3 - strb r1, [r0] - b _0807B086 - .align 2, 0 -_0807B05C: .4byte 0x00000213 -_0807B060: - ldr r0, _0807B0B8 @ =0x0300004C - strb r3, [r0] - movs r4, #0 - movs r2, #0 - adds r7, r0, #0 - ldr r6, _0807B0BC @ =0x085766E4 - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r5, r1 - ldrb r3, [r0] - adds r1, r6, #0 -_0807B076: - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r3, r0 - beq _0807B050 - adds r1, #8 - adds r2, #1 - cmp r2, #0x20 - bls _0807B076 -_0807B086: - cmp r4, #0 - beq _0807B036 - lsls r0, r2, #3 - adds r2, r0, r6 - ldrb r0, [r2, #1] - strb r0, [r7] - ldr r1, _0807B0C0 @ =0x08576066 - ldrb r0, [r7] - adds r0, r0, r1 - ldrb r0, [r0] - ldr r3, _0807B0C4 @ =0x0000020E - adds r6, r5, r3 - strb r0, [r6] - ldr r1, _0807B0C8 @ =0x00000212 - adds r3, r5, r1 - ldrb r1, [r3] - adds r4, r0, #0 - cmp r1, r4 - bne _0807B0D0 - ldrb r3, [r2, #2] - ldrb r2, [r2, #3] - ldr r0, _0807B0CC @ =0x0000020F - adds r1, r5, r0 - movs r0, #1 - b _0807B11E - .align 2, 0 -_0807B0B8: .4byte 0x0300004C -_0807B0BC: .4byte 0x085766E4 -_0807B0C0: .4byte 0x08576066 -_0807B0C4: .4byte 0x0000020E -_0807B0C8: .4byte 0x00000212 -_0807B0CC: .4byte 0x0000020F -_0807B0D0: - cmp r1, #0 - bne _0807B0F4 - ldr r2, _0807B0EC @ =0x08576218 - ldrb r0, [r6] - lsls r0, r0, #1 - adds r1, r0, r2 - ldrb r3, [r1] - adds r2, #1 - adds r0, r0, r2 - ldrb r2, [r0] - ldr r0, _0807B0F0 @ =0x0000020F - adds r1, r5, r0 - movs r0, #2 - b _0807B11E - .align 2, 0 -_0807B0EC: .4byte 0x08576218 -_0807B0F0: .4byte 0x0000020F -_0807B0F4: - ldr r0, _0807B110 @ =0x08576226 - ldrb r1, [r3] - lsls r1, r1, #1 - adds r2, r1, r0 - ldrb r3, [r2] - adds r0, #1 - adds r1, r1, r0 - ldrb r2, [r1] - cmp r4, #0 - bne _0807B118 - ldr r0, _0807B114 @ =0x0000020F - adds r1, r5, r0 - movs r0, #2 - b _0807B11E - .align 2, 0 -_0807B110: .4byte 0x08576226 -_0807B114: .4byte 0x0000020F -_0807B118: - ldr r0, _0807B14C @ =0x0000020F - adds r1, r5, r0 - movs r0, #3 -_0807B11E: - strb r0, [r1] - subs r1, r3, #1 - movs r3, #0x83 - lsls r3, r3, #2 - adds r0, r5, r3 - strb r1, [r0] - subs r1, r2, #1 - ldr r2, _0807B150 @ =0x0000020D - adds r0, r5, r2 - strb r1, [r0] - movs r4, #0 - ldr r0, _0807B154 @ =gPreviousNavigationConversation - adds r3, #0x14 - adds r1, r5, r3 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bne _0807B144 - movs r4, #1 -_0807B144: - adds r0, r4, #0 -_0807B146: - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807B14C: .4byte 0x0000020F -_0807B150: .4byte 0x0000020D -_0807B154: .4byte gPreviousNavigationConversation - - thumb_func_start NavigationConversionScrollToTarget -NavigationConversionScrollToTarget: @ 0x0807B158 - push {r4, r5, r6, r7, lr} - ldr r1, _0807B178 @ =gNonGameplayRam - ldrb r0, [r1, #8] - adds r0, #1 - strb r0, [r1, #8] - ldrb r0, [r1, #9] - adds r7, r1, #0 - cmp r0, #0xd - bls _0807B16C - b _0807B4BC -_0807B16C: - lsls r0, r0, #2 - ldr r1, _0807B17C @ =_0807B180 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807B178: .4byte gNonGameplayRam -_0807B17C: .4byte _0807B180 -_0807B180: @ jump table - .4byte _0807B4BC @ case 0 - .4byte _0807B1B8 @ case 1 - .4byte _0807B226 @ case 2 - .4byte _0807B236 @ case 3 - .4byte _0807B46C @ case 4 - .4byte _0807B23E @ case 5 - .4byte _0807B300 @ case 6 - .4byte _0807B30A @ case 7 - .4byte _0807B32A @ case 8 - .4byte _0807B400 @ case 9 - .4byte _0807B420 @ case 10 - .4byte _0807B46C @ case 11 - .4byte _0807B488 @ case 12 - .4byte _0807B4BC @ case 13 -_0807B1B8: - movs r2, #0 - movs r1, #0x83 - lsls r1, r1, #2 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, #0xff - beq _0807B200 - ldr r3, _0807B204 @ =0x0000020D - adds r0, r7, r3 - ldrb r0, [r0] - cmp r0, #0xff - beq _0807B200 - movs r4, #0xd5 - lsls r4, r4, #1 - adds r0, r7, r4 - ldr r1, _0807B208 @ =0x085767EC - ldrb r0, [r0] - ldrb r3, [r1] - cmp r0, r3 - beq _0807B200 - ldrb r4, [r1, #1] - cmp r0, r4 - beq _0807B200 - ldrb r3, [r1, #2] - cmp r0, r3 - beq _0807B200 - ldrb r1, [r1, #3] - cmp r0, r1 - beq _0807B200 - cmp r0, #0xe - beq _0807B200 - cmp r0, #0xf - bne _0807B1FC - movs r2, #1 -_0807B1FC: - cmp r2, #0 - beq _0807B20C -_0807B200: - movs r0, #0xc - b _0807B4BA - .align 2, 0 -_0807B204: .4byte 0x0000020D -_0807B208: .4byte 0x085767EC -_0807B20C: - movs r0, #2 - strb r0, [r7, #9] - ldrh r1, [r7, #4] - movs r4, #0x80 - lsls r4, r4, #1 - adds r0, r4, #0 - orrs r0, r1 - movs r2, #0x80 - lsls r2, r2, #2 - adds r1, r2, #0 - orrs r0, r1 - strh r0, [r7, #4] - b _0807B4BC -_0807B226: - ldrh r1, [r7, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0807B234 - b _0807B4BC -_0807B234: - b _0807B4B2 -_0807B236: - movs r0, #0 - strb r0, [r7, #8] - movs r0, #4 - b _0807B4BA -_0807B23E: - movs r3, #0x83 - lsls r3, r3, #2 - adds r0, r7, r3 - ldrb r0, [r0] - ldr r4, _0807B270 @ =0x0000020D - adds r1, r7, r4 - ldrb r1, [r1] - bl NavigationConversationScrollMapToDestination - cmp r0, #0 - bne _0807B256 - b _0807B4BC -_0807B256: - ldr r1, _0807B274 @ =0x0000020F - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0807B280 - ldr r1, _0807B278 @ =0x085767EC - ldr r2, _0807B27C @ =0x00000213 - adds r0, r7, r2 - ldrb r0, [r0] - adds r0, r0, r1 - ldrb r2, [r0] - b _0807B28E - .align 2, 0 -_0807B270: .4byte 0x0000020D -_0807B274: .4byte 0x0000020F -_0807B278: .4byte 0x085767EC -_0807B27C: .4byte 0x00000213 -_0807B280: - ldr r3, _0807B2B8 @ =0x00000212 - adds r0, r7, r3 - ldrb r0, [r0] - movs r2, #0xe - cmp r0, #0 - bne _0807B28E - movs r2, #0xf -_0807B28E: - ldr r5, _0807B2BC @ =gNonGameplayRam - movs r4, #0xd5 - lsls r4, r4, #1 - adds r0, r5, r4 - movs r1, #0 - strb r2, [r0] - movs r2, #0xd4 - lsls r2, r2, #1 - adds r0, r5, r2 - strb r1, [r0] - ldr r3, _0807B2C0 @ =0x000001A9 - adds r0, r5, r3 - strb r1, [r0] - strb r1, [r5, #8] - adds r4, #0x65 - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, #1 - bne _0807B2C4 - movs r0, #0xc - b _0807B2C6 - .align 2, 0 -_0807B2B8: .4byte 0x00000212 -_0807B2BC: .4byte gNonGameplayRam -_0807B2C0: .4byte 0x000001A9 -_0807B2C4: - movs r0, #6 -_0807B2C6: - strb r0, [r5, #9] - ldr r0, _0807B2F0 @ =0x00000119 - bl SoundStop - ldr r1, _0807B2F4 @ =gNonGameplayRam - movs r2, #0x83 - lsls r2, r2, #2 - adds r0, r1, r2 - ldrb r2, [r0] - movs r3, #0x96 - lsls r3, r3, #2 - adds r0, r1, r3 - strb r2, [r0] - ldr r4, _0807B2F8 @ =0x0000020D - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0807B2FC @ =0x00000259 - adds r1, r1, r2 - strb r0, [r1] - b _0807B4BC - .align 2, 0 -_0807B2F0: .4byte 0x00000119 -_0807B2F4: .4byte gNonGameplayRam -_0807B2F8: .4byte 0x0000020D -_0807B2FC: .4byte 0x00000259 -_0807B300: - ldrb r0, [r7, #8] - cmp r0, #0x3c - bhi _0807B308 - b _0807B4BC -_0807B308: - b _0807B4B2 -_0807B30A: - movs r3, #0x94 - lsls r3, r3, #2 - adds r2, r7, r3 - movs r1, #0 - movs r0, #1 - strb r0, [r2] - movs r4, #0xd5 - lsls r4, r4, #1 - adds r0, r7, r4 - strb r1, [r0] - movs r2, #0xdb - lsls r2, r2, #1 - adds r0, r7, r2 - strb r1, [r0] - strb r1, [r7, #8] - b _0807B4B6 -_0807B32A: - movs r3, #0x94 - lsls r3, r3, #2 - adds r0, r7, r3 - ldrb r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - bne _0807B33C - b _0807B4BC -_0807B33C: - ldr r4, _0807B36C @ =0x0000020F - adds r0, r7, r4 - ldrb r0, [r0] - cmp r0, #3 - bne _0807B34E - ldr r0, _0807B370 @ =0x0000020E - adds r1, r7, r0 - movs r0, #0 - strb r0, [r1] -_0807B34E: - ldr r1, _0807B370 @ =0x0000020E - adds r3, r7, r1 - ldrb r0, [r3] - cmp r0, #0 - bne _0807B37C - ldr r2, _0807B374 @ =0x08576218 - ldr r4, _0807B378 @ =0x00000212 - adds r3, r7, r4 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - subs r4, #2 - b _0807B38C - .align 2, 0 -_0807B36C: .4byte 0x0000020F -_0807B370: .4byte 0x0000020E -_0807B374: .4byte 0x08576218 -_0807B378: .4byte 0x00000212 -_0807B37C: - ldr r2, _0807B3E0 @ =0x08576226 - ldrb r0, [r3] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - movs r4, #0x84 - lsls r4, r4, #2 -_0807B38C: - adds r1, r7, r4 - strb r0, [r1] - ldrb r0, [r3] - lsls r0, r0, #1 - adds r2, #1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #1 - ldr r2, _0807B3E4 @ =0x00000211 - adds r1, r7, r2 - strb r0, [r1] - ldr r3, _0807B3E8 @ =0x0000020E - adds r0, r7, r3 - ldrb r0, [r0] - ldr r1, _0807B3EC @ =0x00000212 - adds r4, r7, r1 - movs r6, #0 - strb r0, [r4] - ldrb r0, [r4] - ldr r5, _0807B3F0 @ =0x02034000 - adds r1, r5, #0 - bl GetMinimapData - ldrb r0, [r4] - bl MinimapSetVisitedTilesAndCollectedItems - ldr r1, _0807B3F4 @ =0x040000D4 - str r5, [r1] - ldr r0, _0807B3F8 @ =0x0600E000 - str r0, [r1, #4] - ldr r0, _0807B3FC @ =0x80000400 - str r0, [r1, #8] - ldr r0, [r1, #8] - movs r0, #1 - bl unk_75988 - movs r0, #0 - bl NavigationConversationUpdateTarget - strb r6, [r7, #8] - b _0807B4B6 - .align 2, 0 -_0807B3E0: .4byte 0x08576226 -_0807B3E4: .4byte 0x00000211 -_0807B3E8: .4byte 0x0000020E -_0807B3EC: .4byte 0x00000212 -_0807B3F0: .4byte 0x02034000 -_0807B3F4: .4byte 0x040000D4 -_0807B3F8: .4byte 0x0600E000 -_0807B3FC: .4byte 0x80000400 -_0807B400: - ldrb r0, [r7, #8] - cmp r0, #8 - bls _0807B4BC - movs r0, #0 - strb r0, [r7, #8] - ldrb r0, [r7, #9] - adds r0, #1 - strb r0, [r7, #9] - movs r3, #0x94 - lsls r3, r3, #2 - adds r2, r7, r3 - ldrb r1, [r2] - movs r0, #8 - orrs r0, r1 - strb r0, [r2] - b _0807B4BC -_0807B420: - movs r4, #0x94 - lsls r4, r4, #2 - adds r0, r7, r4 - ldrb r0, [r0] - cmp r0, #0 - bne _0807B4BC - ldr r1, _0807B460 @ =0x0000020E - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0807B442 - ldr r2, _0807B464 @ =0x00000212 - adds r0, r7, r2 - ldrb r0, [r0] - movs r2, #0xf - cmp r0, #0 - bne _0807B444 -_0807B442: - movs r2, #0xe -_0807B444: - movs r3, #0xdb - lsls r3, r3, #1 - adds r0, r7, r3 - movs r1, #0 - strb r2, [r0] - movs r4, #0xda - lsls r4, r4, #1 - adds r0, r7, r4 - strb r1, [r0] - ldr r2, _0807B468 @ =0x000001B5 - adds r0, r7, r2 - strb r1, [r0] - strb r1, [r7, #8] - b _0807B4B6 - .align 2, 0 -_0807B460: .4byte 0x0000020E -_0807B464: .4byte 0x00000212 -_0807B468: .4byte 0x000001B5 -_0807B46C: - ldrb r0, [r7, #8] - cmp r0, #0x1e - bls _0807B4BC - movs r0, #0 - strb r0, [r7, #8] - movs r0, #5 - strb r0, [r7, #9] - ldr r0, _0807B484 @ =0x00000119 - bl SoundPlay - b _0807B4BC - .align 2, 0 -_0807B484: .4byte 0x00000119 -_0807B488: - adds r2, r7, #0 - ldrh r1, [r2, #4] - movs r3, #0x80 - lsls r3, r3, #2 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0807B49E - adds r0, r3, #0 - eors r0, r1 - strh r0, [r2, #4] -_0807B49E: - ldrh r1, [r2, #4] - movs r3, #0x80 - lsls r3, r3, #3 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _0807B4B2 - adds r0, r3, #0 - eors r0, r1 - strh r0, [r2, #4] -_0807B4B2: - movs r0, #0 - strb r0, [r7, #8] -_0807B4B6: - ldrb r0, [r7, #9] - adds r0, #1 -_0807B4BA: - strb r0, [r7, #9] -_0807B4BC: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 - - thumb_func_start NavigationConversationScrollMapToDestination -NavigationConversationScrollMapToDestination: @ 0x0807B4C4 - push {r4, r5, r6, r7, lr} - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - movs r2, #1 - mov ip, r2 - movs r2, #0xf - subs r2, r2, r0 - lsls r2, r2, #3 - movs r3, #0x80 - lsls r3, r3, #2 - subs r5, r3, r2 - movs r0, #0xa - subs r0, r0, r1 - lsls r0, r0, #3 - subs r6, r3, r0 - ldr r1, _0807B520 @ =gBackgroundPositions - ldrh r4, [r1, #0xc] - subs r2, r4, r5 - ldrh r0, [r1, #0xe] - subs r3, r0, r6 - cmp r2, #0 - bge _0807B4F6 - rsbs r2, r2, #0 -_0807B4F6: - cmp r3, #0 - bge _0807B4FC - rsbs r3, r3, #0 -_0807B4FC: - asrs r0, r2, #4 - adds r7, r0, #1 - asrs r0, r3, #4 - adds r3, r0, #1 - subs r2, r4, r5 - cmp r2, #0 - beq _0807B534 - movs r0, #0 - mov ip, r0 - cmp r2, #0 - ble _0807B524 - subs r0, r4, r7 - strh r0, [r1, #0xc] - ldrh r0, [r1, #0xc] - cmp r0, r5 - bge _0807B534 - b _0807B532 - .align 2, 0 -_0807B520: .4byte gBackgroundPositions -_0807B524: - cmp r2, #0 - bge _0807B534 - adds r0, r4, r7 - strh r0, [r1, #0xc] - ldrh r0, [r1, #0xc] - cmp r0, r5 - ble _0807B534 -_0807B532: - strh r5, [r1, #0xc] -_0807B534: - adds r4, r1, #0 - ldrh r0, [r4, #0xe] - subs r2, r0, r6 - cmp r2, #0 - beq _0807B564 - movs r5, #0 - mov ip, r5 - cmp r2, #0 - ble _0807B554 - subs r0, r0, r3 - strh r0, [r4, #0xe] - ldrh r0, [r4, #0xe] - cmp r0, r6 - bge _0807B564 - strh r6, [r4, #0xe] - b _0807B564 -_0807B554: - cmp r2, #0 - bge _0807B564 - adds r0, r0, r3 - strh r0, [r1, #0xe] - ldrh r0, [r1, #0xe] - cmp r0, r6 - ble _0807B564 - strh r6, [r1, #0xe] -_0807B564: - mov r0, ip - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - - thumb_func_start unk_7b56c -unk_7b56c: @ 0x0807B56C - push {r4, r5, lr} - ldr r1, _0807B588 @ =gNonGameplayRam - ldrb r0, [r1, #0xa] - adds r0, #1 - strb r0, [r1, #0xa] - ldrb r0, [r1, #0xb] - adds r5, r1, #0 - cmp r0, #9 - bhi _0807B668 - lsls r0, r0, #2 - ldr r1, _0807B58C @ =_0807B590 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807B588: .4byte gNonGameplayRam -_0807B58C: .4byte _0807B590 -_0807B590: @ jump table - .4byte _0807B668 @ case 0 - .4byte _0807B5B8 @ case 1 - .4byte _0807B5BE @ case 2 - .4byte _0807B5CE @ case 3 - .4byte _0807B5EE @ case 4 - .4byte _0807B612 @ case 5 - .4byte _0807B624 @ case 6 - .4byte _0807B650 @ case 7 - .4byte _0807B668 @ case 8 - .4byte _0807B668 @ case 9 -_0807B5B8: - movs r0, #0 - strb r0, [r5, #0xa] - b _0807B662 -_0807B5BE: - ldrh r1, [r5, #4] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _0807B668 - movs r0, #0 - strb r0, [r5, #0xa] - b _0807B662 -_0807B5CE: - adds r1, r5, #0 - adds r1, #0xea - movs r4, #0 - movs r0, #0x41 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0xe8 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - movs r0, #0x8e - lsls r0, r0, #1 - bl SoundPlay - strb r4, [r5, #0xa] - b _0807B662 -_0807B5EE: - ldrb r0, [r5, #0xa] - cmp r0, #0x1e - bls _0807B668 - movs r0, #0x86 - lsls r0, r0, #2 - adds r1, r5, r0 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - strb r2, [r5, #0xa] - ldrb r0, [r5, #0xb] - adds r0, #1 - strb r0, [r5, #0xb] - ldrh r1, [r5, #4] - movs r0, #0x80 - orrs r0, r1 - strh r0, [r5, #4] - b _0807B668 -_0807B612: - ldrh r1, [r5, #4] - movs r0, #0x40 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0 - bne _0807B668 - strb r0, [r5, #0xa] - b _0807B662 -_0807B624: - movs r0, #0x86 - lsls r0, r0, #2 - adds r1, r5, r0 - movs r4, #0 - movs r0, #3 - strb r0, [r1] - adds r1, r5, #0 - adds r1, #0xea - movs r0, #0x42 - strb r0, [r1] - adds r0, r5, #0 - adds r0, #0xe8 - strb r4, [r0] - adds r0, #1 - strb r4, [r0] - ldr r0, _0807B64C @ =0x0000011D - bl SoundPlay - strb r4, [r5, #0xa] - b _0807B662 - .align 2, 0 -_0807B64C: .4byte 0x0000011D -_0807B650: - ldrb r0, [r5, #0xa] - cmp r0, #0x1e - bls _0807B668 - ldrh r1, [r5, #4] - ldr r0, _0807B670 @ =0x0000FF7F - ands r0, r1 - movs r1, #0 - strh r0, [r5, #4] - strb r1, [r5, #0xa] -_0807B662: - ldrb r0, [r5, #0xb] - adds r0, #1 - strb r0, [r5, #0xb] -_0807B668: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807B670: .4byte 0x0000FF7F - - thumb_func_start unk_7b674 -unk_7b674: @ 0x0807B674 - push {r4, r5, lr} - ldr r2, _0807B6AC @ =gNonGameplayRam - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - adds r4, r2, #0 - cmp r0, #0 - bne _0807B68C - b _0807B8C4 -_0807B68C: - ldr r2, _0807B6B0 @ =0x00000252 - adds r0, r4, r2 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r1, _0807B6B4 @ =0x00000251 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #8 - bls _0807B6A2 - b _0807B8C4 -_0807B6A2: - lsls r0, r0, #2 - ldr r1, _0807B6B8 @ =_0807B6BC - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807B6AC: .4byte gNonGameplayRam -_0807B6B0: .4byte 0x00000252 -_0807B6B4: .4byte 0x00000251 -_0807B6B8: .4byte _0807B6BC -_0807B6BC: @ jump table - .4byte _0807B6E0 @ case 0 - .4byte _0807B72C @ case 1 - .4byte _0807B82C @ case 2 - .4byte _0807B780 @ case 3 - .4byte _0807B7BC @ case 4 - .4byte _0807B7D4 @ case 5 - .4byte _0807B82C @ case 6 - .4byte _0807B858 @ case 7 - .4byte _0807B8B0 @ case 8 -_0807B6E0: - movs r2, #0x94 - lsls r2, r2, #2 - adds r0, r4, r2 - ldrb r1, [r0] - movs r2, #1 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807B700 - ldr r1, _0807B6FC @ =0x00000251 - adds r0, r4, r1 - strb r2, [r0] - b _0807B710 - .align 2, 0 -_0807B6FC: .4byte 0x00000251 -_0807B700: - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807B710 - ldr r2, _0807B720 @ =0x00000251 - adds r1, r4, r2 - movs r0, #4 - strb r0, [r1] -_0807B710: - ldr r1, _0807B724 @ =gPreviousArea - movs r0, #0xff - strb r0, [r1] - ldr r0, _0807B728 @ =0x00000252 - adds r1, r4, r0 - movs r0, #0 - strb r0, [r1] - b _0807B8C4 - .align 2, 0 -_0807B720: .4byte 0x00000251 -_0807B724: .4byte gPreviousArea -_0807B728: .4byte 0x00000252 -_0807B72C: - ldr r1, _0807B770 @ =0x00000252 - adds r2, r4, r1 - ldrb r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0807B73C - b _0807B8C4 -_0807B73C: - ldr r0, _0807B774 @ =gWrittenToMosaic_L - ldrh r1, [r0] - adds r1, #0x11 - strh r1, [r0] - ldr r0, _0807B778 @ =0x08576802 - lsls r1, r1, #0x10 - lsrs r1, r1, #0x10 - ldrb r0, [r0] - cmp r1, r0 - beq _0807B752 - b _0807B8C4 -_0807B752: - movs r0, #0 - strb r0, [r2] - ldr r2, _0807B77C @ =0x00000251 - adds r1, r4, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #2 - adds r2, r4, r0 - ldrb r1, [r2] - movs r0, #4 - orrs r0, r1 - strb r0, [r2] - b _0807B8C4 - .align 2, 0 -_0807B770: .4byte 0x00000252 -_0807B774: .4byte gWrittenToMosaic_L -_0807B778: .4byte 0x08576802 -_0807B77C: .4byte 0x00000251 -_0807B780: - ldr r0, _0807B7B0 @ =0x00000252 - adds r2, r4, r0 - ldrb r1, [r2] - movs r0, #7 - ands r0, r1 - cmp r0, #0 - bne _0807B790 - b _0807B8C4 -_0807B790: - ldr r1, _0807B7B4 @ =gWrittenToMosaic_L - ldrh r0, [r1] - subs r0, #0x11 - strh r0, [r1] - lsls r0, r0, #0x10 - lsrs r3, r0, #0x10 - cmp r3, #0 - beq _0807B7A2 - b _0807B8C4 -_0807B7A2: - ldr r0, _0807B7B8 @ =0x00000251 - adds r1, r4, r0 - movs r0, #8 - strb r0, [r1] - strb r3, [r2] - b _0807B8C4 - .align 2, 0 -_0807B7B0: .4byte 0x00000252 -_0807B7B4: .4byte gWrittenToMosaic_L -_0807B7B8: .4byte 0x00000251 -_0807B7BC: - ldr r1, _0807B7CC @ =0x00000253 - adds r0, r4, r1 - movs r2, #0 - strb r2, [r0] - ldr r0, _0807B7D0 @ =0x00000251 - adds r1, r4, r0 - movs r0, #5 - b _0807B846 - .align 2, 0 -_0807B7CC: .4byte 0x00000253 -_0807B7D0: .4byte 0x00000251 -_0807B7D4: - ldr r2, _0807B81C @ =0x00000253 - adds r5, r4, r2 - ldrb r1, [r5] - movs r2, #0x50 - subs r0, r2, r1 - asrs r0, r0, #4 - cmp r0, #3 - bgt _0807B7E6 - movs r0, #4 -_0807B7E6: - adds r0, r1, r0 - strb r0, [r5] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x50 - bls _0807B814 - strb r2, [r5] - ldr r0, _0807B820 @ =0x00000252 - adds r1, r4, r0 - movs r0, #0 - strb r0, [r1] - ldr r2, _0807B824 @ =0x00000251 - adds r1, r4, r2 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - movs r0, #0x94 - lsls r0, r0, #2 - adds r2, r4, r0 - ldrb r0, [r2] - movs r1, #4 - orrs r0, r1 - strb r0, [r2] -_0807B814: - ldr r3, _0807B828 @ =0x04000046 - ldrb r2, [r5] - b _0807B89A - .align 2, 0 -_0807B81C: .4byte 0x00000253 -_0807B820: .4byte 0x00000252 -_0807B824: .4byte 0x00000251 -_0807B828: .4byte 0x04000046 -_0807B82C: - movs r1, #0x94 - lsls r1, r1, #2 - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807B8C4 - ldr r2, _0807B850 @ =0x00000251 - adds r1, r4, r2 - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 -_0807B846: - strb r0, [r1] - ldr r1, _0807B854 @ =0x00000252 - adds r0, r4, r1 - strb r2, [r0] - b _0807B8C4 - .align 2, 0 -_0807B850: .4byte 0x00000251 -_0807B854: .4byte 0x00000252 -_0807B858: - ldr r2, _0807B884 @ =0x00000253 - adds r3, r4, r2 - ldrb r1, [r3] - movs r0, #0x50 - subs r0, r0, r1 - asrs r0, r0, #4 - cmp r0, #3 - bgt _0807B86A - movs r0, #4 -_0807B86A: - subs r0, r1, r0 - cmp r0, #0 - bge _0807B890 - movs r2, #0 - strb r2, [r3] - ldr r0, _0807B888 @ =0x00000251 - adds r1, r4, r0 - movs r0, #8 - strb r0, [r1] - ldr r1, _0807B88C @ =0x00000252 - adds r0, r4, r1 - strb r2, [r0] - b _0807B892 - .align 2, 0 -_0807B884: .4byte 0x00000253 -_0807B888: .4byte 0x00000251 -_0807B88C: .4byte 0x00000252 -_0807B890: - strb r0, [r3] -_0807B892: - ldr r3, _0807B8A8 @ =0x04000046 - ldr r2, _0807B8AC @ =0x00000253 - adds r0, r4, r2 - ldrb r2, [r0] -_0807B89A: - lsls r1, r2, #8 - movs r0, #0xa0 - subs r0, r0, r2 - orrs r1, r0 - strh r1, [r3] - b _0807B8C4 - .align 2, 0 -_0807B8A8: .4byte 0x04000046 -_0807B8AC: .4byte 0x00000253 -_0807B8B0: - ldr r1, _0807B8CC @ =0x00000252 - adds r0, r4, r1 - movs r1, #0 - strb r1, [r0] - ldr r2, _0807B8D0 @ =0x00000251 - adds r0, r4, r2 - strb r1, [r0] - subs r2, #1 - adds r0, r4, r2 - strb r1, [r0] -_0807B8C4: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807B8CC: .4byte 0x00000252 -_0807B8D0: .4byte 0x00000251 - - thumb_func_start ProcessPauseScreenText -ProcessPauseScreenText: @ 0x0807B8D4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r4, _0807B93C @ =0x0200C000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - movs r1, #0 - adds r2, r4, #0 - bl BitFill - movs r6, #0 - ldr r2, _0807B940 @ =0x0879C10C - ldr r0, _0807B944 @ =0x03000011 - movs r1, #0 - ldrsb r1, [r0, r1] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r0, _0807B948 @ =gEventCounter - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r7, [r0] - ldrh r2, [r7] - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - cmp r2, r0 - beq _0807B9D8 - movs r5, #0x80 - lsls r5, r5, #8 - mov sl, r5 - movs r1, #0xfe - lsls r1, r1, #8 - mov sb, r1 -_0807B926: - movs r5, #1 - adds r1, r0, #0 - ands r1, r2 - cmp r1, sl - bne _0807B94C - movs r5, #0xff - mov r8, r5 - mov r0, r8 - ands r0, r2 - mov r8, r0 - b _0807B9C2 - .align 2, 0 -_0807B93C: .4byte 0x0200C000 -_0807B940: .4byte 0x0879C10C -_0807B944: .4byte 0x03000011 -_0807B948: .4byte gEventCounter -_0807B94C: - movs r0, #0x83 - lsls r0, r0, #8 - cmp r1, r0 - bne _0807B95E - movs r1, #0 - mov r8, r1 - movs r6, #0xff - ands r6, r2 - b _0807B9C2 -_0807B95E: - cmp r2, sb - bne _0807B96E - movs r2, #0 - mov r8, r2 - cmp r6, #0xe0 - bgt _0807B9D8 - movs r6, #0xe0 - movs r5, #0 -_0807B96E: - cmp r5, #0 - beq _0807B9C2 - ldrh r0, [r7] - bl GetCharacterWidth - mov r8, r0 - adds r5, r6, r0 - cmp r5, #0xe0 - ble _0807B988 - cmp r6, #0xdf - bgt _0807B988 - movs r6, #0xe0 - b _0807B990 -_0807B988: - movs r0, #0xe0 - lsls r0, r0, #1 - cmp r5, r0 - bgt _0807B9D8 -_0807B990: - cmp r6, #0xdf - ble _0807B99E - movs r5, #0x80 - lsls r5, r5, #4 - adds r4, r6, #0 - subs r4, #0xe0 - b _0807B9A2 -_0807B99E: - movs r5, #0 - adds r4, r6, #0 -_0807B9A2: - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r5, r5, r0 - movs r3, #7 - ldrh r0, [r7] - ldr r2, _0807B9E8 @ =0x0200C000 - adds r1, r2, r5 - mov r5, r8 - lsls r2, r5, #0x18 - lsrs r2, r2, #0x18 - ands r4, r3 - movs r3, #0 - str r3, [sp] - adds r3, r4, #0 - bl DrawCharacter -_0807B9C2: - adds r7, #2 - add r6, r8 - ldr r0, _0807B9EC @ =0x000001BF - cmp r6, r0 - bgt _0807B9D8 - ldrh r2, [r7] - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - cmp r2, r0 - bne _0807B926 -_0807B9D8: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807B9E8: .4byte 0x0200C000 -_0807B9EC: .4byte 0x000001BF - - thumb_func_start ProcessEasySleepText -ProcessEasySleepText: @ 0x0807B9F0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #4 - ldr r2, _0807BA80 @ =0x0200D000 - movs r5, #0x80 - lsls r5, r5, #5 - movs r4, #0x10 - str r4, [sp] - movs r0, #3 - movs r1, #0 - adds r3, r5, #0 - bl BitFill - ldr r2, _0807BA84 @ =0x0200E000 - str r4, [sp] - movs r0, #3 - movs r1, #0 - adds r3, r5, #0 - bl BitFill - ldr r2, _0807BA88 @ =0x0200F000 - movs r3, #0x80 - lsls r3, r3, #4 - str r4, [sp] - movs r0, #3 - movs r1, #0 - bl BitFill - movs r3, #0 -_0807BA30: - ldr r0, _0807BA84 @ =0x0200E000 - mov sl, r0 - cmp r3, #0 - bne _0807BA3C - ldr r1, _0807BA80 @ =0x0200D000 - mov sl, r1 -_0807BA3C: - ldr r1, _0807BA8C @ =0x0879CDF4 - ldr r0, _0807BA90 @ =0x03000011 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r1, [r0] - lsls r0, r3, #2 - adds r0, r0, r1 - adds r0, #0xb4 - ldr r6, [r0] - movs r7, #0 - ldrh r2, [r6] - movs r4, #0xff - lsls r4, r4, #8 - adds r0, r4, #0 - adds r3, #1 - mov sb, r3 - cmp r2, r4 - beq _0807BB24 -_0807BA66: - movs r5, #1 - adds r1, r0, #0 - ands r1, r2 - movs r0, #0x80 - lsls r0, r0, #8 - cmp r1, r0 - bne _0807BA94 - movs r1, #0xff - mov r8, r1 - mov r4, r8 - ands r4, r2 - mov r8, r4 - b _0807BB0E - .align 2, 0 -_0807BA80: .4byte 0x0200D000 -_0807BA84: .4byte 0x0200E000 -_0807BA88: .4byte 0x0200F000 -_0807BA8C: .4byte 0x0879CDF4 -_0807BA90: .4byte 0x03000011 -_0807BA94: - movs r0, #0x83 - lsls r0, r0, #8 - cmp r1, r0 - bne _0807BAA6 - movs r5, #0 - mov r8, r5 - movs r7, #0xff - ands r7, r2 - b _0807BB0E -_0807BAA6: - movs r0, #0xfe - lsls r0, r0, #8 - cmp r2, r0 - bne _0807BABA - movs r1, #0 - mov r8, r1 - cmp r7, #0xe0 - bgt _0807BB24 - movs r7, #0xe0 - movs r5, #0 -_0807BABA: - cmp r5, #0 - beq _0807BB0E - ldrh r0, [r6] - bl GetCharacterWidth - mov r8, r0 - adds r5, r7, r0 - cmp r5, #0xe0 - ble _0807BAD4 - cmp r7, #0xdf - bgt _0807BAD4 - movs r7, #0xe0 - b _0807BADC -_0807BAD4: - movs r0, #0xe0 - lsls r0, r0, #1 - cmp r5, r0 - bgt _0807BB24 -_0807BADC: - cmp r7, #0xdf - ble _0807BAEA - movs r5, #0x80 - lsls r5, r5, #4 - adds r4, r7, #0 - subs r4, #0xe0 - b _0807BAEE -_0807BAEA: - movs r5, #0 - adds r4, r7, #0 -_0807BAEE: - asrs r0, r4, #3 - lsls r0, r0, #5 - adds r5, r5, r0 - movs r3, #7 - ldrh r0, [r6] - mov r2, sl - adds r1, r2, r5 - mov r5, r8 - lsls r2, r5, #0x18 - lsrs r2, r2, #0x18 - ands r4, r3 - movs r3, #0 - str r3, [sp] - adds r3, r4, #0 - bl DrawCharacter -_0807BB0E: - adds r6, #2 - add r7, r8 - ldr r0, _0807BB60 @ =0x000001BF - cmp r7, r0 - bgt _0807BB24 - ldrh r2, [r6] - movs r1, #0xff - lsls r1, r1, #8 - adds r0, r1, #0 - cmp r2, r1 - bne _0807BA66 -_0807BB24: - mov r3, sb - cmp r3, #1 - ble _0807BA30 - ldr r2, _0807BB64 @ =0x0200F000 - mov sl, r2 - ldr r1, _0807BB68 @ =0x0879CDF4 - ldr r0, _0807BB6C @ =0x03000011 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - adds r0, #0xbc - ldr r6, [r0] - movs r7, #0 - ldrh r1, [r6] - movs r0, #0xff - lsls r0, r0, #8 - cmp r1, r0 - beq _0807BBE0 - movs r5, #1 - movs r0, #0xfe - lsls r0, r0, #8 - cmp r1, r0 - bne _0807BB70 - movs r4, #0 - mov r8, r4 - movs r7, #0x70 - b _0807BBB2 - .align 2, 0 -_0807BB60: .4byte 0x000001BF -_0807BB64: .4byte 0x0200F000 -_0807BB68: .4byte 0x0879CDF4 -_0807BB6C: .4byte 0x03000011 -_0807BB70: - ldrh r1, [r6] - movs r0, #0x80 - lsls r0, r0, #8 - ands r0, r1 - cmp r0, #0 - beq _0807BB80 - movs r5, #0 - mov r8, r5 -_0807BB80: - cmp r5, #0 - beq _0807BBB2 - ldrh r0, [r6] - bl GetCharacterWidth - mov r8, r0 - adds r5, r7, r0 - movs r0, #0xe0 - lsls r0, r0, #1 - cmp r5, r0 - bgt _0807BBE0 - asrs r0, r7, #3 - lsls r5, r0, #5 - movs r3, #7 - ldrh r0, [r6] - mov r2, sl - adds r1, r2, r5 - mov r4, r8 - lsls r2, r4, #0x18 - lsrs r2, r2, #0x18 - ands r3, r7 - movs r4, #0 - str r4, [sp] - bl DrawCharacter -_0807BBB2: - adds r6, #2 - add r7, r8 - ldr r0, _0807BBDC @ =0x000001BF - cmp r7, r0 - bgt _0807BBE0 - ldrh r1, [r6] - movs r0, #0xff - lsls r0, r0, #8 - cmp r1, r0 - beq _0807BBE0 - movs r5, #1 - movs r0, #0xfe - lsls r0, r0, #8 - cmp r1, r0 - bne _0807BB70 - movs r5, #0 - mov r8, r5 - cmp r7, #0x70 - bgt _0807BBE0 - movs r7, #0x70 - b _0807BBB2 - .align 2, 0 -_0807BBDC: .4byte 0x000001BF -_0807BBE0: - add sp, #4 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start GetFlashingSectorNumber -GetFlashingSectorNumber: @ 0x0807BBF0 - push {r4, r5, r6, r7, lr} - ldr r0, _0807BC80 @ =0x0300004D - movs r1, #0 - strb r1, [r0] - ldr r1, _0807BC84 @ =gEventCounter - ldrb r2, [r1] - adds r6, r0, #0 - ldr r1, _0807BC88 @ =0x08575A60 - ldr r7, _0807BC8C @ =gPreviousNavigationConversation - cmp r2, #0 - ble _0807BC2A - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r3, r0, #2 - adds r0, r3, r1 - ldrb r0, [r0, #6] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _0807BC2A - adds r3, r3, r1 -_0807BC1A: - subs r3, #0xc - subs r2, #1 - cmp r2, #0 - ble _0807BC2A - movs r0, #6 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0807BC1A -_0807BC2A: - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r0, r0, #2 - adds r0, r0, r1 - movs r3, #6 - ldrsb r3, [r0, r3] - ldrb r4, [r7] - cmp r4, r3 - bne _0807BC76 - movs r3, #0 - movs r2, #0 - ldr r0, _0807BC90 @ =0x085766E4 - movs r1, #0 - ldrsb r1, [r0, r1] - adds r5, r0, #0 - cmp r4, r1 - beq _0807BC68 -_0807BC4C: - adds r2, #1 - cmp r2, #0x20 - bhi _0807BC64 - ldrb r0, [r7] - lsls r1, r2, #3 - adds r1, r1, r5 - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - cmp r0, r1 - bne _0807BC4C - movs r3, #1 -_0807BC64: - cmp r3, #0 - beq _0807BC76 -_0807BC68: - lsls r0, r2, #3 - adds r0, r0, r5 - ldrb r2, [r0, #1] - ldr r0, _0807BC94 @ =0x08576066 - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r6] -_0807BC76: - ldrb r0, [r6] - pop {r4, r5, r6, r7} - pop {r1} - bx r1 - .align 2, 0 -_0807BC80: .4byte 0x0300004D -_0807BC84: .4byte gEventCounter -_0807BC88: .4byte 0x08575A60 -_0807BC8C: .4byte gPreviousNavigationConversation -_0807BC90: .4byte 0x085766E4 -_0807BC94: .4byte 0x08576066 - - thumb_func_start NavigationConversationLoadPopUpGraphics -NavigationConversationLoadPopUpGraphics: @ 0x0807BC98 - push {r4, r5, r6, lr} - sub sp, #8 - movs r4, #3 - ldr r0, _0807BD68 @ =gNonGameplayRam - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r2, [r0] - ldr r0, _0807BD6C @ =0x0857BCC8 - movs r1, #8 - ldrsb r1, [r0, r1] - adds r3, r0, #0 - cmp r2, r1 - beq _0807BCC8 - adds r1, r3, #0 - adds r1, #8 -_0807BCB8: - subs r1, #4 - subs r4, #1 - cmp r4, #0 - ble _0807BCC8 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r2, r0 - bne _0807BCB8 -_0807BCC8: - cmp r4, #0 - beq _0807BD5E - subs r4, #1 - lsls r0, r4, #2 - adds r4, r0, r3 - ldrb r0, [r4, #1] - cmp r0, #0 - beq _0807BCF0 - ldr r2, _0807BD70 @ =0x0857BC50 - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, #0x14 - adds r0, r0, r2 - ldr r0, [r0] - movs r1, #0x80 - lsls r1, r1, #0x12 - bl LZ77UncompVram -_0807BCF0: - ldrb r0, [r4, #2] - cmp r0, #0 - beq _0807BD0C - ldr r2, _0807BD70 @ =0x0857BC50 - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, #0x14 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, _0807BD74 @ =0x02004000 - bl LZ77UncompVram -_0807BD0C: - ldrb r0, [r4, #3] - cmp r0, #0 - beq _0807BD28 - ldr r2, _0807BD70 @ =0x0857BC50 - adds r1, r0, #0 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, #0x14 - adds r0, r0, r2 - ldr r0, [r0] - ldr r1, _0807BD78 @ =0x02008000 - bl LZ77UncompVram -_0807BD28: - movs r4, #5 - ldr r5, _0807BD7C @ =0x06015700 - movs r6, #0x20 -_0807BD2E: - str r6, [sp] - movs r0, #3 - movs r1, #1 - rsbs r1, r1, #0 - adds r2, r5, #0 - movs r3, #0x80 - lsls r3, r3, #1 - bl BitFill - ldr r0, _0807BD80 @ =0xFFFFFC00 - adds r5, r5, r0 - subs r4, #1 - cmp r4, #0 - bge _0807BD2E - movs r0, #0 - str r0, [sp, #4] - ldr r1, _0807BD84 @ =0x040000D4 - add r0, sp, #4 - str r0, [r1] - ldr r0, _0807BD88 @ =0x050003E0 - str r0, [r1, #4] - ldr r0, _0807BD8C @ =0x85000008 - str r0, [r1, #8] - ldr r0, [r1, #8] -_0807BD5E: - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807BD68: .4byte gNonGameplayRam -_0807BD6C: .4byte 0x0857BCC8 -_0807BD70: .4byte 0x0857BC50 -_0807BD74: .4byte 0x02004000 -_0807BD78: .4byte 0x02008000 -_0807BD7C: .4byte 0x06015700 -_0807BD80: .4byte 0xFFFFFC00 -_0807BD84: .4byte 0x040000D4 -_0807BD88: .4byte 0x050003E0 -_0807BD8C: .4byte 0x85000008 - - thumb_func_start NavigationConversationUpdatePopUp -NavigationConversationUpdatePopUp: @ 0x0807BD90 - push {r4, lr} - ldr r4, _0807BDD0 @ =gNonGameplayRam - movs r0, #0x86 - lsls r0, r0, #2 - adds r2, r4, r0 - ldrb r0, [r2] - cmp r0, #0 - beq _0807BDC8 - ldr r0, _0807BDD4 @ =0x0000021B - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0807BDD8 @ =0x0879C170 - ldrb r0, [r2] - subs r0, #1 - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _0807BDDC @ =0x0000021D - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #0 - beq _0807BDC8 - bl NavigationConversationFadeInPopUpPalette -_0807BDC8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807BDD0: .4byte gNonGameplayRam -_0807BDD4: .4byte 0x0000021B -_0807BDD8: .4byte 0x0879C170 -_0807BDDC: .4byte 0x0000021D - - thumb_func_start unk_7bde0 -unk_7bde0: @ 0x0807BDE0 - push {r4, r5, r6, r7, lr} - ldr r2, _0807BE2C @ =gNonGameplayRam - ldr r0, _0807BE30 @ =0x0000021A - adds r1, r2, r0 - movs r0, #0xff - strb r0, [r1] - movs r3, #3 - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r2, r1 - ldrb r4, [r0] - ldr r0, _0807BE34 @ =0x0857BCC8 - movs r1, #8 - ldrsb r1, [r0, r1] - adds r6, r2, #0 - adds r2, r0, #0 - cmp r4, r1 - beq _0807BE18 - adds r1, r2, #0 - adds r1, #8 -_0807BE08: - subs r1, #4 - subs r3, #1 - cmp r3, #0 - ble _0807BE18 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r4, r0 - bne _0807BE08 -_0807BE18: - subs r3, #1 - cmp r3, #0xff - bne _0807BE38 - movs r2, #0x86 - lsls r2, r2, #2 - adds r1, r6, r2 - movs r0, #0 - strb r0, [r1] - b _0807BFAE - .align 2, 0 -_0807BE2C: .4byte gNonGameplayRam -_0807BE30: .4byte 0x0000021A -_0807BE34: .4byte 0x0857BCC8 -_0807BE38: - ldr r1, _0807BE4C @ =0x00000219 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0807BE50 - lsls r0, r3, #2 - adds r0, r0, r2 - ldrb r1, [r0, #2] - b _0807BE62 - .align 2, 0 -_0807BE4C: .4byte 0x00000219 -_0807BE50: - cmp r0, #2 - bne _0807BE5C - lsls r0, r3, #2 - adds r0, r0, r2 - ldrb r1, [r0, #3] - b _0807BE62 -_0807BE5C: - lsls r0, r3, #2 - adds r0, r0, r2 - ldrb r1, [r0, #1] -_0807BE62: - ldr r2, _0807BE7C @ =0x0000021A - adds r0, r6, r2 - strb r1, [r0] - ldr r1, _0807BE7C @ =0x0000021A - adds r0, r6, r1 - ldrb r3, [r0] - cmp r3, #0 - bne _0807BE80 - movs r2, #0x86 - lsls r2, r2, #2 - adds r0, r6, r2 - strb r3, [r0] - b _0807BFAE - .align 2, 0 -_0807BE7C: .4byte 0x0000021A -_0807BE80: - ldr r1, _0807BEA4 @ =0x00000229 - adds r0, r6, r1 - movs r1, #0 - strb r1, [r0] - movs r2, #0x8a - lsls r2, r2, #2 - adds r0, r6, r2 - strb r1, [r0] - ldr r1, _0807BEA8 @ =0x00000219 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0807BEB0 - subs r2, #0x14 - adds r1, r6, r2 - ldr r0, _0807BEAC @ =0x02004000 - b _0807BECE - .align 2, 0 -_0807BEA4: .4byte 0x00000229 -_0807BEA8: .4byte 0x00000219 -_0807BEAC: .4byte 0x02004000 -_0807BEB0: - cmp r0, #2 - bne _0807BEC4 - movs r0, #0x85 - lsls r0, r0, #2 - adds r1, r6, r0 - ldr r0, _0807BEC0 @ =0x02008000 - b _0807BECE - .align 2, 0 -_0807BEC0: .4byte 0x02008000 -_0807BEC4: - movs r2, #0x85 - lsls r2, r2, #2 - adds r1, r6, r2 - movs r0, #0x80 - lsls r0, r0, #0x12 -_0807BECE: - str r0, [r1] - ldr r2, _0807BF28 @ =0x0857BC50 - ldr r1, _0807BF2C @ =0x0000021A - adds r0, r6, r1 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r1, r0, r2 - ldrb r0, [r1, #0x12] - lsls r2, r0, #0x1c - lsrs r0, r2, #0x1c - cmp r0, #8 - bne _0807BF40 - ldrb r2, [r1, #0x11] - lsls r0, r2, #0x1c - lsrs r3, r0, #0x1c - cmp r3, #0 - ble _0807BF82 - ldr r5, _0807BF30 @ =0x040000D4 - movs r1, #0x85 - lsls r1, r1, #2 - adds r0, r6, r1 - ldr r1, [r0] - lsls r0, r3, #0xa - adds r4, r0, r1 - ldr r0, _0807BF34 @ =0xFFFFFC00 - mov ip, r0 - lsls r7, r2, #0x18 -_0807BF08: - add r4, ip - subs r3, #1 - lsls r2, r3, #0xa - str r4, [r5] - lsrs r0, r7, #0x1c - lsls r0, r0, #0xa - ldr r1, _0807BF38 @ =0x06014300 - adds r0, r0, r1 - adds r2, r2, r0 - str r2, [r5, #4] - ldr r0, _0807BF3C @ =0x80000080 - str r0, [r5, #8] - ldr r0, [r5, #8] - cmp r3, #0 - bgt _0807BF08 - b _0807BF82 - .align 2, 0 -_0807BF28: .4byte 0x0857BC50 -_0807BF2C: .4byte 0x0000021A -_0807BF30: .4byte 0x040000D4 -_0807BF34: .4byte 0xFFFFFC00 -_0807BF38: .4byte 0x06014300 -_0807BF3C: .4byte 0x80000080 -_0807BF40: - lsrs r0, r2, #0x1c - cmp r0, #4 - bne _0807BF82 - ldrb r2, [r1, #0x11] - lsls r0, r2, #0x1c - lsrs r3, r0, #0x1c - cmp r3, #0 - ble _0807BF82 - ldr r5, _0807BFB4 @ =0x040000D4 - movs r1, #0x85 - lsls r1, r1, #2 - adds r0, r6, r1 - ldr r1, [r0] - lsls r0, r3, #0xa - adds r4, r0, r1 - lsls r7, r2, #0x18 -_0807BF60: - ldr r2, _0807BFB8 @ =0xFFFFFC00 - adds r4, r4, r2 - subs r3, #1 - lsls r2, r3, #0xa - str r4, [r5] - lsrs r0, r7, #0x1c - lsls r0, r0, #0xa - ldr r1, _0807BFBC @ =0x06014300 - adds r0, r0, r1 - adds r2, r2, r0 - adds r2, #0x40 - str r2, [r5, #4] - ldr r0, _0807BFC0 @ =0x80000040 - str r0, [r5, #8] - ldr r0, [r5, #8] - cmp r3, #0 - bgt _0807BF60 -_0807BF82: - ldr r1, _0807BFC4 @ =0x0000021A - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _0807BF92 - ldr r0, _0807BFC8 @ =0x00000125 - bl SoundPlay -_0807BF92: - ldr r2, _0807BFCC @ =0x0000021D - adds r1, r6, r2 - movs r2, #0 - movs r0, #1 - strb r0, [r1] - movs r0, #0x86 - lsls r0, r0, #2 - adds r1, r6, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0807BFD0 @ =0x0000021B - adds r0, r6, r1 - strb r2, [r0] -_0807BFAE: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807BFB4: .4byte 0x040000D4 -_0807BFB8: .4byte 0xFFFFFC00 -_0807BFBC: .4byte 0x06014300 -_0807BFC0: .4byte 0x80000040 -_0807BFC4: .4byte 0x0000021A -_0807BFC8: .4byte 0x00000125 -_0807BFCC: .4byte 0x0000021D -_0807BFD0: .4byte 0x0000021B - - thumb_func_start NavigationConversationFadeInPopUpPalette -NavigationConversationFadeInPopUpPalette: @ 0x0807BFD4 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r2, _0807C068 @ =0x0857BC50 - ldr r3, _0807C06C @ =gNonGameplayRam - ldr r1, _0807C070 @ =0x0000021A - adds r0, r3, r1 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r2, #8 - adds r0, r0, r2 - ldr r2, [r0] - ldr r6, _0807C074 @ =0x050003E0 - movs r0, #0 - mov ip, r0 - mov sb, sp - movs r1, #0xf8 - lsls r1, r1, #7 - mov sl, r1 - add r5, sp, #4 -_0807C006: - ldrb r1, [r2] - movs r0, #0x1f - ands r0, r1 - mov r1, sb - strb r0, [r1] - ldrh r1, [r2] - movs r0, #0xf8 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #5 - mov r1, sb - strb r0, [r1, #1] - ldrh r1, [r2] - mov r0, sl - ands r0, r1 - lsrs r0, r0, #0xa - mov r1, sb - strb r0, [r1, #2] - ldrb r1, [r6] - movs r0, #0x1f - ands r0, r1 - strb r0, [r5] - ldrh r1, [r6] - movs r0, #0xf8 - lsls r0, r0, #2 - ands r0, r1 - lsrs r0, r0, #5 - strb r0, [r5, #1] - ldrh r1, [r6] - mov r0, sl - ands r0, r1 - lsrs r0, r0, #0xa - strb r0, [r5, #2] - movs r4, #0 - movs r0, #1 - add ip, r0 - adds r7, r2, #2 - adds r1, r6, #2 - mov r8, r1 - adds r3, r5, #0 -_0807C056: - mov r1, sp - adds r0, r1, r4 - ldrb r2, [r3] - ldrb r1, [r0] - adds r0, r2, #0 - cmp r1, r0 - bls _0807C078 - adds r0, r2, #1 - b _0807C07E - .align 2, 0 -_0807C068: .4byte 0x0857BC50 -_0807C06C: .4byte gNonGameplayRam -_0807C070: .4byte 0x0000021A -_0807C074: .4byte 0x050003E0 -_0807C078: - cmp r1, r0 - bhs _0807C080 - subs r0, r2, #1 -_0807C07E: - strb r0, [r3] -_0807C080: - adds r3, #1 - adds r4, #1 - cmp r4, #2 - ble _0807C056 - ldrb r0, [r5] - ldrb r1, [r5, #1] - lsls r1, r1, #5 - orrs r0, r1 - ldrb r1, [r5, #2] - lsls r1, r1, #0xa - orrs r0, r1 - strh r0, [r6] - adds r2, r7, #0 - mov r6, r8 - mov r0, ip - cmp r0, #0xf - ble _0807C006 - ldr r1, _0807C0B4 @ =gNonGameplayRam - ldr r0, _0807C0B8 @ =0x0000021D - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, #0x20 - bls _0807C0BC - movs r0, #0 - b _0807C0BE - .align 2, 0 -_0807C0B4: .4byte gNonGameplayRam -_0807C0B8: .4byte 0x0000021D -_0807C0BC: - adds r0, #1 -_0807C0BE: - strb r0, [r3] - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - - thumb_func_start NavigationConversationUpdateXParasitePopUp -NavigationConversationUpdateXParasitePopUp: @ 0x0807C0D0 - push {r4, r5, r6, r7, lr} - bl unk_7c3b4 - ldr r0, _0807C148 @ =0x0857BC50 - mov ip, r0 - ldr r3, _0807C14C @ =gNonGameplayRam - ldr r1, _0807C150 @ =0x0000021A - adds r6, r3, r1 - ldrb r1, [r6] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - mov r2, ip - adds r1, r0, r2 - ldrb r0, [r1, #0x12] - lsls r2, r0, #0x1c - lsrs r0, r2, #0x1c - cmp r0, #8 - beq _0807C0F8 - b _0807C20C -_0807C0F8: - ldr r7, [r1] - ldr r0, _0807C154 @ =0x0000021B - adds r2, r3, r0 - movs r1, #0x87 - lsls r1, r1, #2 - adds r4, r3, r1 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrb r1, [r2] - ldrb r0, [r0, #1] - cmp r1, r0 - bhs _0807C114 - b _0807C2F4 -_0807C114: - movs r5, #0 - strb r5, [r2] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldrb r2, [r6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #3 - add r1, ip - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #4] - cmp r0, r1 - blo _0807C134 - strb r5, [r4] -_0807C134: - ldr r2, _0807C158 @ =0x00000219 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, #1 - bne _0807C160 - movs r0, #0x85 - lsls r0, r0, #2 - adds r1, r3, r0 - ldr r0, _0807C15C @ =0x02004000 - b _0807C17E - .align 2, 0 -_0807C148: .4byte 0x0857BC50 -_0807C14C: .4byte gNonGameplayRam -_0807C150: .4byte 0x0000021A -_0807C154: .4byte 0x0000021B -_0807C158: .4byte 0x00000219 -_0807C15C: .4byte 0x02004000 -_0807C160: - cmp r0, #2 - bne _0807C174 - movs r2, #0x85 - lsls r2, r2, #2 - adds r1, r3, r2 - ldr r0, _0807C170 @ =0x02008000 - b _0807C17E - .align 2, 0 -_0807C170: .4byte 0x02008000 -_0807C174: - movs r0, #0x85 - lsls r0, r0, #2 - adds r1, r3, r0 - movs r0, #0x80 - lsls r0, r0, #0x12 -_0807C17E: - str r0, [r1] - ldr r3, _0807C1F0 @ =0x0857BC50 - ldr r2, _0807C1F4 @ =gNonGameplayRam - ldr r1, _0807C1F8 @ =0x0000021A - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #0x11] - lsls r3, r0, #0x1c - lsrs r6, r0, #4 - movs r1, #0x87 - lsls r1, r1, #2 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrb r1, [r0] - movs r0, #3 - ands r0, r1 - lsls r4, r0, #8 - lsrs r1, r1, #2 - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #0xb - adds r4, r4, r0 - movs r0, #0x85 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r0, [r2] - adds r5, r0, r4 - str r5, [r2] - lsrs r4, r3, #0x1c - cmp r4, #0 - bgt _0807C1CA - b _0807C2F4 -_0807C1CA: - ldr r3, _0807C1FC @ =0x040000D4 - lsls r2, r4, #0xa - ldr r0, _0807C200 @ =0x06014300 - adds r1, r2, r0 - lsls r0, r6, #0xa - adds r1, r1, r0 - adds r2, r2, r5 - ldr r5, _0807C204 @ =0xFFFFFC00 - ldr r6, _0807C208 @ =0x80000080 -_0807C1DC: - adds r1, r1, r5 - adds r2, r2, r5 - subs r4, #1 - str r2, [r3] - str r1, [r3, #4] - str r6, [r3, #8] - ldr r0, [r3, #8] - cmp r4, #0 - bgt _0807C1DC - b _0807C2F4 - .align 2, 0 -_0807C1F0: .4byte 0x0857BC50 -_0807C1F4: .4byte gNonGameplayRam -_0807C1F8: .4byte 0x0000021A -_0807C1FC: .4byte 0x040000D4 -_0807C200: .4byte 0x06014300 -_0807C204: .4byte 0xFFFFFC00 -_0807C208: .4byte 0x80000080 -_0807C20C: - lsrs r0, r2, #0x1c - cmp r0, #4 - bne _0807C2F4 - ldr r7, [r1] - ldr r1, _0807C260 @ =0x0000021B - adds r2, r3, r1 - movs r0, #0x87 - lsls r0, r0, #2 - adds r4, r3, r0 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrb r1, [r2] - ldrb r0, [r0, #1] - cmp r1, r0 - blo _0807C2F4 - movs r5, #0 - strb r5, [r2] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - ldrb r2, [r6] - lsls r1, r2, #1 - adds r1, r1, r2 - lsls r1, r1, #3 - add r1, ip - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #4] - cmp r0, r1 - blo _0807C24C - strb r5, [r4] -_0807C24C: - ldr r1, _0807C264 @ =0x00000219 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, #1 - bne _0807C26C - movs r2, #0x85 - lsls r2, r2, #2 - adds r1, r3, r2 - ldr r0, _0807C268 @ =0x02004000 - b _0807C28A - .align 2, 0 -_0807C260: .4byte 0x0000021B -_0807C264: .4byte 0x00000219 -_0807C268: .4byte 0x02004000 -_0807C26C: - cmp r0, #2 - bne _0807C280 - movs r0, #0x85 - lsls r0, r0, #2 - adds r1, r3, r0 - ldr r0, _0807C27C @ =0x02008000 - b _0807C28A - .align 2, 0 -_0807C27C: .4byte 0x02008000 -_0807C280: - movs r2, #0x85 - lsls r2, r2, #2 - adds r1, r3, r2 - movs r0, #0x80 - lsls r0, r0, #0x12 -_0807C28A: - str r0, [r1] - ldr r3, _0807C2FC @ =0x0857BC50 - ldr r2, _0807C300 @ =gNonGameplayRam - ldr r1, _0807C304 @ =0x0000021A - adds r0, r2, r1 - ldrb r1, [r0] - lsls r0, r1, #1 - adds r0, r0, r1 - lsls r0, r0, #3 - adds r0, r0, r3 - ldrb r0, [r0, #0x11] - lsls r3, r0, #0x1c - lsrs r6, r0, #4 - movs r1, #0x87 - lsls r1, r1, #2 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, r0, #1 - adds r0, r0, r7 - ldrb r1, [r0] - movs r0, #7 - ands r0, r1 - lsls r4, r0, #7 - lsrs r1, r1, #3 - lsls r1, r1, #0xc - adds r4, r4, r1 - movs r0, #0x85 - lsls r0, r0, #2 - adds r2, r2, r0 - ldr r0, [r2] - adds r5, r0, r4 - str r5, [r2] - lsrs r4, r3, #0x1c - cmp r4, #0 - ble _0807C2F4 - ldr r3, _0807C308 @ =0x040000D4 - lsls r2, r4, #0xa - ldr r0, _0807C30C @ =0x06014340 - adds r1, r2, r0 - lsls r0, r6, #0xa - adds r1, r1, r0 - adds r2, r2, r5 - ldr r5, _0807C310 @ =0xFFFFFC00 - ldr r6, _0807C314 @ =0x80000040 -_0807C2E2: - adds r1, r1, r5 - adds r2, r2, r5 - subs r4, #1 - str r2, [r3] - str r1, [r3, #4] - str r6, [r3, #8] - ldr r0, [r3, #8] - cmp r4, #0 - bgt _0807C2E2 -_0807C2F4: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807C2FC: .4byte 0x0857BC50 -_0807C300: .4byte gNonGameplayRam -_0807C304: .4byte 0x0000021A -_0807C308: .4byte 0x040000D4 -_0807C30C: .4byte 0x06014340 -_0807C310: .4byte 0xFFFFFC00 -_0807C314: .4byte 0x80000040 - - thumb_func_start NavigationConversationClearPopUpGraphics -NavigationConversationClearPopUpGraphics: @ 0x0807C318 - push {r4, r5, r6, lr} - sub sp, #8 - movs r5, #5 - ldr r4, _0807C390 @ =0x06015700 - movs r6, #0x20 -_0807C322: - str r6, [sp] - movs r0, #3 - movs r1, #1 - rsbs r1, r1, #0 - adds r2, r4, #0 - movs r3, #0x80 - lsls r3, r3, #1 - bl BitFill - ldr r0, _0807C394 @ =0xFFFFFC00 - adds r4, r4, r0 - subs r5, #1 - cmp r5, #0 - bge _0807C322 - movs r5, #0 - str r5, [sp, #4] - ldr r1, _0807C398 @ =0x040000D4 - add r0, sp, #4 - str r0, [r1] - ldr r0, _0807C39C @ =0x050003E0 - str r0, [r1, #4] - ldr r0, _0807C3A0 @ =0x85000008 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r4, _0807C3A4 @ =gNonGameplayRam - ldr r1, _0807C3A8 @ =0x0000021A - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, #3 - bne _0807C364 - ldr r0, _0807C3AC @ =0x00000125 - bl SoundStop -_0807C364: - movs r1, #0x86 - lsls r1, r1, #2 - adds r0, r4, r1 - strb r5, [r0] - adds r1, #4 - adds r0, r4, r1 - strb r5, [r0] - subs r1, #1 - adds r0, r4, r1 - strb r5, [r0] - adds r1, #2 - adds r0, r4, r1 - strb r5, [r0] - ldr r0, _0807C3B0 @ =0x00000219 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - add sp, #8 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807C390: .4byte 0x06015700 -_0807C394: .4byte 0xFFFFFC00 -_0807C398: .4byte 0x040000D4 -_0807C39C: .4byte 0x050003E0 -_0807C3A0: .4byte 0x85000008 -_0807C3A4: .4byte gNonGameplayRam -_0807C3A8: .4byte 0x0000021A -_0807C3AC: .4byte 0x00000125 -_0807C3B0: .4byte 0x00000219 - - thumb_func_start unk_7c3b4 -unk_7c3b4: @ 0x0807C3B4 - push {r4, r5, r6, lr} - ldr r4, _0807C42C @ =0x0857BC50 - ldr r5, _0807C430 @ =gNonGameplayRam - ldr r0, _0807C434 @ =0x0000021A - adds r2, r5, r0 - ldrb r0, [r2] - lsls r1, r0, #1 - adds r1, r1, r0 - lsls r1, r1, #3 - adds r1, r1, r4 - ldrb r0, [r1, #0x10] - cmp r0, #0 - beq _0807C424 - ldr r1, _0807C438 @ =0x00000229 - adds r3, r5, r1 - ldrb r1, [r3] - adds r1, #1 - movs r6, #0 - strb r1, [r3] - ldrb r2, [r2] - lsls r0, r2, #1 - adds r0, r0, r2 - lsls r2, r0, #3 - adds r0, r2, r4 - lsls r1, r1, #0x18 - lsrs r1, r1, #0x18 - ldrb r0, [r0, #0x10] - cmp r1, r0 - blo _0807C424 - strb r6, [r3] - adds r0, r4, #0 - adds r0, #0xc - adds r0, r2, r0 - movs r1, #0x8a - lsls r1, r1, #2 - adds r4, r5, r1 - ldrb r1, [r4] - lsls r1, r1, #1 - ldr r3, [r0] - adds r2, r3, r1 - ldrh r0, [r2] - cmp r0, #0 - bne _0807C40E - strb r6, [r4] - adds r2, r3, #0 -_0807C40E: - ldr r1, _0807C43C @ =0x050003FE - ldrh r0, [r2] - strh r0, [r1] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xf - bls _0807C424 - strb r6, [r4] -_0807C424: - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807C42C: .4byte 0x0857BC50 -_0807C430: .4byte gNonGameplayRam -_0807C434: .4byte 0x0000021A -_0807C438: .4byte 0x00000229 -_0807C43C: .4byte 0x050003FE - - thumb_func_start unk_7c440 -unk_7c440: @ 0x0807C440 - push {r4, r5, r6, r7, lr} - ldr r2, _0807C518 @ =gNonGameplayRam - ldr r0, _0807C51C @ =0x00000225 - adds r5, r2, r0 - ldrb r0, [r5] - adds r0, #1 - movs r7, #0 - strb r0, [r5] - ldr r3, _0807C520 @ =0x0857BEB4 - movs r1, #0x89 - lsls r1, r1, #2 - adds r4, r2, r1 - ldrb r1, [r4] - adds r1, r1, r3 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - adds r6, r2, #0 - ldrb r1, [r1] - cmp r0, r1 - blo _0807C4B0 - strb r7, [r5] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0807C47A - strb r7, [r4] -_0807C47A: - movs r3, #0xa0 - lsls r3, r3, #0x13 - ldr r1, _0807C524 @ =0x0857BCD4 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #0x24] - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r1 - ldrh r0, [r0] - strh r0, [r3, #0x26] - adds r1, r3, #0 - adds r1, #0x44 - ldr r2, _0807C528 @ =0x0857BCF4 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - ldrb r0, [r4] - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] -_0807C4B0: - adds r1, r6, #0 - ldrb r0, [r1] - cmp r0, #0 - beq _0807C59C - cmp r0, #1 - bne _0807C53C - ldr r6, _0807C52C @ =0x0000022D - adds r3, r1, r6 - ldrb r0, [r3] - adds r0, #1 - movs r5, #0 - strb r0, [r3] - ldr r2, _0807C530 @ =0x0857BEB8 - subs r6, #1 - adds r4, r1, r6 - ldrb r1, [r4] - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0807C59C - strb r5, [r3] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _0807C4EE - strb r5, [r4] -_0807C4EE: - ldr r3, _0807C534 @ =0x05000138 - ldrb r0, [r4] - lsls r0, r0, #4 - adds r0, #0xc - adds r2, r0, #0 - movs r1, #0 - ldr r4, _0807C538 @ =0x0857BD34 -_0807C4FC: - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r3] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r3, #2 - cmp r1, #3 - bls _0807C4FC - b _0807C59C - .align 2, 0 -_0807C518: .4byte gNonGameplayRam -_0807C51C: .4byte 0x00000225 -_0807C520: .4byte 0x0857BEB4 -_0807C524: .4byte 0x0857BCD4 -_0807C528: .4byte 0x0857BCF4 -_0807C52C: .4byte 0x0000022D -_0807C530: .4byte 0x0857BEB8 -_0807C534: .4byte 0x05000138 -_0807C538: .4byte 0x0857BD34 -_0807C53C: - cmp r0, #2 - bne _0807C59C - ldr r0, _0807C5A4 @ =0x0000022D - adds r3, r6, r0 - ldrb r0, [r3] - adds r0, #1 - movs r5, #0 - strb r0, [r3] - ldr r2, _0807C5A8 @ =0x0857BEBC - movs r1, #0x8b - lsls r1, r1, #2 - adds r4, r6, r1 - ldrb r1, [r4] - adds r1, r1, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - blo _0807C59C - strb r5, [r3] - ldrb r0, [r4] - adds r0, #1 - strb r0, [r4] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0807C574 - strb r5, [r4] -_0807C574: - ldr r3, _0807C5AC @ =0x05000194 - ldrb r0, [r4] - lsls r0, r0, #4 - adds r0, #0xa - adds r2, r0, #0 - movs r1, #0 - ldr r4, _0807C5B0 @ =0x0857BDB4 -_0807C582: - lsls r0, r2, #1 - adds r0, r0, r4 - ldrh r0, [r0] - strh r0, [r3] - adds r0, r1, #1 - lsls r0, r0, #0x10 - lsrs r1, r0, #0x10 - adds r0, r2, #1 - lsls r0, r0, #0x10 - lsrs r2, r0, #0x10 - adds r3, #2 - cmp r1, #5 - bls _0807C582 -_0807C59C: - pop {r4, r5, r6, r7} - pop {r0} - bx r0 - .align 2, 0 -_0807C5A4: .4byte 0x0000022D -_0807C5A8: .4byte 0x0857BEBC -_0807C5AC: .4byte 0x05000194 -_0807C5B0: .4byte 0x0857BDB4 - - thumb_func_start NavigationConversationLoadSpecialGraphics -NavigationConversationLoadSpecialGraphics: @ 0x0807C5B4 - push {lr} - ldr r0, _0807C5F0 @ =gNonGameplayRam - movs r1, #0x88 - lsls r1, r1, #2 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x35 - bne _0807C618 - ldr r0, _0807C5F4 @ =0x0857C0C4 - movs r1, #0x80 - lsls r1, r1, #0x12 - bl LZ77UncompVram - ldr r0, _0807C5F8 @ =0x0857FCA0 - ldr r1, _0807C5FC @ =0x02006000 - bl LZ77UncompVram - ldr r0, _0807C600 @ =0x08580238 - ldr r1, _0807C604 @ =0x02006800 - bl LZ77UncompVram - ldr r0, _0807C608 @ =0x085807D0 - ldr r1, _0807C60C @ =0x02007000 - bl LZ77UncompVram - ldr r0, _0807C610 @ =0x08580D68 - ldr r1, _0807C614 @ =0x02007800 - bl LZ77UncompVram - b _0807C626 - .align 2, 0 -_0807C5F0: .4byte gNonGameplayRam -_0807C5F4: .4byte 0x0857C0C4 -_0807C5F8: .4byte 0x0857FCA0 -_0807C5FC: .4byte 0x02006000 -_0807C600: .4byte 0x08580238 -_0807C604: .4byte 0x02006800 -_0807C608: .4byte 0x085807D0 -_0807C60C: .4byte 0x02007000 -_0807C610: .4byte 0x08580D68 -_0807C614: .4byte 0x02007800 -_0807C618: - cmp r0, #0xe - bne _0807C626 - ldr r0, _0807C62C @ =0x0872F2E0 - movs r1, #0x80 - lsls r1, r1, #0x12 - bl LZ77UncompVram -_0807C626: - pop {r0} - bx r0 - .align 2, 0 -_0807C62C: .4byte 0x0872F2E0 - - thumb_func_start unk_7c630 -unk_7c630: @ 0x0807C630 - push {r4, lr} - sub sp, #4 - ldr r1, _0807C650 @ =gNonGameplayRam - ldr r2, _0807C654 @ =0x00000265 - adds r0, r1, r2 - ldrb r0, [r0] - adds r4, r1, #0 - cmp r0, #0x25 - bls _0807C646 - bl _0807CE56 -_0807C646: - lsls r0, r0, #2 - ldr r1, _0807C658 @ =_0807C65C - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807C650: .4byte gNonGameplayRam -_0807C654: .4byte 0x00000265 -_0807C658: .4byte _0807C65C -_0807C65C: @ jump table - .4byte _0807C6F4 @ case 0 - .4byte _0807C770 @ case 1 - .4byte _0807C79C @ case 2 - .4byte _0807C7B8 @ case 3 - .4byte _0807C7E4 @ case 4 - .4byte _0807C810 @ case 5 - .4byte _0807C82C @ case 6 - .4byte _0807C858 @ case 7 - .4byte _0807C884 @ case 8 - .4byte _0807C8A0 @ case 9 - .4byte _0807C8CC @ case 10 - .4byte _0807C924 @ case 11 - .4byte _0807C940 @ case 12 - .4byte _0807C970 @ case 13 - .4byte _0807C99C @ case 14 - .4byte _0807C9C8 @ case 15 - .4byte _0807C9F0 @ case 16 - .4byte _0807CA10 @ case 17 - .4byte _0807CA50 @ case 18 - .4byte _0807CA90 @ case 19 - .4byte _0807CAD0 @ case 20 - .4byte _0807CAFC @ case 21 - .4byte _0807CB20 @ case 22 - .4byte _0807CB58 @ case 23 - .4byte _0807CBB0 @ case 24 - .4byte _0807CBE0 @ case 25 - .4byte _0807CC18 @ case 26 - .4byte _0807CC4C @ case 27 - .4byte _0807CC70 @ case 28 - .4byte _0807CC9C @ case 29 - .4byte _0807CCC8 @ case 30 - .4byte _0807CCE4 @ case 31 - .4byte _0807CD30 @ case 32 - .4byte _0807CD5C @ case 33 - .4byte _0807CD78 @ case 34 - .4byte _0807CDA4 @ case 35 - .4byte _0807CDD0 @ case 36 - .4byte _0807CE10 @ case 37 -_0807C6F4: - movs r0, #0x80 - lsls r0, r0, #0x13 - ldrh r1, [r0] - ldr r3, _0807C74C @ =0x0000026A - adds r0, r4, r3 - movs r2, #0 - strh r1, [r0] - ldr r0, _0807C750 @ =0x0400000E - ldrh r1, [r0] - adds r3, #2 - adds r0, r4, r3 - strh r1, [r0] - ldr r0, _0807C754 @ =0x0400000C - ldrh r1, [r0] - adds r3, #2 - adds r0, r4, r3 - strh r1, [r0] - ldr r0, _0807C758 @ =0x04000050 - ldrh r1, [r0] - adds r3, #2 - adds r0, r4, r3 - strh r1, [r0] - ldr r0, _0807C75C @ =0x04000052 - ldrh r1, [r0] - adds r3, #2 - adds r0, r4, r3 - strh r1, [r0] - movs r1, #0x9a - lsls r1, r1, #2 - adds r0, r4, r1 - strh r2, [r0] - ldr r1, _0807C760 @ =0x040000D4 - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r1] - ldr r0, _0807C764 @ =0x02035000 - str r0, [r1, #4] - ldr r0, _0807C768 @ =0x80000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r2, _0807C76C @ =0x00000265 - adds r1, r4, r2 - b _0807CDEE - .align 2, 0 -_0807C74C: .4byte 0x0000026A -_0807C750: .4byte 0x0400000E -_0807C754: .4byte 0x0400000C -_0807C758: .4byte 0x04000050 -_0807C75C: .4byte 0x04000052 -_0807C760: .4byte 0x040000D4 -_0807C764: .4byte 0x02035000 -_0807C768: .4byte 0x80000100 -_0807C76C: .4byte 0x00000265 -_0807C770: - ldr r1, _0807C78C @ =0x06004000 - ldr r2, _0807C790 @ =0x02008000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C794 @ =gNonGameplayRam - ldr r3, _0807C798 @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807C78C: .4byte 0x06004000 -_0807C790: .4byte 0x02008000 -_0807C794: .4byte gNonGameplayRam -_0807C798: .4byte 0x00000265 -_0807C79C: - ldr r1, _0807C7B0 @ =0x06005000 - ldr r2, _0807C7B4 @ =0x02009000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - b _0807CDE8 - .align 2, 0 -_0807C7B0: .4byte 0x06005000 -_0807C7B4: .4byte 0x02009000 -_0807C7B8: - ldr r1, _0807C7D4 @ =0x06006000 - ldr r2, _0807C7D8 @ =0x0200A000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C7DC @ =gNonGameplayRam - ldr r2, _0807C7E0 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807C7D4: .4byte 0x06006000 -_0807C7D8: .4byte 0x0200A000 -_0807C7DC: .4byte gNonGameplayRam -_0807C7E0: .4byte 0x00000265 -_0807C7E4: - ldr r1, _0807C800 @ =0x06007000 - ldr r2, _0807C804 @ =0x0200B000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C808 @ =gNonGameplayRam - ldr r3, _0807C80C @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807C800: .4byte 0x06007000 -_0807C804: .4byte 0x0200B000 -_0807C808: .4byte gNonGameplayRam -_0807C80C: .4byte 0x00000265 -_0807C810: - movs r1, #0x80 - lsls r1, r1, #0x12 - ldr r2, _0807C828 @ =0x06004000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - b _0807CDE8 - .align 2, 0 -_0807C828: .4byte 0x06004000 -_0807C82C: - ldr r1, _0807C848 @ =0x02001000 - ldr r2, _0807C84C @ =0x06005000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C850 @ =gNonGameplayRam - ldr r2, _0807C854 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807C848: .4byte 0x02001000 -_0807C84C: .4byte 0x06005000 -_0807C850: .4byte gNonGameplayRam -_0807C854: .4byte 0x00000265 -_0807C858: - ldr r1, _0807C874 @ =0x02002000 - ldr r2, _0807C878 @ =0x06006000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C87C @ =gNonGameplayRam - ldr r3, _0807C880 @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807C874: .4byte 0x02002000 -_0807C878: .4byte 0x06006000 -_0807C87C: .4byte gNonGameplayRam -_0807C880: .4byte 0x00000265 -_0807C884: - ldr r1, _0807C898 @ =0x02003000 - ldr r2, _0807C89C @ =0x06007000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - b _0807CDE8 - .align 2, 0 -_0807C898: .4byte 0x02003000 -_0807C89C: .4byte 0x06007000 -_0807C8A0: - ldr r1, _0807C8BC @ =0x02004000 - ldr r2, _0807C8C0 @ =0x06008000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C8C4 @ =gNonGameplayRam - ldr r2, _0807C8C8 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807C8BC: .4byte 0x02004000 -_0807C8C0: .4byte 0x06008000 -_0807C8C4: .4byte gNonGameplayRam -_0807C8C8: .4byte 0x00000265 -_0807C8CC: - ldr r1, _0807C8F8 @ =0x02005000 - ldr r2, _0807C8FC @ =0x06009000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r4, #0x10 - str r4, [sp] - movs r0, #3 - bl DmaTransfer - ldr r2, _0807C900 @ =gNonGameplayRam - movs r3, #0x88 - lsls r3, r3, #2 - adds r0, r2, r3 - ldrb r0, [r0] - cmp r0, #0x35 - bne _0807C908 - ldr r0, _0807C904 @ =0x00000265 - adds r1, r2, r0 - movs r0, #0xd - strb r0, [r1] - b _0807CE56 - .align 2, 0 -_0807C8F8: .4byte 0x02005000 -_0807C8FC: .4byte 0x06009000 -_0807C900: .4byte gNonGameplayRam -_0807C904: .4byte 0x00000265 -_0807C908: - ldr r1, _0807C918 @ =gWrittenToBldalpha_Evb - movs r0, #0 - strh r0, [r1] - ldr r0, _0807C91C @ =gWrittenToBldalpha_Eva - strh r4, [r0] - ldr r3, _0807C920 @ =0x00000265 - adds r1, r2, r3 - b _0807CDEE - .align 2, 0 -_0807C918: .4byte gWrittenToBldalpha_Evb -_0807C91C: .4byte gWrittenToBldalpha_Eva -_0807C920: .4byte 0x00000265 -_0807C924: - ldr r1, _0807C938 @ =0x02006000 - ldr r2, _0807C93C @ =0x0600A000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - b _0807CDE8 - .align 2, 0 -_0807C938: .4byte 0x02006000 -_0807C93C: .4byte 0x0600A000 -_0807C940: - ldr r1, _0807C960 @ =0x02007000 - ldr r2, _0807C964 @ =0x0600B000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r0, _0807C968 @ =gNonGameplayRam - ldr r1, _0807C96C @ =0x00000265 - adds r0, r0, r1 - movs r1, #0x15 - strb r1, [r0] - b _0807CE56 - .align 2, 0 -_0807C960: .4byte 0x02007000 -_0807C964: .4byte 0x0600B000 -_0807C968: .4byte gNonGameplayRam -_0807C96C: .4byte 0x00000265 -_0807C970: - ldr r1, _0807C98C @ =0x02006000 - ldr r2, _0807C990 @ =0x0600A000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C994 @ =gNonGameplayRam - ldr r2, _0807C998 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807C98C: .4byte 0x02006000 -_0807C990: .4byte 0x0600A000 -_0807C994: .4byte gNonGameplayRam -_0807C998: .4byte 0x00000265 -_0807C99C: - ldr r1, _0807C9B8 @ =0x02007000 - ldr r2, _0807C9BC @ =0x0600B000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807C9C0 @ =gNonGameplayRam - ldr r3, _0807C9C4 @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807C9B8: .4byte 0x02007000 -_0807C9BC: .4byte 0x0600B000 -_0807C9C0: .4byte gNonGameplayRam -_0807C9C4: .4byte 0x00000265 -_0807C9C8: - ldr r1, _0807C9E0 @ =0x040000D4 - ldr r0, _0807C9E4 @ =0x0857BEC4 - str r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0807C9E8 @ =0x80000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0807C9EC @ =PauseScreenVBLank_Unused - b _0807CDE4 - .align 2, 0 -_0807C9E0: .4byte 0x040000D4 -_0807C9E4: .4byte 0x0857BEC4 -_0807C9E8: .4byte 0x80000100 -_0807C9EC: .4byte PauseScreenVBLank_Unused -_0807C9F0: - ldr r1, _0807CA08 @ =0x0300000A - ldr r2, _0807CA0C @ =0x00001407 - adds r0, r2, #0 - strh r0, [r1] - movs r3, #0x9a - lsls r3, r3, #2 - adds r2, r4, r3 - ldrh r1, [r2] - movs r3, #0x80 - lsls r3, r3, #4 - b _0807CB7C - .align 2, 0 -_0807CA08: .4byte 0x0300000A -_0807CA0C: .4byte 0x00001407 -_0807CA10: - ldr r3, _0807CA3C @ =0x00000266 - adds r2, r4, r3 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0807CA40 @ =0x0879C17C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bhi _0807CA28 - b _0807CE56 -_0807CA28: - ldr r1, _0807CA44 @ =0x0300000A - ldr r3, _0807CA48 @ =0x00001507 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _0807CA4C @ =0x00000265 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807CC38 - .align 2, 0 -_0807CA3C: .4byte 0x00000266 -_0807CA40: .4byte 0x0879C17C -_0807CA44: .4byte 0x0300000A -_0807CA48: .4byte 0x00001507 -_0807CA4C: .4byte 0x00000265 -_0807CA50: - ldr r1, _0807CA7C @ =0x00000266 - adds r2, r4, r1 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0807CA80 @ =0x0879C17C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #1] - cmp r0, r1 - bhi _0807CA68 - b _0807CE56 -_0807CA68: - ldr r1, _0807CA84 @ =0x0300000A - ldr r3, _0807CA88 @ =0x00001607 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _0807CA8C @ =0x00000265 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807CC38 - .align 2, 0 -_0807CA7C: .4byte 0x00000266 -_0807CA80: .4byte 0x0879C17C -_0807CA84: .4byte 0x0300000A -_0807CA88: .4byte 0x00001607 -_0807CA8C: .4byte 0x00000265 -_0807CA90: - ldr r1, _0807CABC @ =0x00000266 - adds r2, r4, r1 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0807CAC0 @ =0x0879C17C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #2] - cmp r0, r1 - bhi _0807CAA8 - b _0807CE56 -_0807CAA8: - ldr r1, _0807CAC4 @ =0x0300000A - ldr r3, _0807CAC8 @ =0x00001707 - adds r0, r3, #0 - strh r0, [r1] - ldr r0, _0807CACC @ =0x00000265 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807CC38 - .align 2, 0 -_0807CABC: .4byte 0x00000266 -_0807CAC0: .4byte 0x0879C17C -_0807CAC4: .4byte 0x0300000A -_0807CAC8: .4byte 0x00001707 -_0807CACC: .4byte 0x00000265 -_0807CAD0: - ldr r1, _0807CAF0 @ =0x00000266 - adds r2, r4, r1 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0807CAF4 @ =0x0879C17C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #3] - cmp r0, r1 - bhi _0807CAE8 - b _0807CE56 -_0807CAE8: - ldr r3, _0807CAF8 @ =0x00000265 - adds r0, r4, r3 - b _0807CC34 - .align 2, 0 -_0807CAF0: .4byte 0x00000266 -_0807CAF4: .4byte 0x0879C17C -_0807CAF8: .4byte 0x00000265 -_0807CAFC: - ldr r0, _0807CB10 @ =0x087338C0 - ldr r1, _0807CB14 @ =0x06007800 - bl LZ77UncompVram - ldr r0, _0807CB18 @ =0x08733D58 - ldr r1, _0807CB1C @ =0x0600B800 - bl LZ77UncompVram - b _0807CDE8 - .align 2, 0 -_0807CB10: .4byte 0x087338C0 -_0807CB14: .4byte 0x06007800 -_0807CB18: .4byte 0x08733D58 -_0807CB1C: .4byte 0x0600B800 -_0807CB20: - ldr r1, _0807CB40 @ =0x040000D4 - ldr r0, _0807CB44 @ =0x0872F0E0 - str r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0807CB48 @ =0x80000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0807CB4C @ =PauseScreenVBLank_Unused - bl CallbackSetVBlank - ldr r1, _0807CB50 @ =gNonGameplayRam - ldr r2, _0807CB54 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807CB40: .4byte 0x040000D4 -_0807CB44: .4byte 0x0872F0E0 -_0807CB48: .4byte 0x80000100 -_0807CB4C: .4byte PauseScreenVBLank_Unused -_0807CB50: .4byte gNonGameplayRam -_0807CB54: .4byte 0x00000265 -_0807CB58: - ldr r1, _0807CB98 @ =0x0400000C - ldr r3, _0807CB9C @ =0x00000F06 - adds r0, r3, #0 - strh r0, [r1] - adds r1, #2 - ldr r2, _0807CBA0 @ =0x00001707 - adds r0, r2, #0 - strh r0, [r1] - adds r1, #0x42 - ldr r3, _0807CBA4 @ =0x00000844 - adds r0, r3, #0 - strh r0, [r1] - movs r0, #0x9a - lsls r0, r0, #2 - adds r2, r4, r0 - ldrh r1, [r2] - movs r3, #0xc0 - lsls r3, r3, #4 -_0807CB7C: - adds r0, r3, #0 - movs r3, #0 - orrs r0, r1 - strh r0, [r2] - ldr r0, _0807CBA8 @ =0x00000265 - adds r1, r4, r0 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0807CBAC @ =0x00000266 - adds r0, r4, r1 - strb r3, [r0] - b _0807CE56 - .align 2, 0 -_0807CB98: .4byte 0x0400000C -_0807CB9C: .4byte 0x00000F06 -_0807CBA0: .4byte 0x00001707 -_0807CBA4: .4byte 0x00000844 -_0807CBA8: .4byte 0x00000265 -_0807CBAC: .4byte 0x00000266 -_0807CBB0: - ldr r3, _0807CBD4 @ =0x00000266 - adds r2, r4, r3 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0807CBD8 @ =0x0873421C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1] - cmp r0, r1 - bhi _0807CBC8 - b _0807CE56 -_0807CBC8: - ldr r1, _0807CBDC @ =0x00000265 - adds r0, r4, r1 - ldrb r1, [r0] - adds r1, #1 - b _0807CC36 - .align 2, 0 -_0807CBD4: .4byte 0x00000266 -_0807CBD8: .4byte 0x0873421C -_0807CBDC: .4byte 0x00000265 -_0807CBE0: - ldr r1, _0807CBF8 @ =gWrittenToBldalpha_Eva - ldrh r0, [r1] - adds r2, r0, #0 - cmp r2, #0 - bne _0807CC04 - ldr r3, _0807CBFC @ =0x00000265 - adds r0, r4, r3 - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldr r1, _0807CC00 @ =0x00000266 - b _0807CE52 - .align 2, 0 -_0807CBF8: .4byte gWrittenToBldalpha_Eva -_0807CBFC: .4byte 0x00000265 -_0807CC00: .4byte 0x00000266 -_0807CC04: - subs r0, #1 - strh r0, [r1] - ldr r2, _0807CC14 @ =gWrittenToBldalpha_Evb - movs r1, #0x10 - subs r1, r1, r0 - strh r1, [r2] - b _0807CE56 - .align 2, 0 -_0807CC14: .4byte gWrittenToBldalpha_Evb -_0807CC18: - ldr r3, _0807CC40 @ =0x00000266 - adds r2, r4, r3 - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - ldr r1, _0807CC44 @ =0x0873421C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldrb r1, [r1, #1] - cmp r0, r1 - bhi _0807CC30 - b _0807CE56 -_0807CC30: - ldr r1, _0807CC48 @ =0x00000265 - adds r0, r4, r1 -_0807CC34: - movs r1, #0x1b -_0807CC36: - strb r1, [r0] -_0807CC38: - movs r0, #0 - strb r0, [r2] - b _0807CE56 - .align 2, 0 -_0807CC40: .4byte 0x00000266 -_0807CC44: .4byte 0x0873421C -_0807CC48: .4byte 0x00000265 -_0807CC4C: - movs r2, #0x9a - lsls r2, r2, #2 - adds r1, r4, r2 - movs r2, #0 - movs r0, #0 - strh r0, [r1] - ldr r3, _0807CC68 @ =0x00000265 - adds r1, r4, r3 - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - ldr r1, _0807CC6C @ =0x00000266 - b _0807CE52 - .align 2, 0 -_0807CC68: .4byte 0x00000265 -_0807CC6C: .4byte 0x00000266 -_0807CC70: - ldr r1, _0807CC8C @ =0x08561FA8 - ldr r2, _0807CC90 @ =0x06008000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807CC94 @ =gNonGameplayRam - ldr r2, _0807CC98 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807CC8C: .4byte 0x08561FA8 -_0807CC90: .4byte 0x06008000 -_0807CC94: .4byte gNonGameplayRam -_0807CC98: .4byte 0x00000265 -_0807CC9C: - ldr r1, _0807CCB8 @ =0x08562FA8 - ldr r2, _0807CCBC @ =0x06009000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807CCC0 @ =gNonGameplayRam - ldr r3, _0807CCC4 @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807CCB8: .4byte 0x08562FA8 -_0807CCBC: .4byte 0x06009000 -_0807CCC0: .4byte gNonGameplayRam -_0807CCC4: .4byte 0x00000265 -_0807CCC8: - ldr r1, _0807CCDC @ =0x08563FA8 - ldr r2, _0807CCE0 @ =0x0600A000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - b _0807CDE8 - .align 2, 0 -_0807CCDC: .4byte 0x08563FA8 -_0807CCE0: .4byte 0x0600A000 -_0807CCE4: - ldr r1, _0807CD10 @ =0x08564FA8 - ldr r2, _0807CD14 @ =0x0600B000 - movs r3, #0x80 - lsls r3, r3, #4 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807CD18 @ =0x040000D4 - ldr r0, _0807CD1C @ =0x06009800 - str r0, [r1] - ldr r0, _0807CD20 @ =0x06009400 - str r0, [r1, #4] - ldr r0, _0807CD24 @ =0x80000200 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r1, _0807CD28 @ =gNonGameplayRam - ldr r2, _0807CD2C @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807CD10: .4byte 0x08564FA8 -_0807CD14: .4byte 0x0600B000 -_0807CD18: .4byte 0x040000D4 -_0807CD1C: .4byte 0x06009800 -_0807CD20: .4byte 0x06009400 -_0807CD24: .4byte 0x80000200 -_0807CD28: .4byte gNonGameplayRam -_0807CD2C: .4byte 0x00000265 -_0807CD30: - ldr r1, _0807CD4C @ =0x02008000 - ldr r2, _0807CD50 @ =0x06004000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807CD54 @ =gNonGameplayRam - ldr r3, _0807CD58 @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807CD4C: .4byte 0x02008000 -_0807CD50: .4byte 0x06004000 -_0807CD54: .4byte gNonGameplayRam -_0807CD58: .4byte 0x00000265 -_0807CD5C: - ldr r1, _0807CD70 @ =0x02009000 - ldr r2, _0807CD74 @ =0x06005000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - b _0807CDE8 - .align 2, 0 -_0807CD70: .4byte 0x02009000 -_0807CD74: .4byte 0x06005000 -_0807CD78: - ldr r1, _0807CD94 @ =0x0200A000 - ldr r2, _0807CD98 @ =0x06006000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807CD9C @ =gNonGameplayRam - ldr r2, _0807CDA0 @ =0x00000265 - adds r1, r1, r2 - b _0807CDEE - .align 2, 0 -_0807CD94: .4byte 0x0200A000 -_0807CD98: .4byte 0x06006000 -_0807CD9C: .4byte gNonGameplayRam -_0807CDA0: .4byte 0x00000265 -_0807CDA4: - ldr r1, _0807CDC0 @ =0x0200B000 - ldr r2, _0807CDC4 @ =0x06007000 - movs r3, #0x80 - lsls r3, r3, #5 - movs r0, #0x10 - str r0, [sp] - movs r0, #3 - bl DmaTransfer - ldr r1, _0807CDC8 @ =gNonGameplayRam - ldr r3, _0807CDCC @ =0x00000265 - adds r1, r1, r3 - b _0807CDEE - .align 2, 0 -_0807CDC0: .4byte 0x0200B000 -_0807CDC4: .4byte 0x06007000 -_0807CDC8: .4byte gNonGameplayRam -_0807CDCC: .4byte 0x00000265 -_0807CDD0: - ldr r1, _0807CDF8 @ =0x040000D4 - ldr r0, _0807CDFC @ =0x02035000 - str r0, [r1] - movs r0, #0xa0 - lsls r0, r0, #0x13 - str r0, [r1, #4] - ldr r0, _0807CE00 @ =0x80000100 - str r0, [r1, #8] - ldr r0, [r1, #8] - ldr r0, _0807CE04 @ =PauseScreenVBLank -_0807CDE4: - bl CallbackSetVBlank -_0807CDE8: - ldr r1, _0807CE08 @ =gNonGameplayRam - ldr r0, _0807CE0C @ =0x00000265 - adds r1, r1, r0 -_0807CDEE: - ldrb r0, [r1] - adds r0, #1 - strb r0, [r1] - b _0807CE56 - .align 2, 0 -_0807CDF8: .4byte 0x040000D4 -_0807CDFC: .4byte 0x02035000 -_0807CE00: .4byte 0x80000100 -_0807CE04: .4byte PauseScreenVBLank -_0807CE08: .4byte gNonGameplayRam -_0807CE0C: .4byte 0x00000265 -_0807CE10: - ldr r1, _0807CE60 @ =0x0400000E - movs r2, #0x9b - lsls r2, r2, #2 - adds r0, r4, r2 - ldrh r0, [r0] - strh r0, [r1] - subs r1, #2 - ldr r3, _0807CE64 @ =0x0000026E - adds r0, r4, r3 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #0x44 - adds r2, #4 - adds r0, r4, r2 - ldrh r0, [r0] - strh r0, [r1] - adds r1, #2 - adds r3, #4 - adds r0, r4, r3 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _0807CE68 @ =0x0000026A - adds r0, r4, r1 - ldrh r1, [r0] - subs r2, #8 - adds r0, r4, r2 - movs r2, #0 - strh r1, [r0] - subs r3, #0xd - adds r0, r4, r3 - strb r2, [r0] - movs r1, #0x99 - lsls r1, r1, #2 -_0807CE52: - adds r0, r4, r1 - strb r2, [r0] -_0807CE56: - add sp, #4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807CE60: .4byte 0x0400000E -_0807CE64: .4byte 0x0000026E -_0807CE68: .4byte 0x0000026A - - thumb_func_start unk_7ce6c -unk_7ce6c: @ 0x0807CE6C - push {r4, r5, r6, lr} - sub sp, #4 - ldr r3, _0807CEBC @ =gCurrentArea - ldrb r0, [r3] - cmp r0, #6 - bls _0807CE7A - b _0807CF8A -_0807CE7A: - ldr r2, _0807CEC0 @ =gNonGameplayRam - movs r0, #0x90 - lsls r0, r0, #2 - adds r1, r2, r0 - ldr r0, _0807CEC4 @ =0x08581500 - ldm r0!, {r4, r5, r6} - stm r1!, {r4, r5, r6} - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r2] - adds r6, r2, #0 - cmp r0, #0 - beq _0807CF8A - ldr r0, _0807CEC8 @ =gPauseScreenFlag - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - beq _0807CF8A - ldrb r0, [r3] - cmp r0, #0 - beq _0807CED4 - ldr r2, _0807CECC @ =0x0857607D - ldr r1, _0807CED0 @ =0x08576073 - adds r0, r0, r1 - ldrb r0, [r0] - adds r0, r0, r2 - ldrb r1, [r0] - movs r2, #0x91 - lsls r2, r2, #2 - adds r0, r6, r2 - b _0807CEDE - .align 2, 0 -_0807CEBC: .4byte gCurrentArea -_0807CEC0: .4byte gNonGameplayRam -_0807CEC4: .4byte 0x08581500 -_0807CEC8: .4byte gPauseScreenFlag -_0807CECC: .4byte 0x0857607D -_0807CED0: .4byte 0x08576073 -_0807CED4: - ldr r0, _0807CF48 @ =0x0857607D - ldrb r1, [r0, #7] - movs r4, #0x91 - lsls r4, r4, #2 - adds r0, r6, r4 -_0807CEDE: - strb r1, [r0] - ldr r1, _0807CF4C @ =0x0879C180 - movs r5, #0x91 - lsls r5, r5, #2 - adds r0, r6, r5 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r0, r0, r1 - ldrb r0, [r0] - adds r1, r6, #0 - adds r1, #0xc6 - strb r0, [r1] - subs r1, #8 - movs r0, #0x1c - strh r0, [r1] - subs r1, #2 - movs r0, #0x32 - strh r0, [r1] - adds r2, r6, #0 - adds r2, #0xc7 - ldrb r1, [r2] - movs r4, #4 - rsbs r4, r4, #0 - adds r0, r4, #0 - ands r0, r1 - movs r5, #1 - orrs r0, r5 - movs r1, #0xd - rsbs r1, r1, #0 - ands r0, r1 - strb r0, [r2] - movs r0, #0xa - movs r1, #0 - bl UpdateMenuOamDataId - adds r1, r6, #0 - adds r1, #0xaf - ldrb r0, [r1] - ands r4, r0 - orrs r4, r5 - strb r4, [r1] - ldr r2, _0807CF50 @ =gCurrentArea - ldrb r0, [r2] - cmp r0, #0 - beq _0807CF5C - ldr r1, _0807CF54 @ =0x08576073 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r2, _0807CF58 @ =0x00000249 - adds r0, r6, r2 - b _0807CF6C - .align 2, 0 -_0807CF48: .4byte 0x0857607D -_0807CF4C: .4byte 0x0879C180 -_0807CF50: .4byte gCurrentArea -_0807CF54: .4byte 0x08576073 -_0807CF58: .4byte 0x00000249 -_0807CF5C: - ldr r1, _0807CF94 @ =0x085760E8 - ldr r0, _0807CF98 @ =gCurrentRoom - ldrb r0, [r0] - adds r0, #1 - adds r0, r0, r1 - ldrb r1, [r0] - ldr r4, _0807CF9C @ =0x00000249 - adds r0, r6, r4 -_0807CF6C: - strb r1, [r0] - bl unk_7d27c - mov r1, sp - ldr r5, _0807CFA0 @ =0x00007A73 - adds r0, r5, #0 - strh r0, [r1] - ldr r1, _0807CFA4 @ =0x040000D4 - mov r6, sp - str r6, [r1] - ldr r0, _0807CFA8 @ =0x05000342 - str r0, [r1, #4] - ldr r0, _0807CFAC @ =0x8100000C - str r0, [r1, #8] - ldr r0, [r1, #8] -_0807CF8A: - add sp, #4 - pop {r4, r5, r6} - pop {r0} - bx r0 - .align 2, 0 -_0807CF94: .4byte 0x085760E8 -_0807CF98: .4byte gCurrentRoom -_0807CF9C: .4byte 0x00000249 -_0807CFA0: .4byte 0x00007A73 -_0807CFA4: .4byte 0x040000D4 -_0807CFA8: .4byte 0x05000342 -_0807CFAC: .4byte 0x8100000C - - thumb_func_start unk_7cfb0 -unk_7cfb0: @ 0x0807CFB0 - push {r4, lr} - ldr r1, _0807D034 @ =gNonGameplayRam - ldrb r0, [r1] - mov ip, r1 - cmp r0, #0 - bne _0807CFBE - b _0807D270 -_0807CFBE: - ldr r0, _0807D038 @ =gPauseScreenFlag - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #4 - bne _0807CFCC - b _0807D270 -_0807CFCC: - movs r1, #0x92 - lsls r1, r1, #2 - add r1, ip - ldrb r0, [r1] - adds r0, #1 - movs r2, #0 - strb r0, [r1] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #7 - bls _0807D014 - strb r2, [r1] - ldr r3, _0807D03C @ =0x00000247 - add r3, ip - ldrb r0, [r3] - adds r0, #1 - strb r0, [r3] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #5 - bls _0807CFF8 - strb r2, [r3] -_0807CFF8: - ldr r0, _0807D040 @ =0x00000249 - add r0, ip - ldrb r4, [r0] - lsls r1, r4, #1 - ldr r0, _0807D044 @ =0x05000340 - adds r1, r1, r0 - ldr r2, _0807D048 @ =0x08581300 - ldrb r0, [r3] - lsls r0, r0, #4 - adds r0, r0, r4 - lsls r0, r0, #1 - adds r0, r0, r2 - ldrh r0, [r0] - strh r0, [r1] -_0807D014: - ldr r1, _0807D04C @ =0x0000024A - add r1, ip - ldrb r0, [r1] - cmp r0, #2 - bne _0807D050 - movs r0, #3 - strb r0, [r1] - mov r1, ip - adds r1, #0xa6 - movs r0, #0x1c - strh r0, [r1] - subs r1, #2 - movs r0, #0x32 - strh r0, [r1] - b _0807D0DA - .align 2, 0 -_0807D034: .4byte gNonGameplayRam -_0807D038: .4byte gPauseScreenFlag -_0807D03C: .4byte 0x00000247 -_0807D040: .4byte 0x00000249 -_0807D044: .4byte 0x05000340 -_0807D048: .4byte 0x08581300 -_0807D04C: .4byte 0x0000024A -_0807D050: - cmp r0, #3 - bne _0807D0DA - ldr r0, _0807D090 @ =0x0857608A - ldr r1, _0807D094 @ =0x0300004C - ldrb r1, [r1] - adds r0, r1, r0 - movs r4, #0 - ldrsb r4, [r0, r4] - cmp r4, #0 - blt _0807D09C - movs r0, #0x91 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - adds r4, r4, r0 - cmp r4, #0x23 - ble _0807D078 - subs r4, #0x24 -_0807D078: - mov r1, ip - adds r1, #0xbe - ldr r3, _0807D098 @ =0x0879C1A4 - lsls r2, r4, #1 - adds r2, r2, r4 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1] - adds r0, r0, r1 - b _0807D0B2 - .align 2, 0 -_0807D090: .4byte 0x0857608A -_0807D094: .4byte 0x0300004C -_0807D098: .4byte 0x0879C1A4 -_0807D09C: - mov r4, ip - adds r4, #0xbe - ldr r3, _0807D108 @ =0x0879C210 - lsls r2, r1, #1 - adds r2, r2, r1 - adds r0, r2, r3 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r4, [r4] - adds r0, r0, r4 -_0807D0B2: - mov r1, ip - adds r1, #0xa6 - strh r0, [r1] - adds r1, #0x16 - adds r0, r3, #1 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r1, [r1] - adds r0, r0, r1 - mov r1, ip - adds r1, #0xa4 - strh r0, [r1] - adds r3, #2 - adds r2, r2, r3 - ldrb r0, [r2] - adds r0, #0x16 - adds r1, #0xa - strb r0, [r1] -_0807D0DA: - movs r2, #0x90 - lsls r2, r2, #2 - add r2, ip - ldrb r0, [r2] - cmp r0, #0 - bne _0807D0E8 - b _0807D270 -_0807D0E8: - ldr r0, _0807D10C @ =0x00000242 - add r0, ip - ldrb r1, [r0] - adds r1, #1 - strb r1, [r0] - ldrb r0, [r2] - subs r0, #1 - cmp r0, #5 - bls _0807D0FC - b _0807D270 -_0807D0FC: - lsls r0, r0, #2 - ldr r1, _0807D110 @ =_0807D114 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807D108: .4byte 0x0879C210 -_0807D10C: .4byte 0x00000242 -_0807D110: .4byte _0807D114 -_0807D114: @ jump table - .4byte _0807D12C @ case 0 - .4byte _0807D142 @ case 1 - .4byte _0807D164 @ case 2 - .4byte _0807D19C @ case 3 - .4byte _0807D1C4 @ case 4 - .4byte _0807D1EC @ case 5 -_0807D12C: - mov r0, ip - ldrh r1, [r0, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0807D13C - b _0807D270 -_0807D13C: - movs r1, #0x90 - lsls r1, r1, #2 - b _0807D1DE -_0807D142: - mov r0, ip - ldrh r1, [r0, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0807D152 - b _0807D270 -_0807D152: - ldr r1, _0807D160 @ =0x0000024A - add r1, ip - movs r0, #2 - strb r0, [r1] - movs r1, #0x90 - lsls r1, r1, #2 - b _0807D1B6 - .align 2, 0 -_0807D160: .4byte 0x0000024A -_0807D164: - ldr r1, _0807D194 @ =0x00000242 - add r1, ip - ldrb r0, [r1] - cmp r0, #8 - bhi _0807D170 - b _0807D270 -_0807D170: - movs r3, #0 - strb r3, [r1] - movs r2, #0x91 - lsls r2, r2, #2 - add r2, ip - ldrb r0, [r2] - adds r0, #1 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x23 - ble _0807D18A - strb r3, [r2] -_0807D18A: - ldr r1, _0807D198 @ =0x0879C180 - movs r0, #0 - ldrsb r0, [r2, r0] - b _0807D266 - .align 2, 0 -_0807D194: .4byte 0x00000242 -_0807D198: .4byte 0x0879C180 -_0807D19C: - mov r0, ip - ldrh r1, [r0, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - beq _0807D270 - movs r1, #0x90 - lsls r1, r1, #2 - add r1, ip - movs r0, #5 - strb r0, [r1] - ldr r1, _0807D1C0 @ =0x00000241 -_0807D1B6: - add r1, ip - movs r0, #1 - strb r0, [r1] - b _0807D270 - .align 2, 0 -_0807D1C0: .4byte 0x00000241 -_0807D1C4: - mov r0, ip - ldrh r1, [r0, #4] - movs r0, #0x80 - lsls r0, r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0807D270 - movs r1, #0x90 - lsls r1, r1, #2 - add r1, ip - movs r0, #6 - strb r0, [r1] - ldr r1, _0807D1E8 @ =0x0000024A -_0807D1DE: - add r1, ip - movs r0, #2 - strb r0, [r1] - b _0807D270 - .align 2, 0 -_0807D1E8: .4byte 0x0000024A -_0807D1EC: - movs r2, #0x91 - lsls r2, r2, #2 - add r2, ip - ldr r0, _0807D21C @ =0x00000245 - add r0, ip - ldrb r4, [r2] - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r1, r0 - bne _0807D224 - movs r1, #0x90 - lsls r1, r1, #2 - add r1, ip - movs r2, #0 - movs r0, #4 - strb r0, [r1] - ldr r0, _0807D220 @ =0x00000241 - add r0, ip - strb r2, [r0] - b _0807D270 - .align 2, 0 -_0807D21C: .4byte 0x00000245 -_0807D220: .4byte 0x00000241 -_0807D224: - ldr r1, _0807D248 @ =0x00000242 - add r1, ip - ldrb r0, [r1] - cmp r0, #8 - bls _0807D270 - movs r3, #0 - strb r3, [r1] - ldr r0, _0807D24C @ =0x00000246 - add r0, ip - ldrb r0, [r0] - adds r0, r4, r0 - strb r0, [r2] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0x23 - ble _0807D250 - strb r3, [r2] - b _0807D258 - .align 2, 0 -_0807D248: .4byte 0x00000242 -_0807D24C: .4byte 0x00000246 -_0807D250: - cmp r0, #0 - bge _0807D258 - movs r0, #0x23 - strb r0, [r2] -_0807D258: - ldr r1, _0807D278 @ =0x0879C180 - movs r0, #0x91 - lsls r0, r0, #2 - add r0, ip - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 -_0807D266: - adds r0, r0, r1 - ldrb r1, [r0] - mov r0, ip - adds r0, #0xc6 - strb r1, [r0] -_0807D270: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0807D278: .4byte 0x0879C180 - - thumb_func_start unk_7d27c -unk_7d27c: @ 0x0807D27C - push {r4, r5, lr} - ldr r0, _0807D294 @ =0x0300004C - ldrb r1, [r0] - adds r5, r0, #0 - cmp r1, #0 - bne _0807D29C - ldr r0, _0807D298 @ =gNonGameplayRam - movs r2, #0x90 - lsls r2, r2, #2 - adds r0, r0, r2 - b _0807D33E - .align 2, 0 -_0807D294: .4byte 0x0300004C -_0807D298: .4byte gNonGameplayRam -_0807D29C: - ldr r0, _0807D2C4 @ =gNonGameplayRam - movs r2, #0x90 - lsls r2, r2, #2 - adds r1, r0, r2 - movs r4, #1 - strb r4, [r1] - subs r2, #0x20 - adds r1, r0, r2 - ldr r2, _0807D2C8 @ =gPreviousNavigationConversation - ldrb r1, [r1] - adds r3, r0, #0 - ldrb r2, [r2] - cmp r1, r2 - bne _0807D2D0 - ldr r0, _0807D2CC @ =0x0000024A - adds r1, r3, r0 - movs r0, #2 - strb r0, [r1] - b _0807D2D6 - .align 2, 0 -_0807D2C4: .4byte gNonGameplayRam -_0807D2C8: .4byte gPreviousNavigationConversation -_0807D2CC: .4byte 0x0000024A -_0807D2D0: - ldr r1, _0807D324 @ =0x0000024A - adds r0, r3, r1 - strb r4, [r0] -_0807D2D6: - ldr r1, _0807D328 @ =0x0857607D - ldrb r0, [r5] - adds r0, r0, r1 - ldrb r1, [r0] - movs r2, #0 - ldrsb r2, [r0, r2] - cmp r2, #0 - blt _0807D340 - ldr r0, _0807D32C @ =0x00000245 - adds r5, r3, r0 - strb r1, [r5] - movs r1, #0x91 - lsls r1, r1, #2 - adds r4, r3, r1 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r2, r0 - beq _0807D340 - movs r2, #0x90 - lsls r2, r2, #2 - adds r1, r3, r2 - movs r0, #4 - strb r0, [r1] - movs r1, #0 - ldrsb r1, [r5, r1] - movs r0, #0 - ldrsb r0, [r4, r0] - subs r1, r1, r0 - movs r0, #1 - cmp r1, #0 - bge _0807D316 - subs r0, #2 -_0807D316: - muls r1, r0, r1 - cmp r1, #0x12 - ble _0807D330 - movs r1, #1 - rsbs r1, r1, #0 - b _0807D338 - .align 2, 0 -_0807D324: .4byte 0x0000024A -_0807D328: .4byte 0x0857607D -_0807D32C: .4byte 0x00000245 -_0807D330: - cmp r1, #0x12 - bne _0807D336 - movs r0, #1 -_0807D336: - movs r1, #1 -_0807D338: - muls r1, r0, r1 - ldr r2, _0807D348 @ =0x00000246 - adds r0, r3, r2 -_0807D33E: - strb r1, [r0] -_0807D340: - pop {r4, r5} - pop {r0} - bx r0 - .align 2, 0 -_0807D348: .4byte 0x00000246 diff --git a/asm/disasm_0x08079afc.s b/asm/disasm_0x08079afc.s new file mode 100644 index 00000000..550c43da --- /dev/null +++ b/asm/disasm_0x08079afc.s @@ -0,0 +1,7082 @@ + .include "asm/macros.inc" + + .syntax unified + + thumb_func_start NavigationConversationProcessText +NavigationConversationProcessText: @ 0x08079AFC + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + sub sp, #4 + ldr r0, _08079B14 @ =gNonGameplayRam + ldrb r1, [r0, #0x17] + adds r5, r0, #0 + cmp r1, #0 + beq _08079B18 + ldrh r1, [r5, #4] + movs r0, #0x10 + b _08079B1C + .align 2, 0 +_08079B14: .4byte gNonGameplayRam +_08079B18: + ldrh r1, [r5, #4] + movs r0, #8 +_08079B1C: + ands r0, r1 + cmp r0, #0 + bne _08079B24 + b _0807A0EC +_08079B24: + ldrb r0, [r5, #0x18] + ldr r1, _08079B70 @ =0x06007000 + mov r8, r1 + cmp r0, #0 + beq _08079B32 + ldr r2, _08079B74 @ =0x06006000 + mov r8, r2 +_08079B32: + movs r7, #0 + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r4, r5, #0 + adds r4, #0xe + adds r2, r0, r4 + ldrh r1, [r2] + movs r0, #0xfc + lsls r0, r0, #8 + cmp r1, r0 + bne _08079B80 + ldr r0, _08079B78 @ =gChangedInput + ldrh r1, [r0] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + bne _08079B56 + b _0807A0EC +_08079B56: + ldr r0, _08079B7C @ =0x00000203 + bl SoundPlay + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r0, r0, r4 + movs r6, #0 + strh r7, [r0] + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r4, #4 + b _08079B94 + .align 2, 0 +_08079B70: .4byte 0x06007000 +_08079B74: .4byte 0x06006000 +_08079B78: .4byte gChangedInput +_08079B7C: .4byte 0x00000203 +_08079B80: + movs r0, #0xfe + lsls r0, r0, #8 + cmp r1, r0 + bne _08079BDA + movs r6, #0 + strh r7, [r2] + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r4, r5, #0 + adds r4, #0x12 +_08079B94: + adds r0, r0, r4 + ldrh r0, [r0] + cmp r0, #0xe0 + bls _08079BA2 + movs r0, #2 + bl ClearTextGraphics +_08079BA2: + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r0, r0, r4 + movs r1, #0xe0 + strh r1, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x36 + movs r1, #0xb + strb r1, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x34 + strb r6, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x35 + strb r6, [r0] + b _0807A0EC +_08079BDA: + movs r0, #0xfd + lsls r0, r0, #8 + cmp r1, r0 + bne _08079C48 + ldr r0, _08079C40 @ =gChangedInput + ldrh r1, [r0] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + bne _08079BF0 + b _0807A0EC +_08079BF0: + ldr r0, _08079C44 @ =0x00000203 + bl SoundPlay + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r0, r0, r4 + movs r4, #0 + strh r7, [r0] + movs r0, #1 + bl ClearTextGraphics + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x12 + adds r0, r0, r1 + strh r7, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x36 + movs r1, #0xb + strb r1, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x34 + strb r4, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x35 + strb r4, [r0] + b _0807A0EC + .align 2, 0 +_08079C40: .4byte gChangedInput +_08079C44: .4byte 0x00000203 +_08079C48: + ldr r0, _08079C60 @ =0x0000E001 + cmp r1, r0 + bne _08079C64 + ldrh r1, [r5, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _08079C5C + b _0807A0EC +_08079C5C: + strh r7, [r2] + b _0807A0EC + .align 2, 0 +_08079C60: .4byte 0x0000E001 +_08079C64: + ldrb r0, [r5, #0x1f] + cmp r0, #0 + beq _08079C70 + subs r0, #1 + strb r0, [r5, #0x1f] + b _0807A0EC +_08079C70: + ldrb r0, [r5, #0x1a] + ldr r2, _08079CA8 @ =gButtonInput + cmp r0, #0 + beq _08079C84 + ldrh r1, [r2] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + bne _08079C84 + strb r7, [r5, #0x1a] +_08079C84: + ldrb r1, [r5, #0x18] + lsls r1, r1, #1 + adds r0, r5, #0 + adds r0, #0xe + adds r1, r1, r0 + ldrh r0, [r1] + adds r0, #1 + strh r0, [r1] + ldrh r1, [r2] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + beq _08079CAC + ldrb r0, [r5, #0x1a] + cmp r0, #0 + bne _08079CAC + movs r7, #1 + b _08079CC0 + .align 2, 0 +_08079CA8: .4byte gButtonInput +_08079CAC: + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0xe + adds r0, r0, r1 + ldrh r0, [r0] + ldrb r1, [r5, #0x1d] + cmp r0, r1 + bhs _08079CC0 + b _0807A0EC +_08079CC0: + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0xe + adds r0, r0, r1 + movs r1, #0 + strh r1, [r0] + movs r2, #0x88 + lsls r2, r2, #2 + adds r0, r5, r2 + ldrb r1, [r0] + subs r0, r1, #1 + lsls r3, r0, #1 + ldr r0, _08079D24 @ =gPreviousNavigationConversation + ldrb r0, [r0] + cmp r1, r0 + bne _08079CE4 + adds r3, #1 +_08079CE4: + ldr r1, _08079D28 @ =0x0879C0F0 + ldr r0, _08079D2C @ =0x03000011 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r6, [r0] + ldrh r0, [r5, #0xc] + lsls r1, r0, #1 + adds r6, r6, r1 + adds r0, #1 + strh r0, [r5, #0xc] +_08079D04: + movs r3, #0 + ldrh r0, [r6] + lsrs r1, r0, #0xc + movs r4, #0xff + lsls r4, r4, #8 + ands r4, r0 + subs r1, #8 + adds r2, r0, #0 + cmp r1, #7 + bls _08079D1A + b _08079F9C +_08079D1A: + lsls r0, r1, #2 + ldr r1, _08079D30 @ =_08079D34 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08079D24: .4byte gPreviousNavigationConversation +_08079D28: .4byte 0x0879C0F0 +_08079D2C: .4byte 0x03000011 +_08079D30: .4byte _08079D34 +_08079D34: @ jump table + .4byte _08079F2C @ case 0 + .4byte _08079F0C @ case 1 + .4byte _08079EEC @ case 2 + .4byte _08079E96 @ case 3 + .4byte _08079E90 @ case 4 + .4byte _08079F9C @ case 5 + .4byte _08079DCE @ case 6 + .4byte _08079D54 @ case 7 +_08079D54: + movs r0, #0xff + lsls r0, r0, #8 + cmp r2, r0 + bne _08079D60 + movs r0, #1 + b _08079DB8 +_08079D60: + movs r0, #0xfe + lsls r0, r0, #8 + cmp r2, r0 + bne _08079D78 +_08079D68: + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0xe + adds r0, r0, r1 + strh r2, [r0] +_08079D74: + movs r3, #1 + b _08079F9C +_08079D78: + movs r0, #0xfd + lsls r0, r0, #8 + cmp r2, r0 + beq _08079D88 + movs r0, #0xfc + lsls r0, r0, #8 + cmp r2, r0 + bne _08079DAC +_08079D88: + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0xe + adds r0, r0, r1 + strh r2, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x36 + movs r1, #3 + strb r1, [r0] + movs r0, #1 + strb r0, [r5, #0x1a] + movs r3, #2 + b _08079F9C +_08079DAC: + movs r0, #0xfb + lsls r0, r0, #8 + cmp r2, r0 + beq _08079DB6 + b _08079F9C +_08079DB6: + movs r0, #2 +_08079DB8: + strb r0, [r5, #0x1c] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x36 + movs r1, #3 + strb r1, [r0] + movs r3, #2 + b _08079F9C +_08079DCE: + movs r0, #0xe0 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079E00 + lsls r0, r2, #0x10 + lsrs r2, r0, #0x10 + cmp r2, r4 + bne _08079DF4 + ldrh r1, [r5, #4] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _08079D74 + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + orrs r0, r1 + b _08079E82 +_08079DF4: + ldr r0, _08079DFC @ =0x0000E001 + cmp r2, r0 + bne _08079D74 + b _08079D68 + .align 2, 0 +_08079DFC: .4byte 0x0000E001 +_08079E00: + movs r0, #0xe1 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079E0C + strb r2, [r5, #0x1f] + b _08079D74 +_08079E0C: + movs r0, #0xe2 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079E5C + ldrh r1, [r6] + adds r0, #1 + cmp r1, r0 + bne _08079E2C + ldrh r0, [r5, #4] + movs r1, #2 + orrs r0, r1 + strh r0, [r5, #4] + movs r0, #1 + strb r0, [r5, #0x18] + strb r1, [r5, #0x19] + b _08079E56 +_08079E2C: + ldr r0, _08079E44 @ =0x0000E202 + cmp r1, r0 + bne _08079E48 + ldrh r1, [r5, #4] + movs r0, #4 + orrs r0, r1 + strh r0, [r5, #4] + movs r0, #1 + strb r0, [r5, #0x18] + movs r0, #2 + strb r0, [r5, #0x19] + b _08079E56 + .align 2, 0 +_08079E44: .4byte 0x0000E202 +_08079E48: + ldrh r0, [r5, #4] + movs r2, #1 + movs r1, #0 + orrs r0, r2 + strh r0, [r5, #4] + strb r1, [r5, #0x18] + strb r2, [r5, #0x19] +_08079E56: + ldrh r0, [r6] + strb r0, [r5, #0x17] + b _08079D74 +_08079E5C: + movs r0, #0xe3 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079D74 + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + cmp r1, r4 + bne _08079E74 + ldrh r1, [r5, #4] + movs r0, #0x40 + orrs r0, r1 + b _08079E82 +_08079E74: + ldr r0, _08079E88 @ =0x0000E301 + cmp r1, r0 + beq _08079E7C + b _08079D74 +_08079E7C: + ldrh r1, [r5, #4] + ldr r0, _08079E8C @ =0x0000FFBF + ands r0, r1 +_08079E82: + strh r0, [r5, #4] + b _08079D74 + .align 2, 0 +_08079E88: .4byte 0x0000E301 +_08079E8C: .4byte 0x0000FFBF +_08079E90: + movs r0, #6 + strb r0, [r5, #0x1c] + b _08079D74 +_08079E96: + lsls r0, r2, #0x10 + lsrs r1, r0, #0x10 + ldr r0, _08079EA8 @ =0x0000B001 + cmp r1, r0 + bne _08079EAC + movs r0, #0x99 + lsls r0, r0, #2 + adds r1, r5, r0 + b _08079EB8 + .align 2, 0 +_08079EA8: .4byte 0x0000B001 +_08079EAC: + ldr r0, _08079EC0 @ =0x0000B002 + cmp r1, r0 + bne _08079EC4 + movs r2, #0x99 + lsls r2, r2, #2 + adds r1, r5, r2 +_08079EB8: + movs r0, #1 + strb r0, [r1] + b _08079D74 + .align 2, 0 +_08079EC0: .4byte 0x0000B002 +_08079EC4: + ldr r0, _08079EE8 @ =0x0000B003 + cmp r1, r0 + bne _08079F9C + ldrb r0, [r5, #0x1c] + cmp r0, #5 + beq _08079F9A + cmp r0, #3 + beq _08079F9A + movs r0, #0x2a + movs r1, #2 + bl PlayMusic + movs r0, #0 + movs r1, #0xb + bl SoundEventUpdate + b _08079F9A + .align 2, 0 +_08079EE8: .4byte 0x0000B003 +_08079EEC: + ldr r1, _08079F04 @ =0x00000221 + adds r0, r5, r1 + ldrb r0, [r0] + rsbs r1, r0, #0 + orrs r1, r0 + ldr r0, _08079F08 @ =0x00000FFF + ands r0, r2 + lsrs r1, r1, #0x1f + bl unk_3c14 + b _08079F9A + .align 2, 0 +_08079F04: .4byte 0x00000221 +_08079F08: .4byte 0x00000FFF +_08079F0C: + ldr r1, _08079F24 @ =0x00000221 + adds r0, r5, r1 + ldrb r0, [r0] + rsbs r1, r0, #0 + orrs r1, r0 + ldr r0, _08079F28 @ =0x00000FFF + ands r0, r2 + lsrs r1, r1, #0x1f + bl unk_3bd4 + b _08079F9A + .align 2, 0 +_08079F24: .4byte 0x00000221 +_08079F28: .4byte 0x00000FFF +_08079F2C: + movs r0, #0x80 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079F46 + ldrb r1, [r5, #0x18] + lsls r1, r1, #1 + adds r0, r5, #0 + adds r0, #0x12 + adds r1, r1, r0 + movs r0, #0xff + ands r0, r2 + ldrh r2, [r1] + b _08079F96 +_08079F46: + movs r0, #0x81 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079F52 + strb r2, [r5, #0x1e] + b _08079F9A +_08079F52: + movs r0, #0x82 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079F68 + strb r2, [r5, #0x1d] + lsls r0, r2, #0x18 + cmp r0, #0 + bne _08079F9A + movs r0, #8 + strb r0, [r5, #0x1d] + b _08079F9A +_08079F68: + movs r0, #0x83 + lsls r0, r0, #8 + cmp r4, r0 + bne _08079F9A + ldrb r0, [r5, #0x18] + lsls r0, r0, #1 + adds r1, r5, #0 + adds r1, #0x12 + adds r1, r0, r1 + ldrh r0, [r1] + cmp r0, #0xdf + bls _08079F84 + movs r0, #0xe0 + b _08079F86 +_08079F84: + movs r0, #0 +_08079F86: + strh r0, [r1] + ldrb r1, [r5, #0x18] + lsls r1, r1, #1 + adds r0, r5, #0 + adds r0, #0x12 + adds r1, r1, r0 + ldrh r0, [r1] + ldrb r2, [r6] +_08079F96: + adds r0, r0, r2 + strh r0, [r1] +_08079F9A: + movs r3, #3 +_08079F9C: + cmp r3, #3 + bne _08079FB4 + ldr r1, _08079FB0 @ =gNonGameplayRam + ldrh r0, [r1, #0xc] + adds r0, #1 + strh r0, [r1, #0xc] + adds r6, #2 + adds r5, r1, #0 + b _08079D04 + .align 2, 0 +_08079FB0: .4byte gNonGameplayRam +_08079FB4: + cmp r3, #2 + bne _08079FE0 + ldr r2, _08079FDC @ =gNonGameplayRam + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x34 + movs r3, #0 + strb r3, [r0] + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x35 + strb r3, [r0] + b _0807A0EC + .align 2, 0 +_08079FDC: .4byte gNonGameplayRam +_08079FE0: + cmp r3, #1 + bne _08079FE6 + b _0807A0EC +_08079FE6: + ldrh r0, [r6] + bl GetCharacterWidth + ldr r4, _0807A01C @ =gNonGameplayRam + strb r0, [r4, #0x16] + ldrb r0, [r4, #0x18] + lsls r0, r0, #1 + adds r5, r4, #0 + adds r5, #0x12 + adds r2, r0, r5 + ldrh r1, [r2] + ldrb r0, [r4, #0x16] + adds r3, r1, r0 + movs r0, #0xe0 + lsls r0, r0, #1 + cmp r3, r0 + ble _0807A020 + movs r0, #2 + bl ClearTextGraphics + ldrb r0, [r4, #0x18] + lsls r0, r0, #1 + adds r0, r0, r5 + movs r1, #0xe0 + strh r1, [r0] + b _0807A02C + .align 2, 0 +_0807A01C: .4byte gNonGameplayRam +_0807A020: + cmp r3, #0xe0 + ble _0807A02C + cmp r1, #0xdf + bhi _0807A02C + movs r0, #0xe0 + strh r0, [r2] +_0807A02C: + ldr r0, _0807A098 @ =gNonGameplayRam + ldrb r1, [r0, #0x18] + lsls r1, r1, #1 + adds r2, r0, #0 + adds r2, #0x12 + adds r1, r1, r2 + ldrh r2, [r1] + adds r5, r0, #0 + cmp r2, #0 + beq _0807A044 + cmp r2, #0xe0 + bne _0807A046 +_0807A044: + strh r2, [r1] +_0807A046: + adds r4, r5, #0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r1, r0, r1 + ldrh r3, [r1] + cmp r3, #0xdf + bls _0807A060 + movs r0, #0x80 + lsls r0, r0, #4 + add r8, r0 + subs r3, #0xe0 +_0807A060: + asrs r0, r3, #3 + lsls r3, r0, #5 + add r8, r3 + ldrh r1, [r1] + movs r3, #7 + ldrh r0, [r6] + ldrb r2, [r4, #0x16] + ands r3, r1 + ldrb r1, [r4, #0x1e] + str r1, [sp] + mov r1, r8 + bl DrawCharacter + cmp r7, #0 + bne _0807A0BA + ldrh r0, [r6] + cmp r0, #0x40 + beq _0807A0BA + ldrb r0, [r4, #0x17] + cmp r0, #1 + bne _0807A09C + ldrh r0, [r6] + movs r1, #0x21 + bl PlayCharacterAppearingSound + movs r0, #2 + strb r0, [r4, #0x1b] + b _0807A0BA + .align 2, 0 +_0807A098: .4byte gNonGameplayRam +_0807A09C: + cmp r0, #2 + bne _0807A0AE + ldrh r0, [r6] + movs r1, #0x41 + bl PlayCharacterAppearingSound + movs r0, #3 + strb r0, [r4, #0x1b] + b _0807A0BA +_0807A0AE: + ldrh r0, [r6] + movs r1, #1 + bl PlayCharacterAppearingSound + movs r0, #1 + strb r0, [r5, #0x1b] +_0807A0BA: + movs r3, #1 + ldrh r2, [r6, #2] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r2 + cmp r0, #0 + beq _0807A0D4 + movs r1, #0xf0 + lsls r1, r1, #8 + bics r1, r2 + rsbs r0, r1, #0 + orrs r0, r1 + lsrs r3, r0, #0x1f +_0807A0D4: + cmp r3, #0 + beq _0807A0EC + ldr r2, _0807A0F8 @ =gNonGameplayRam + ldrb r1, [r2, #0x18] + lsls r1, r1, #1 + adds r0, r2, #0 + adds r0, #0x12 + adds r1, r1, r0 + ldrh r0, [r1] + ldrb r2, [r2, #0x16] + adds r0, r0, r2 + strh r0, [r1] +_0807A0EC: + add sp, #4 + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807A0F8: .4byte gNonGameplayRam + + thumb_func_start unk_7a0fc +unk_7a0fc: @ 0x0807A0FC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + lsls r0, r0, #0x18 + lsrs r3, r0, #0x18 + ldr r2, _0807A120 @ =gNonGameplayRam + ldrh r1, [r2, #4] + movs r0, #8 + ands r0, r1 + mov ip, r2 + cmp r0, #0 + bne _0807A124 + movs r0, #0 + b _0807A2C2 + .align 2, 0 +_0807A120: .4byte gNonGameplayRam +_0807A124: + movs r0, #0 + mov sl, r0 + mov sb, r0 + lsls r3, r3, #2 + str r3, [sp, #4] + mov r5, ip + mov r6, ip + adds r6, #0x21 + movs r1, #0x20 + add r1, ip + mov r8, r1 +_0807A13A: + ldr r1, _0807A174 @ =0x0879CDF4 + ldr r0, _0807A178 @ =0x03000011 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r2, [sp, #4] + adds r0, r2, r0 + adds r0, #0xac + ldr r4, [r0] + ldr r7, _0807A17C @ =0x06007000 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r4, r4, r0 + ldrh r1, [r4] + adds r3, r1, #0 + movs r0, #0xfe + lsls r0, r0, #8 + cmp r3, r0 + bne _0807A180 + movs r0, #0 + mov r1, r8 + strb r0, [r1] + movs r0, #0xe0 + mov r2, ip + b _0807A1D2 + .align 2, 0 +_0807A174: .4byte 0x0879CDF4 +_0807A178: .4byte 0x03000011 +_0807A17C: .4byte 0x06007000 +_0807A180: + movs r2, #0xff + lsls r2, r2, #8 + adds r0, r2, #0 + ands r1, r0 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r1, r0 + bne _0807A1A0 + movs r0, #0 + mov r1, r8 + strb r0, [r1] + ldrh r0, [r5, #0x22] + ldrb r4, [r4] + adds r0, r0, r4 + strh r0, [r5, #0x22] + b _0807A1D4 +_0807A1A0: + movs r0, #0x83 + lsls r0, r0, #8 + cmp r1, r0 + bne _0807A1E0 + movs r1, #0 + mov r2, r8 + strb r1, [r2] + ldrh r0, [r5, #0x22] + cmp r0, #0xdf + bls _0807A1BA + movs r0, #0xe0 + strh r0, [r5, #0x22] + b _0807A1BC +_0807A1BA: + strh r1, [r5, #0x22] +_0807A1BC: + ldrb r1, [r4] + mov r2, ip + ldrh r0, [r2, #0x22] + adds r3, r0, r1 + strh r3, [r2, #0x22] + ldrh r1, [r4] + ldr r0, _0807A1DC @ =0x000083A0 + cmp r1, r0 + bne _0807A1D4 + adds r0, r3, #0 + subs r0, #0x10 +_0807A1D2: + strh r0, [r2, #0x22] +_0807A1D4: + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + b _0807A13A + .align 2, 0 +_0807A1DC: .4byte 0x000083A0 +_0807A1E0: + mov r0, sb + cmp r0, #0 + bne _0807A22E + cmp r3, #0x40 + beq _0807A228 + ldrh r0, [r5, #0x22] + cmp r0, #0xdf + bhi _0807A228 + ldrb r0, [r5, #0x1a] + ldr r2, _0807A2D4 @ =gButtonInput + cmp r0, #0 + beq _0807A206 + ldrh r1, [r2] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + bne _0807A206 + mov r1, sb + strb r1, [r5, #0x1a] +_0807A206: + mov r1, r8 + ldrb r0, [r1] + adds r3, r0, #1 + strb r3, [r1] + ldrh r1, [r2] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + beq _0807A220 + mov r2, ip + ldrb r0, [r2, #0x1a] + cmp r0, #0 + beq _0807A228 +_0807A220: + lsls r0, r3, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0807A2C0 +_0807A228: + movs r0, #0 + mov r1, r8 + strb r0, [r1] +_0807A22E: + ldrh r0, [r4] + bl GetCharacterWidth + ldr r2, _0807A2D8 @ =gNonGameplayRam + strb r0, [r2, #0x16] + ldrh r1, [r2, #0x22] + ldrb r0, [r2, #0x16] + adds r0, r1, r0 + cmp r0, #0xe0 + ble _0807A24A + cmp r1, #0xdf + bhi _0807A24A + movs r0, #0xe0 + strh r0, [r2, #0x22] +_0807A24A: + ldr r1, _0807A2D8 @ =gNonGameplayRam + ldrh r0, [r1, #0x22] + cmp r0, #0 + beq _0807A256 + cmp r0, #0xe0 + bne _0807A258 +_0807A256: + strh r0, [r1, #0x22] +_0807A258: + ldrh r0, [r4] + cmp r0, #0x40 + beq _0807A292 + movs r1, #1 + bl PlayCharacterAppearingSound + ldr r2, _0807A2D8 @ =gNonGameplayRam + ldrh r0, [r2, #0x22] + cmp r0, #0xdf + bls _0807A278 + movs r1, #1 + mov sb, r1 + movs r1, #0x80 + lsls r1, r1, #4 + adds r7, r7, r1 + subs r0, #0xe0 +_0807A278: + asrs r0, r0, #3 + lsls r0, r0, #5 + adds r7, r7, r0 + ldrh r1, [r2, #0x22] + movs r3, #7 + ldrh r0, [r4] + ldrb r2, [r2, #0x16] + ands r3, r1 + movs r1, #0 + str r1, [sp] + adds r1, r7, #0 + bl DrawCharacter +_0807A292: + ldrh r0, [r5, #0x22] + ldrb r2, [r5, #0x16] + adds r0, r0, r2 + strh r0, [r5, #0x22] + ldrb r0, [r6] + adds r0, #1 + strb r0, [r6] + ldrh r0, [r4, #2] + ldr r1, _0807A2D8 @ =gNonGameplayRam + mov ip, r1 + movs r2, #0xff + lsls r2, r2, #8 + cmp r0, r2 + bne _0807A2B2 + movs r0, #1 + mov sl, r0 +_0807A2B2: + mov r1, sb + cmp r1, #0 + beq _0807A2C0 + mov r2, sl + cmp r2, #0 + bne _0807A2C0 + b _0807A13A +_0807A2C0: + mov r0, sl +_0807A2C2: + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807A2D4: .4byte gButtonInput +_0807A2D8: .4byte gNonGameplayRam + + thumb_func_start NavigationConversationGetCurrentConversation +NavigationConversationGetCurrentConversation: @ 0x0807A2DC + push {r4, r5, lr} + ldr r0, _0807A330 @ =gEventCounter + ldrb r2, [r0] + ldr r3, _0807A334 @ =0x08575A60 + ldr r4, _0807A338 @ =gNonGameplayRam + ldr r5, _0807A33C @ =gPreviousNavigationConversation + cmp r2, #0 + ble _0807A310 + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r1, r0, #2 + adds r0, r1, r3 + ldrb r0, [r0, #6] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0807A310 + adds r1, r1, r3 +_0807A300: + subs r1, #0xc + subs r2, #1 + cmp r2, #0 + ble _0807A310 + movs r0, #6 + ldrsb r0, [r1, r0] + cmp r0, #0 + beq _0807A300 +_0807A310: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r3 + ldrb r1, [r0, #6] + movs r2, #0x88 + lsls r2, r2, #2 + adds r0, r4, r2 + strb r1, [r0] + ldrb r5, [r5] + cmp r1, r5 + bne _0807A344 + ldr r3, _0807A340 @ =0x00000221 + adds r1, r4, r3 + movs r0, #1 + b _0807A34A + .align 2, 0 +_0807A330: .4byte gEventCounter +_0807A334: .4byte 0x08575A60 +_0807A338: .4byte gNonGameplayRam +_0807A33C: .4byte gPreviousNavigationConversation +_0807A340: .4byte 0x00000221 +_0807A344: + ldr r0, _0807A394 @ =0x00000221 + adds r1, r4, r0 + movs r0, #0 +_0807A34A: + strb r0, [r1] + movs r0, #0 + bl ClearTextGraphics + movs r0, #1 + bl NavigationConversationUpdateTarget + bl NavigationConversationSetupOam + ldr r0, _0807A398 @ =gNonGameplayRam + movs r2, #0x8e + lsls r2, r2, #2 + adds r1, r0, r2 + movs r2, #0 + strb r2, [r1] + ldr r3, _0807A39C @ =0x00000239 + adds r1, r0, r3 + strb r2, [r1] + adds r3, #3 + adds r1, r0, r3 + strb r2, [r1] + adds r3, #1 + adds r1, r0, r3 + strb r2, [r1] + adds r3, #0x13 + adds r1, r0, r3 + strb r2, [r1] + adds r3, #1 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _0807A3A0 @ =0x00000252 + adds r0, r0, r1 + strb r2, [r0] + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807A394: .4byte 0x00000221 +_0807A398: .4byte gNonGameplayRam +_0807A39C: .4byte 0x00000239 +_0807A3A0: .4byte 0x00000252 + + thumb_func_start NavigationConversationHandler +NavigationConversationHandler: @ 0x0807A3A4 + push {r4, r5, r6, r7, lr} + bl unk_7b674 + bl NavigationConversionScrollToTarget + bl unk_7b56c + bl NavigationConversationUpdatePanel + bl unk_78c44 + movs r7, #0 + ldr r0, _0807A3D4 @ =gNonGameplayRam + ldrb r0, [r0, #7] + cmp r0, #0x15 + bls _0807A3C8 + bl _0807AE42 +_0807A3C8: + lsls r0, r0, #2 + ldr r1, _0807A3D8 @ =_0807A3DC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807A3D4: .4byte gNonGameplayRam +_0807A3D8: .4byte _0807A3DC +_0807A3DC: @ jump table + .4byte _0807A434 @ case 0 + .4byte _0807A468 @ case 1 + .4byte _0807A51A @ case 2 + .4byte _0807A6C0 @ case 3 + .4byte _0807A700 @ case 4 + .4byte _0807A718 @ case 5 + .4byte _0807A76C @ case 6 + .4byte _0807A79E @ case 7 + .4byte _0807A7B0 @ case 8 + .4byte _0807A890 @ case 9 + .4byte _0807A938 @ case 10 + .4byte _0807AA2A @ case 11 + .4byte _0807AA48 @ case 12 + .4byte _0807AA84 @ case 13 + .4byte _0807AAE0 @ case 14 + .4byte _0807AB14 @ case 15 + .4byte _0807AB40 @ case 16 + .4byte _0807ABB4 @ case 17 + .4byte _0807AC28 @ case 18 + .4byte _0807ACAE @ case 19 + .4byte _0807AD6C @ case 20 + .4byte _0807ADE8 @ case 21 +_0807A434: + ldr r4, _0807A454 @ =gNonGameplayRam + movs r0, #0 + strb r0, [r4, #6] + bl NavigationConversationSetupOam + ldr r1, _0807A458 @ =0x00000221 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A45C + movs r0, #4 + strb r0, [r4, #0x1c] + movs r0, #0x11 + strb r0, [r4, #7] + bl _0807AE42 + .align 2, 0 +_0807A454: .4byte gNonGameplayRam +_0807A458: .4byte 0x00000221 +_0807A45C: + strb r0, [r4, #0x1c] + ldrb r0, [r4, #7] + adds r0, #1 + strb r0, [r4, #7] + bl _0807AE42 +_0807A468: + ldr r1, _0807A4D4 @ =gNonGameplayRam + movs r2, #0x9a + lsls r2, r2, #2 + adds r3, r1, r2 + ldrh r2, [r3] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + movs r5, #0 + orrs r0, r2 + strh r0, [r3] + movs r2, #1 + strb r2, [r1, #9] + strb r2, [r1, #0xb] + movs r0, #8 + strb r0, [r1, #0x1d] + strb r5, [r1, #0x1e] + strb r5, [r1, #0x1f] + movs r3, #0x88 + lsls r3, r3, #2 + adds r0, r1, r3 + ldrb r0, [r0] + subs r0, #1 + lsls r3, r0, #1 + ldr r4, _0807A4D8 @ =0x00000221 + adds r0, r1, r4 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0 + beq _0807A4A6 + adds r3, #1 +_0807A4A6: + ldr r1, _0807A4DC @ =0x0879C0F0 + ldr r0, _0807A4E0 @ =0x03000011 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r3, [r0] + ldr r0, _0807A4E4 @ =0x0000E201 + cmp r3, r0 + bne _0807A4E8 + ldrh r0, [r4, #4] + movs r1, #2 + orrs r0, r1 + strh r0, [r4, #4] + strb r2, [r4, #0x18] + strb r1, [r4, #0x19] + strb r2, [r4, #0x17] + b _0807A512 + .align 2, 0 +_0807A4D4: .4byte gNonGameplayRam +_0807A4D8: .4byte 0x00000221 +_0807A4DC: .4byte 0x0879C0F0 +_0807A4E0: .4byte 0x03000011 +_0807A4E4: .4byte 0x0000E201 +_0807A4E8: + ldr r0, _0807A500 @ =0x0000E202 + cmp r3, r0 + bne _0807A504 + ldrh r0, [r4, #4] + movs r1, #4 + orrs r0, r1 + strh r0, [r4, #4] + strb r2, [r4, #0x18] + movs r0, #2 + strb r0, [r4, #0x19] + strb r0, [r4, #0x17] + b _0807A512 + .align 2, 0 +_0807A500: .4byte 0x0000E202 +_0807A504: + ldrh r0, [r4, #4] + movs r1, #1 + orrs r0, r1 + strh r0, [r4, #4] + strb r5, [r4, #0x18] + strb r1, [r4, #0x19] + strb r5, [r4, #0x17] +_0807A512: + ldrb r0, [r4, #7] + adds r0, #1 + movs r1, #0 + b _0807AC3E +_0807A51A: + ldr r1, _0807A584 @ =gNonGameplayRam + movs r0, #0 + strb r0, [r1, #0x1b] + ldrb r0, [r1, #0x1c] + adds r4, r1, #0 + cmp r0, #1 + bne _0807A5B8 + ldr r0, _0807A588 @ =gChangedInput + ldrh r1, [r0] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + beq _0807A590 + ldrh r1, [r4, #4] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0807A59C + ldr r1, _0807A58C @ =0x00000241 + adds r0, r4, r1 + ldrb r5, [r0] + cmp r5, #0 + bne _0807A590 + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x36 + strb r5, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x34 + strb r5, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x35 + strb r5, [r0] + movs r0, #0 + bl ClearTextGraphics + movs r0, #3 + strb r0, [r4, #7] + strb r5, [r4, #6] + bl _0807AE42 + .align 2, 0 +_0807A584: .4byte gNonGameplayRam +_0807A588: .4byte gChangedInput +_0807A58C: .4byte 0x00000241 +_0807A590: + ldrh r1, [r4, #4] + movs r0, #0x80 + lsls r0, r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807A5F2 +_0807A59C: + ldrh r1, [r4, #4] + movs r2, #0x80 + lsls r2, r2, #3 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807A5AE + bl _0807AE42 +_0807A5AE: + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r4, #4] + bl _0807AE42 +_0807A5B8: + cmp r0, #2 + bne _0807A5E6 + ldrh r1, [r4, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + bne _0807A5F2 + adds r0, r4, #0 + adds r0, #0x24 + strb r1, [r0] + adds r2, r4, #0 + adds r2, #0x25 + movs r0, #1 + strb r0, [r2] + strb r0, [r4, #0x1a] + strb r1, [r4, #0x1b] + movs r0, #8 + strb r0, [r4, #7] + strb r1, [r4, #6] + b _0807A5F2 +_0807A5E6: + cmp r0, #6 + bne _0807A5EE + movs r7, #1 + b _0807A5F2 +_0807A5EE: + bl NavigationConversationProcessText +_0807A5F2: + ldr r3, _0807A628 @ =gNonGameplayRam + ldrb r0, [r3, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + adds r0, r1, #0 + adds r0, #0x36 + ldrb r0, [r0] + cmp r0, #3 + bne _0807A630 + movs r0, #0x74 + strh r0, [r1, #0x2e] + ldrb r0, [r3, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, _0807A62C @ =0x085766E0 + ldrb r0, [r3, #0x18] + lsls r0, r0, #1 + adds r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1, #0x2c] + bl _0807AE42 + .align 2, 0 +_0807A628: .4byte gNonGameplayRam +_0807A62C: .4byte 0x085766E0 +_0807A630: + movs r2, #0 + strh r2, [r1, #0x2e] + ldrb r1, [r3, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + strh r2, [r0, #0x2c] + ldrb r0, [r3, #0x18] + lsls r0, r0, #1 + adds r1, r3, #0 + adds r1, #0x12 + adds r0, r0, r1 + ldrh r2, [r0] + cmp r2, #0xdf + bls _0807A68C + ldrb r1, [r3, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + ldr r4, _0807A684 @ =0x0000FF28 + adds r1, r2, r4 + ldrh r2, [r0, #0x2e] + adds r1, r1, r2 + strh r1, [r0, #0x2e] + ldrb r0, [r3, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r3 + ldr r2, _0807A688 @ =0x085766E0 + ldrb r0, [r3, #0x18] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + adds r0, #0x10 + ldrh r3, [r1, #0x2c] + adds r0, r0, r3 + strh r0, [r1, #0x2c] + bl _0807AE42 + .align 2, 0 +_0807A684: .4byte 0x0000FF28 +_0807A688: .4byte 0x085766E0 +_0807A68C: + ldrb r1, [r3, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r3 + adds r1, r2, #0 + adds r1, #8 + ldrh r4, [r0, #0x2e] + adds r1, r1, r4 + strh r1, [r0, #0x2e] + ldrb r0, [r3, #0x19] + lsls r2, r0, #1 + adds r2, r2, r0 + lsls r2, r2, #2 + adds r2, r2, r3 + ldr r0, _0807A6BC @ =0x085766E0 + ldrb r1, [r3, #0x18] + lsls r1, r1, #1 + adds r1, r1, r0 + ldrh r0, [r2, #0x2c] + ldrb r1, [r1] + adds r0, r0, r1 + strh r0, [r2, #0x2c] + b _0807AE42 + .align 2, 0 +_0807A6BC: .4byte 0x085766E0 +_0807A6C0: + ldr r1, _0807A6F4 @ =gNonGameplayRam + movs r0, #0 + strb r0, [r1, #0x1b] + movs r2, #0x88 + lsls r2, r2, #2 + adds r0, r1, r2 + ldr r2, _0807A6F8 @ =gPreviousNavigationConversation + ldrb r0, [r0] + ldrb r3, [r2] + cmp r0, r3 + beq _0807A6E6 + strb r0, [r2] + ldr r4, _0807A6FC @ =0x00000221 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0807A6E6 + bl SoundEventUpdateForNavConversation +_0807A6E6: + ldr r0, _0807A6F4 @ =gNonGameplayRam + ldrb r1, [r0, #7] + adds r1, #1 + movs r2, #0 + strb r1, [r0, #7] + strb r2, [r0, #6] + b _0807AE42 + .align 2, 0 +_0807A6F4: .4byte gNonGameplayRam +_0807A6F8: .4byte gPreviousNavigationConversation +_0807A6FC: .4byte 0x00000221 +_0807A700: + ldr r2, _0807A714 @ =gNonGameplayRam + ldrb r0, [r2, #6] + cmp r0, #8 + bhi _0807A70A + b _0807AE42 +_0807A70A: + ldrb r0, [r2, #7] + adds r0, #1 + movs r1, #0 + b _0807A798 + .align 2, 0 +_0807A714: .4byte gNonGameplayRam +_0807A718: + ldr r3, _0807A768 @ =gNonGameplayRam + movs r0, #0x9a + lsls r0, r0, #2 + adds r2, r3, r0 + ldrh r0, [r2] + movs r4, #0x80 + lsls r4, r4, #1 + adds r1, r4, #0 + eors r0, r1 + strh r0, [r2] + ldrh r1, [r3, #4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0807A73C + movs r0, #0x40 + eors r0, r1 + strh r0, [r3, #4] +_0807A73C: + ldrh r1, [r3, #4] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807A74C + movs r0, #8 + eors r0, r1 + strh r0, [r3, #4] +_0807A74C: + ldrh r1, [r3, #4] + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807A75C + movs r0, #0x10 + eors r0, r1 + strh r0, [r3, #4] +_0807A75C: + ldrb r0, [r3, #7] + adds r0, #1 + strb r0, [r3, #7] + movs r0, #0 + strb r0, [r3, #6] + b _0807AE42 + .align 2, 0 +_0807A768: .4byte gNonGameplayRam +_0807A76C: + ldr r2, _0807A790 @ =gNonGameplayRam + ldrh r1, [r2, #4] + movs r0, #1 + ands r0, r1 + cmp r0, #0 + bne _0807A78C + movs r0, #2 + ands r0, r1 + cmp r0, #0 + bne _0807A78C + movs r0, #4 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + cmp r1, #0 + beq _0807A794 +_0807A78C: + movs r0, #0 + b _0807AE44 + .align 2, 0 +_0807A790: .4byte gNonGameplayRam +_0807A794: + ldrb r0, [r2, #7] + adds r0, #1 +_0807A798: + strb r0, [r2, #7] + strb r1, [r2, #6] + b _0807AE42 +_0807A79E: + movs r7, #1 + ldr r1, _0807A7AC @ =gNonGameplayRam + movs r0, #0 + strb r0, [r1, #7] + strb r0, [r1, #6] + b _0807AE42 + .align 2, 0 +_0807A7AC: .4byte gNonGameplayRam +_0807A7B0: + ldr r5, _0807A818 @ =gNonGameplayRam + adds r6, r5, #0 + adds r6, #0x24 + ldrb r4, [r6] + cmp r4, #0 + bne _0807A824 + ldr r0, _0807A81C @ =gChangedInput + ldrh r1, [r0] + movs r0, #0x83 + ands r0, r1 + cmp r0, #0 + bne _0807A7CA + b _0807AE42 +_0807A7CA: + ldr r0, _0807A820 @ =0x00000203 + bl SoundPlay + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x36 + strb r4, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x34 + strb r4, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x35 + strb r4, [r0] + movs r0, #1 + bl ClearTextGraphics + movs r0, #1 + strb r0, [r6] + movs r0, #3 + strb r0, [r5, #0x1c] + adds r0, r5, #0 + adds r0, #0x20 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + strh r4, [r5, #0x22] + b _0807AE42 + .align 2, 0 +_0807A818: .4byte gNonGameplayRam +_0807A81C: .4byte gChangedInput +_0807A820: .4byte 0x00000203 +_0807A824: + cmp r4, #2 + bne _0807A832 + movs r1, #0 + movs r0, #9 + strb r0, [r5, #7] + strb r1, [r5, #6] + b _0807AE42 +_0807A832: + movs r0, #0 + bl unk_7a0fc + cmp r0, #0 + bne _0807A83E + b _0807AE42 +_0807A83E: + movs r3, #0 + movs r2, #2 + strb r2, [r6] + movs r0, #1 + strb r0, [r5, #0x1a] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x36 + strb r2, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x34 + strb r3, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x35 + strb r3, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x8c + strh r1, [r0, #0x2c] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + movs r1, #0x34 + strh r1, [r0, #0x2e] + b _0807AE42 +_0807A890: + movs r3, #0 + ldr r2, _0807A8C8 @ =gNonGameplayRam + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r5, #0 + movs r1, #0x8c + strh r1, [r0, #0x2c] + ldr r0, _0807A8CC @ =gChangedInput + ldrh r1, [r0] + movs r0, #0x20 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0807A8D0 + adds r5, r4, #0 + adds r5, #0x25 + ldrb r0, [r5] + movs r2, #1 + eors r0, r2 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r3, r1, #0x1f + strb r2, [r5] + b _0807A8F8 + .align 2, 0 +_0807A8C8: .4byte gNonGameplayRam +_0807A8CC: .4byte gChangedInput +_0807A8D0: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807A8E8 + adds r1, r4, #0 + adds r1, #0x25 + ldrb r0, [r1] + cmp r0, #0 + beq _0807A8E4 + movs r3, #1 +_0807A8E4: + strb r5, [r1] + b _0807A8F8 +_0807A8E8: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807A8F8 + movs r3, #2 + movs r0, #0xa + strb r0, [r4, #7] + strb r5, [r4, #6] +_0807A8F8: + adds r0, r4, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A910 + ldrb r0, [r4, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r0, #0x34 + b _0807A91C +_0807A910: + ldrb r0, [r4, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r0, #0x84 +_0807A91C: + strh r0, [r1, #0x2e] + cmp r3, #1 + bne _0807A924 + b _0807AD3E +_0807A924: + cmp r3, #2 + beq _0807A92A + b _0807AE42 +_0807A92A: + adds r0, r4, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A936 + b _0807AD56 +_0807A936: + b _0807AD60 +_0807A938: + ldr r2, _0807A994 @ =gNonGameplayRam + ldrh r1, [r2, #4] + movs r0, #0xc0 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + bne _0807AA18 + movs r0, #0x10 + strb r0, [r4, #7] + adds r0, r4, #0 + adds r0, #0x25 + ldrb r2, [r0] + cmp r2, #0 + bne _0807A9DA + ldr r0, _0807A998 @ =0x03000031 + ldrb r1, [r0] + movs r3, #0x84 + lsls r3, r3, #2 + adds r0, r4, r3 + strb r1, [r0] + ldr r0, _0807A99C @ =0x03000032 + ldrb r1, [r0] + adds r3, #1 + adds r0, r4, r3 + strb r1, [r0] + ldr r1, _0807A9A0 @ =0x00000212 + adds r0, r4, r1 + ldr r1, _0807A9A4 @ =gCurrentArea + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + beq _0807A9A8 + movs r0, #0xb + strb r0, [r4, #7] + subs r3, #0x5b + adds r0, r4, r3 + strb r2, [r0] + movs r1, #0xda + lsls r1, r1, #1 + adds r0, r4, r1 + strb r2, [r0] + subs r3, #1 + adds r0, r4, r3 + strb r2, [r0] + b _0807A9B8 + .align 2, 0 +_0807A994: .4byte gNonGameplayRam +_0807A998: .4byte 0x03000031 +_0807A99C: .4byte 0x03000032 +_0807A9A0: .4byte 0x00000212 +_0807A9A4: .4byte gCurrentArea +_0807A9A8: + movs r1, #0xd5 + lsls r1, r1, #1 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0807A9B8 + movs r0, #0xf + strb r0, [r4, #7] +_0807A9B8: + movs r2, #0xd5 + lsls r2, r2, #1 + adds r0, r4, r2 + movs r1, #0 + strb r1, [r0] + movs r3, #0xd4 + lsls r3, r3, #1 + adds r0, r4, r3 + strb r1, [r0] + subs r2, #1 + adds r0, r4, r2 + strb r1, [r0] + movs r2, #0 + strh r1, [r4, #0xc] + adds r3, #0x71 + adds r0, r4, r3 + strb r2, [r0] +_0807A9DA: + movs r0, #1 + bl ClearTextGraphics + ldr r2, _0807AA14 @ =gNonGameplayRam + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x36 + movs r3, #0 + strb r3, [r0] + movs r0, #1 + strb r0, [r2, #0x1a] + ldrb r0, [r2, #0x18] + lsls r0, r0, #1 + adds r1, r2, #0 + adds r1, #0x12 + adds r0, r0, r1 + movs r4, #0 + strh r3, [r0] + ldrb r0, [r2, #0x18] + lsls r0, r0, #1 + subs r1, #4 + adds r0, r0, r1 + strh r3, [r0] + strb r4, [r2, #0x1c] + b _0807AE40 + .align 2, 0 +_0807AA14: .4byte gNonGameplayRam +_0807AA18: + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + bne _0807AA22 + b _0807AE42 +_0807AA22: + movs r0, #0x40 + eors r0, r1 + strh r0, [r4, #4] + b _0807AE42 +_0807AA2A: + ldr r1, _0807AA44 @ =gNonGameplayRam + movs r0, #0x94 + lsls r0, r0, #2 + adds r4, r1, r0 + ldrb r2, [r4] + movs r0, #1 + movs r3, #0 + orrs r0, r2 + strb r0, [r4] + strb r3, [r1, #6] + movs r0, #0xc + strb r0, [r1, #7] + b _0807AE42 + .align 2, 0 +_0807AA44: .4byte gNonGameplayRam +_0807AA48: + ldr r5, _0807AA78 @ =gNonGameplayRam + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0807AA5C + b _0807AE42 +_0807AA5C: + ldr r0, _0807AA7C @ =gCurrentArea + ldrb r1, [r0] + ldr r2, _0807AA80 @ =0x00000212 + adds r0, r5, r2 + movs r4, #0 + strb r1, [r0] + movs r0, #1 + bl unk_75988 + strb r4, [r5, #6] + movs r0, #0xd + strb r0, [r5, #7] + b _0807AE42 + .align 2, 0 +_0807AA78: .4byte gNonGameplayRam +_0807AA7C: .4byte gCurrentArea +_0807AA80: .4byte 0x00000212 +_0807AA84: + ldr r6, _0807AAC8 @ =gNonGameplayRam + ldrb r0, [r6, #6] + cmp r0, #4 + bhi _0807AA8E + b _0807AE42 +_0807AA8E: + ldr r3, _0807AACC @ =0x00000212 + adds r4, r6, r3 + ldrb r0, [r4] + ldr r5, _0807AAD0 @ =0x02034000 + adds r1, r5, #0 + bl GetMinimapData + ldrb r0, [r4] + bl MinimapSetVisitedTilesAndCollectedItems + ldr r1, _0807AAD4 @ =0x040000D4 + str r5, [r1] + ldr r0, _0807AAD8 @ =0x0600E000 + str r0, [r1, #4] + ldr r0, _0807AADC @ =0x80000400 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r1, #0 + movs r0, #0xe + strb r0, [r6, #7] + strb r1, [r6, #6] + movs r4, #0x94 + lsls r4, r4, #2 + adds r2, r6, r4 + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + b _0807AE42 + .align 2, 0 +_0807AAC8: .4byte gNonGameplayRam +_0807AACC: .4byte 0x00000212 +_0807AAD0: .4byte 0x02034000 +_0807AAD4: .4byte 0x040000D4 +_0807AAD8: .4byte 0x0600E000 +_0807AADC: .4byte 0x80000400 +_0807AAE0: + ldr r2, _0807AB10 @ =gNonGameplayRam + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r2, r1 + ldrb r1, [r0] + cmp r1, #0 + beq _0807AAF0 + b _0807AE42 +_0807AAF0: + movs r4, #0xdb + lsls r4, r4, #1 + adds r3, r2, r4 + movs r0, #1 + strb r0, [r3] + movs r3, #0xda + lsls r3, r3, #1 + adds r0, r2, r3 + strb r1, [r0] + subs r4, #1 + adds r0, r2, r4 + strb r1, [r0] + strb r1, [r2, #6] + movs r0, #0x10 + strb r0, [r2, #7] + b _0807AE42 + .align 2, 0 +_0807AB10: .4byte gNonGameplayRam +_0807AB14: + ldr r4, _0807AB38 @ =gNonGameplayRam + movs r1, #0x84 + lsls r1, r1, #2 + adds r0, r4, r1 + ldrb r0, [r0] + ldr r2, _0807AB3C @ =0x00000211 + adds r1, r4, r2 + ldrb r1, [r1] + bl NavigationConversationScrollMapToDestination + cmp r0, #0 + bne _0807AB2E + b _0807AE42 +_0807AB2E: + movs r0, #0 + strb r0, [r4, #6] + movs r0, #0x10 + strb r0, [r4, #7] + b _0807AE42 + .align 2, 0 +_0807AB38: .4byte gNonGameplayRam +_0807AB3C: .4byte 0x00000211 +_0807AB40: + ldr r4, _0807ABAC @ =gNonGameplayRam + ldrb r0, [r4, #6] + cmp r0, #0x10 + bhi _0807AB4A + b _0807AE42 +_0807AB4A: + movs r0, #0 + bl NavigationConversationUpdateTarget + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r3, #0 + movs r1, #8 + strh r1, [r0, #0x2e] + ldrb r0, [r4, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + ldr r2, _0807ABB0 @ =0x085766E0 + ldrb r0, [r4, #0x18] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + strh r0, [r1, #0x2c] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x36 + movs r1, #0xb + strb r1, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x34 + strb r3, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x35 + strb r3, [r0] + movs r0, #1 + strb r0, [r4, #7] + strb r3, [r4, #6] + b _0807AE42 + .align 2, 0 +_0807ABAC: .4byte gNonGameplayRam +_0807ABB0: .4byte 0x085766E0 +_0807ABB4: + ldr r5, _0807AC24 @ =gNonGameplayRam + movs r3, #0x9a + lsls r3, r3, #2 + adds r1, r5, r3 + ldrh r3, [r1] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + movs r2, #0 + movs r4, #0 + orrs r0, r3 + strh r0, [r1] + movs r0, #8 + strb r0, [r5, #0x1d] + strb r2, [r5, #0x1e] + strb r2, [r5, #0x1f] + ldrh r0, [r5, #4] + movs r1, #1 + orrs r0, r1 + strh r0, [r5, #4] + strb r2, [r5, #0x18] + strb r1, [r5, #0x19] + strb r2, [r5, #0x17] + adds r0, r5, #0 + adds r0, #0x24 + strb r1, [r0] + adds r0, #0x1e + strb r2, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x34 + strb r2, [r0] + ldrb r1, [r5, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r5 + adds r0, #0x35 + strb r2, [r0] + adds r0, r5, #0 + adds r0, #0x20 + strb r2, [r0] + adds r0, #1 + strb r2, [r0] + strh r4, [r5, #0x22] + movs r0, #5 + strb r0, [r5, #0x1c] + ldrb r0, [r5, #7] + adds r0, #1 + strb r0, [r5, #7] + strb r2, [r5, #6] + b _0807AE42 + .align 2, 0 +_0807AC24: .4byte gNonGameplayRam +_0807AC28: + ldr r4, _0807AC44 @ =gNonGameplayRam + adds r5, r4, #0 + adds r5, #0x24 + ldrb r0, [r5] + cmp r0, #0 + bne _0807AC36 + b _0807AE42 +_0807AC36: + cmp r0, #2 + bne _0807AC48 + movs r1, #0 + movs r0, #0x13 +_0807AC3E: + strb r0, [r4, #7] + strb r1, [r4, #6] + b _0807AE42 + .align 2, 0 +_0807AC44: .4byte gNonGameplayRam +_0807AC48: + movs r0, #1 + bl unk_7a0fc + cmp r0, #0 + bne _0807AC54 + b _0807AE42 +_0807AC54: + movs r3, #0 + movs r2, #2 + strb r2, [r5] + movs r0, #1 + strb r0, [r4, #0x1a] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x36 + strb r2, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x34 + strb r3, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x35 + strb r3, [r0] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r2, #0 + movs r1, #0x8c + strh r1, [r0, #0x2c] + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + movs r1, #0x84 + strh r1, [r0, #0x2e] + adds r0, r4, #0 + adds r0, #0x25 + strb r2, [r0] + b _0807AE42 +_0807ACAE: + movs r3, #0 + ldr r2, _0807ACE4 @ =gNonGameplayRam + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r5, #0 + movs r1, #0x8c + strh r1, [r0, #0x2c] + ldr r0, _0807ACE8 @ =gChangedInput + ldrh r1, [r0] + movs r0, #0x20 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + beq _0807ACEC + adds r5, r4, #0 + adds r5, #0x25 + ldrb r0, [r5] + movs r2, #1 + eors r0, r2 + rsbs r1, r0, #0 + orrs r1, r0 + lsrs r3, r1, #0x1f + strb r2, [r5] + b _0807AD14 + .align 2, 0 +_0807ACE4: .4byte gNonGameplayRam +_0807ACE8: .4byte gChangedInput +_0807ACEC: + movs r0, #0x10 + ands r0, r1 + cmp r0, #0 + beq _0807AD04 + adds r1, r4, #0 + adds r1, #0x25 + ldrb r0, [r1] + cmp r0, #0 + beq _0807AD00 + movs r3, #1 +_0807AD00: + strb r5, [r1] + b _0807AD14 +_0807AD04: + movs r0, #1 + ands r0, r1 + cmp r0, #0 + beq _0807AD14 + movs r3, #2 + movs r0, #0x14 + strb r0, [r4, #7] + strb r5, [r4, #6] +_0807AD14: + adds r0, r4, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + beq _0807AD2C + ldrb r0, [r4, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r0, #0x34 + b _0807AD38 +_0807AD2C: + ldrb r0, [r4, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r4 + movs r0, #0x84 +_0807AD38: + strh r0, [r1, #0x2e] + cmp r3, #1 + bne _0807AD48 +_0807AD3E: + movs r0, #0xfd + lsls r0, r0, #1 + bl SoundPlay + b _0807AE42 +_0807AD48: + cmp r3, #2 + bne _0807AE42 + adds r0, r4, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #0 + beq _0807AD60 +_0807AD56: + movs r0, #0x81 + lsls r0, r0, #2 + bl SoundPlay + b _0807AE42 +_0807AD60: + ldr r0, _0807AD68 @ =0x00000205 + bl SoundPlay + b _0807AE42 + .align 2, 0 +_0807AD68: .4byte 0x00000205 +_0807AD6C: + ldr r4, _0807ADDC @ =gNonGameplayRam + movs r5, #0 + movs r0, #0x15 + strb r0, [r4, #7] + adds r0, r4, #0 + adds r0, #0x25 + ldrb r0, [r0] + cmp r0, #1 + bne _0807ADA4 + ldr r1, _0807ADE0 @ =gPreviousNavigationConversation + movs r0, #0xff + strb r0, [r1] + movs r1, #0xd5 + lsls r1, r1, #1 + adds r0, r4, r1 + strb r5, [r0] + movs r2, #0xd4 + lsls r2, r2, #1 + adds r0, r4, r2 + strb r5, [r0] + ldr r3, _0807ADE4 @ =0x000001A9 + adds r0, r4, r3 + strb r5, [r0] + movs r1, #0 + strh r5, [r4, #0xc] + adds r2, #0x71 + adds r0, r4, r2 + strb r1, [r0] +_0807ADA4: + movs r0, #1 + bl ClearTextGraphics + ldrb r1, [r4, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r4 + adds r0, #0x36 + strb r5, [r0] + movs r0, #1 + strb r0, [r4, #0x1a] + ldrb r0, [r4, #0x18] + lsls r0, r0, #1 + adds r1, r4, #0 + adds r1, #0x12 + adds r0, r0, r1 + movs r2, #0 + strh r5, [r0] + ldrb r0, [r4, #0x18] + lsls r0, r0, #1 + subs r1, #4 + adds r0, r0, r1 + strh r5, [r0] + strb r2, [r4, #0x1c] + strb r2, [r4, #6] + b _0807AE42 + .align 2, 0 +_0807ADDC: .4byte gNonGameplayRam +_0807ADE0: .4byte gPreviousNavigationConversation +_0807ADE4: .4byte 0x000001A9 +_0807ADE8: + ldr r2, _0807AE4C @ =gNonGameplayRam + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + movs r4, #0 + movs r1, #8 + strh r1, [r0, #0x2e] + ldrb r0, [r2, #0x19] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r3, _0807AE50 @ =0x085766E0 + ldrb r0, [r2, #0x18] + lsls r0, r0, #1 + adds r0, r0, r3 + ldrb r0, [r0] + strh r0, [r1, #0x2c] + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x36 + movs r1, #0xb + strb r1, [r0] + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x34 + strb r4, [r0] + ldrb r1, [r2, #0x19] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #2 + adds r0, r0, r2 + adds r0, #0x35 + strb r4, [r0] + movs r0, #1 + strb r0, [r2, #7] +_0807AE40: + strb r4, [r2, #6] +_0807AE42: + adds r0, r7, #0 +_0807AE44: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807AE4C: .4byte gNonGameplayRam +_0807AE50: .4byte 0x085766E0 + + thumb_func_start NavigationConversationSetupOam +NavigationConversationSetupOam: @ 0x0807AE54 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + ldr r6, _0807AF60 @ =gNonGameplayRam + adds r1, r6, #0 + adds r1, #0x5e + movs r0, #0 + mov sb, r0 + movs r2, #0 + mov sl, r2 + movs r0, #0x7c + strh r0, [r1] + subs r1, #2 + movs r0, #0xcc + strh r0, [r1] + subs r1, #2 + movs r0, #0x4b + strb r0, [r1] + adds r0, r6, #0 + adds r0, #0x58 + mov r3, sb + strb r3, [r0] + adds r0, #1 + strb r3, [r0] + movs r0, #1 + bl PauseScreenSetNavigationTextPanelOam + movs r4, #0x73 + adds r4, r4, r6 + mov r8, r4 + ldrb r1, [r4] + movs r2, #0xd + rsbs r2, r2, #0 + adds r0, r2, #0 + ands r0, r1 + movs r5, #4 + orrs r0, r5 + strb r0, [r4] + movs r0, #0x43 + adds r0, r0, r6 + mov ip, r0 + ldrb r1, [r0] + movs r7, #4 + rsbs r7, r7, #0 + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + mov r1, ip + strb r0, [r1] + movs r3, #0x5b + adds r3, r3, r6 + ldrb r1, [r3] + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + strb r0, [r3] + movs r4, #0x67 + adds r4, r4, r6 + ldrb r1, [r4] + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + strb r0, [r4] + movs r5, #0x85 + lsls r5, r5, #2 + adds r1, r6, r5 + ldr r0, _0807AF64 @ =0x085766D4 + ldm r0!, {r3, r4, r5} + stm r1!, {r3, r4, r5} + mov r0, sb + strb r0, [r6, #0x1a] + mov r1, sl + strh r1, [r6, #4] + adds r5, r6, #0 + adds r5, #0xa3 + ldrb r0, [r5] + adds r4, r2, #0 + ands r4, r0 + movs r3, #4 + orrs r4, r3 + strb r4, [r5] + adds r3, r6, #0 + adds r3, #0x4f + ldrb r1, [r3] + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + strb r0, [r3] + adds r3, #0x48 + ldrb r1, [r3] + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + strb r0, [r3] + subs r3, #0xc + ldrb r1, [r3] + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + strb r0, [r3] + subs r3, #0xc + ldrb r1, [r3] + adds r0, r7, #0 + ands r0, r1 + ands r0, r2 + strb r0, [r3] + adds r0, r6, #0 + adds r0, #0x82 + movs r2, #0xd4 + strh r2, [r0] + subs r0, #2 + movs r1, #0x44 + strh r1, [r0] + subs r0, #0xa + strh r2, [r0] + subs r0, #2 + strh r1, [r0] + ldrb r0, [r6] + cmp r0, #0 + beq _0807AF68 + mov r1, r8 + ldrb r0, [r1] + adds r1, r7, #0 + ands r1, r0 + movs r0, #1 + orrs r1, r0 + mov r2, r8 + strb r1, [r2] + ands r4, r7 + orrs r4, r0 + strb r4, [r5] + b _0807AF7C + .align 2, 0 +_0807AF60: .4byte gNonGameplayRam +_0807AF64: .4byte 0x085766D4 +_0807AF68: + ands r4, r7 + movs r2, #2 + orrs r4, r2 + strb r4, [r5] + mov r3, r8 + ldrb r1, [r3] + adds r0, r7, #0 + ands r0, r1 + orrs r0, r2 + strb r0, [r3] +_0807AF7C: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start NavigationConversationUpdateTarget +NavigationConversationUpdateTarget: @ 0x0807AF8C + push {r4, lr} + lsls r0, r0, #0x18 + lsrs r4, r0, #0x18 + bl NavigationConverstionFindTarget + cmp r0, #0 + beq _0807AFF2 + cmp r4, #0 + beq _0807AFF2 + ldr r1, _0807AFCC @ =gNonGameplayRam + movs r2, #0xd4 + lsls r2, r2, #1 + adds r0, r1, r2 + movs r2, #0 + strb r2, [r0] + ldr r3, _0807AFD0 @ =0x000001A9 + adds r0, r1, r3 + strb r2, [r0] + ldr r2, _0807AFD4 @ =0x0000020F + adds r0, r1, r2 + ldrb r0, [r0] + adds r2, r1, #0 + cmp r0, #1 + bne _0807AFDC + ldr r1, _0807AFD8 @ =0x085767EC + adds r3, #0x6a + adds r0, r2, r3 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r1, [r0] + b _0807AFEA + .align 2, 0 +_0807AFCC: .4byte gNonGameplayRam +_0807AFD0: .4byte 0x000001A9 +_0807AFD4: .4byte 0x0000020F +_0807AFD8: .4byte 0x085767EC +_0807AFDC: + ldr r1, _0807AFF8 @ =0x00000212 + adds r0, r2, r1 + ldrb r0, [r0] + movs r1, #0xe + cmp r0, #0 + bne _0807AFEA + movs r1, #0xf +_0807AFEA: + movs r3, #0xd5 + lsls r3, r3, #1 + adds r0, r2, r3 + strb r1, [r0] +_0807AFF2: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807AFF8: .4byte 0x00000212 + + thumb_func_start NavigationConverstionFindTarget +NavigationConverstionFindTarget: @ 0x0807AFFC + push {r4, r5, r6, r7, lr} + ldr r2, _0807B03C @ =gNonGameplayRam + ldr r1, _0807B040 @ =0x0000020F + adds r0, r2, r1 + movs r3, #0 + strb r3, [r0] + movs r0, #0x83 + lsls r0, r0, #2 + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] + ldr r0, _0807B044 @ =0x0000020D + adds r1, r2, r0 + movs r0, #1 + rsbs r0, r0, #0 + strb r0, [r1] + ldr r1, _0807B048 @ =0x0000020E + adds r0, r2, r1 + strb r3, [r0] + adds r1, #5 + adds r0, r2, r1 + strb r3, [r0] + ldr r0, _0807B04C @ =gPauseScreenFlag + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r5, r2, #0 + cmp r0, #4 + bne _0807B060 +_0807B036: + movs r0, #0 + b _0807B146 + .align 2, 0 +_0807B03C: .4byte gNonGameplayRam +_0807B040: .4byte 0x0000020F +_0807B044: .4byte 0x0000020D +_0807B048: .4byte 0x0000020E +_0807B04C: .4byte gPauseScreenFlag +_0807B050: + movs r4, #1 + ldrb r1, [r1, #4] + ldr r3, _0807B05C @ =0x00000213 + adds r0, r5, r3 + strb r1, [r0] + b _0807B086 + .align 2, 0 +_0807B05C: .4byte 0x00000213 +_0807B060: + ldr r0, _0807B0B8 @ =0x0300004C + strb r3, [r0] + movs r4, #0 + movs r2, #0 + adds r7, r0, #0 + ldr r6, _0807B0BC @ =0x085766E4 + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r5, r1 + ldrb r3, [r0] + adds r1, r6, #0 +_0807B076: + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r3, r0 + beq _0807B050 + adds r1, #8 + adds r2, #1 + cmp r2, #0x20 + bls _0807B076 +_0807B086: + cmp r4, #0 + beq _0807B036 + lsls r0, r2, #3 + adds r2, r0, r6 + ldrb r0, [r2, #1] + strb r0, [r7] + ldr r1, _0807B0C0 @ =0x08576066 + ldrb r0, [r7] + adds r0, r0, r1 + ldrb r0, [r0] + ldr r3, _0807B0C4 @ =0x0000020E + adds r6, r5, r3 + strb r0, [r6] + ldr r1, _0807B0C8 @ =0x00000212 + adds r3, r5, r1 + ldrb r1, [r3] + adds r4, r0, #0 + cmp r1, r4 + bne _0807B0D0 + ldrb r3, [r2, #2] + ldrb r2, [r2, #3] + ldr r0, _0807B0CC @ =0x0000020F + adds r1, r5, r0 + movs r0, #1 + b _0807B11E + .align 2, 0 +_0807B0B8: .4byte 0x0300004C +_0807B0BC: .4byte 0x085766E4 +_0807B0C0: .4byte 0x08576066 +_0807B0C4: .4byte 0x0000020E +_0807B0C8: .4byte 0x00000212 +_0807B0CC: .4byte 0x0000020F +_0807B0D0: + cmp r1, #0 + bne _0807B0F4 + ldr r2, _0807B0EC @ =0x08576218 + ldrb r0, [r6] + lsls r0, r0, #1 + adds r1, r0, r2 + ldrb r3, [r1] + adds r2, #1 + adds r0, r0, r2 + ldrb r2, [r0] + ldr r0, _0807B0F0 @ =0x0000020F + adds r1, r5, r0 + movs r0, #2 + b _0807B11E + .align 2, 0 +_0807B0EC: .4byte 0x08576218 +_0807B0F0: .4byte 0x0000020F +_0807B0F4: + ldr r0, _0807B110 @ =0x08576226 + ldrb r1, [r3] + lsls r1, r1, #1 + adds r2, r1, r0 + ldrb r3, [r2] + adds r0, #1 + adds r1, r1, r0 + ldrb r2, [r1] + cmp r4, #0 + bne _0807B118 + ldr r0, _0807B114 @ =0x0000020F + adds r1, r5, r0 + movs r0, #2 + b _0807B11E + .align 2, 0 +_0807B110: .4byte 0x08576226 +_0807B114: .4byte 0x0000020F +_0807B118: + ldr r0, _0807B14C @ =0x0000020F + adds r1, r5, r0 + movs r0, #3 +_0807B11E: + strb r0, [r1] + subs r1, r3, #1 + movs r3, #0x83 + lsls r3, r3, #2 + adds r0, r5, r3 + strb r1, [r0] + subs r1, r2, #1 + ldr r2, _0807B150 @ =0x0000020D + adds r0, r5, r2 + strb r1, [r0] + movs r4, #0 + ldr r0, _0807B154 @ =gPreviousNavigationConversation + adds r3, #0x14 + adds r1, r5, r3 + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bne _0807B144 + movs r4, #1 +_0807B144: + adds r0, r4, #0 +_0807B146: + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807B14C: .4byte 0x0000020F +_0807B150: .4byte 0x0000020D +_0807B154: .4byte gPreviousNavigationConversation + + thumb_func_start NavigationConversionScrollToTarget +NavigationConversionScrollToTarget: @ 0x0807B158 + push {r4, r5, r6, r7, lr} + ldr r1, _0807B178 @ =gNonGameplayRam + ldrb r0, [r1, #8] + adds r0, #1 + strb r0, [r1, #8] + ldrb r0, [r1, #9] + adds r7, r1, #0 + cmp r0, #0xd + bls _0807B16C + b _0807B4BC +_0807B16C: + lsls r0, r0, #2 + ldr r1, _0807B17C @ =_0807B180 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807B178: .4byte gNonGameplayRam +_0807B17C: .4byte _0807B180 +_0807B180: @ jump table + .4byte _0807B4BC @ case 0 + .4byte _0807B1B8 @ case 1 + .4byte _0807B226 @ case 2 + .4byte _0807B236 @ case 3 + .4byte _0807B46C @ case 4 + .4byte _0807B23E @ case 5 + .4byte _0807B300 @ case 6 + .4byte _0807B30A @ case 7 + .4byte _0807B32A @ case 8 + .4byte _0807B400 @ case 9 + .4byte _0807B420 @ case 10 + .4byte _0807B46C @ case 11 + .4byte _0807B488 @ case 12 + .4byte _0807B4BC @ case 13 +_0807B1B8: + movs r2, #0 + movs r1, #0x83 + lsls r1, r1, #2 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, #0xff + beq _0807B200 + ldr r3, _0807B204 @ =0x0000020D + adds r0, r7, r3 + ldrb r0, [r0] + cmp r0, #0xff + beq _0807B200 + movs r4, #0xd5 + lsls r4, r4, #1 + adds r0, r7, r4 + ldr r1, _0807B208 @ =0x085767EC + ldrb r0, [r0] + ldrb r3, [r1] + cmp r0, r3 + beq _0807B200 + ldrb r4, [r1, #1] + cmp r0, r4 + beq _0807B200 + ldrb r3, [r1, #2] + cmp r0, r3 + beq _0807B200 + ldrb r1, [r1, #3] + cmp r0, r1 + beq _0807B200 + cmp r0, #0xe + beq _0807B200 + cmp r0, #0xf + bne _0807B1FC + movs r2, #1 +_0807B1FC: + cmp r2, #0 + beq _0807B20C +_0807B200: + movs r0, #0xc + b _0807B4BA + .align 2, 0 +_0807B204: .4byte 0x0000020D +_0807B208: .4byte 0x085767EC +_0807B20C: + movs r0, #2 + strb r0, [r7, #9] + ldrh r1, [r7, #4] + movs r4, #0x80 + lsls r4, r4, #1 + adds r0, r4, #0 + orrs r0, r1 + movs r2, #0x80 + lsls r2, r2, #2 + adds r1, r2, #0 + orrs r0, r1 + strh r0, [r7, #4] + b _0807B4BC +_0807B226: + ldrh r1, [r7, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0807B234 + b _0807B4BC +_0807B234: + b _0807B4B2 +_0807B236: + movs r0, #0 + strb r0, [r7, #8] + movs r0, #4 + b _0807B4BA +_0807B23E: + movs r3, #0x83 + lsls r3, r3, #2 + adds r0, r7, r3 + ldrb r0, [r0] + ldr r4, _0807B270 @ =0x0000020D + adds r1, r7, r4 + ldrb r1, [r1] + bl NavigationConversationScrollMapToDestination + cmp r0, #0 + bne _0807B256 + b _0807B4BC +_0807B256: + ldr r1, _0807B274 @ =0x0000020F + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0807B280 + ldr r1, _0807B278 @ =0x085767EC + ldr r2, _0807B27C @ =0x00000213 + adds r0, r7, r2 + ldrb r0, [r0] + adds r0, r0, r1 + ldrb r2, [r0] + b _0807B28E + .align 2, 0 +_0807B270: .4byte 0x0000020D +_0807B274: .4byte 0x0000020F +_0807B278: .4byte 0x085767EC +_0807B27C: .4byte 0x00000213 +_0807B280: + ldr r3, _0807B2B8 @ =0x00000212 + adds r0, r7, r3 + ldrb r0, [r0] + movs r2, #0xe + cmp r0, #0 + bne _0807B28E + movs r2, #0xf +_0807B28E: + ldr r5, _0807B2BC @ =gNonGameplayRam + movs r4, #0xd5 + lsls r4, r4, #1 + adds r0, r5, r4 + movs r1, #0 + strb r2, [r0] + movs r2, #0xd4 + lsls r2, r2, #1 + adds r0, r5, r2 + strb r1, [r0] + ldr r3, _0807B2C0 @ =0x000001A9 + adds r0, r5, r3 + strb r1, [r0] + strb r1, [r5, #8] + adds r4, #0x65 + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, #1 + bne _0807B2C4 + movs r0, #0xc + b _0807B2C6 + .align 2, 0 +_0807B2B8: .4byte 0x00000212 +_0807B2BC: .4byte gNonGameplayRam +_0807B2C0: .4byte 0x000001A9 +_0807B2C4: + movs r0, #6 +_0807B2C6: + strb r0, [r5, #9] + ldr r0, _0807B2F0 @ =0x00000119 + bl SoundStop + ldr r1, _0807B2F4 @ =gNonGameplayRam + movs r2, #0x83 + lsls r2, r2, #2 + adds r0, r1, r2 + ldrb r2, [r0] + movs r3, #0x96 + lsls r3, r3, #2 + adds r0, r1, r3 + strb r2, [r0] + ldr r4, _0807B2F8 @ =0x0000020D + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0807B2FC @ =0x00000259 + adds r1, r1, r2 + strb r0, [r1] + b _0807B4BC + .align 2, 0 +_0807B2F0: .4byte 0x00000119 +_0807B2F4: .4byte gNonGameplayRam +_0807B2F8: .4byte 0x0000020D +_0807B2FC: .4byte 0x00000259 +_0807B300: + ldrb r0, [r7, #8] + cmp r0, #0x3c + bhi _0807B308 + b _0807B4BC +_0807B308: + b _0807B4B2 +_0807B30A: + movs r3, #0x94 + lsls r3, r3, #2 + adds r2, r7, r3 + movs r1, #0 + movs r0, #1 + strb r0, [r2] + movs r4, #0xd5 + lsls r4, r4, #1 + adds r0, r7, r4 + strb r1, [r0] + movs r2, #0xdb + lsls r2, r2, #1 + adds r0, r7, r2 + strb r1, [r0] + strb r1, [r7, #8] + b _0807B4B6 +_0807B32A: + movs r3, #0x94 + lsls r3, r3, #2 + adds r0, r7, r3 + ldrb r1, [r0] + movs r0, #4 + ands r0, r1 + cmp r0, #0 + bne _0807B33C + b _0807B4BC +_0807B33C: + ldr r4, _0807B36C @ =0x0000020F + adds r0, r7, r4 + ldrb r0, [r0] + cmp r0, #3 + bne _0807B34E + ldr r0, _0807B370 @ =0x0000020E + adds r1, r7, r0 + movs r0, #0 + strb r0, [r1] +_0807B34E: + ldr r1, _0807B370 @ =0x0000020E + adds r3, r7, r1 + ldrb r0, [r3] + cmp r0, #0 + bne _0807B37C + ldr r2, _0807B374 @ =0x08576218 + ldr r4, _0807B378 @ =0x00000212 + adds r3, r7, r4 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + subs r4, #2 + b _0807B38C + .align 2, 0 +_0807B36C: .4byte 0x0000020F +_0807B370: .4byte 0x0000020E +_0807B374: .4byte 0x08576218 +_0807B378: .4byte 0x00000212 +_0807B37C: + ldr r2, _0807B3E0 @ =0x08576226 + ldrb r0, [r3] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + movs r4, #0x84 + lsls r4, r4, #2 +_0807B38C: + adds r1, r7, r4 + strb r0, [r1] + ldrb r0, [r3] + lsls r0, r0, #1 + adds r2, #1 + adds r0, r0, r2 + ldrb r0, [r0] + subs r0, #1 + ldr r2, _0807B3E4 @ =0x00000211 + adds r1, r7, r2 + strb r0, [r1] + ldr r3, _0807B3E8 @ =0x0000020E + adds r0, r7, r3 + ldrb r0, [r0] + ldr r1, _0807B3EC @ =0x00000212 + adds r4, r7, r1 + movs r6, #0 + strb r0, [r4] + ldrb r0, [r4] + ldr r5, _0807B3F0 @ =0x02034000 + adds r1, r5, #0 + bl GetMinimapData + ldrb r0, [r4] + bl MinimapSetVisitedTilesAndCollectedItems + ldr r1, _0807B3F4 @ =0x040000D4 + str r5, [r1] + ldr r0, _0807B3F8 @ =0x0600E000 + str r0, [r1, #4] + ldr r0, _0807B3FC @ =0x80000400 + str r0, [r1, #8] + ldr r0, [r1, #8] + movs r0, #1 + bl unk_75988 + movs r0, #0 + bl NavigationConversationUpdateTarget + strb r6, [r7, #8] + b _0807B4B6 + .align 2, 0 +_0807B3E0: .4byte 0x08576226 +_0807B3E4: .4byte 0x00000211 +_0807B3E8: .4byte 0x0000020E +_0807B3EC: .4byte 0x00000212 +_0807B3F0: .4byte 0x02034000 +_0807B3F4: .4byte 0x040000D4 +_0807B3F8: .4byte 0x0600E000 +_0807B3FC: .4byte 0x80000400 +_0807B400: + ldrb r0, [r7, #8] + cmp r0, #8 + bls _0807B4BC + movs r0, #0 + strb r0, [r7, #8] + ldrb r0, [r7, #9] + adds r0, #1 + strb r0, [r7, #9] + movs r3, #0x94 + lsls r3, r3, #2 + adds r2, r7, r3 + ldrb r1, [r2] + movs r0, #8 + orrs r0, r1 + strb r0, [r2] + b _0807B4BC +_0807B420: + movs r4, #0x94 + lsls r4, r4, #2 + adds r0, r7, r4 + ldrb r0, [r0] + cmp r0, #0 + bne _0807B4BC + ldr r1, _0807B460 @ =0x0000020E + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0807B442 + ldr r2, _0807B464 @ =0x00000212 + adds r0, r7, r2 + ldrb r0, [r0] + movs r2, #0xf + cmp r0, #0 + bne _0807B444 +_0807B442: + movs r2, #0xe +_0807B444: + movs r3, #0xdb + lsls r3, r3, #1 + adds r0, r7, r3 + movs r1, #0 + strb r2, [r0] + movs r4, #0xda + lsls r4, r4, #1 + adds r0, r7, r4 + strb r1, [r0] + ldr r2, _0807B468 @ =0x000001B5 + adds r0, r7, r2 + strb r1, [r0] + strb r1, [r7, #8] + b _0807B4B6 + .align 2, 0 +_0807B460: .4byte 0x0000020E +_0807B464: .4byte 0x00000212 +_0807B468: .4byte 0x000001B5 +_0807B46C: + ldrb r0, [r7, #8] + cmp r0, #0x1e + bls _0807B4BC + movs r0, #0 + strb r0, [r7, #8] + movs r0, #5 + strb r0, [r7, #9] + ldr r0, _0807B484 @ =0x00000119 + bl SoundPlay + b _0807B4BC + .align 2, 0 +_0807B484: .4byte 0x00000119 +_0807B488: + adds r2, r7, #0 + ldrh r1, [r2, #4] + movs r3, #0x80 + lsls r3, r3, #2 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0807B49E + adds r0, r3, #0 + eors r0, r1 + strh r0, [r2, #4] +_0807B49E: + ldrh r1, [r2, #4] + movs r3, #0x80 + lsls r3, r3, #3 + adds r0, r3, #0 + ands r0, r1 + cmp r0, #0 + beq _0807B4B2 + adds r0, r3, #0 + eors r0, r1 + strh r0, [r2, #4] +_0807B4B2: + movs r0, #0 + strb r0, [r7, #8] +_0807B4B6: + ldrb r0, [r7, #9] + adds r0, #1 +_0807B4BA: + strb r0, [r7, #9] +_0807B4BC: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 + + thumb_func_start NavigationConversationScrollMapToDestination +NavigationConversationScrollMapToDestination: @ 0x0807B4C4 + push {r4, r5, r6, r7, lr} + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + movs r2, #1 + mov ip, r2 + movs r2, #0xf + subs r2, r2, r0 + lsls r2, r2, #3 + movs r3, #0x80 + lsls r3, r3, #2 + subs r5, r3, r2 + movs r0, #0xa + subs r0, r0, r1 + lsls r0, r0, #3 + subs r6, r3, r0 + ldr r1, _0807B520 @ =gBackgroundPositions + ldrh r4, [r1, #0xc] + subs r2, r4, r5 + ldrh r0, [r1, #0xe] + subs r3, r0, r6 + cmp r2, #0 + bge _0807B4F6 + rsbs r2, r2, #0 +_0807B4F6: + cmp r3, #0 + bge _0807B4FC + rsbs r3, r3, #0 +_0807B4FC: + asrs r0, r2, #4 + adds r7, r0, #1 + asrs r0, r3, #4 + adds r3, r0, #1 + subs r2, r4, r5 + cmp r2, #0 + beq _0807B534 + movs r0, #0 + mov ip, r0 + cmp r2, #0 + ble _0807B524 + subs r0, r4, r7 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0xc] + cmp r0, r5 + bge _0807B534 + b _0807B532 + .align 2, 0 +_0807B520: .4byte gBackgroundPositions +_0807B524: + cmp r2, #0 + bge _0807B534 + adds r0, r4, r7 + strh r0, [r1, #0xc] + ldrh r0, [r1, #0xc] + cmp r0, r5 + ble _0807B534 +_0807B532: + strh r5, [r1, #0xc] +_0807B534: + adds r4, r1, #0 + ldrh r0, [r4, #0xe] + subs r2, r0, r6 + cmp r2, #0 + beq _0807B564 + movs r5, #0 + mov ip, r5 + cmp r2, #0 + ble _0807B554 + subs r0, r0, r3 + strh r0, [r4, #0xe] + ldrh r0, [r4, #0xe] + cmp r0, r6 + bge _0807B564 + strh r6, [r4, #0xe] + b _0807B564 +_0807B554: + cmp r2, #0 + bge _0807B564 + adds r0, r0, r3 + strh r0, [r1, #0xe] + ldrh r0, [r1, #0xe] + cmp r0, r6 + ble _0807B564 + strh r6, [r1, #0xe] +_0807B564: + mov r0, ip + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + + thumb_func_start unk_7b56c +unk_7b56c: @ 0x0807B56C + push {r4, r5, lr} + ldr r1, _0807B588 @ =gNonGameplayRam + ldrb r0, [r1, #0xa] + adds r0, #1 + strb r0, [r1, #0xa] + ldrb r0, [r1, #0xb] + adds r5, r1, #0 + cmp r0, #9 + bhi _0807B668 + lsls r0, r0, #2 + ldr r1, _0807B58C @ =_0807B590 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807B588: .4byte gNonGameplayRam +_0807B58C: .4byte _0807B590 +_0807B590: @ jump table + .4byte _0807B668 @ case 0 + .4byte _0807B5B8 @ case 1 + .4byte _0807B5BE @ case 2 + .4byte _0807B5CE @ case 3 + .4byte _0807B5EE @ case 4 + .4byte _0807B612 @ case 5 + .4byte _0807B624 @ case 6 + .4byte _0807B650 @ case 7 + .4byte _0807B668 @ case 8 + .4byte _0807B668 @ case 9 +_0807B5B8: + movs r0, #0 + strb r0, [r5, #0xa] + b _0807B662 +_0807B5BE: + ldrh r1, [r5, #4] + movs r0, #0x40 + ands r0, r1 + cmp r0, #0 + beq _0807B668 + movs r0, #0 + strb r0, [r5, #0xa] + b _0807B662 +_0807B5CE: + adds r1, r5, #0 + adds r1, #0xea + movs r4, #0 + movs r0, #0x41 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0xe8 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + movs r0, #0x8e + lsls r0, r0, #1 + bl SoundPlay + strb r4, [r5, #0xa] + b _0807B662 +_0807B5EE: + ldrb r0, [r5, #0xa] + cmp r0, #0x1e + bls _0807B668 + movs r0, #0x86 + lsls r0, r0, #2 + adds r1, r5, r0 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + strb r2, [r5, #0xa] + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] + ldrh r1, [r5, #4] + movs r0, #0x80 + orrs r0, r1 + strh r0, [r5, #4] + b _0807B668 +_0807B612: + ldrh r1, [r5, #4] + movs r0, #0x40 + ands r0, r1 + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0 + bne _0807B668 + strb r0, [r5, #0xa] + b _0807B662 +_0807B624: + movs r0, #0x86 + lsls r0, r0, #2 + adds r1, r5, r0 + movs r4, #0 + movs r0, #3 + strb r0, [r1] + adds r1, r5, #0 + adds r1, #0xea + movs r0, #0x42 + strb r0, [r1] + adds r0, r5, #0 + adds r0, #0xe8 + strb r4, [r0] + adds r0, #1 + strb r4, [r0] + ldr r0, _0807B64C @ =0x0000011D + bl SoundPlay + strb r4, [r5, #0xa] + b _0807B662 + .align 2, 0 +_0807B64C: .4byte 0x0000011D +_0807B650: + ldrb r0, [r5, #0xa] + cmp r0, #0x1e + bls _0807B668 + ldrh r1, [r5, #4] + ldr r0, _0807B670 @ =0x0000FF7F + ands r0, r1 + movs r1, #0 + strh r0, [r5, #4] + strb r1, [r5, #0xa] +_0807B662: + ldrb r0, [r5, #0xb] + adds r0, #1 + strb r0, [r5, #0xb] +_0807B668: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807B670: .4byte 0x0000FF7F + + thumb_func_start unk_7b674 +unk_7b674: @ 0x0807B674 + push {r4, r5, lr} + ldr r2, _0807B6AC @ =gNonGameplayRam + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r2, r1 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + adds r4, r2, #0 + cmp r0, #0 + bne _0807B68C + b _0807B8C4 +_0807B68C: + ldr r2, _0807B6B0 @ =0x00000252 + adds r0, r4, r2 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r1, _0807B6B4 @ =0x00000251 + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #8 + bls _0807B6A2 + b _0807B8C4 +_0807B6A2: + lsls r0, r0, #2 + ldr r1, _0807B6B8 @ =_0807B6BC + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807B6AC: .4byte gNonGameplayRam +_0807B6B0: .4byte 0x00000252 +_0807B6B4: .4byte 0x00000251 +_0807B6B8: .4byte _0807B6BC +_0807B6BC: @ jump table + .4byte _0807B6E0 @ case 0 + .4byte _0807B72C @ case 1 + .4byte _0807B82C @ case 2 + .4byte _0807B780 @ case 3 + .4byte _0807B7BC @ case 4 + .4byte _0807B7D4 @ case 5 + .4byte _0807B82C @ case 6 + .4byte _0807B858 @ case 7 + .4byte _0807B8B0 @ case 8 +_0807B6E0: + movs r2, #0x94 + lsls r2, r2, #2 + adds r0, r4, r2 + ldrb r1, [r0] + movs r2, #1 + adds r0, r2, #0 + ands r0, r1 + cmp r0, #0 + beq _0807B700 + ldr r1, _0807B6FC @ =0x00000251 + adds r0, r4, r1 + strb r2, [r0] + b _0807B710 + .align 2, 0 +_0807B6FC: .4byte 0x00000251 +_0807B700: + movs r0, #2 + ands r0, r1 + cmp r0, #0 + beq _0807B710 + ldr r2, _0807B720 @ =0x00000251 + adds r1, r4, r2 + movs r0, #4 + strb r0, [r1] +_0807B710: + ldr r1, _0807B724 @ =gPreviousArea + movs r0, #0xff + strb r0, [r1] + ldr r0, _0807B728 @ =0x00000252 + adds r1, r4, r0 + movs r0, #0 + strb r0, [r1] + b _0807B8C4 + .align 2, 0 +_0807B720: .4byte 0x00000251 +_0807B724: .4byte gPreviousArea +_0807B728: .4byte 0x00000252 +_0807B72C: + ldr r1, _0807B770 @ =0x00000252 + adds r2, r4, r1 + ldrb r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0807B73C + b _0807B8C4 +_0807B73C: + ldr r0, _0807B774 @ =gWrittenToMosaic_L + ldrh r1, [r0] + adds r1, #0x11 + strh r1, [r0] + ldr r0, _0807B778 @ =0x08576802 + lsls r1, r1, #0x10 + lsrs r1, r1, #0x10 + ldrb r0, [r0] + cmp r1, r0 + beq _0807B752 + b _0807B8C4 +_0807B752: + movs r0, #0 + strb r0, [r2] + ldr r2, _0807B77C @ =0x00000251 + adds r1, r4, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #2 + adds r2, r4, r0 + ldrb r1, [r2] + movs r0, #4 + orrs r0, r1 + strb r0, [r2] + b _0807B8C4 + .align 2, 0 +_0807B770: .4byte 0x00000252 +_0807B774: .4byte gWrittenToMosaic_L +_0807B778: .4byte 0x08576802 +_0807B77C: .4byte 0x00000251 +_0807B780: + ldr r0, _0807B7B0 @ =0x00000252 + adds r2, r4, r0 + ldrb r1, [r2] + movs r0, #7 + ands r0, r1 + cmp r0, #0 + bne _0807B790 + b _0807B8C4 +_0807B790: + ldr r1, _0807B7B4 @ =gWrittenToMosaic_L + ldrh r0, [r1] + subs r0, #0x11 + strh r0, [r1] + lsls r0, r0, #0x10 + lsrs r3, r0, #0x10 + cmp r3, #0 + beq _0807B7A2 + b _0807B8C4 +_0807B7A2: + ldr r0, _0807B7B8 @ =0x00000251 + adds r1, r4, r0 + movs r0, #8 + strb r0, [r1] + strb r3, [r2] + b _0807B8C4 + .align 2, 0 +_0807B7B0: .4byte 0x00000252 +_0807B7B4: .4byte gWrittenToMosaic_L +_0807B7B8: .4byte 0x00000251 +_0807B7BC: + ldr r1, _0807B7CC @ =0x00000253 + adds r0, r4, r1 + movs r2, #0 + strb r2, [r0] + ldr r0, _0807B7D0 @ =0x00000251 + adds r1, r4, r0 + movs r0, #5 + b _0807B846 + .align 2, 0 +_0807B7CC: .4byte 0x00000253 +_0807B7D0: .4byte 0x00000251 +_0807B7D4: + ldr r2, _0807B81C @ =0x00000253 + adds r5, r4, r2 + ldrb r1, [r5] + movs r2, #0x50 + subs r0, r2, r1 + asrs r0, r0, #4 + cmp r0, #3 + bgt _0807B7E6 + movs r0, #4 +_0807B7E6: + adds r0, r1, r0 + strb r0, [r5] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0x50 + bls _0807B814 + strb r2, [r5] + ldr r0, _0807B820 @ =0x00000252 + adds r1, r4, r0 + movs r0, #0 + strb r0, [r1] + ldr r2, _0807B824 @ =0x00000251 + adds r1, r4, r2 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + movs r0, #0x94 + lsls r0, r0, #2 + adds r2, r4, r0 + ldrb r0, [r2] + movs r1, #4 + orrs r0, r1 + strb r0, [r2] +_0807B814: + ldr r3, _0807B828 @ =0x04000046 + ldrb r2, [r5] + b _0807B89A + .align 2, 0 +_0807B81C: .4byte 0x00000253 +_0807B820: .4byte 0x00000252 +_0807B824: .4byte 0x00000251 +_0807B828: .4byte 0x04000046 +_0807B82C: + movs r1, #0x94 + lsls r1, r1, #2 + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807B8C4 + ldr r2, _0807B850 @ =0x00000251 + adds r1, r4, r2 + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 +_0807B846: + strb r0, [r1] + ldr r1, _0807B854 @ =0x00000252 + adds r0, r4, r1 + strb r2, [r0] + b _0807B8C4 + .align 2, 0 +_0807B850: .4byte 0x00000251 +_0807B854: .4byte 0x00000252 +_0807B858: + ldr r2, _0807B884 @ =0x00000253 + adds r3, r4, r2 + ldrb r1, [r3] + movs r0, #0x50 + subs r0, r0, r1 + asrs r0, r0, #4 + cmp r0, #3 + bgt _0807B86A + movs r0, #4 +_0807B86A: + subs r0, r1, r0 + cmp r0, #0 + bge _0807B890 + movs r2, #0 + strb r2, [r3] + ldr r0, _0807B888 @ =0x00000251 + adds r1, r4, r0 + movs r0, #8 + strb r0, [r1] + ldr r1, _0807B88C @ =0x00000252 + adds r0, r4, r1 + strb r2, [r0] + b _0807B892 + .align 2, 0 +_0807B884: .4byte 0x00000253 +_0807B888: .4byte 0x00000251 +_0807B88C: .4byte 0x00000252 +_0807B890: + strb r0, [r3] +_0807B892: + ldr r3, _0807B8A8 @ =0x04000046 + ldr r2, _0807B8AC @ =0x00000253 + adds r0, r4, r2 + ldrb r2, [r0] +_0807B89A: + lsls r1, r2, #8 + movs r0, #0xa0 + subs r0, r0, r2 + orrs r1, r0 + strh r1, [r3] + b _0807B8C4 + .align 2, 0 +_0807B8A8: .4byte 0x04000046 +_0807B8AC: .4byte 0x00000253 +_0807B8B0: + ldr r1, _0807B8CC @ =0x00000252 + adds r0, r4, r1 + movs r1, #0 + strb r1, [r0] + ldr r2, _0807B8D0 @ =0x00000251 + adds r0, r4, r2 + strb r1, [r0] + subs r2, #1 + adds r0, r4, r2 + strb r1, [r0] +_0807B8C4: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807B8CC: .4byte 0x00000252 +_0807B8D0: .4byte 0x00000251 + + thumb_func_start ProcessPauseScreenText +ProcessPauseScreenText: @ 0x0807B8D4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r4, _0807B93C @ =0x0200C000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + movs r1, #0 + adds r2, r4, #0 + bl BitFill + movs r6, #0 + ldr r2, _0807B940 @ =0x0879C10C + ldr r0, _0807B944 @ =0x03000011 + movs r1, #0 + ldrsb r1, [r0, r1] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r0, _0807B948 @ =gEventCounter + ldrb r0, [r0] + ldr r1, [r1] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r7, [r0] + ldrh r2, [r7] + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + cmp r2, r0 + beq _0807B9D8 + movs r5, #0x80 + lsls r5, r5, #8 + mov sl, r5 + movs r1, #0xfe + lsls r1, r1, #8 + mov sb, r1 +_0807B926: + movs r5, #1 + adds r1, r0, #0 + ands r1, r2 + cmp r1, sl + bne _0807B94C + movs r5, #0xff + mov r8, r5 + mov r0, r8 + ands r0, r2 + mov r8, r0 + b _0807B9C2 + .align 2, 0 +_0807B93C: .4byte 0x0200C000 +_0807B940: .4byte 0x0879C10C +_0807B944: .4byte 0x03000011 +_0807B948: .4byte gEventCounter +_0807B94C: + movs r0, #0x83 + lsls r0, r0, #8 + cmp r1, r0 + bne _0807B95E + movs r1, #0 + mov r8, r1 + movs r6, #0xff + ands r6, r2 + b _0807B9C2 +_0807B95E: + cmp r2, sb + bne _0807B96E + movs r2, #0 + mov r8, r2 + cmp r6, #0xe0 + bgt _0807B9D8 + movs r6, #0xe0 + movs r5, #0 +_0807B96E: + cmp r5, #0 + beq _0807B9C2 + ldrh r0, [r7] + bl GetCharacterWidth + mov r8, r0 + adds r5, r6, r0 + cmp r5, #0xe0 + ble _0807B988 + cmp r6, #0xdf + bgt _0807B988 + movs r6, #0xe0 + b _0807B990 +_0807B988: + movs r0, #0xe0 + lsls r0, r0, #1 + cmp r5, r0 + bgt _0807B9D8 +_0807B990: + cmp r6, #0xdf + ble _0807B99E + movs r5, #0x80 + lsls r5, r5, #4 + adds r4, r6, #0 + subs r4, #0xe0 + b _0807B9A2 +_0807B99E: + movs r5, #0 + adds r4, r6, #0 +_0807B9A2: + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r5, r5, r0 + movs r3, #7 + ldrh r0, [r7] + ldr r2, _0807B9E8 @ =0x0200C000 + adds r1, r2, r5 + mov r5, r8 + lsls r2, r5, #0x18 + lsrs r2, r2, #0x18 + ands r4, r3 + movs r3, #0 + str r3, [sp] + adds r3, r4, #0 + bl DrawCharacter +_0807B9C2: + adds r7, #2 + add r6, r8 + ldr r0, _0807B9EC @ =0x000001BF + cmp r6, r0 + bgt _0807B9D8 + ldrh r2, [r7] + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + cmp r2, r0 + bne _0807B926 +_0807B9D8: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807B9E8: .4byte 0x0200C000 +_0807B9EC: .4byte 0x000001BF + + thumb_func_start ProcessEasySleepText +ProcessEasySleepText: @ 0x0807B9F0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #4 + ldr r2, _0807BA80 @ =0x0200D000 + movs r5, #0x80 + lsls r5, r5, #5 + movs r4, #0x10 + str r4, [sp] + movs r0, #3 + movs r1, #0 + adds r3, r5, #0 + bl BitFill + ldr r2, _0807BA84 @ =0x0200E000 + str r4, [sp] + movs r0, #3 + movs r1, #0 + adds r3, r5, #0 + bl BitFill + ldr r2, _0807BA88 @ =0x0200F000 + movs r3, #0x80 + lsls r3, r3, #4 + str r4, [sp] + movs r0, #3 + movs r1, #0 + bl BitFill + movs r3, #0 +_0807BA30: + ldr r0, _0807BA84 @ =0x0200E000 + mov sl, r0 + cmp r3, #0 + bne _0807BA3C + ldr r1, _0807BA80 @ =0x0200D000 + mov sl, r1 +_0807BA3C: + ldr r1, _0807BA8C @ =0x0879CDF4 + ldr r0, _0807BA90 @ =0x03000011 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r1, [r0] + lsls r0, r3, #2 + adds r0, r0, r1 + adds r0, #0xb4 + ldr r6, [r0] + movs r7, #0 + ldrh r2, [r6] + movs r4, #0xff + lsls r4, r4, #8 + adds r0, r4, #0 + adds r3, #1 + mov sb, r3 + cmp r2, r4 + beq _0807BB24 +_0807BA66: + movs r5, #1 + adds r1, r0, #0 + ands r1, r2 + movs r0, #0x80 + lsls r0, r0, #8 + cmp r1, r0 + bne _0807BA94 + movs r1, #0xff + mov r8, r1 + mov r4, r8 + ands r4, r2 + mov r8, r4 + b _0807BB0E + .align 2, 0 +_0807BA80: .4byte 0x0200D000 +_0807BA84: .4byte 0x0200E000 +_0807BA88: .4byte 0x0200F000 +_0807BA8C: .4byte 0x0879CDF4 +_0807BA90: .4byte 0x03000011 +_0807BA94: + movs r0, #0x83 + lsls r0, r0, #8 + cmp r1, r0 + bne _0807BAA6 + movs r5, #0 + mov r8, r5 + movs r7, #0xff + ands r7, r2 + b _0807BB0E +_0807BAA6: + movs r0, #0xfe + lsls r0, r0, #8 + cmp r2, r0 + bne _0807BABA + movs r1, #0 + mov r8, r1 + cmp r7, #0xe0 + bgt _0807BB24 + movs r7, #0xe0 + movs r5, #0 +_0807BABA: + cmp r5, #0 + beq _0807BB0E + ldrh r0, [r6] + bl GetCharacterWidth + mov r8, r0 + adds r5, r7, r0 + cmp r5, #0xe0 + ble _0807BAD4 + cmp r7, #0xdf + bgt _0807BAD4 + movs r7, #0xe0 + b _0807BADC +_0807BAD4: + movs r0, #0xe0 + lsls r0, r0, #1 + cmp r5, r0 + bgt _0807BB24 +_0807BADC: + cmp r7, #0xdf + ble _0807BAEA + movs r5, #0x80 + lsls r5, r5, #4 + adds r4, r7, #0 + subs r4, #0xe0 + b _0807BAEE +_0807BAEA: + movs r5, #0 + adds r4, r7, #0 +_0807BAEE: + asrs r0, r4, #3 + lsls r0, r0, #5 + adds r5, r5, r0 + movs r3, #7 + ldrh r0, [r6] + mov r2, sl + adds r1, r2, r5 + mov r5, r8 + lsls r2, r5, #0x18 + lsrs r2, r2, #0x18 + ands r4, r3 + movs r3, #0 + str r3, [sp] + adds r3, r4, #0 + bl DrawCharacter +_0807BB0E: + adds r6, #2 + add r7, r8 + ldr r0, _0807BB60 @ =0x000001BF + cmp r7, r0 + bgt _0807BB24 + ldrh r2, [r6] + movs r1, #0xff + lsls r1, r1, #8 + adds r0, r1, #0 + cmp r2, r1 + bne _0807BA66 +_0807BB24: + mov r3, sb + cmp r3, #1 + ble _0807BA30 + ldr r2, _0807BB64 @ =0x0200F000 + mov sl, r2 + ldr r1, _0807BB68 @ =0x0879CDF4 + ldr r0, _0807BB6C @ =0x03000011 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + adds r0, #0xbc + ldr r6, [r0] + movs r7, #0 + ldrh r1, [r6] + movs r0, #0xff + lsls r0, r0, #8 + cmp r1, r0 + beq _0807BBE0 + movs r5, #1 + movs r0, #0xfe + lsls r0, r0, #8 + cmp r1, r0 + bne _0807BB70 + movs r4, #0 + mov r8, r4 + movs r7, #0x70 + b _0807BBB2 + .align 2, 0 +_0807BB60: .4byte 0x000001BF +_0807BB64: .4byte 0x0200F000 +_0807BB68: .4byte 0x0879CDF4 +_0807BB6C: .4byte 0x03000011 +_0807BB70: + ldrh r1, [r6] + movs r0, #0x80 + lsls r0, r0, #8 + ands r0, r1 + cmp r0, #0 + beq _0807BB80 + movs r5, #0 + mov r8, r5 +_0807BB80: + cmp r5, #0 + beq _0807BBB2 + ldrh r0, [r6] + bl GetCharacterWidth + mov r8, r0 + adds r5, r7, r0 + movs r0, #0xe0 + lsls r0, r0, #1 + cmp r5, r0 + bgt _0807BBE0 + asrs r0, r7, #3 + lsls r5, r0, #5 + movs r3, #7 + ldrh r0, [r6] + mov r2, sl + adds r1, r2, r5 + mov r4, r8 + lsls r2, r4, #0x18 + lsrs r2, r2, #0x18 + ands r3, r7 + movs r4, #0 + str r4, [sp] + bl DrawCharacter +_0807BBB2: + adds r6, #2 + add r7, r8 + ldr r0, _0807BBDC @ =0x000001BF + cmp r7, r0 + bgt _0807BBE0 + ldrh r1, [r6] + movs r0, #0xff + lsls r0, r0, #8 + cmp r1, r0 + beq _0807BBE0 + movs r5, #1 + movs r0, #0xfe + lsls r0, r0, #8 + cmp r1, r0 + bne _0807BB70 + movs r5, #0 + mov r8, r5 + cmp r7, #0x70 + bgt _0807BBE0 + movs r7, #0x70 + b _0807BBB2 + .align 2, 0 +_0807BBDC: .4byte 0x000001BF +_0807BBE0: + add sp, #4 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start GetFlashingSectorNumber +GetFlashingSectorNumber: @ 0x0807BBF0 + push {r4, r5, r6, r7, lr} + ldr r0, _0807BC80 @ =0x0300004D + movs r1, #0 + strb r1, [r0] + ldr r1, _0807BC84 @ =gEventCounter + ldrb r2, [r1] + adds r6, r0, #0 + ldr r1, _0807BC88 @ =0x08575A60 + ldr r7, _0807BC8C @ =gPreviousNavigationConversation + cmp r2, #0 + ble _0807BC2A + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r3, r0, #2 + adds r0, r3, r1 + ldrb r0, [r0, #6] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0 + bne _0807BC2A + adds r3, r3, r1 +_0807BC1A: + subs r3, #0xc + subs r2, #1 + cmp r2, #0 + ble _0807BC2A + movs r0, #6 + ldrsb r0, [r3, r0] + cmp r0, #0 + beq _0807BC1A +_0807BC2A: + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r0, r0, #2 + adds r0, r0, r1 + movs r3, #6 + ldrsb r3, [r0, r3] + ldrb r4, [r7] + cmp r4, r3 + bne _0807BC76 + movs r3, #0 + movs r2, #0 + ldr r0, _0807BC90 @ =0x085766E4 + movs r1, #0 + ldrsb r1, [r0, r1] + adds r5, r0, #0 + cmp r4, r1 + beq _0807BC68 +_0807BC4C: + adds r2, #1 + cmp r2, #0x20 + bhi _0807BC64 + ldrb r0, [r7] + lsls r1, r2, #3 + adds r1, r1, r5 + ldrb r1, [r1] + lsls r1, r1, #0x18 + asrs r1, r1, #0x18 + cmp r0, r1 + bne _0807BC4C + movs r3, #1 +_0807BC64: + cmp r3, #0 + beq _0807BC76 +_0807BC68: + lsls r0, r2, #3 + adds r0, r0, r5 + ldrb r2, [r0, #1] + ldr r0, _0807BC94 @ =0x08576066 + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r6] +_0807BC76: + ldrb r0, [r6] + pop {r4, r5, r6, r7} + pop {r1} + bx r1 + .align 2, 0 +_0807BC80: .4byte 0x0300004D +_0807BC84: .4byte gEventCounter +_0807BC88: .4byte 0x08575A60 +_0807BC8C: .4byte gPreviousNavigationConversation +_0807BC90: .4byte 0x085766E4 +_0807BC94: .4byte 0x08576066 + + thumb_func_start NavigationConversationLoadPopUpGraphics +NavigationConversationLoadPopUpGraphics: @ 0x0807BC98 + push {r4, r5, r6, lr} + sub sp, #8 + movs r4, #3 + ldr r0, _0807BD68 @ =gNonGameplayRam + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r2, [r0] + ldr r0, _0807BD6C @ =0x0857BCC8 + movs r1, #8 + ldrsb r1, [r0, r1] + adds r3, r0, #0 + cmp r2, r1 + beq _0807BCC8 + adds r1, r3, #0 + adds r1, #8 +_0807BCB8: + subs r1, #4 + subs r4, #1 + cmp r4, #0 + ble _0807BCC8 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r2, r0 + bne _0807BCB8 +_0807BCC8: + cmp r4, #0 + beq _0807BD5E + subs r4, #1 + lsls r0, r4, #2 + adds r4, r0, r3 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _0807BCF0 + ldr r2, _0807BD70 @ =0x0857BC50 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, #0x14 + adds r0, r0, r2 + ldr r0, [r0] + movs r1, #0x80 + lsls r1, r1, #0x12 + bl LZ77UncompVram +_0807BCF0: + ldrb r0, [r4, #2] + cmp r0, #0 + beq _0807BD0C + ldr r2, _0807BD70 @ =0x0857BC50 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, #0x14 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, _0807BD74 @ =0x02004000 + bl LZ77UncompVram +_0807BD0C: + ldrb r0, [r4, #3] + cmp r0, #0 + beq _0807BD28 + ldr r2, _0807BD70 @ =0x0857BC50 + adds r1, r0, #0 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, #0x14 + adds r0, r0, r2 + ldr r0, [r0] + ldr r1, _0807BD78 @ =0x02008000 + bl LZ77UncompVram +_0807BD28: + movs r4, #5 + ldr r5, _0807BD7C @ =0x06015700 + movs r6, #0x20 +_0807BD2E: + str r6, [sp] + movs r0, #3 + movs r1, #1 + rsbs r1, r1, #0 + adds r2, r5, #0 + movs r3, #0x80 + lsls r3, r3, #1 + bl BitFill + ldr r0, _0807BD80 @ =0xFFFFFC00 + adds r5, r5, r0 + subs r4, #1 + cmp r4, #0 + bge _0807BD2E + movs r0, #0 + str r0, [sp, #4] + ldr r1, _0807BD84 @ =0x040000D4 + add r0, sp, #4 + str r0, [r1] + ldr r0, _0807BD88 @ =0x050003E0 + str r0, [r1, #4] + ldr r0, _0807BD8C @ =0x85000008 + str r0, [r1, #8] + ldr r0, [r1, #8] +_0807BD5E: + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807BD68: .4byte gNonGameplayRam +_0807BD6C: .4byte 0x0857BCC8 +_0807BD70: .4byte 0x0857BC50 +_0807BD74: .4byte 0x02004000 +_0807BD78: .4byte 0x02008000 +_0807BD7C: .4byte 0x06015700 +_0807BD80: .4byte 0xFFFFFC00 +_0807BD84: .4byte 0x040000D4 +_0807BD88: .4byte 0x050003E0 +_0807BD8C: .4byte 0x85000008 + + thumb_func_start NavigationConversationUpdatePopUp +NavigationConversationUpdatePopUp: @ 0x0807BD90 + push {r4, lr} + ldr r4, _0807BDD0 @ =gNonGameplayRam + movs r0, #0x86 + lsls r0, r0, #2 + adds r2, r4, r0 + ldrb r0, [r2] + cmp r0, #0 + beq _0807BDC8 + ldr r0, _0807BDD4 @ =0x0000021B + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0807BDD8 @ =0x0879C170 + ldrb r0, [r2] + subs r0, #1 + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, _0807BDDC @ =0x0000021D + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #0 + beq _0807BDC8 + bl NavigationConversationFadeInPopUpPalette +_0807BDC8: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807BDD0: .4byte gNonGameplayRam +_0807BDD4: .4byte 0x0000021B +_0807BDD8: .4byte 0x0879C170 +_0807BDDC: .4byte 0x0000021D + + thumb_func_start unk_7bde0 +unk_7bde0: @ 0x0807BDE0 + push {r4, r5, r6, r7, lr} + ldr r2, _0807BE2C @ =gNonGameplayRam + ldr r0, _0807BE30 @ =0x0000021A + adds r1, r2, r0 + movs r0, #0xff + strb r0, [r1] + movs r3, #3 + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r2, r1 + ldrb r4, [r0] + ldr r0, _0807BE34 @ =0x0857BCC8 + movs r1, #8 + ldrsb r1, [r0, r1] + adds r6, r2, #0 + adds r2, r0, #0 + cmp r4, r1 + beq _0807BE18 + adds r1, r2, #0 + adds r1, #8 +_0807BE08: + subs r1, #4 + subs r3, #1 + cmp r3, #0 + ble _0807BE18 + movs r0, #0 + ldrsb r0, [r1, r0] + cmp r4, r0 + bne _0807BE08 +_0807BE18: + subs r3, #1 + cmp r3, #0xff + bne _0807BE38 + movs r2, #0x86 + lsls r2, r2, #2 + adds r1, r6, r2 + movs r0, #0 + strb r0, [r1] + b _0807BFAE + .align 2, 0 +_0807BE2C: .4byte gNonGameplayRam +_0807BE30: .4byte 0x0000021A +_0807BE34: .4byte 0x0857BCC8 +_0807BE38: + ldr r1, _0807BE4C @ =0x00000219 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0807BE50 + lsls r0, r3, #2 + adds r0, r0, r2 + ldrb r1, [r0, #2] + b _0807BE62 + .align 2, 0 +_0807BE4C: .4byte 0x00000219 +_0807BE50: + cmp r0, #2 + bne _0807BE5C + lsls r0, r3, #2 + adds r0, r0, r2 + ldrb r1, [r0, #3] + b _0807BE62 +_0807BE5C: + lsls r0, r3, #2 + adds r0, r0, r2 + ldrb r1, [r0, #1] +_0807BE62: + ldr r2, _0807BE7C @ =0x0000021A + adds r0, r6, r2 + strb r1, [r0] + ldr r1, _0807BE7C @ =0x0000021A + adds r0, r6, r1 + ldrb r3, [r0] + cmp r3, #0 + bne _0807BE80 + movs r2, #0x86 + lsls r2, r2, #2 + adds r0, r6, r2 + strb r3, [r0] + b _0807BFAE + .align 2, 0 +_0807BE7C: .4byte 0x0000021A +_0807BE80: + ldr r1, _0807BEA4 @ =0x00000229 + adds r0, r6, r1 + movs r1, #0 + strb r1, [r0] + movs r2, #0x8a + lsls r2, r2, #2 + adds r0, r6, r2 + strb r1, [r0] + ldr r1, _0807BEA8 @ =0x00000219 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0807BEB0 + subs r2, #0x14 + adds r1, r6, r2 + ldr r0, _0807BEAC @ =0x02004000 + b _0807BECE + .align 2, 0 +_0807BEA4: .4byte 0x00000229 +_0807BEA8: .4byte 0x00000219 +_0807BEAC: .4byte 0x02004000 +_0807BEB0: + cmp r0, #2 + bne _0807BEC4 + movs r0, #0x85 + lsls r0, r0, #2 + adds r1, r6, r0 + ldr r0, _0807BEC0 @ =0x02008000 + b _0807BECE + .align 2, 0 +_0807BEC0: .4byte 0x02008000 +_0807BEC4: + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r6, r2 + movs r0, #0x80 + lsls r0, r0, #0x12 +_0807BECE: + str r0, [r1] + ldr r2, _0807BF28 @ =0x0857BC50 + ldr r1, _0807BF2C @ =0x0000021A + adds r0, r6, r1 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r1, r0, r2 + ldrb r0, [r1, #0x12] + lsls r2, r0, #0x1c + lsrs r0, r2, #0x1c + cmp r0, #8 + bne _0807BF40 + ldrb r2, [r1, #0x11] + lsls r0, r2, #0x1c + lsrs r3, r0, #0x1c + cmp r3, #0 + ble _0807BF82 + ldr r5, _0807BF30 @ =0x040000D4 + movs r1, #0x85 + lsls r1, r1, #2 + adds r0, r6, r1 + ldr r1, [r0] + lsls r0, r3, #0xa + adds r4, r0, r1 + ldr r0, _0807BF34 @ =0xFFFFFC00 + mov ip, r0 + lsls r7, r2, #0x18 +_0807BF08: + add r4, ip + subs r3, #1 + lsls r2, r3, #0xa + str r4, [r5] + lsrs r0, r7, #0x1c + lsls r0, r0, #0xa + ldr r1, _0807BF38 @ =0x06014300 + adds r0, r0, r1 + adds r2, r2, r0 + str r2, [r5, #4] + ldr r0, _0807BF3C @ =0x80000080 + str r0, [r5, #8] + ldr r0, [r5, #8] + cmp r3, #0 + bgt _0807BF08 + b _0807BF82 + .align 2, 0 +_0807BF28: .4byte 0x0857BC50 +_0807BF2C: .4byte 0x0000021A +_0807BF30: .4byte 0x040000D4 +_0807BF34: .4byte 0xFFFFFC00 +_0807BF38: .4byte 0x06014300 +_0807BF3C: .4byte 0x80000080 +_0807BF40: + lsrs r0, r2, #0x1c + cmp r0, #4 + bne _0807BF82 + ldrb r2, [r1, #0x11] + lsls r0, r2, #0x1c + lsrs r3, r0, #0x1c + cmp r3, #0 + ble _0807BF82 + ldr r5, _0807BFB4 @ =0x040000D4 + movs r1, #0x85 + lsls r1, r1, #2 + adds r0, r6, r1 + ldr r1, [r0] + lsls r0, r3, #0xa + adds r4, r0, r1 + lsls r7, r2, #0x18 +_0807BF60: + ldr r2, _0807BFB8 @ =0xFFFFFC00 + adds r4, r4, r2 + subs r3, #1 + lsls r2, r3, #0xa + str r4, [r5] + lsrs r0, r7, #0x1c + lsls r0, r0, #0xa + ldr r1, _0807BFBC @ =0x06014300 + adds r0, r0, r1 + adds r2, r2, r0 + adds r2, #0x40 + str r2, [r5, #4] + ldr r0, _0807BFC0 @ =0x80000040 + str r0, [r5, #8] + ldr r0, [r5, #8] + cmp r3, #0 + bgt _0807BF60 +_0807BF82: + ldr r1, _0807BFC4 @ =0x0000021A + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _0807BF92 + ldr r0, _0807BFC8 @ =0x00000125 + bl SoundPlay +_0807BF92: + ldr r2, _0807BFCC @ =0x0000021D + adds r1, r6, r2 + movs r2, #0 + movs r0, #1 + strb r0, [r1] + movs r0, #0x86 + lsls r0, r0, #2 + adds r1, r6, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0807BFD0 @ =0x0000021B + adds r0, r6, r1 + strb r2, [r0] +_0807BFAE: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807BFB4: .4byte 0x040000D4 +_0807BFB8: .4byte 0xFFFFFC00 +_0807BFBC: .4byte 0x06014300 +_0807BFC0: .4byte 0x80000040 +_0807BFC4: .4byte 0x0000021A +_0807BFC8: .4byte 0x00000125 +_0807BFCC: .4byte 0x0000021D +_0807BFD0: .4byte 0x0000021B + + thumb_func_start NavigationConversationFadeInPopUpPalette +NavigationConversationFadeInPopUpPalette: @ 0x0807BFD4 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r2, _0807C068 @ =0x0857BC50 + ldr r3, _0807C06C @ =gNonGameplayRam + ldr r1, _0807C070 @ =0x0000021A + adds r0, r3, r1 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r2, #8 + adds r0, r0, r2 + ldr r2, [r0] + ldr r6, _0807C074 @ =0x050003E0 + movs r0, #0 + mov ip, r0 + mov sb, sp + movs r1, #0xf8 + lsls r1, r1, #7 + mov sl, r1 + add r5, sp, #4 +_0807C006: + ldrb r1, [r2] + movs r0, #0x1f + ands r0, r1 + mov r1, sb + strb r0, [r1] + ldrh r1, [r2] + movs r0, #0xf8 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #5 + mov r1, sb + strb r0, [r1, #1] + ldrh r1, [r2] + mov r0, sl + ands r0, r1 + lsrs r0, r0, #0xa + mov r1, sb + strb r0, [r1, #2] + ldrb r1, [r6] + movs r0, #0x1f + ands r0, r1 + strb r0, [r5] + ldrh r1, [r6] + movs r0, #0xf8 + lsls r0, r0, #2 + ands r0, r1 + lsrs r0, r0, #5 + strb r0, [r5, #1] + ldrh r1, [r6] + mov r0, sl + ands r0, r1 + lsrs r0, r0, #0xa + strb r0, [r5, #2] + movs r4, #0 + movs r0, #1 + add ip, r0 + adds r7, r2, #2 + adds r1, r6, #2 + mov r8, r1 + adds r3, r5, #0 +_0807C056: + mov r1, sp + adds r0, r1, r4 + ldrb r2, [r3] + ldrb r1, [r0] + adds r0, r2, #0 + cmp r1, r0 + bls _0807C078 + adds r0, r2, #1 + b _0807C07E + .align 2, 0 +_0807C068: .4byte 0x0857BC50 +_0807C06C: .4byte gNonGameplayRam +_0807C070: .4byte 0x0000021A +_0807C074: .4byte 0x050003E0 +_0807C078: + cmp r1, r0 + bhs _0807C080 + subs r0, r2, #1 +_0807C07E: + strb r0, [r3] +_0807C080: + adds r3, #1 + adds r4, #1 + cmp r4, #2 + ble _0807C056 + ldrb r0, [r5] + ldrb r1, [r5, #1] + lsls r1, r1, #5 + orrs r0, r1 + ldrb r1, [r5, #2] + lsls r1, r1, #0xa + orrs r0, r1 + strh r0, [r6] + adds r2, r7, #0 + mov r6, r8 + mov r0, ip + cmp r0, #0xf + ble _0807C006 + ldr r1, _0807C0B4 @ =gNonGameplayRam + ldr r0, _0807C0B8 @ =0x0000021D + adds r3, r1, r0 + ldrb r0, [r3] + cmp r0, #0x20 + bls _0807C0BC + movs r0, #0 + b _0807C0BE + .align 2, 0 +_0807C0B4: .4byte gNonGameplayRam +_0807C0B8: .4byte 0x0000021D +_0807C0BC: + adds r0, #1 +_0807C0BE: + strb r0, [r3] + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + + thumb_func_start NavigationConversationUpdateXParasitePopUp +NavigationConversationUpdateXParasitePopUp: @ 0x0807C0D0 + push {r4, r5, r6, r7, lr} + bl unk_7c3b4 + ldr r0, _0807C148 @ =0x0857BC50 + mov ip, r0 + ldr r3, _0807C14C @ =gNonGameplayRam + ldr r1, _0807C150 @ =0x0000021A + adds r6, r3, r1 + ldrb r1, [r6] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + mov r2, ip + adds r1, r0, r2 + ldrb r0, [r1, #0x12] + lsls r2, r0, #0x1c + lsrs r0, r2, #0x1c + cmp r0, #8 + beq _0807C0F8 + b _0807C20C +_0807C0F8: + ldr r7, [r1] + ldr r0, _0807C154 @ =0x0000021B + adds r2, r3, r0 + movs r1, #0x87 + lsls r1, r1, #2 + adds r4, r3, r1 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r1, [r2] + ldrb r0, [r0, #1] + cmp r1, r0 + bhs _0807C114 + b _0807C2F4 +_0807C114: + movs r5, #0 + strb r5, [r2] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldrb r2, [r6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #3 + add r1, ip + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #4] + cmp r0, r1 + blo _0807C134 + strb r5, [r4] +_0807C134: + ldr r2, _0807C158 @ =0x00000219 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, #1 + bne _0807C160 + movs r0, #0x85 + lsls r0, r0, #2 + adds r1, r3, r0 + ldr r0, _0807C15C @ =0x02004000 + b _0807C17E + .align 2, 0 +_0807C148: .4byte 0x0857BC50 +_0807C14C: .4byte gNonGameplayRam +_0807C150: .4byte 0x0000021A +_0807C154: .4byte 0x0000021B +_0807C158: .4byte 0x00000219 +_0807C15C: .4byte 0x02004000 +_0807C160: + cmp r0, #2 + bne _0807C174 + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r3, r2 + ldr r0, _0807C170 @ =0x02008000 + b _0807C17E + .align 2, 0 +_0807C170: .4byte 0x02008000 +_0807C174: + movs r0, #0x85 + lsls r0, r0, #2 + adds r1, r3, r0 + movs r0, #0x80 + lsls r0, r0, #0x12 +_0807C17E: + str r0, [r1] + ldr r3, _0807C1F0 @ =0x0857BC50 + ldr r2, _0807C1F4 @ =gNonGameplayRam + ldr r1, _0807C1F8 @ =0x0000021A + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #0x11] + lsls r3, r0, #0x1c + lsrs r6, r0, #4 + movs r1, #0x87 + lsls r1, r1, #2 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r1, [r0] + movs r0, #3 + ands r0, r1 + lsls r4, r0, #8 + lsrs r1, r1, #2 + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #0xb + adds r4, r4, r0 + movs r0, #0x85 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r0, [r2] + adds r5, r0, r4 + str r5, [r2] + lsrs r4, r3, #0x1c + cmp r4, #0 + bgt _0807C1CA + b _0807C2F4 +_0807C1CA: + ldr r3, _0807C1FC @ =0x040000D4 + lsls r2, r4, #0xa + ldr r0, _0807C200 @ =0x06014300 + adds r1, r2, r0 + lsls r0, r6, #0xa + adds r1, r1, r0 + adds r2, r2, r5 + ldr r5, _0807C204 @ =0xFFFFFC00 + ldr r6, _0807C208 @ =0x80000080 +_0807C1DC: + adds r1, r1, r5 + adds r2, r2, r5 + subs r4, #1 + str r2, [r3] + str r1, [r3, #4] + str r6, [r3, #8] + ldr r0, [r3, #8] + cmp r4, #0 + bgt _0807C1DC + b _0807C2F4 + .align 2, 0 +_0807C1F0: .4byte 0x0857BC50 +_0807C1F4: .4byte gNonGameplayRam +_0807C1F8: .4byte 0x0000021A +_0807C1FC: .4byte 0x040000D4 +_0807C200: .4byte 0x06014300 +_0807C204: .4byte 0xFFFFFC00 +_0807C208: .4byte 0x80000080 +_0807C20C: + lsrs r0, r2, #0x1c + cmp r0, #4 + bne _0807C2F4 + ldr r7, [r1] + ldr r1, _0807C260 @ =0x0000021B + adds r2, r3, r1 + movs r0, #0x87 + lsls r0, r0, #2 + adds r4, r3, r0 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r1, [r2] + ldrb r0, [r0, #1] + cmp r1, r0 + blo _0807C2F4 + movs r5, #0 + strb r5, [r2] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + ldrb r2, [r6] + lsls r1, r2, #1 + adds r1, r1, r2 + lsls r1, r1, #3 + add r1, ip + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #4] + cmp r0, r1 + blo _0807C24C + strb r5, [r4] +_0807C24C: + ldr r1, _0807C264 @ =0x00000219 + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, #1 + bne _0807C26C + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r3, r2 + ldr r0, _0807C268 @ =0x02004000 + b _0807C28A + .align 2, 0 +_0807C260: .4byte 0x0000021B +_0807C264: .4byte 0x00000219 +_0807C268: .4byte 0x02004000 +_0807C26C: + cmp r0, #2 + bne _0807C280 + movs r0, #0x85 + lsls r0, r0, #2 + adds r1, r3, r0 + ldr r0, _0807C27C @ =0x02008000 + b _0807C28A + .align 2, 0 +_0807C27C: .4byte 0x02008000 +_0807C280: + movs r2, #0x85 + lsls r2, r2, #2 + adds r1, r3, r2 + movs r0, #0x80 + lsls r0, r0, #0x12 +_0807C28A: + str r0, [r1] + ldr r3, _0807C2FC @ =0x0857BC50 + ldr r2, _0807C300 @ =gNonGameplayRam + ldr r1, _0807C304 @ =0x0000021A + adds r0, r2, r1 + ldrb r1, [r0] + lsls r0, r1, #1 + adds r0, r0, r1 + lsls r0, r0, #3 + adds r0, r0, r3 + ldrb r0, [r0, #0x11] + lsls r3, r0, #0x1c + lsrs r6, r0, #4 + movs r1, #0x87 + lsls r1, r1, #2 + adds r0, r2, r1 + ldrb r0, [r0] + lsls r0, r0, #1 + adds r0, r0, r7 + ldrb r1, [r0] + movs r0, #7 + ands r0, r1 + lsls r4, r0, #7 + lsrs r1, r1, #3 + lsls r1, r1, #0xc + adds r4, r4, r1 + movs r0, #0x85 + lsls r0, r0, #2 + adds r2, r2, r0 + ldr r0, [r2] + adds r5, r0, r4 + str r5, [r2] + lsrs r4, r3, #0x1c + cmp r4, #0 + ble _0807C2F4 + ldr r3, _0807C308 @ =0x040000D4 + lsls r2, r4, #0xa + ldr r0, _0807C30C @ =0x06014340 + adds r1, r2, r0 + lsls r0, r6, #0xa + adds r1, r1, r0 + adds r2, r2, r5 + ldr r5, _0807C310 @ =0xFFFFFC00 + ldr r6, _0807C314 @ =0x80000040 +_0807C2E2: + adds r1, r1, r5 + adds r2, r2, r5 + subs r4, #1 + str r2, [r3] + str r1, [r3, #4] + str r6, [r3, #8] + ldr r0, [r3, #8] + cmp r4, #0 + bgt _0807C2E2 +_0807C2F4: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807C2FC: .4byte 0x0857BC50 +_0807C300: .4byte gNonGameplayRam +_0807C304: .4byte 0x0000021A +_0807C308: .4byte 0x040000D4 +_0807C30C: .4byte 0x06014340 +_0807C310: .4byte 0xFFFFFC00 +_0807C314: .4byte 0x80000040 + + thumb_func_start NavigationConversationClearPopUpGraphics +NavigationConversationClearPopUpGraphics: @ 0x0807C318 + push {r4, r5, r6, lr} + sub sp, #8 + movs r5, #5 + ldr r4, _0807C390 @ =0x06015700 + movs r6, #0x20 +_0807C322: + str r6, [sp] + movs r0, #3 + movs r1, #1 + rsbs r1, r1, #0 + adds r2, r4, #0 + movs r3, #0x80 + lsls r3, r3, #1 + bl BitFill + ldr r0, _0807C394 @ =0xFFFFFC00 + adds r4, r4, r0 + subs r5, #1 + cmp r5, #0 + bge _0807C322 + movs r5, #0 + str r5, [sp, #4] + ldr r1, _0807C398 @ =0x040000D4 + add r0, sp, #4 + str r0, [r1] + ldr r0, _0807C39C @ =0x050003E0 + str r0, [r1, #4] + ldr r0, _0807C3A0 @ =0x85000008 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r4, _0807C3A4 @ =gNonGameplayRam + ldr r1, _0807C3A8 @ =0x0000021A + adds r0, r4, r1 + ldrb r0, [r0] + cmp r0, #3 + bne _0807C364 + ldr r0, _0807C3AC @ =0x00000125 + bl SoundStop +_0807C364: + movs r1, #0x86 + lsls r1, r1, #2 + adds r0, r4, r1 + strb r5, [r0] + adds r1, #4 + adds r0, r4, r1 + strb r5, [r0] + subs r1, #1 + adds r0, r4, r1 + strb r5, [r0] + adds r1, #2 + adds r0, r4, r1 + strb r5, [r0] + ldr r0, _0807C3B0 @ =0x00000219 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + add sp, #8 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807C390: .4byte 0x06015700 +_0807C394: .4byte 0xFFFFFC00 +_0807C398: .4byte 0x040000D4 +_0807C39C: .4byte 0x050003E0 +_0807C3A0: .4byte 0x85000008 +_0807C3A4: .4byte gNonGameplayRam +_0807C3A8: .4byte 0x0000021A +_0807C3AC: .4byte 0x00000125 +_0807C3B0: .4byte 0x00000219 + + thumb_func_start unk_7c3b4 +unk_7c3b4: @ 0x0807C3B4 + push {r4, r5, r6, lr} + ldr r4, _0807C42C @ =0x0857BC50 + ldr r5, _0807C430 @ =gNonGameplayRam + ldr r0, _0807C434 @ =0x0000021A + adds r2, r5, r0 + ldrb r0, [r2] + lsls r1, r0, #1 + adds r1, r1, r0 + lsls r1, r1, #3 + adds r1, r1, r4 + ldrb r0, [r1, #0x10] + cmp r0, #0 + beq _0807C424 + ldr r1, _0807C438 @ =0x00000229 + adds r3, r5, r1 + ldrb r1, [r3] + adds r1, #1 + movs r6, #0 + strb r1, [r3] + ldrb r2, [r2] + lsls r0, r2, #1 + adds r0, r0, r2 + lsls r2, r0, #3 + adds r0, r2, r4 + lsls r1, r1, #0x18 + lsrs r1, r1, #0x18 + ldrb r0, [r0, #0x10] + cmp r1, r0 + blo _0807C424 + strb r6, [r3] + adds r0, r4, #0 + adds r0, #0xc + adds r0, r2, r0 + movs r1, #0x8a + lsls r1, r1, #2 + adds r4, r5, r1 + ldrb r1, [r4] + lsls r1, r1, #1 + ldr r3, [r0] + adds r2, r3, r1 + ldrh r0, [r2] + cmp r0, #0 + bne _0807C40E + strb r6, [r4] + adds r2, r3, #0 +_0807C40E: + ldr r1, _0807C43C @ =0x050003FE + ldrh r0, [r2] + strh r0, [r1] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #0xf + bls _0807C424 + strb r6, [r4] +_0807C424: + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807C42C: .4byte 0x0857BC50 +_0807C430: .4byte gNonGameplayRam +_0807C434: .4byte 0x0000021A +_0807C438: .4byte 0x00000229 +_0807C43C: .4byte 0x050003FE + + thumb_func_start unk_7c440 +unk_7c440: @ 0x0807C440 + push {r4, r5, r6, r7, lr} + ldr r2, _0807C518 @ =gNonGameplayRam + ldr r0, _0807C51C @ =0x00000225 + adds r5, r2, r0 + ldrb r0, [r5] + adds r0, #1 + movs r7, #0 + strb r0, [r5] + ldr r3, _0807C520 @ =0x0857BEB4 + movs r1, #0x89 + lsls r1, r1, #2 + adds r4, r2, r1 + ldrb r1, [r4] + adds r1, r1, r3 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + adds r6, r2, #0 + ldrb r1, [r1] + cmp r0, r1 + blo _0807C4B0 + strb r7, [r5] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0807C47A + strb r7, [r4] +_0807C47A: + movs r3, #0xa0 + lsls r3, r3, #0x13 + ldr r1, _0807C524 @ =0x0857BCD4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x24] + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r1 + ldrh r0, [r0] + strh r0, [r3, #0x26] + adds r1, r3, #0 + adds r1, #0x44 + ldr r2, _0807C528 @ =0x0857BCF4 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r1, #2 + ldrb r0, [r4] + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] +_0807C4B0: + adds r1, r6, #0 + ldrb r0, [r1] + cmp r0, #0 + beq _0807C59C + cmp r0, #1 + bne _0807C53C + ldr r6, _0807C52C @ =0x0000022D + adds r3, r1, r6 + ldrb r0, [r3] + adds r0, #1 + movs r5, #0 + strb r0, [r3] + ldr r2, _0807C530 @ =0x0857BEB8 + subs r6, #1 + adds r4, r1, r6 + ldrb r1, [r4] + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0807C59C + strb r5, [r3] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #3 + bls _0807C4EE + strb r5, [r4] +_0807C4EE: + ldr r3, _0807C534 @ =0x05000138 + ldrb r0, [r4] + lsls r0, r0, #4 + adds r0, #0xc + adds r2, r0, #0 + movs r1, #0 + ldr r4, _0807C538 @ =0x0857BD34 +_0807C4FC: + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r3] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r3, #2 + cmp r1, #3 + bls _0807C4FC + b _0807C59C + .align 2, 0 +_0807C518: .4byte gNonGameplayRam +_0807C51C: .4byte 0x00000225 +_0807C520: .4byte 0x0857BEB4 +_0807C524: .4byte 0x0857BCD4 +_0807C528: .4byte 0x0857BCF4 +_0807C52C: .4byte 0x0000022D +_0807C530: .4byte 0x0857BEB8 +_0807C534: .4byte 0x05000138 +_0807C538: .4byte 0x0857BD34 +_0807C53C: + cmp r0, #2 + bne _0807C59C + ldr r0, _0807C5A4 @ =0x0000022D + adds r3, r6, r0 + ldrb r0, [r3] + adds r0, #1 + movs r5, #0 + strb r0, [r3] + ldr r2, _0807C5A8 @ =0x0857BEBC + movs r1, #0x8b + lsls r1, r1, #2 + adds r4, r6, r1 + ldrb r1, [r4] + adds r1, r1, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + blo _0807C59C + strb r5, [r3] + ldrb r0, [r4] + adds r0, #1 + strb r0, [r4] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0807C574 + strb r5, [r4] +_0807C574: + ldr r3, _0807C5AC @ =0x05000194 + ldrb r0, [r4] + lsls r0, r0, #4 + adds r0, #0xa + adds r2, r0, #0 + movs r1, #0 + ldr r4, _0807C5B0 @ =0x0857BDB4 +_0807C582: + lsls r0, r2, #1 + adds r0, r0, r4 + ldrh r0, [r0] + strh r0, [r3] + adds r0, r1, #1 + lsls r0, r0, #0x10 + lsrs r1, r0, #0x10 + adds r0, r2, #1 + lsls r0, r0, #0x10 + lsrs r2, r0, #0x10 + adds r3, #2 + cmp r1, #5 + bls _0807C582 +_0807C59C: + pop {r4, r5, r6, r7} + pop {r0} + bx r0 + .align 2, 0 +_0807C5A4: .4byte 0x0000022D +_0807C5A8: .4byte 0x0857BEBC +_0807C5AC: .4byte 0x05000194 +_0807C5B0: .4byte 0x0857BDB4 + + thumb_func_start NavigationConversationLoadSpecialGraphics +NavigationConversationLoadSpecialGraphics: @ 0x0807C5B4 + push {lr} + ldr r0, _0807C5F0 @ =gNonGameplayRam + movs r1, #0x88 + lsls r1, r1, #2 + adds r0, r0, r1 + ldrb r0, [r0] + cmp r0, #0x35 + bne _0807C618 + ldr r0, _0807C5F4 @ =0x0857C0C4 + movs r1, #0x80 + lsls r1, r1, #0x12 + bl LZ77UncompVram + ldr r0, _0807C5F8 @ =0x0857FCA0 + ldr r1, _0807C5FC @ =0x02006000 + bl LZ77UncompVram + ldr r0, _0807C600 @ =0x08580238 + ldr r1, _0807C604 @ =0x02006800 + bl LZ77UncompVram + ldr r0, _0807C608 @ =0x085807D0 + ldr r1, _0807C60C @ =0x02007000 + bl LZ77UncompVram + ldr r0, _0807C610 @ =0x08580D68 + ldr r1, _0807C614 @ =0x02007800 + bl LZ77UncompVram + b _0807C626 + .align 2, 0 +_0807C5F0: .4byte gNonGameplayRam +_0807C5F4: .4byte 0x0857C0C4 +_0807C5F8: .4byte 0x0857FCA0 +_0807C5FC: .4byte 0x02006000 +_0807C600: .4byte 0x08580238 +_0807C604: .4byte 0x02006800 +_0807C608: .4byte 0x085807D0 +_0807C60C: .4byte 0x02007000 +_0807C610: .4byte 0x08580D68 +_0807C614: .4byte 0x02007800 +_0807C618: + cmp r0, #0xe + bne _0807C626 + ldr r0, _0807C62C @ =0x0872F2E0 + movs r1, #0x80 + lsls r1, r1, #0x12 + bl LZ77UncompVram +_0807C626: + pop {r0} + bx r0 + .align 2, 0 +_0807C62C: .4byte 0x0872F2E0 + + thumb_func_start unk_7c630 +unk_7c630: @ 0x0807C630 + push {r4, lr} + sub sp, #4 + ldr r1, _0807C650 @ =gNonGameplayRam + ldr r2, _0807C654 @ =0x00000265 + adds r0, r1, r2 + ldrb r0, [r0] + adds r4, r1, #0 + cmp r0, #0x25 + bls _0807C646 + bl _0807CE56 +_0807C646: + lsls r0, r0, #2 + ldr r1, _0807C658 @ =_0807C65C + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807C650: .4byte gNonGameplayRam +_0807C654: .4byte 0x00000265 +_0807C658: .4byte _0807C65C +_0807C65C: @ jump table + .4byte _0807C6F4 @ case 0 + .4byte _0807C770 @ case 1 + .4byte _0807C79C @ case 2 + .4byte _0807C7B8 @ case 3 + .4byte _0807C7E4 @ case 4 + .4byte _0807C810 @ case 5 + .4byte _0807C82C @ case 6 + .4byte _0807C858 @ case 7 + .4byte _0807C884 @ case 8 + .4byte _0807C8A0 @ case 9 + .4byte _0807C8CC @ case 10 + .4byte _0807C924 @ case 11 + .4byte _0807C940 @ case 12 + .4byte _0807C970 @ case 13 + .4byte _0807C99C @ case 14 + .4byte _0807C9C8 @ case 15 + .4byte _0807C9F0 @ case 16 + .4byte _0807CA10 @ case 17 + .4byte _0807CA50 @ case 18 + .4byte _0807CA90 @ case 19 + .4byte _0807CAD0 @ case 20 + .4byte _0807CAFC @ case 21 + .4byte _0807CB20 @ case 22 + .4byte _0807CB58 @ case 23 + .4byte _0807CBB0 @ case 24 + .4byte _0807CBE0 @ case 25 + .4byte _0807CC18 @ case 26 + .4byte _0807CC4C @ case 27 + .4byte _0807CC70 @ case 28 + .4byte _0807CC9C @ case 29 + .4byte _0807CCC8 @ case 30 + .4byte _0807CCE4 @ case 31 + .4byte _0807CD30 @ case 32 + .4byte _0807CD5C @ case 33 + .4byte _0807CD78 @ case 34 + .4byte _0807CDA4 @ case 35 + .4byte _0807CDD0 @ case 36 + .4byte _0807CE10 @ case 37 +_0807C6F4: + movs r0, #0x80 + lsls r0, r0, #0x13 + ldrh r1, [r0] + ldr r3, _0807C74C @ =0x0000026A + adds r0, r4, r3 + movs r2, #0 + strh r1, [r0] + ldr r0, _0807C750 @ =0x0400000E + ldrh r1, [r0] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldr r0, _0807C754 @ =0x0400000C + ldrh r1, [r0] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldr r0, _0807C758 @ =0x04000050 + ldrh r1, [r0] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + ldr r0, _0807C75C @ =0x04000052 + ldrh r1, [r0] + adds r3, #2 + adds r0, r4, r3 + strh r1, [r0] + movs r1, #0x9a + lsls r1, r1, #2 + adds r0, r4, r1 + strh r2, [r0] + ldr r1, _0807C760 @ =0x040000D4 + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1] + ldr r0, _0807C764 @ =0x02035000 + str r0, [r1, #4] + ldr r0, _0807C768 @ =0x80000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r2, _0807C76C @ =0x00000265 + adds r1, r4, r2 + b _0807CDEE + .align 2, 0 +_0807C74C: .4byte 0x0000026A +_0807C750: .4byte 0x0400000E +_0807C754: .4byte 0x0400000C +_0807C758: .4byte 0x04000050 +_0807C75C: .4byte 0x04000052 +_0807C760: .4byte 0x040000D4 +_0807C764: .4byte 0x02035000 +_0807C768: .4byte 0x80000100 +_0807C76C: .4byte 0x00000265 +_0807C770: + ldr r1, _0807C78C @ =0x06004000 + ldr r2, _0807C790 @ =0x02008000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C794 @ =gNonGameplayRam + ldr r3, _0807C798 @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807C78C: .4byte 0x06004000 +_0807C790: .4byte 0x02008000 +_0807C794: .4byte gNonGameplayRam +_0807C798: .4byte 0x00000265 +_0807C79C: + ldr r1, _0807C7B0 @ =0x06005000 + ldr r2, _0807C7B4 @ =0x02009000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + b _0807CDE8 + .align 2, 0 +_0807C7B0: .4byte 0x06005000 +_0807C7B4: .4byte 0x02009000 +_0807C7B8: + ldr r1, _0807C7D4 @ =0x06006000 + ldr r2, _0807C7D8 @ =0x0200A000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C7DC @ =gNonGameplayRam + ldr r2, _0807C7E0 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807C7D4: .4byte 0x06006000 +_0807C7D8: .4byte 0x0200A000 +_0807C7DC: .4byte gNonGameplayRam +_0807C7E0: .4byte 0x00000265 +_0807C7E4: + ldr r1, _0807C800 @ =0x06007000 + ldr r2, _0807C804 @ =0x0200B000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C808 @ =gNonGameplayRam + ldr r3, _0807C80C @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807C800: .4byte 0x06007000 +_0807C804: .4byte 0x0200B000 +_0807C808: .4byte gNonGameplayRam +_0807C80C: .4byte 0x00000265 +_0807C810: + movs r1, #0x80 + lsls r1, r1, #0x12 + ldr r2, _0807C828 @ =0x06004000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + b _0807CDE8 + .align 2, 0 +_0807C828: .4byte 0x06004000 +_0807C82C: + ldr r1, _0807C848 @ =0x02001000 + ldr r2, _0807C84C @ =0x06005000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C850 @ =gNonGameplayRam + ldr r2, _0807C854 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807C848: .4byte 0x02001000 +_0807C84C: .4byte 0x06005000 +_0807C850: .4byte gNonGameplayRam +_0807C854: .4byte 0x00000265 +_0807C858: + ldr r1, _0807C874 @ =0x02002000 + ldr r2, _0807C878 @ =0x06006000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C87C @ =gNonGameplayRam + ldr r3, _0807C880 @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807C874: .4byte 0x02002000 +_0807C878: .4byte 0x06006000 +_0807C87C: .4byte gNonGameplayRam +_0807C880: .4byte 0x00000265 +_0807C884: + ldr r1, _0807C898 @ =0x02003000 + ldr r2, _0807C89C @ =0x06007000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + b _0807CDE8 + .align 2, 0 +_0807C898: .4byte 0x02003000 +_0807C89C: .4byte 0x06007000 +_0807C8A0: + ldr r1, _0807C8BC @ =0x02004000 + ldr r2, _0807C8C0 @ =0x06008000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C8C4 @ =gNonGameplayRam + ldr r2, _0807C8C8 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807C8BC: .4byte 0x02004000 +_0807C8C0: .4byte 0x06008000 +_0807C8C4: .4byte gNonGameplayRam +_0807C8C8: .4byte 0x00000265 +_0807C8CC: + ldr r1, _0807C8F8 @ =0x02005000 + ldr r2, _0807C8FC @ =0x06009000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r4, #0x10 + str r4, [sp] + movs r0, #3 + bl DmaTransfer + ldr r2, _0807C900 @ =gNonGameplayRam + movs r3, #0x88 + lsls r3, r3, #2 + adds r0, r2, r3 + ldrb r0, [r0] + cmp r0, #0x35 + bne _0807C908 + ldr r0, _0807C904 @ =0x00000265 + adds r1, r2, r0 + movs r0, #0xd + strb r0, [r1] + b _0807CE56 + .align 2, 0 +_0807C8F8: .4byte 0x02005000 +_0807C8FC: .4byte 0x06009000 +_0807C900: .4byte gNonGameplayRam +_0807C904: .4byte 0x00000265 +_0807C908: + ldr r1, _0807C918 @ =gWrittenToBldalpha_Evb + movs r0, #0 + strh r0, [r1] + ldr r0, _0807C91C @ =gWrittenToBldalpha_Eva + strh r4, [r0] + ldr r3, _0807C920 @ =0x00000265 + adds r1, r2, r3 + b _0807CDEE + .align 2, 0 +_0807C918: .4byte gWrittenToBldalpha_Evb +_0807C91C: .4byte gWrittenToBldalpha_Eva +_0807C920: .4byte 0x00000265 +_0807C924: + ldr r1, _0807C938 @ =0x02006000 + ldr r2, _0807C93C @ =0x0600A000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + b _0807CDE8 + .align 2, 0 +_0807C938: .4byte 0x02006000 +_0807C93C: .4byte 0x0600A000 +_0807C940: + ldr r1, _0807C960 @ =0x02007000 + ldr r2, _0807C964 @ =0x0600B000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r0, _0807C968 @ =gNonGameplayRam + ldr r1, _0807C96C @ =0x00000265 + adds r0, r0, r1 + movs r1, #0x15 + strb r1, [r0] + b _0807CE56 + .align 2, 0 +_0807C960: .4byte 0x02007000 +_0807C964: .4byte 0x0600B000 +_0807C968: .4byte gNonGameplayRam +_0807C96C: .4byte 0x00000265 +_0807C970: + ldr r1, _0807C98C @ =0x02006000 + ldr r2, _0807C990 @ =0x0600A000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C994 @ =gNonGameplayRam + ldr r2, _0807C998 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807C98C: .4byte 0x02006000 +_0807C990: .4byte 0x0600A000 +_0807C994: .4byte gNonGameplayRam +_0807C998: .4byte 0x00000265 +_0807C99C: + ldr r1, _0807C9B8 @ =0x02007000 + ldr r2, _0807C9BC @ =0x0600B000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807C9C0 @ =gNonGameplayRam + ldr r3, _0807C9C4 @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807C9B8: .4byte 0x02007000 +_0807C9BC: .4byte 0x0600B000 +_0807C9C0: .4byte gNonGameplayRam +_0807C9C4: .4byte 0x00000265 +_0807C9C8: + ldr r1, _0807C9E0 @ =0x040000D4 + ldr r0, _0807C9E4 @ =0x0857BEC4 + str r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0807C9E8 @ =0x80000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0807C9EC @ =PauseScreenVBLank_Unused + b _0807CDE4 + .align 2, 0 +_0807C9E0: .4byte 0x040000D4 +_0807C9E4: .4byte 0x0857BEC4 +_0807C9E8: .4byte 0x80000100 +_0807C9EC: .4byte PauseScreenVBLank_Unused +_0807C9F0: + ldr r1, _0807CA08 @ =0x0300000A + ldr r2, _0807CA0C @ =0x00001407 + adds r0, r2, #0 + strh r0, [r1] + movs r3, #0x9a + lsls r3, r3, #2 + adds r2, r4, r3 + ldrh r1, [r2] + movs r3, #0x80 + lsls r3, r3, #4 + b _0807CB7C + .align 2, 0 +_0807CA08: .4byte 0x0300000A +_0807CA0C: .4byte 0x00001407 +_0807CA10: + ldr r3, _0807CA3C @ =0x00000266 + adds r2, r4, r3 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0807CA40 @ =0x0879C17C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bhi _0807CA28 + b _0807CE56 +_0807CA28: + ldr r1, _0807CA44 @ =0x0300000A + ldr r3, _0807CA48 @ =0x00001507 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _0807CA4C @ =0x00000265 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807CC38 + .align 2, 0 +_0807CA3C: .4byte 0x00000266 +_0807CA40: .4byte 0x0879C17C +_0807CA44: .4byte 0x0300000A +_0807CA48: .4byte 0x00001507 +_0807CA4C: .4byte 0x00000265 +_0807CA50: + ldr r1, _0807CA7C @ =0x00000266 + adds r2, r4, r1 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0807CA80 @ =0x0879C17C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #1] + cmp r0, r1 + bhi _0807CA68 + b _0807CE56 +_0807CA68: + ldr r1, _0807CA84 @ =0x0300000A + ldr r3, _0807CA88 @ =0x00001607 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _0807CA8C @ =0x00000265 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807CC38 + .align 2, 0 +_0807CA7C: .4byte 0x00000266 +_0807CA80: .4byte 0x0879C17C +_0807CA84: .4byte 0x0300000A +_0807CA88: .4byte 0x00001607 +_0807CA8C: .4byte 0x00000265 +_0807CA90: + ldr r1, _0807CABC @ =0x00000266 + adds r2, r4, r1 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0807CAC0 @ =0x0879C17C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #2] + cmp r0, r1 + bhi _0807CAA8 + b _0807CE56 +_0807CAA8: + ldr r1, _0807CAC4 @ =0x0300000A + ldr r3, _0807CAC8 @ =0x00001707 + adds r0, r3, #0 + strh r0, [r1] + ldr r0, _0807CACC @ =0x00000265 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807CC38 + .align 2, 0 +_0807CABC: .4byte 0x00000266 +_0807CAC0: .4byte 0x0879C17C +_0807CAC4: .4byte 0x0300000A +_0807CAC8: .4byte 0x00001707 +_0807CACC: .4byte 0x00000265 +_0807CAD0: + ldr r1, _0807CAF0 @ =0x00000266 + adds r2, r4, r1 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0807CAF4 @ =0x0879C17C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #3] + cmp r0, r1 + bhi _0807CAE8 + b _0807CE56 +_0807CAE8: + ldr r3, _0807CAF8 @ =0x00000265 + adds r0, r4, r3 + b _0807CC34 + .align 2, 0 +_0807CAF0: .4byte 0x00000266 +_0807CAF4: .4byte 0x0879C17C +_0807CAF8: .4byte 0x00000265 +_0807CAFC: + ldr r0, _0807CB10 @ =0x087338C0 + ldr r1, _0807CB14 @ =0x06007800 + bl LZ77UncompVram + ldr r0, _0807CB18 @ =0x08733D58 + ldr r1, _0807CB1C @ =0x0600B800 + bl LZ77UncompVram + b _0807CDE8 + .align 2, 0 +_0807CB10: .4byte 0x087338C0 +_0807CB14: .4byte 0x06007800 +_0807CB18: .4byte 0x08733D58 +_0807CB1C: .4byte 0x0600B800 +_0807CB20: + ldr r1, _0807CB40 @ =0x040000D4 + ldr r0, _0807CB44 @ =0x0872F0E0 + str r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0807CB48 @ =0x80000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0807CB4C @ =PauseScreenVBLank_Unused + bl CallbackSetVBlank + ldr r1, _0807CB50 @ =gNonGameplayRam + ldr r2, _0807CB54 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807CB40: .4byte 0x040000D4 +_0807CB44: .4byte 0x0872F0E0 +_0807CB48: .4byte 0x80000100 +_0807CB4C: .4byte PauseScreenVBLank_Unused +_0807CB50: .4byte gNonGameplayRam +_0807CB54: .4byte 0x00000265 +_0807CB58: + ldr r1, _0807CB98 @ =0x0400000C + ldr r3, _0807CB9C @ =0x00000F06 + adds r0, r3, #0 + strh r0, [r1] + adds r1, #2 + ldr r2, _0807CBA0 @ =0x00001707 + adds r0, r2, #0 + strh r0, [r1] + adds r1, #0x42 + ldr r3, _0807CBA4 @ =0x00000844 + adds r0, r3, #0 + strh r0, [r1] + movs r0, #0x9a + lsls r0, r0, #2 + adds r2, r4, r0 + ldrh r1, [r2] + movs r3, #0xc0 + lsls r3, r3, #4 +_0807CB7C: + adds r0, r3, #0 + movs r3, #0 + orrs r0, r1 + strh r0, [r2] + ldr r0, _0807CBA8 @ =0x00000265 + adds r1, r4, r0 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0807CBAC @ =0x00000266 + adds r0, r4, r1 + strb r3, [r0] + b _0807CE56 + .align 2, 0 +_0807CB98: .4byte 0x0400000C +_0807CB9C: .4byte 0x00000F06 +_0807CBA0: .4byte 0x00001707 +_0807CBA4: .4byte 0x00000844 +_0807CBA8: .4byte 0x00000265 +_0807CBAC: .4byte 0x00000266 +_0807CBB0: + ldr r3, _0807CBD4 @ =0x00000266 + adds r2, r4, r3 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0807CBD8 @ =0x0873421C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1] + cmp r0, r1 + bhi _0807CBC8 + b _0807CE56 +_0807CBC8: + ldr r1, _0807CBDC @ =0x00000265 + adds r0, r4, r1 + ldrb r1, [r0] + adds r1, #1 + b _0807CC36 + .align 2, 0 +_0807CBD4: .4byte 0x00000266 +_0807CBD8: .4byte 0x0873421C +_0807CBDC: .4byte 0x00000265 +_0807CBE0: + ldr r1, _0807CBF8 @ =gWrittenToBldalpha_Eva + ldrh r0, [r1] + adds r2, r0, #0 + cmp r2, #0 + bne _0807CC04 + ldr r3, _0807CBFC @ =0x00000265 + adds r0, r4, r3 + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldr r1, _0807CC00 @ =0x00000266 + b _0807CE52 + .align 2, 0 +_0807CBF8: .4byte gWrittenToBldalpha_Eva +_0807CBFC: .4byte 0x00000265 +_0807CC00: .4byte 0x00000266 +_0807CC04: + subs r0, #1 + strh r0, [r1] + ldr r2, _0807CC14 @ =gWrittenToBldalpha_Evb + movs r1, #0x10 + subs r1, r1, r0 + strh r1, [r2] + b _0807CE56 + .align 2, 0 +_0807CC14: .4byte gWrittenToBldalpha_Evb +_0807CC18: + ldr r3, _0807CC40 @ =0x00000266 + adds r2, r4, r3 + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + ldr r1, _0807CC44 @ =0x0873421C + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + ldrb r1, [r1, #1] + cmp r0, r1 + bhi _0807CC30 + b _0807CE56 +_0807CC30: + ldr r1, _0807CC48 @ =0x00000265 + adds r0, r4, r1 +_0807CC34: + movs r1, #0x1b +_0807CC36: + strb r1, [r0] +_0807CC38: + movs r0, #0 + strb r0, [r2] + b _0807CE56 + .align 2, 0 +_0807CC40: .4byte 0x00000266 +_0807CC44: .4byte 0x0873421C +_0807CC48: .4byte 0x00000265 +_0807CC4C: + movs r2, #0x9a + lsls r2, r2, #2 + adds r1, r4, r2 + movs r2, #0 + movs r0, #0 + strh r0, [r1] + ldr r3, _0807CC68 @ =0x00000265 + adds r1, r4, r3 + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + ldr r1, _0807CC6C @ =0x00000266 + b _0807CE52 + .align 2, 0 +_0807CC68: .4byte 0x00000265 +_0807CC6C: .4byte 0x00000266 +_0807CC70: + ldr r1, _0807CC8C @ =0x08561FA8 + ldr r2, _0807CC90 @ =0x06008000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807CC94 @ =gNonGameplayRam + ldr r2, _0807CC98 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807CC8C: .4byte 0x08561FA8 +_0807CC90: .4byte 0x06008000 +_0807CC94: .4byte gNonGameplayRam +_0807CC98: .4byte 0x00000265 +_0807CC9C: + ldr r1, _0807CCB8 @ =0x08562FA8 + ldr r2, _0807CCBC @ =0x06009000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807CCC0 @ =gNonGameplayRam + ldr r3, _0807CCC4 @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807CCB8: .4byte 0x08562FA8 +_0807CCBC: .4byte 0x06009000 +_0807CCC0: .4byte gNonGameplayRam +_0807CCC4: .4byte 0x00000265 +_0807CCC8: + ldr r1, _0807CCDC @ =0x08563FA8 + ldr r2, _0807CCE0 @ =0x0600A000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + b _0807CDE8 + .align 2, 0 +_0807CCDC: .4byte 0x08563FA8 +_0807CCE0: .4byte 0x0600A000 +_0807CCE4: + ldr r1, _0807CD10 @ =0x08564FA8 + ldr r2, _0807CD14 @ =0x0600B000 + movs r3, #0x80 + lsls r3, r3, #4 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807CD18 @ =0x040000D4 + ldr r0, _0807CD1C @ =0x06009800 + str r0, [r1] + ldr r0, _0807CD20 @ =0x06009400 + str r0, [r1, #4] + ldr r0, _0807CD24 @ =0x80000200 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r1, _0807CD28 @ =gNonGameplayRam + ldr r2, _0807CD2C @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807CD10: .4byte 0x08564FA8 +_0807CD14: .4byte 0x0600B000 +_0807CD18: .4byte 0x040000D4 +_0807CD1C: .4byte 0x06009800 +_0807CD20: .4byte 0x06009400 +_0807CD24: .4byte 0x80000200 +_0807CD28: .4byte gNonGameplayRam +_0807CD2C: .4byte 0x00000265 +_0807CD30: + ldr r1, _0807CD4C @ =0x02008000 + ldr r2, _0807CD50 @ =0x06004000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807CD54 @ =gNonGameplayRam + ldr r3, _0807CD58 @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807CD4C: .4byte 0x02008000 +_0807CD50: .4byte 0x06004000 +_0807CD54: .4byte gNonGameplayRam +_0807CD58: .4byte 0x00000265 +_0807CD5C: + ldr r1, _0807CD70 @ =0x02009000 + ldr r2, _0807CD74 @ =0x06005000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + b _0807CDE8 + .align 2, 0 +_0807CD70: .4byte 0x02009000 +_0807CD74: .4byte 0x06005000 +_0807CD78: + ldr r1, _0807CD94 @ =0x0200A000 + ldr r2, _0807CD98 @ =0x06006000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807CD9C @ =gNonGameplayRam + ldr r2, _0807CDA0 @ =0x00000265 + adds r1, r1, r2 + b _0807CDEE + .align 2, 0 +_0807CD94: .4byte 0x0200A000 +_0807CD98: .4byte 0x06006000 +_0807CD9C: .4byte gNonGameplayRam +_0807CDA0: .4byte 0x00000265 +_0807CDA4: + ldr r1, _0807CDC0 @ =0x0200B000 + ldr r2, _0807CDC4 @ =0x06007000 + movs r3, #0x80 + lsls r3, r3, #5 + movs r0, #0x10 + str r0, [sp] + movs r0, #3 + bl DmaTransfer + ldr r1, _0807CDC8 @ =gNonGameplayRam + ldr r3, _0807CDCC @ =0x00000265 + adds r1, r1, r3 + b _0807CDEE + .align 2, 0 +_0807CDC0: .4byte 0x0200B000 +_0807CDC4: .4byte 0x06007000 +_0807CDC8: .4byte gNonGameplayRam +_0807CDCC: .4byte 0x00000265 +_0807CDD0: + ldr r1, _0807CDF8 @ =0x040000D4 + ldr r0, _0807CDFC @ =0x02035000 + str r0, [r1] + movs r0, #0xa0 + lsls r0, r0, #0x13 + str r0, [r1, #4] + ldr r0, _0807CE00 @ =0x80000100 + str r0, [r1, #8] + ldr r0, [r1, #8] + ldr r0, _0807CE04 @ =PauseScreenVBLank +_0807CDE4: + bl CallbackSetVBlank +_0807CDE8: + ldr r1, _0807CE08 @ =gNonGameplayRam + ldr r0, _0807CE0C @ =0x00000265 + adds r1, r1, r0 +_0807CDEE: + ldrb r0, [r1] + adds r0, #1 + strb r0, [r1] + b _0807CE56 + .align 2, 0 +_0807CDF8: .4byte 0x040000D4 +_0807CDFC: .4byte 0x02035000 +_0807CE00: .4byte 0x80000100 +_0807CE04: .4byte PauseScreenVBLank +_0807CE08: .4byte gNonGameplayRam +_0807CE0C: .4byte 0x00000265 +_0807CE10: + ldr r1, _0807CE60 @ =0x0400000E + movs r2, #0x9b + lsls r2, r2, #2 + adds r0, r4, r2 + ldrh r0, [r0] + strh r0, [r1] + subs r1, #2 + ldr r3, _0807CE64 @ =0x0000026E + adds r0, r4, r3 + ldrh r0, [r0] + strh r0, [r1] + adds r1, #0x44 + adds r2, #4 + adds r0, r4, r2 + ldrh r0, [r0] + strh r0, [r1] + adds r1, #2 + adds r3, #4 + adds r0, r4, r3 + ldrh r0, [r0] + strh r0, [r1] + ldr r1, _0807CE68 @ =0x0000026A + adds r0, r4, r1 + ldrh r1, [r0] + subs r2, #8 + adds r0, r4, r2 + movs r2, #0 + strh r1, [r0] + subs r3, #0xd + adds r0, r4, r3 + strb r2, [r0] + movs r1, #0x99 + lsls r1, r1, #2 +_0807CE52: + adds r0, r4, r1 + strb r2, [r0] +_0807CE56: + add sp, #4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807CE60: .4byte 0x0400000E +_0807CE64: .4byte 0x0000026E +_0807CE68: .4byte 0x0000026A + + thumb_func_start unk_7ce6c +unk_7ce6c: @ 0x0807CE6C + push {r4, r5, r6, lr} + sub sp, #4 + ldr r3, _0807CEBC @ =gCurrentArea + ldrb r0, [r3] + cmp r0, #6 + bls _0807CE7A + b _0807CF8A +_0807CE7A: + ldr r2, _0807CEC0 @ =gNonGameplayRam + movs r0, #0x90 + lsls r0, r0, #2 + adds r1, r2, r0 + ldr r0, _0807CEC4 @ =0x08581500 + ldm r0!, {r4, r5, r6} + stm r1!, {r4, r5, r6} + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r2] + adds r6, r2, #0 + cmp r0, #0 + beq _0807CF8A + ldr r0, _0807CEC8 @ =gPauseScreenFlag + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + beq _0807CF8A + ldrb r0, [r3] + cmp r0, #0 + beq _0807CED4 + ldr r2, _0807CECC @ =0x0857607D + ldr r1, _0807CED0 @ =0x08576073 + adds r0, r0, r1 + ldrb r0, [r0] + adds r0, r0, r2 + ldrb r1, [r0] + movs r2, #0x91 + lsls r2, r2, #2 + adds r0, r6, r2 + b _0807CEDE + .align 2, 0 +_0807CEBC: .4byte gCurrentArea +_0807CEC0: .4byte gNonGameplayRam +_0807CEC4: .4byte 0x08581500 +_0807CEC8: .4byte gPauseScreenFlag +_0807CECC: .4byte 0x0857607D +_0807CED0: .4byte 0x08576073 +_0807CED4: + ldr r0, _0807CF48 @ =0x0857607D + ldrb r1, [r0, #7] + movs r4, #0x91 + lsls r4, r4, #2 + adds r0, r6, r4 +_0807CEDE: + strb r1, [r0] + ldr r1, _0807CF4C @ =0x0879C180 + movs r5, #0x91 + lsls r5, r5, #2 + adds r0, r6, r5 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r0, r0, r1 + ldrb r0, [r0] + adds r1, r6, #0 + adds r1, #0xc6 + strb r0, [r1] + subs r1, #8 + movs r0, #0x1c + strh r0, [r1] + subs r1, #2 + movs r0, #0x32 + strh r0, [r1] + adds r2, r6, #0 + adds r2, #0xc7 + ldrb r1, [r2] + movs r4, #4 + rsbs r4, r4, #0 + adds r0, r4, #0 + ands r0, r1 + movs r5, #1 + orrs r0, r5 + movs r1, #0xd + rsbs r1, r1, #0 + ands r0, r1 + strb r0, [r2] + movs r0, #0xa + movs r1, #0 + bl UpdateMenuOamDataId + adds r1, r6, #0 + adds r1, #0xaf + ldrb r0, [r1] + ands r4, r0 + orrs r4, r5 + strb r4, [r1] + ldr r2, _0807CF50 @ =gCurrentArea + ldrb r0, [r2] + cmp r0, #0 + beq _0807CF5C + ldr r1, _0807CF54 @ =0x08576073 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r2, _0807CF58 @ =0x00000249 + adds r0, r6, r2 + b _0807CF6C + .align 2, 0 +_0807CF48: .4byte 0x0857607D +_0807CF4C: .4byte 0x0879C180 +_0807CF50: .4byte gCurrentArea +_0807CF54: .4byte 0x08576073 +_0807CF58: .4byte 0x00000249 +_0807CF5C: + ldr r1, _0807CF94 @ =0x085760E8 + ldr r0, _0807CF98 @ =gCurrentRoom + ldrb r0, [r0] + adds r0, #1 + adds r0, r0, r1 + ldrb r1, [r0] + ldr r4, _0807CF9C @ =0x00000249 + adds r0, r6, r4 +_0807CF6C: + strb r1, [r0] + bl unk_7d27c + mov r1, sp + ldr r5, _0807CFA0 @ =0x00007A73 + adds r0, r5, #0 + strh r0, [r1] + ldr r1, _0807CFA4 @ =0x040000D4 + mov r6, sp + str r6, [r1] + ldr r0, _0807CFA8 @ =0x05000342 + str r0, [r1, #4] + ldr r0, _0807CFAC @ =0x8100000C + str r0, [r1, #8] + ldr r0, [r1, #8] +_0807CF8A: + add sp, #4 + pop {r4, r5, r6} + pop {r0} + bx r0 + .align 2, 0 +_0807CF94: .4byte 0x085760E8 +_0807CF98: .4byte gCurrentRoom +_0807CF9C: .4byte 0x00000249 +_0807CFA0: .4byte 0x00007A73 +_0807CFA4: .4byte 0x040000D4 +_0807CFA8: .4byte 0x05000342 +_0807CFAC: .4byte 0x8100000C + + thumb_func_start unk_7cfb0 +unk_7cfb0: @ 0x0807CFB0 + push {r4, lr} + ldr r1, _0807D034 @ =gNonGameplayRam + ldrb r0, [r1] + mov ip, r1 + cmp r0, #0 + bne _0807CFBE + b _0807D270 +_0807CFBE: + ldr r0, _0807D038 @ =gPauseScreenFlag + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #4 + bne _0807CFCC + b _0807D270 +_0807CFCC: + movs r1, #0x92 + lsls r1, r1, #2 + add r1, ip + ldrb r0, [r1] + adds r0, #1 + movs r2, #0 + strb r0, [r1] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #7 + bls _0807D014 + strb r2, [r1] + ldr r3, _0807D03C @ =0x00000247 + add r3, ip + ldrb r0, [r3] + adds r0, #1 + strb r0, [r3] + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + cmp r0, #5 + bls _0807CFF8 + strb r2, [r3] +_0807CFF8: + ldr r0, _0807D040 @ =0x00000249 + add r0, ip + ldrb r4, [r0] + lsls r1, r4, #1 + ldr r0, _0807D044 @ =0x05000340 + adds r1, r1, r0 + ldr r2, _0807D048 @ =0x08581300 + ldrb r0, [r3] + lsls r0, r0, #4 + adds r0, r0, r4 + lsls r0, r0, #1 + adds r0, r0, r2 + ldrh r0, [r0] + strh r0, [r1] +_0807D014: + ldr r1, _0807D04C @ =0x0000024A + add r1, ip + ldrb r0, [r1] + cmp r0, #2 + bne _0807D050 + movs r0, #3 + strb r0, [r1] + mov r1, ip + adds r1, #0xa6 + movs r0, #0x1c + strh r0, [r1] + subs r1, #2 + movs r0, #0x32 + strh r0, [r1] + b _0807D0DA + .align 2, 0 +_0807D034: .4byte gNonGameplayRam +_0807D038: .4byte gPauseScreenFlag +_0807D03C: .4byte 0x00000247 +_0807D040: .4byte 0x00000249 +_0807D044: .4byte 0x05000340 +_0807D048: .4byte 0x08581300 +_0807D04C: .4byte 0x0000024A +_0807D050: + cmp r0, #3 + bne _0807D0DA + ldr r0, _0807D090 @ =0x0857608A + ldr r1, _0807D094 @ =0x0300004C + ldrb r1, [r1] + adds r0, r1, r0 + movs r4, #0 + ldrsb r4, [r0, r4] + cmp r4, #0 + blt _0807D09C + movs r0, #0x91 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + adds r4, r4, r0 + cmp r4, #0x23 + ble _0807D078 + subs r4, #0x24 +_0807D078: + mov r1, ip + adds r1, #0xbe + ldr r3, _0807D098 @ =0x0879C1A4 + lsls r2, r4, #1 + adds r2, r2, r4 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1] + adds r0, r0, r1 + b _0807D0B2 + .align 2, 0 +_0807D090: .4byte 0x0857608A +_0807D094: .4byte 0x0300004C +_0807D098: .4byte 0x0879C1A4 +_0807D09C: + mov r4, ip + adds r4, #0xbe + ldr r3, _0807D108 @ =0x0879C210 + lsls r2, r1, #1 + adds r2, r2, r1 + adds r0, r2, r3 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r4, [r4] + adds r0, r0, r4 +_0807D0B2: + mov r1, ip + adds r1, #0xa6 + strh r0, [r1] + adds r1, #0x16 + adds r0, r3, #1 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + ldrh r1, [r1] + adds r0, r0, r1 + mov r1, ip + adds r1, #0xa4 + strh r0, [r1] + adds r3, #2 + adds r2, r2, r3 + ldrb r0, [r2] + adds r0, #0x16 + adds r1, #0xa + strb r0, [r1] +_0807D0DA: + movs r2, #0x90 + lsls r2, r2, #2 + add r2, ip + ldrb r0, [r2] + cmp r0, #0 + bne _0807D0E8 + b _0807D270 +_0807D0E8: + ldr r0, _0807D10C @ =0x00000242 + add r0, ip + ldrb r1, [r0] + adds r1, #1 + strb r1, [r0] + ldrb r0, [r2] + subs r0, #1 + cmp r0, #5 + bls _0807D0FC + b _0807D270 +_0807D0FC: + lsls r0, r0, #2 + ldr r1, _0807D110 @ =_0807D114 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807D108: .4byte 0x0879C210 +_0807D10C: .4byte 0x00000242 +_0807D110: .4byte _0807D114 +_0807D114: @ jump table + .4byte _0807D12C @ case 0 + .4byte _0807D142 @ case 1 + .4byte _0807D164 @ case 2 + .4byte _0807D19C @ case 3 + .4byte _0807D1C4 @ case 4 + .4byte _0807D1EC @ case 5 +_0807D12C: + mov r0, ip + ldrh r1, [r0, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0807D13C + b _0807D270 +_0807D13C: + movs r1, #0x90 + lsls r1, r1, #2 + b _0807D1DE +_0807D142: + mov r0, ip + ldrh r1, [r0, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0807D152 + b _0807D270 +_0807D152: + ldr r1, _0807D160 @ =0x0000024A + add r1, ip + movs r0, #2 + strb r0, [r1] + movs r1, #0x90 + lsls r1, r1, #2 + b _0807D1B6 + .align 2, 0 +_0807D160: .4byte 0x0000024A +_0807D164: + ldr r1, _0807D194 @ =0x00000242 + add r1, ip + ldrb r0, [r1] + cmp r0, #8 + bhi _0807D170 + b _0807D270 +_0807D170: + movs r3, #0 + strb r3, [r1] + movs r2, #0x91 + lsls r2, r2, #2 + add r2, ip + ldrb r0, [r2] + adds r0, #1 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x23 + ble _0807D18A + strb r3, [r2] +_0807D18A: + ldr r1, _0807D198 @ =0x0879C180 + movs r0, #0 + ldrsb r0, [r2, r0] + b _0807D266 + .align 2, 0 +_0807D194: .4byte 0x00000242 +_0807D198: .4byte 0x0879C180 +_0807D19C: + mov r0, ip + ldrh r1, [r0, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + beq _0807D270 + movs r1, #0x90 + lsls r1, r1, #2 + add r1, ip + movs r0, #5 + strb r0, [r1] + ldr r1, _0807D1C0 @ =0x00000241 +_0807D1B6: + add r1, ip + movs r0, #1 + strb r0, [r1] + b _0807D270 + .align 2, 0 +_0807D1C0: .4byte 0x00000241 +_0807D1C4: + mov r0, ip + ldrh r1, [r0, #4] + movs r0, #0x80 + lsls r0, r0, #3 + ands r0, r1 + cmp r0, #0 + bne _0807D270 + movs r1, #0x90 + lsls r1, r1, #2 + add r1, ip + movs r0, #6 + strb r0, [r1] + ldr r1, _0807D1E8 @ =0x0000024A +_0807D1DE: + add r1, ip + movs r0, #2 + strb r0, [r1] + b _0807D270 + .align 2, 0 +_0807D1E8: .4byte 0x0000024A +_0807D1EC: + movs r2, #0x91 + lsls r2, r2, #2 + add r2, ip + ldr r0, _0807D21C @ =0x00000245 + add r0, ip + ldrb r4, [r2] + movs r1, #0 + ldrsb r1, [r2, r1] + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r1, r0 + bne _0807D224 + movs r1, #0x90 + lsls r1, r1, #2 + add r1, ip + movs r2, #0 + movs r0, #4 + strb r0, [r1] + ldr r0, _0807D220 @ =0x00000241 + add r0, ip + strb r2, [r0] + b _0807D270 + .align 2, 0 +_0807D21C: .4byte 0x00000245 +_0807D220: .4byte 0x00000241 +_0807D224: + ldr r1, _0807D248 @ =0x00000242 + add r1, ip + ldrb r0, [r1] + cmp r0, #8 + bls _0807D270 + movs r3, #0 + strb r3, [r1] + ldr r0, _0807D24C @ =0x00000246 + add r0, ip + ldrb r0, [r0] + adds r0, r4, r0 + strb r0, [r2] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 + cmp r0, #0x23 + ble _0807D250 + strb r3, [r2] + b _0807D258 + .align 2, 0 +_0807D248: .4byte 0x00000242 +_0807D24C: .4byte 0x00000246 +_0807D250: + cmp r0, #0 + bge _0807D258 + movs r0, #0x23 + strb r0, [r2] +_0807D258: + ldr r1, _0807D278 @ =0x0879C180 + movs r0, #0x91 + lsls r0, r0, #2 + add r0, ip + ldrb r0, [r0] + lsls r0, r0, #0x18 + asrs r0, r0, #0x18 +_0807D266: + adds r0, r0, r1 + ldrb r1, [r0] + mov r0, ip + adds r0, #0xc6 + strb r1, [r0] +_0807D270: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0807D278: .4byte 0x0879C180 + + thumb_func_start unk_7d27c +unk_7d27c: @ 0x0807D27C + push {r4, r5, lr} + ldr r0, _0807D294 @ =0x0300004C + ldrb r1, [r0] + adds r5, r0, #0 + cmp r1, #0 + bne _0807D29C + ldr r0, _0807D298 @ =gNonGameplayRam + movs r2, #0x90 + lsls r2, r2, #2 + adds r0, r0, r2 + b _0807D33E + .align 2, 0 +_0807D294: .4byte 0x0300004C +_0807D298: .4byte gNonGameplayRam +_0807D29C: + ldr r0, _0807D2C4 @ =gNonGameplayRam + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r0, r2 + movs r4, #1 + strb r4, [r1] + subs r2, #0x20 + adds r1, r0, r2 + ldr r2, _0807D2C8 @ =gPreviousNavigationConversation + ldrb r1, [r1] + adds r3, r0, #0 + ldrb r2, [r2] + cmp r1, r2 + bne _0807D2D0 + ldr r0, _0807D2CC @ =0x0000024A + adds r1, r3, r0 + movs r0, #2 + strb r0, [r1] + b _0807D2D6 + .align 2, 0 +_0807D2C4: .4byte gNonGameplayRam +_0807D2C8: .4byte gPreviousNavigationConversation +_0807D2CC: .4byte 0x0000024A +_0807D2D0: + ldr r1, _0807D324 @ =0x0000024A + adds r0, r3, r1 + strb r4, [r0] +_0807D2D6: + ldr r1, _0807D328 @ =0x0857607D + ldrb r0, [r5] + adds r0, r0, r1 + ldrb r1, [r0] + movs r2, #0 + ldrsb r2, [r0, r2] + cmp r2, #0 + blt _0807D340 + ldr r0, _0807D32C @ =0x00000245 + adds r5, r3, r0 + strb r1, [r5] + movs r1, #0x91 + lsls r1, r1, #2 + adds r4, r3, r1 + movs r0, #0 + ldrsb r0, [r4, r0] + cmp r2, r0 + beq _0807D340 + movs r2, #0x90 + lsls r2, r2, #2 + adds r1, r3, r2 + movs r0, #4 + strb r0, [r1] + movs r1, #0 + ldrsb r1, [r5, r1] + movs r0, #0 + ldrsb r0, [r4, r0] + subs r1, r1, r0 + movs r0, #1 + cmp r1, #0 + bge _0807D316 + subs r0, #2 +_0807D316: + muls r1, r0, r1 + cmp r1, #0x12 + ble _0807D330 + movs r1, #1 + rsbs r1, r1, #0 + b _0807D338 + .align 2, 0 +_0807D324: .4byte 0x0000024A +_0807D328: .4byte 0x0857607D +_0807D32C: .4byte 0x00000245 +_0807D330: + cmp r1, #0x12 + bne _0807D336 + movs r0, #1 +_0807D336: + movs r1, #1 +_0807D338: + muls r1, r0, r1 + ldr r2, _0807D348 @ =0x00000246 + adds r0, r3, r2 +_0807D33E: + strb r1, [r0] +_0807D340: + pop {r4, r5} + pop {r0} + bx r0 + .align 2, 0 +_0807D348: .4byte 0x00000246 diff --git a/asm/update_menu_oam_data_id.s b/asm/update_menu_oam_data_id.s deleted file mode 100644 index 191d8898..00000000 --- a/asm/update_menu_oam_data_id.s +++ /dev/null @@ -1,24 +0,0 @@ - .include "asm/macros.inc" - - .syntax unified - - thumb_func_start UpdateMenuOamDataId -UpdateMenuOamDataId: @ 0x0807486C - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - ldr r3, _0807488C @ =gNonGameplayRam - lsls r2, r0, #1 - adds r2, r2, r0 - lsls r2, r2, #2 - adds r3, r2, r3 - adds r0, r3, #0 - adds r0, #0x36 - movs r2, #0 - strb r1, [r0] - subs r0, #2 - strb r2, [r0] - adds r0, #1 - strb r2, [r0] - bx lr - .align 2, 0 -_0807488C: .4byte gNonGameplayRam diff --git a/database.json b/database.json index 2cf19d99..7f3fcaa2 100644 --- a/database.json +++ b/database.json @@ -26841,13 +26841,21 @@ "size": 1 }, { - "path": "Blob_79c5c0_79e6a0.bin", - "count": "0x20E0", + "path": "Blob_79c5c0_79cdd8.bin", + "count": "0x818", "addr": { "us": "0x79C5C0" }, "size": 1 }, + { + "path": "Blob_79ce10_79e6a0.bin", + "count": "0x1890", + "addr": { + "us": "0x79CE10" + }, + "size": 1 + }, { "path": "Blob_79e868_79ecc8.bin", "count": "0x460", diff --git a/include/new_file_intro.h b/include/new_file_intro.h index b7c06fe1..ea4f52b2 100644 --- a/include/new_file_intro.h +++ b/include/new_file_intro.h @@ -3,6 +3,11 @@ #include "types.h" +#include "constants/game_state.h" + +extern u16** sLocationTextPointers[LANGUAGE_COUNT]; +extern u16** sMessageTextPointers[LANGUAGE_COUNT]; + boolu32 IntroHandler(void); boolu32 NewFileIntroHandler(void); boolu32 unk_87920(void); diff --git a/include/oam_id.h b/include/oam_id.h new file mode 100644 index 00000000..02125ebd --- /dev/null +++ b/include/oam_id.h @@ -0,0 +1,8 @@ +#ifndef OAM_ID_H +#define OAM_ID_H + +#include "types.h" + +void UpdateMenuOamDataId(u8 oamIndex, u8 oamId); + +#endif /* OAM_ID_H */ diff --git a/include/sprites_AI/kihunter.h b/include/sprites_AI/kihunter.h index dc9b0407..02643c5f 100644 --- a/include/sprites_AI/kihunter.h +++ b/include/sprites_AI/kihunter.h @@ -8,7 +8,7 @@ u8 KihunterGroundDetectSamus(void); void KihunterTurningIntoX(void); void KihunterGroundInit(void); void KihunterGroundJumpWarningInit(void); -void KihhunterGroundJumpInit(void); +void KihunterGroundJumpInit(void); void KihunterGroundLandingInit(void); void KihunterIdleInit(void); void KihunterFallingInit(void); diff --git a/linker.ld b/linker.ld index 136280b5..b75fa6b6 100644 --- a/linker.ld +++ b/linker.ld @@ -435,13 +435,15 @@ SECTIONS { src/escape.o(.text); src/hud_generic.o(.text); src/particle.o(.text); - - asm/update_menu_oam_data_id.o(.text); - + src/oam_id.o(.text); src/event.o(.text); asm/disasm_0x08074ffc.o(.text); + src/text.o(.text); + + asm/disasm_0x08079afc.o(.text); + src/menus/pause_debug.o(.text); asm/disasm_0x0807e678.o(.text); diff --git a/src/new_file_intro.c b/src/new_file_intro.c index ec24747d..0177dd29 100644 --- a/src/new_file_intro.c +++ b/src/new_file_intro.c @@ -1,5 +1,8 @@ #include "globals.h" #include "new_file_intro.h" + +#include "constants/game_state.h" + #include "data/new_file_intro_data.h" extern void unk_99940(void); // For V-blank callback @@ -31,7 +34,7 @@ static const u32* sIntroBslObjectGfxPointers[8] = { static u8 sBlob_79c41c_79c5a4[] = INCBIN_U8("data/Blob_79c41c_79c5a4.bin"); -static u16** sMonologueTextPointers[7] = { +static u16** sMonologueTextPointers[LANGUAGE_COUNT] = { sMonologueTextPointersJapanese, sMonologueTextPointersJapanese, sMonologueTextPointersEnglish, @@ -41,7 +44,29 @@ static u16** sMonologueTextPointers[7] = { sMonologueTextPointersSpanish }; -static u8 sBlob_79c5c0_79e6a0[] = INCBIN_U8("data/Blob_79c5c0_79e6a0.bin"); +static u8 sBlob_79c5c0_79cdd8[] = INCBIN_U8("data/Blob_79c5c0_79cdd8.bin"); + +u16** sLocationTextPointers[LANGUAGE_COUNT] = { + (u16**)0x879c680, + (u16**)0x879c7a8, + (u16**)0x879c8d0, + (u16**)0x879c9f8, + (u16**)0x879cb20, + (u16**)0x879cc48, + (u16**)0x879cd70 +}; + +u16** sMessageTextPointers[LANGUAGE_COUNT] = { + (u16**)0x879c5c0, + (u16**)0x879c6e8, + (u16**)0x879c810, + (u16**)0x879c938, + (u16**)0x879ca60, + (u16**)0x879cb88, + (u16**)0x879ccb0 +}; + +static u8 sBlob_79ce10_79e6a0[] = INCBIN_U8("data/Blob_79ce10_79e6a0.bin"); static u16* sMonologueTextPointersJapanese[19] = { (u16*)0x871e20c, diff --git a/src/oam_id.c b/src/oam_id.c new file mode 100644 index 00000000..2c6ac31c --- /dev/null +++ b/src/oam_id.c @@ -0,0 +1,13 @@ +#include "oam_id.h" +#include "globals.h" + +/** + * @brief 7486c | 24 | Updates the OAM ID of menu OAM data and resets its animation + * + */ +void UpdateMenuOamDataId(u8 oamIndex, u8 oamId) +{ + PAUSE_SCREEN_DATA.oam[oamIndex].oamId = oamId; + PAUSE_SCREEN_DATA.oam[oamIndex].animationDurationCounter = 0; + PAUSE_SCREEN_DATA.oam[oamIndex].currentAnimationFrame = 0; +} diff --git a/src/sprites_AI/kihunter.c b/src/sprites_AI/kihunter.c index df2c1b1f..11f4457b 100644 --- a/src/sprites_AI/kihunter.c +++ b/src/sprites_AI/kihunter.c @@ -191,7 +191,7 @@ void KihunterGroundJumpWarningInit(void) } } -void KihhunterGroundJumpInit(void) +void KihunterGroundJumpInit(void) { gCurrentSprite.pose = 0x18; gCurrentSprite.animationDurationCounter = 0; @@ -274,7 +274,7 @@ void KihunterGroundJumpWarning(void) } if (SpriteUtilHasCurrentAnimationEnded()) - KihhunterGroundJumpInit(); + KihunterGroundJumpInit(); } void KihunterGroundJumping(void) @@ -405,7 +405,7 @@ void KihunterGroundLanding(void) result = KihunterGroundDetectSamus(); if (result == KIHUNTER_GROUND_SAMUS_IN_FRONT) { - KihhunterGroundJumpInit(); + KihunterGroundJumpInit(); } else if (result == KIHUNTER_GROUND_SAMUS_BEHIND) { diff --git a/src/text.c b/src/text.c new file mode 100644 index 00000000..f2cd2b8b --- /dev/null +++ b/src/text.c @@ -0,0 +1,184 @@ +#include "globals.h" +#include "new_file_intro.h" + +#include "structs/event.h" +#include "structs/samus.h" + +#include "data/event_data.h" + +extern void DrawLocationTextCharacters(u8 param_1, u16** ppText); + +/** + * @brief 79740 | 90 | Draws a location text + * + * @param locationText Location text + * @param gfxSlot Graphics slot + */ +void DrawLocationText(u8 locationText, u8 gfxSlot) +{ + u16* pText; + + DMA3_FILL_16(0xFFFF, EWRAM_BASE, 0x800); + + pText = sLocationTextPointers[gLanguage][locationText]; + DrawLocationTextCharacters(1, &pText); + + DMA3_COPY_32(EWRAM_BASE, VRAM_OBJ + 0x4000 + gfxSlot * 0x800, 0xE0); + DMA3_COPY_32(EWRAM_BASE + 0x400, VRAM_OBJ + 0x4400 + gfxSlot * 0x800, 0xE0); +} + +/** + * @brief 797d0 | 110 | To document + * + */ +void TextDrawMessageBanner(u8 messageId, u8 gfxSlot, u8 stage) +{ + s32 index; + u16* pText; + + if ((u8)(stage - 4) < 2) + { + index = messageId; + if (index > 21) + index = 21; + + index += 21; + pText = sMessageTextPointers[gLanguage][index]; + } + + if (stage == 7) + { + BitFill(3, 0xFFFF, EWRAM_BASE, 0x800, 16); + } + else if (stage == 6) + { + BitFill(3, 0xFFFF, EWRAM_BASE + 0x800, 0x800, 16); + } + else if (stage == 5) + { + DrawLocationTextCharacters(1, &pText); + } + else if (stage == 4) + { + DrawLocationTextCharacters(2, &pText); + } + else if (stage == 3) + { + DMA3_COPY_32(EWRAM_BASE, VRAM_OBJ + 0x4000 + gfxSlot * 0x800, 0xE0); + } + else if (stage == 2) + { + DMA3_COPY_32(EWRAM_BASE + 0x400, VRAM_OBJ + 0x4400 + gfxSlot * 0x800, 0xE0); + } + else if (stage == 1) + { + DMA3_COPY_32(EWRAM_BASE + 0x800, VRAM_OBJ + 0x4800 + gfxSlot * 0x800, 0xE0); + } + else if (stage == 0) + { + DMA3_COPY_32(EWRAM_BASE + 0xC00, VRAM_OBJ + 0x4C00 + gfxSlot * 0x800, 0xE0); + } +} + +/** + * @brief 798e0 | 158 | To document + * + */ +void DisplayMessage(u8 gfxSlot, u8 stage) +{ + u32 index; + u16* pText; + + if ((u8)(stage - 4) < 2) + { + for (index = 18; index != 0; --index) + { + if (gEventCounter == sObtainItemEvents[index]) + break; + } + + if (index) + index = sAbilityRamValues[index].messageNumber; + else + if ((u8)(gEquipment.securityHatchLevel - 1) < 4) + index = gEquipment.securityHatchLevel - 1; + + pText = sMessageTextPointers[gLanguage][index]; + } + + if (stage == 7) + { + BitFill(3, 0xFFFF, EWRAM_BASE, 0x800, 16); + } + else if (stage == 6) + { + BitFill(3, 0xFFFF, EWRAM_BASE + 0x800, 0x800, 16); + } + else if (stage == 5) + { + DrawLocationTextCharacters(1, &pText); + } + else if (stage == 4) + { + DrawLocationTextCharacters(2, &pText); + } + else if (stage == 3) + { + DMA3_COPY_32(EWRAM_BASE, VRAM_OBJ + 0x4000 + gfxSlot * 0x800, 0xE0); + } + else if (stage == 2) + { + DMA3_COPY_32(EWRAM_BASE + 0x400, VRAM_OBJ + 0x4400 + gfxSlot * 0x800, 0xE0); + } + else if (stage == 1) + { + DMA3_COPY_32(EWRAM_BASE + 0x800, VRAM_OBJ + 0x4800 + gfxSlot * 0x800, 0xE0); + } + else if (stage == 0) + { + DMA3_COPY_32(EWRAM_BASE + 0xC00, VRAM_OBJ + 0x4C00 + gfxSlot * 0x800, 0xE0); + } +} + +/** + * @brief 79a38 | c4 | To document + * + */ +void ClearTextGraphics(u8 action) +{ + if (action == 1) + { + if (PAUSE_SCREEN_DATA.unk_18) + action = 5; + else + action = 3; + } + else if (action == 2) + { + if (PAUSE_SCREEN_DATA.unk_18) + action = 6; + else + action = 4; + } + + if (action == 3) + { + BitFill(3, 0, VRAM_BASE + 0x7000, 0x1000, 32); + } + else if (action == 4) + { + DmaTransfer(3, VRAM_BASE + 0x7800, VRAM_BASE + 0x7000, 0x800, 32); + BitFill(3, 0, VRAM_BASE + 0x7800, 0x800, 32); + } + else if (action == 5) + { + BitFill(3, 0, VRAM_BASE + 0x6000, 0x1000, 32); + } + else if (action == 6) + { + DmaTransfer(3, VRAM_BASE + 0x6800, VRAM_BASE + 0x6000, 0x800, 32); + BitFill(3, 0, VRAM_BASE + 0x6800, 0x800, 32); + } + else + BitFill(3, 0, VRAM_BASE + 0x6000, 0x2000, 32); +}