diff --git a/asm/ov00/Map/MapBase.inc b/asm/ov00/Map/MapBase.inc new file mode 100644 index 00000000..0ad7fa37 --- /dev/null +++ b/asm/ov00/Map/MapBase.inc @@ -0,0 +1,85 @@ +#pragma once +.extern Divide +.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p +.extern _ZN6Course13FindMapCenterEi +.extern _ZN9SysObjectdlEPv +.extern _ZN9SysObjectnwEmPjj +.extern data_027e0618 +.extern data_027e0ce0 +.extern data_027e0d38 +.extern data_027e0e58 +.extern data_027e0f64 +.extern data_027e0f68 +.extern data_027e0f6c +.extern data_027e0f78 +.extern data_027e0f88 +.extern data_027e0f8c +.extern data_ov00_020ecde4 +.extern data_ov00_020ee0a0 +.extern func_01ffe904 +.extern func_01fff084 +.extern func_01fff264 +.extern func_020078f4 +.extern func_0200c8d0 +.extern func_020196bc +.extern func_020196fc +.extern func_0201e24c +.extern func_0201e4cc +.extern func_02042f68 +.extern func_0204f614 +.extern func_0204f754 +.extern func_ov00_02078b40 +.extern func_ov00_02079e3c +.extern func_ov00_02080f20 +.extern func_ov00_02080f64 +.extern func_ov00_02080f94 +.extern func_ov00_02080ff8 +.extern func_ov00_02081040 +.extern func_ov00_02081070 +.extern func_ov00_020810b8 +.extern func_ov00_020810e8 +.extern func_ov00_02081130 +.extern func_ov00_02087dd8 +.extern func_ov00_0208b79c +.extern func_ov00_0208d820 +.extern func_ov00_0208ee00 +.extern func_ov00_02095554 +.extern func_ov00_0209564c +.extern func_ov00_0209581c +.extern func_ov00_02095d58 +.extern func_ov00_0209c08c +.extern func_ov00_0209c1e4 +.extern func_ov00_0209c2b4 +.extern func_ov00_0209c2d0 +.extern func_ov00_0209c530 +.extern func_ov00_0209c61c +.extern func_ov00_0209c788 +.extern func_ov00_0209c8e4 +.extern func_ov00_0209cc3c +.extern func_ov00_0209cc48 +.extern func_ov00_0209cd80 +.extern func_ov00_0209cd9c +.extern func_ov00_0209cddc +.extern func_ov00_0209cdf8 +.extern func_ov00_020a1a0c +.extern func_ov00_020a3de0 +.extern func_ov00_020a5e9c +.extern func_ov04_0210bfa8 +.extern func_ov04_0210c1f8 +.extern func_ov04_0210c3fc +.extern func_ov04_0210c52c +.extern func_ov04_0210c5cc +.extern func_ov04_0210c764 +.extern func_ov04_0210c800 +.extern func_ov04_0210c88c +.extern func_ov04_0210c8d4 +.extern func_ov04_0210ca84 +.extern func_ov04_0210cb00 +.extern func_ov04_0210cb1c +.extern func_ov04_0210dd90 +.extern func_ov05_02111bc0 +.extern func_ov05_02111c00 +.extern func_ov05_02111c6c +.extern func_ov05_02111c70 +.extern gMapManager +.extern strcmp diff --git a/asm/ov00/Map/MapBase.s b/asm/ov00/Map/MapBase.s new file mode 100644 index 00000000..9a1366c7 --- /dev/null +++ b/asm/ov00/Map/MapBase.s @@ -0,0 +1,4626 @@ + .include "ov00/Map/MapBase.inc" + .include "macros/function.inc" + + .text + .global _ZN7MapBaseD1Ev + arm_func_start _ZN7MapBaseD1Ev +_ZN7MapBaseD1Ev: ; 0x0207da38 + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0207db0c ; =data_ov00_020e2348 + mov r4, r0 + str r1, [r4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r5, [r4, #0x144] + cmp r5, #0 + beq _0207da7c + beq _0207da74 + mov r0, r5 + blx func_ov04_0210dd90 + mov r0, r5 + bl _ZN9SysObjectdlEPv +_0207da74: + mov r0, #0 + str r0, [r4, #0x144] +_0207da7c: + ldr r0, _0207db10 ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dac0 + ldr r1, [r0] + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _0207db10 ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dab4 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_0207dab4: + ldr r0, _0207db10 ; =data_ov00_020ec81c + mov r1, #0 + str r1, [r0, #4] +_0207dac0: + mov r0, r4 + blx func_ov04_0210cb1c + ldr r3, _0207db14 ; =_ZN15MapBase_Unk_180D1Ev + add r0, r4, #0x180 + mov r1, #2 + mov r2, #4 + bl func_0204f754 + add r0, r4, #0x130 + bl func_ov00_02080f20 + add r0, r4, #0x124 + bl func_ov00_020810e8 + add r0, r4, #0x118 + bl func_ov00_02081070 + add r0, r4, #0x10c + bl func_ov00_02080f20 + add r0, r4, #0x100 + bl func_ov00_02080ff8 + mov r0, r4 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBaseD1Ev +_0207db0c: .word data_ov00_020e2348 +_0207db10: .word data_ov00_020ec81c +_0207db14: .word _ZN15MapBase_Unk_180D1Ev + + .global _ZN15MapBase_Unk_180D1Ev + arm_func_start _ZN15MapBase_Unk_180D1Ev +_ZN15MapBase_Unk_180D1Ev: ; 0x0207db18 + bx lr + arm_func_end _ZN15MapBase_Unk_180D1Ev + + .global _ZN7MapBaseD0Ev + arm_func_start _ZN7MapBaseD0Ev +_ZN7MapBaseD0Ev: ; 0x0207db1c + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0207dbf8 ; =data_ov00_020e2348 + mov r4, r0 + str r1, [r4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r5, [r4, #0x144] + cmp r5, #0 + beq _0207db60 + beq _0207db58 + mov r0, r5 + blx func_ov04_0210dd90 + mov r0, r5 + bl _ZN9SysObjectdlEPv +_0207db58: + mov r0, #0 + str r0, [r4, #0x144] +_0207db60: + ldr r0, _0207dbfc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dba4 + ldr r1, [r0] + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _0207dbfc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207db98 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_0207db98: + ldr r0, _0207dbfc ; =data_ov00_020ec81c + mov r1, #0 + str r1, [r0, #4] +_0207dba4: + mov r0, r4 + blx func_ov04_0210cb1c + ldr r3, _0207dc00 ; =_ZN15MapBase_Unk_180D1Ev + add r0, r4, #0x180 + mov r1, #2 + mov r2, #4 + bl func_0204f754 + add r0, r4, #0x130 + bl func_ov00_02080f20 + add r0, r4, #0x124 + bl func_ov00_020810e8 + add r0, r4, #0x118 + bl func_ov00_02081070 + add r0, r4, #0x10c + bl func_ov00_02080f20 + add r0, r4, #0x100 + bl func_ov00_02080ff8 + mov r0, r4 + bl _ZN9SysObjectdlEPv + mov r0, r4 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBaseD0Ev +_0207dbf8: .word data_ov00_020e2348 +_0207dbfc: .word data_ov00_020ec81c +_0207dc00: .word _ZN15MapBase_Unk_180D1Ev + + .global _ZN7MapBaseD2Ev + arm_func_start _ZN7MapBaseD2Ev +_ZN7MapBaseD2Ev: ; 0x0207dc04 + stmdb sp!, {r3, r4, r5, lr} + ldr r1, _0207dcd8 ; =data_ov00_020e2348 + mov r4, r0 + str r1, [r4] + ldr r1, [r0] + ldr r1, [r1, #0x2c] + blx r1 + ldr r5, [r4, #0x144] + cmp r5, #0 + beq _0207dc48 + beq _0207dc40 + mov r0, r5 + blx func_ov04_0210dd90 + mov r0, r5 + bl _ZN9SysObjectdlEPv +_0207dc40: + mov r0, #0 + str r0, [r4, #0x144] +_0207dc48: + ldr r0, _0207dcdc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dc8c + ldr r1, [r0] + ldr r1, [r1, #0xc] + blx r1 + ldr r0, _0207dcdc ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + beq _0207dc80 + ldr r1, [r0] + ldr r1, [r1, #4] + blx r1 +_0207dc80: + ldr r0, _0207dcdc ; =data_ov00_020ec81c + mov r1, #0 + str r1, [r0, #4] +_0207dc8c: + mov r0, r4 + blx func_ov04_0210cb1c + ldr r3, _0207dce0 ; =_ZN15MapBase_Unk_180D1Ev + add r0, r4, #0x180 + mov r1, #2 + mov r2, #4 + bl func_0204f754 + add r0, r4, #0x130 + bl func_ov00_02080f20 + add r0, r4, #0x124 + bl func_ov00_020810e8 + add r0, r4, #0x118 + bl func_ov00_02081070 + add r0, r4, #0x10c + bl func_ov00_02080f20 + add r0, r4, #0x100 + bl func_ov00_02080ff8 + mov r0, r4 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBaseD2Ev +_0207dcd8: .word data_ov00_020e2348 +_0207dcdc: .word data_ov00_020ec81c +_0207dce0: .word _ZN15MapBase_Unk_180D1Ev + + .global _ZN7MapBase9SetBoundsEii + arm_func_start _ZN7MapBase9SetBoundsEii +_ZN7MapBase9SetBoundsEii: ; 0x0207dce4 + stmdb sp!, {r4, r5, lr} + sub sp, sp, #0x2c + mov r4, r0 + ldrh r5, [r4, #0x28] + ldrh r3, [r4, #0x2a] + mov r0, r2 + mov r5, r5, lsl #0xc + mov r2, r3, lsl #0xc + str r5, [sp] + str r2, [sp, #4] + bl _ZN6Course13FindMapCenterEi + mov ip, r5 + add r5, sp, #0x20 + ldmia r0, {r0, r1, r2} + stmia r5, {r0, r1, r2} + ldr r1, [sp, #0x20] + ldr r3, [sp, #4] + ldr r2, [sp, #0x28] + ldr r0, [sp, #0x24] + sub r1, r1, ip, asr #1 + str r1, [r4, #0xdc] + str r0, [r4, #0xe0] + sub r1, r2, r3, asr #1 + str r1, [r4, #0xe4] + ldr r1, [sp, #0x20] + mov r5, r3, asr #0x1 + str r1, [r4, #0xd0] + ldr r1, [sp, #0x24] + add r3, r2, r3, asr #1 + str r1, [r4, #0xd4] + ldr r1, [sp, #0x28] + mov lr, ip, asr #0x1 + str r1, [r4, #0xd8] + ldr r2, [sp, #0x20] + rsb r1, lr, #0 + add r2, r2, ip, asr #1 + str r2, [r4, #0xe8] + str r0, [r4, #0xec] + str r3, [r4, #0xf0] + str r1, [r4, #0xf4] + mov r0, #0 + str r0, [r4, #0xf8] + rsb r0, r5, #0 + str r0, [r4, #0xfc] + add sp, sp, #0x2c + ldmia sp!, {r4, r5, pc} + arm_func_end _ZN7MapBase9SetBoundsEii + + .global _ZN15MapManager_Unk2D1Ev + arm_func_start _ZN15MapManager_Unk2D1Ev +_ZN15MapManager_Unk2D1Ev: ; 0x0207dd9c + bx lr + arm_func_end _ZN15MapManager_Unk2D1Ev + + .global _ZN7MapBase14GetMapFilePathEPcii + arm_func_start _ZN7MapBase14GetMapFilePathEPcii +_ZN7MapBase14GetMapFilePathEPcii: ; 0x0207dda0 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #4 + ldr ip, _0207ddec ; =0x66666667 + mov r6, r1 + smull r0, r5, ip, r2 + mov r0, r3 + smull r1, r3, ip, r2 + mov r4, r2, lsr #0x1f + add r5, r4, r5, asr #2 + mov lr, #0xa + smull r1, ip, lr, r5 + sub r5, r2, r1 + ldr r1, _0207ddf0 ; =data_ov00_020e2410 + mov r2, r6 + add r3, r4, r3, asr #2 + str r5, [sp] + bl func_0200c8d0 + add sp, sp, #4 + ldmia sp!, {r3, r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN7MapBase14GetMapFilePathEPcii +_0207ddec: .word 0x66666667 +_0207ddf0: .word data_ov00_020e2410 + + .global _ZN7MapBase8vfunc_18Ev + arm_func_start _ZN7MapBase8vfunc_18Ev +_ZN7MapBase8vfunc_18Ev: ; 0x0207ddf4 + bx lr + arm_func_end _ZN7MapBase8vfunc_18Ev + + .global _ZN7MapBase18func_ov00_0207ddf8Eb + arm_func_start _ZN7MapBase18func_ov00_0207ddf8Eb +_ZN7MapBase18func_ov00_0207ddf8Eb: ; 0x0207ddf8 + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} + mov r7, #0 + mov r10, r0 + mov r9, r1 + add r8, r10, #0x180 + mvn r5, #0 + mov r6, r7 + mov r4, r7 + mov r11, #4 +_0207de1c: + cmp r9, #0 + beq _0207de44 + mov r2, r6 + add r1, r10, r7, lsl #2 +_0207de2c: + add r0, r1, r2, lsl #2 + add r2, r2, #1 + str r5, [r0, #0x180] + cmp r2, #1 + blo _0207de2c + b _0207de54 +_0207de44: + mov r0, r4 + mov r1, r8 + mov r2, r11 + bl func_020078f4 +_0207de54: + add r7, r7, #1 + cmp r7, #2 + add r8, r8, #4 + blt _0207de1c + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_0207ddf8Eb + + .global _ZN7MapBase18func_ov00_0207de68Ei + arm_func_start _ZN7MapBase18func_ov00_0207de68Ei +_ZN7MapBase18func_ov00_0207de68Ei: ; 0x0207de68 + stmdb sp!, {r3, lr} + ldr r0, [r0, #0x144] + mov r2, r1 + cmp r0, #0 + ldmeqia sp!, {r3, pc} + mov r1, #0 + bl func_ov00_0209c08c + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207de68Ei + + .global _ZN7MapBase18func_ov00_0207de88Ev + arm_func_start _ZN7MapBase18func_ov00_0207de88Ev +_ZN7MapBase18func_ov00_0207de88Ev: ; 0x0207de88 + stmdb sp!, {r3, lr} + ldr r0, [r0, #0x144] + cmp r0, #0 + ldmeqia sp!, {r3, pc} + bl func_ov00_0209c61c + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207de88Ev + + .global _ZN7MapBase18func_ov00_0207dea0Eb + arm_func_start _ZN7MapBase18func_ov00_0207dea0Eb +_ZN7MapBase18func_ov00_0207dea0Eb: ; 0x0207dea0 + stmdb sp!, {r4, r5, r6, lr} + sub sp, sp, #0x10 + mov r5, r0 + ldr r2, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + mov r4, r1 + ldr r6, [r2] + bl func_ov00_0209c530 + ldrh r2, [r0, #4] + mov r0, r6 + mov r1, #0 + bl func_ov00_0209cc3c + ldr r1, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #6] + mov r0, r6 + mov r1, #1 + bl func_ov00_0209cc3c + ldr r1, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #8] + mov r0, r6 + mov r1, #2 + bl func_ov00_0209cc3c + ldr r1, _0207e044 ; =data_027e0f78 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #0xa] + mov r0, r6 + mov r1, #3 + bl func_ov00_0209cc3c + ldr r0, _0207e044 ; =data_027e0f78 + ldr r0, [r0] + bl func_ov00_0209cc48 + ldr r1, _0207e048 ; =data_027e0f88 + ldr r0, [r5, #0x144] + ldr r6, [r1] + bl func_ov00_0209c530 + mov r1, r0 + ldrh r2, [r1, #0xc] + mov r0, r6 + mov r1, #0 + bl func_ov00_020a1a0c + cmp r4, #0 + beq _0207dff0 + ldr r0, [r5, #0x144] + ldr r1, _0207e04c ; =data_ov00_020ecde4 + ldr r2, [r0, #0xc] + mov r0, #0x68 + mla r0, r2, r0, r1 + add r0, r0, #0x54 + add r4, sp, #0 + ldmia r0, {r0, r1, r2, r3} + stmia r4, {r0, r1, r2, r3} + ldr r0, [sp] + cmp r0, #1 + blt _0207dfb4 + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + mov r1, #1 + bl func_ov00_0209cd80 + b _0207dfc0 +_0207dfb4: + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + mov r1, #0 + bl func_ov00_0209cd80 +_0207dfc0: + ldr r0, [r5, #0x144] + bl func_ov00_0209c530 + ldrh r1, [r0, #0xe] + ldr r2, [sp, #0xc] + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + bl func_ov00_0209cd9c + ldr r1, [sp, #4] + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + bl func_ov00_0209cddc + ldr r1, [sp, #8] + ldr r0, _0207e050 ; =data_ov00_020ee0a0 + bl func_ov00_0209cdf8 +_0207dff0: + ldr r0, _0207e054 ; =data_027e0d38 + ldr r0, [r0] + bl func_ov00_02078b40 + cmp r0, #2 + bne _0207e01c + ldr r0, [r5, #0x144] + bl func_ov00_0209c530 + ldr r1, _0207e058 ; =data_027e0e58 + ldrh r2, [r0, #0x10] + ldr r0, [r1] + strh r2, [r0, #0x22] +_0207e01c: + ldr r0, [r5, #0x144] + bl func_ov00_0209c530 + mov r1, r0 + ldr r0, _0207e05c ; =data_027e0f8c + add r1, r1, #0x12 + bl func_ov00_020a3de0 + ldr r0, [r5, #0x144] + bl func_ov00_0209c788 + add sp, sp, #0x10 + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207dea0Eb +_0207e044: .word data_027e0f78 +_0207e048: .word data_027e0f88 +_0207e04c: .word data_ov00_020ecde4 +_0207e050: .word data_ov00_020ee0a0 +_0207e054: .word data_027e0d38 +_0207e058: .word data_027e0e58 +_0207e05c: .word data_027e0f8c + + .global _ZN7MapBase8vfunc_b0Eii + arm_func_start _ZN7MapBase8vfunc_b0Eii +_ZN7MapBase8vfunc_b0Eii: ; 0x0207e060 + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r0, [r5, #0x13c] + mov r4, r2 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + bl func_020196fc + ldr r0, [r5, #0x13c] + mov r1, r4 + bl func_020196bc + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase8vfunc_b0Eii + + .global _ZN7MapBase18func_ov00_0207e08cEii + arm_func_start _ZN7MapBase18func_ov00_0207e08cEii +_ZN7MapBase18func_ov00_0207e08cEii: ; 0x0207e08c + stmdb sp!, {r3, lr} + ldr r3, [r0, #0x13c] + cmp r3, #0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r0, [r3, #8] + adds lr, r3, r0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldrh r0, [lr, #0xa] + add ip, lr, #4 + cmp lr, #0 + ldrh r3, [ip, r0] + add r0, ip, r0 + mla r0, r3, r2, r0 + ldr r0, [r0, #4] + add r3, lr, r0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r2, [r3, #0x14] + mov r0, #1 + str r2, [r1] + ldrh r2, [r3, #0x1c] + strh r2, [r1, #4] + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207e08cEii + + .global _ZN7MapBase18func_ov00_0207e0f0Ei + arm_func_start _ZN7MapBase18func_ov00_0207e0f0Ei +_ZN7MapBase18func_ov00_0207e0f0Ei: ; 0x0207e0f0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r2, [r10, #0x13c] + str r1, [sp] + cmp r2, #0 + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r0, [r2, #8] + adds r0, r2, r0 + str r0, [sp, #4] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrh r1, [r0] + adds r0, r0, r1 + str r0, [sp, #0xc] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrb r1, [r0, #1] + mov r0, #0 + str r0, [sp, #8] + cmp r1, #0 + bls _0207e280 + mov r7, r0 +_0207e15c: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0xc] + ldrh r3, [r0, #6] + mov r0, r10 + ldr r2, [r0] + add r3, r1, r3 + ldrh r1, [r3, #2] + ldr r2, [r2, #0xb4] + add r4, r3, r1 + blx r2 + add r0, r0, #0x3c + add r1, r4, r7 + bl func_0201e24c + cmp r0, #0 + beq _0207e260 + ldr r0, [sp, #0xc] + mov r5, #0 + ldrh r2, [r0, #6] + ldrh r1, [r0, r2] + add r0, r0, r2 + add r2, r0, #4 + ldr r0, [sp, #8] + mul r0, r1, r0 + add r11, r2, r0 + ldrb r1, [r11, #2] + ldrh r0, [r2, r0] + cmp r1, #0 + str r0, [sp, #0x10] + ble _0207e260 +_0207e1d0: + ldr r1, [sp, #4] + ldr r0, [sp, #0x10] + ldrb r0, [r1, r0] + add r1, r0, r5 + ldr r0, [sp] + cmp r0, r1 + bne _0207e250 + mov r0, r10 + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + add r1, r0, #0x3c + ldrb r9, [r1, #1] + mov r6, #0 + cmp r9, #0 + ble _0207e250 + ldrh r0, [r1, #6] + add r8, r1, r0 +_0207e218: + ldrh r0, [r8, #2] + add r1, r4, r7 + add r0, r8, r0 + add r0, r0, r6, lsl #4 + bl strcmp + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, r6 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r0, r6, #1 + mov r0, r0, lsl #0x10 + cmp r9, r0, lsr #16 + mov r6, r0, lsr #0x10 + bgt _0207e218 +_0207e250: + ldrb r0, [r11, #2] + add r5, r5, #1 + cmp r5, r0 + blt _0207e1d0 +_0207e260: + ldr r0, [sp, #0xc] + add r7, r7, #0x10 + ldrb r1, [r0, #1] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r1 + blo _0207e15c +_0207e280: + mvn r0, #0 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_0207e0f0Ei + + .global _ZN7MapBase18func_ov00_0207e28cEi + arm_func_start _ZN7MapBase18func_ov00_0207e28cEi +_ZN7MapBase18func_ov00_0207e28cEi: ; 0x0207e28c + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x14 + mov r10, r0 + ldr r2, [r10, #0x13c] + str r1, [sp] + cmp r2, #0 + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r0, [r2, #8] + adds r0, r2, r0 + str r0, [sp, #4] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrh r1, [r0, #2] + adds r0, r0, r1 + str r0, [sp, #0xc] + addeq sp, sp, #0x14 + mvneq r0, #0 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldrb r1, [r0, #1] + mov r0, #0 + str r0, [sp, #8] + cmp r1, #0 + bls _0207e438 + mov r7, r0 +_0207e2f8: + ldr r0, [sp, #0xc] + ldr r1, [sp, #0xc] + ldrh r3, [r0, #6] + mov r0, r10 + ldr r2, [r0] + add r3, r1, r3 + ldrh r1, [r3, #2] + ldr r2, [r2, #0xb4] + add r4, r3, r1 + blx r2 + ldrh r2, [r0, #0x34] + add r1, r4, r7 + add r0, r0, r2 + bl func_0201e24c + cmp r0, #0 + beq _0207e418 + ldr r0, [sp, #0xc] + mov r5, #0 + ldrh r2, [r0, #6] + ldrh r1, [r0, r2] + add r0, r0, r2 + add r2, r0, #4 + ldr r0, [sp, #8] + mul r0, r1, r0 + add r11, r2, r0 + ldrb r1, [r11, #2] + ldrh r0, [r2, r0] + cmp r1, #0 + str r0, [sp, #0x10] + ble _0207e418 +_0207e370: + ldr r1, [sp, #4] + ldr r0, [sp, #0x10] + ldrb r0, [r1, r0] + add r1, r0, r5 + ldr r0, [sp] + cmp r0, r1 + bne _0207e408 + mov r0, r10 + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + mov r8, r0 + mov r0, r10 + ldr r1, [r0] + ldr r1, [r1, #0xb4] + blx r1 + ldrh r0, [r0, #0x34] + mov r6, #0 + add r1, r8, r0 + ldrb r9, [r1, #1] + cmp r9, #0 + ble _0207e408 + ldrh r0, [r1, #6] + add r8, r1, r0 +_0207e3d0: + ldrh r0, [r8, #2] + add r1, r4, r7 + add r0, r8, r0 + add r0, r0, r6, lsl #4 + bl strcmp + cmp r0, #0 + addeq sp, sp, #0x14 + moveq r0, r6 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r0, r6, #1 + mov r0, r0, lsl #0x10 + cmp r9, r0, lsr #16 + mov r6, r0, lsr #0x10 + bgt _0207e3d0 +_0207e408: + ldrb r0, [r11, #2] + add r5, r5, #1 + cmp r5, r0 + blt _0207e370 +_0207e418: + ldr r0, [sp, #0xc] + add r7, r7, #0x10 + ldrb r1, [r0, #1] + ldr r0, [sp, #8] + add r0, r0, #1 + str r0, [sp, #8] + cmp r0, r1 + blo _0207e2f8 +_0207e438: + mvn r0, #0 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_0207e28cEi + + .global _ZN7MapBase8vfunc_b4Ev + arm_func_start _ZN7MapBase8vfunc_b4Ev +_ZN7MapBase8vfunc_b4Ev: ; 0x0207e444 + stmdb sp!, {r3, lr} + ldr r0, _0207e468 ; =data_ov00_020ec81c + ldr r0, [r0, #4] + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr r0, [r0, #8] + bl func_0201e4cc + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_b4Ev +_0207e468: .word data_ov00_020ec81c + + .global _ZN7MapBase8vfunc_48Ev + arm_func_start _ZN7MapBase8vfunc_48Ev +_ZN7MapBase8vfunc_48Ev: ; 0x0207e46c + stmdb sp!, {r4, lr} + mov r4, r0 + bl _ZN7MapBase16Trigger_vfunc_08Ev + ldr r0, [r4, #0x144] + mov r1, #0 + bl func_ov00_0209c8e4 + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase8vfunc_48Ev + + .global _ZN7MapBase8vfunc_50Ev + arm_func_start _ZN7MapBase8vfunc_50Ev +_ZN7MapBase8vfunc_50Ev: ; 0x0207e488 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_50Ev + + .global _ZN7MapBase8vfunc_54Ev + arm_func_start _ZN7MapBase8vfunc_54Ev +_ZN7MapBase8vfunc_54Ev: ; 0x0207e490 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_54Ev + + .global _ZN7MapBase8vfunc_58Ev + arm_func_start _ZN7MapBase8vfunc_58Ev +_ZN7MapBase8vfunc_58Ev: ; 0x0207e498 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_58Ev + + .global _ZN7MapBase8vfunc_5cEv + arm_func_start _ZN7MapBase8vfunc_5cEv +_ZN7MapBase8vfunc_5cEv: ; 0x0207e4a0 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_5cEv + + .global _ZN7MapBase8vfunc_60Ev + arm_func_start _ZN7MapBase8vfunc_60Ev +_ZN7MapBase8vfunc_60Ev: ; 0x0207e4a8 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_60Ev + + .global _ZN7MapBase8vfunc_64Ev + arm_func_start _ZN7MapBase8vfunc_64Ev +_ZN7MapBase8vfunc_64Ev: ; 0x0207e4b0 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_64Ev + + .global _ZN7MapBase8vfunc_68Eii + arm_func_start _ZN7MapBase8vfunc_68Eii +_ZN7MapBase8vfunc_68Eii: ; 0x0207e4b8 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x7c + ldr r3, _0207e92c ; =gMapManager + mov r9, r1 + ldr r1, [r3] + mov r8, r0 + mov r4, r2 + add r0, sp, #8 + mov r2, r9 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x54] + blx r2 + cmp r0, #0x1e + bgt _0207e570 + bge _0207e724 + cmp r0, #0x17 + bgt _0207e554 + bge _0207e724 + cmp r0, #9 + bgt _0207e548 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _0207e63c +_0207e520: ; jump table + b _0207e63c ; case 0 + b _0207e724 ; case 1 + b _0207e724 ; case 2 + b _0207e724 ; case 3 + b _0207e724 ; case 4 + b _0207e63c ; case 5 + b _0207e63c ; case 6 + b _0207e63c ; case 7 + b _0207e724 ; case 8 + b _0207e724 ; case 9 +_0207e548: + cmp r0, #0x16 + beq _0207e724 + b _0207e63c +_0207e554: + cmp r0, #0x19 + bgt _0207e564 + beq _0207e724 + b _0207e63c +_0207e564: + cmp r0, #0x1d + beq _0207e724 + b _0207e63c +_0207e570: + cmp r0, #0x35 + bgt _0207e5c8 + bge _0207e5e4 + cmp r0, #0x29 + bgt _0207e5bc + subs r1, r0, #0x1f + addpl pc, pc, r1, lsl #2 + b _0207e63c +_0207e590: ; jump table + b _0207e724 ; case 0 + b _0207e63c ; case 1 + b _0207e63c ; case 2 + b _0207e63c ; case 3 + b _0207e63c ; case 4 + b _0207e63c ; case 5 + b _0207e63c ; case 6 + b _0207e63c ; case 7 + b _0207e724 ; case 8 + b _0207e724 ; case 9 + b _0207e724 ; case 10 +_0207e5bc: + cmp r0, #0x30 + beq _0207e724 + b _0207e63c +_0207e5c8: + cmp r0, #0x40 + bgt _0207e5d8 + beq _0207e724 + b _0207e63c +_0207e5d8: + cmp r0, #0x50 + beq _0207e724 + b _0207e63c +_0207e5e4: + cmp r4, #0 + beq _0207e724 + add r2, sp, #0x14 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f104Eii + cmp r0, #0 + ldrne r0, [sp, #0x14] + addne sp, sp, #0x7c + ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r2, sp, #0x14 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi + cmp r0, #0 + beq _0207e724 + ldr r0, [sp, #0x14] + ldr r1, [r9, #4] + cmp r1, r0 + blt _0207e724 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e63c: + ldrb r0, [r8, #0xe] + cmp r0, #0 + bne _0207e724 + cmp r4, #0 + bne _0207e694 + mov r0, r8 + ldr r3, [r0] + add r1, sp, #8 + ldr r3, [r3, #0x58] + mov r2, #5 + blx r3 + cmp r0, #0 + ldreqb r0, [r8, #8] + cmpeq r0, #0 + bne _0207e724 + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x60] + blx r2 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e694: + add r2, sp, #0x10 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f104Eii + cmp r0, #0 + ldrne r0, [sp, #0x10] + addne sp, sp, #0x7c + ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + add r2, sp, #0x10 + mov r0, r8 + mov r1, r9 + bl _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi + cmp r0, #0 + beq _0207e6e0 + ldr r0, [sp, #0x10] + ldr r1, [r9, #4] + cmp r1, r0 + addge sp, sp, #0x7c + ldmgeia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e6e0: + mov r0, r8 + ldr r3, [r0] + add r1, sp, #8 + ldr r3, [r3, #0x58] + mov r2, #5 + blx r3 + cmp r0, #0 + ldreqb r0, [r8, #8] + cmpeq r0, #0 + bne _0207e724 + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x60] + blx r2 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e724: + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, _0207e930 ; =data_027e0f6c + ldr r3, _0207e934 ; =data_ov00_020ec824 + ldr r0, [r0] + mov r1, r9 + mov r2, #2 + bl func_01fff084 + ldr r4, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev + mov r5, r0 + ldr r3, _0207e93c ; =_ZN7MapBase18func_ov00_0207e96cEv + add r0, sp, #0x48 + mov r1, #3 + mov r2, #0x10 + str r4, [sp] + mov r6, #0x2000 + bl func_0204f614 + mov r7, #0 + sub r0, r7, #0x10000 + add r4, sp, #0x18 + str r7, [sp, #0x24] + str r7, [sp, #0x2c] + str r0, [sp, #0x28] + ldmia r9, {r0, r1, r2} + stmia r4, {r0, r1, r2} + cmp r5, #0 + ble _0207e8a0 + ldr r10, _0207e934 ; =data_ov00_020ec824 + ldr r9, _0207e930 ; =data_027e0f6c + mov r11, #0x4c +_0207e7a4: + mov r0, r7, lsl #0x1 + ldrh r1, [r10, r0] + ldr r2, [r9] + add r0, sp, #0x30 + ldr r3, [r2, #0x20] + mul r2, r1, r11 + add ip, r3, r2 + ldrh lr, [r3, r2] + ldrh r3, [ip, #2] + mov r1, r4 + add r2, sp, #0x24 + strh r3, [sp, #0x32] + strh lr, [sp, #0x30] + ldrh lr, [ip, #4] + add r3, sp, #0xc + strh lr, [sp, #0x34] + ldrh lr, [ip, #6] + strh lr, [sp, #0x36] + ldr lr, [ip, #8] + str lr, [sp, #0x38] + ldr lr, [ip, #0xc] + str lr, [sp, #0x3c] + ldr lr, [ip, #0x10] + str lr, [sp, #0x40] + ldr lr, [ip, #0x14] + str lr, [sp, #0x44] + ldr lr, [ip, #0x18] + str lr, [sp, #0x48] + ldr lr, [ip, #0x1c] + str lr, [sp, #0x4c] + ldr lr, [ip, #0x20] + str lr, [sp, #0x50] + ldr lr, [ip, #0x24] + str lr, [sp, #0x54] + ldr lr, [ip, #0x28] + str lr, [sp, #0x58] + ldr lr, [ip, #0x2c] + str lr, [sp, #0x5c] + ldr lr, [ip, #0x30] + str lr, [sp, #0x60] + ldr lr, [ip, #0x34] + str lr, [sp, #0x64] + ldr lr, [ip, #0x38] + str lr, [sp, #0x68] + ldr lr, [ip, #0x3c] + str lr, [sp, #0x6c] + ldr lr, [ip, #0x40] + str lr, [sp, #0x70] + ldr lr, [ip, #0x44] + str lr, [sp, #0x74] + ldr ip, [ip, #0x48] + str ip, [sp, #0x78] + bl func_01ffe904 + cmp r0, #0 + beq _0207e88c + ldr r0, [sp, #0xc] + cmp r0, r6 + movlt r6, r0 +_0207e88c: + add r0, r7, #1 + mov r0, r0, lsl #0x10 + cmp r5, r0, lsr #16 + mov r7, r0, lsr #0x10 + bgt _0207e7a4 +_0207e8a0: + cmp r6, #0x1000 + bgt _0207e8f4 + mvn r1, #0 + mov r0, r1, lsl #0x10 + umull r3, r2, r6, r0 + mla r2, r6, r1, r2 + mov r1, r6, asr #0x1f + mla r2, r1, r0, r2 + adds r3, r3, #0x800 + adc r1, r2, #0 + mov r4, r3, lsr #0xc + orr r4, r4, r1, lsl #20 + ldr r3, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r5, [sp, #0x1c] + add r0, sp, #0x48 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + add sp, sp, #0x7c + add r0, r5, r4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207e8f4: + mov r0, r8 + ldr r2, [r0] + add r1, sp, #8 + ldr r2, [r2, #0x60] + blx r2 + mov r4, r0 + ldr r3, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x48 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + mov r0, r4 + add sp, sp, #0x7c + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_68Eii +_0207e92c: .word gMapManager +_0207e930: .word data_027e0f6c +_0207e934: .word data_ov00_020ec824 +_0207e938: .word _ZN7MapBase18func_ov00_0207e968Ev +_0207e93c: .word _ZN7MapBase18func_ov00_0207e96cEv + + .global _ZN7MapBase18func_ov00_0207e940EPc + arm_func_start _ZN7MapBase18func_ov00_0207e940EPc +_ZN7MapBase18func_ov00_0207e940EPc: ; 0x0207e940 + stmdb sp!, {r4, lr} + mov r4, r0 + ldr r3, _0207e964 ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, r4, #0x18 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + mov r0, r4 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207e940EPc +_0207e964: .word _ZN7MapBase18func_ov00_0207e968Ev + + .global _ZN7MapBase18func_ov00_0207e968Ev + arm_func_start _ZN7MapBase18func_ov00_0207e968Ev +_ZN7MapBase18func_ov00_0207e968Ev: ; 0x0207e968 + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207e968Ev + + .global _ZN7MapBase18func_ov00_0207e96cEv + arm_func_start _ZN7MapBase18func_ov00_0207e96cEv +_ZN7MapBase18func_ov00_0207e96cEv: ; 0x0207e96c + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207e96cEv + + .global _ZN7MapBase8vfunc_6cEiii + arm_func_start _ZN7MapBase8vfunc_6cEiii +_ZN7MapBase8vfunc_6cEiii: ; 0x0207e970 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0xc4 + ldr r4, _0207ee00 ; =gMapManager + mov r9, r1 + ldr r1, [r4] + mov r8, r0 + str r2, [sp, #8] + add r0, sp, #0xc + mov r2, r9 + mov r7, r3 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r8 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x54] + blx r2 + cmp r0, #0x1e + bgt _0207ea2c + bge _0207eb04 + cmp r0, #0x17 + bgt _0207ea10 + bge _0207eb04 + cmp r0, #9 + bgt _0207ea04 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _0207ea9c +_0207e9dc: ; jump table + b _0207ea9c ; case 0 + b _0207eb04 ; case 1 + b _0207eb04 ; case 2 + b _0207eb04 ; case 3 + b _0207eb04 ; case 4 + b _0207ea9c ; case 5 + b _0207ea9c ; case 6 + b _0207ea9c ; case 7 + b _0207eb04 ; case 8 + b _0207eb04 ; case 9 +_0207ea04: + cmp r0, #0x16 + beq _0207eb04 + b _0207ea9c +_0207ea10: + cmp r0, #0x19 + bgt _0207ea20 + beq _0207eb04 + b _0207ea9c +_0207ea20: + cmp r0, #0x1d + beq _0207eb04 + b _0207ea9c +_0207ea2c: + cmp r0, #0x35 + bgt _0207ea84 + bge _0207eb04 + cmp r0, #0x29 + bgt _0207ea78 + subs r1, r0, #0x1f + addpl pc, pc, r1, lsl #2 + b _0207ea9c +_0207ea4c: ; jump table + b _0207eb04 ; case 0 + b _0207ea9c ; case 1 + b _0207ea9c ; case 2 + b _0207ea9c ; case 3 + b _0207ea9c ; case 4 + b _0207ea9c ; case 5 + b _0207ea9c ; case 6 + b _0207ea9c ; case 7 + b _0207eb04 ; case 8 + b _0207eb04 ; case 9 + b _0207eb04 ; case 10 +_0207ea78: + cmp r0, #0x30 + beq _0207eb04 + b _0207ea9c +_0207ea84: + cmp r0, #0x40 + bgt _0207ea94 + beq _0207eb04 + b _0207ea9c +_0207ea94: + cmp r0, #0x50 + beq _0207eb04 +_0207ea9c: + ldrb r0, [r8, #0xe] + cmp r0, #0 + bne _0207eb04 + mov r0, r8 + ldr r3, [r0] + add r1, sp, #0xc + ldr r3, [r3, #0x58] + mov r2, #5 + blx r3 + cmp r0, #0 + ldreqb r0, [r8, #8] + cmpeq r0, #0 + bne _0207eb04 + mov r0, r8 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x60] + blx r2 + ldr r1, [sp, #8] + add sp, sp, #0xc4 + str r0, [r1] + mov r1, #0 + str r1, [r7] + mov r0, #0x1000 + stmib r7, {r0, r1} + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} +_0207eb04: + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, _0207ee04 ; =data_027e0f6c + ldr r3, _0207ee08 ; =data_ov00_020ec864 + ldr r0, [r0] + mov r1, r9 + mov r2, #2 + bl func_01fff084 + ldr r5, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + mov r4, r0 + str r5, [sp] + ldr r3, _0207ee10 ; =_ZN7MapBase18func_ov00_0207e96cEv + add r0, sp, #0x90 + mov r1, #3 + mov r2, #0x10 + mov r5, #0x2000 + bl func_0204f614 + ldr r1, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + ldr r3, _0207ee10 ; =_ZN7MapBase18func_ov00_0207e96cEv + str r1, [sp] + add r0, sp, #0x44 + mov r1, #3 + mov r2, #0x10 + bl func_0204f614 + mov r6, #0 + sub r0, r6, #0x10000 + str r6, [sp, #0x20] + str r6, [sp, #0x28] + str r0, [sp, #0x24] + add r3, sp, #0x14 + ldmia r9, {r0, r1, r2} + cmp r4, #0 + stmia r3, {r0, r1, r2} + ble _0207ed48 + ldr r10, _0207ee08 ; =data_ov00_020ec864 + ldr r9, _0207ee04 ; =data_027e0f6c + mov r11, #0x4c +_0207eba0: + mov r0, r6, lsl #0x1 + ldrh r1, [r10, r0] + ldr r2, [r9] + add r0, sp, #0x78 + ldr r3, [r2, #0x20] + mul r2, r1, r11 + add ip, r3, r2 + ldrh lr, [r3, r2] + ldrh r3, [ip, #2] + add r1, sp, #0x14 + add r2, sp, #0x20 + strh r3, [sp, #0x7a] + strh lr, [sp, #0x78] + ldrh lr, [ip, #4] + add r3, sp, #0x10 + strh lr, [sp, #0x7c] + ldrh lr, [ip, #6] + strh lr, [sp, #0x7e] + ldr lr, [ip, #8] + str lr, [sp, #0x80] + ldr lr, [ip, #0xc] + str lr, [sp, #0x84] + ldr lr, [ip, #0x10] + str lr, [sp, #0x88] + ldr lr, [ip, #0x14] + str lr, [sp, #0x8c] + ldr lr, [ip, #0x18] + str lr, [sp, #0x90] + ldr lr, [ip, #0x1c] + str lr, [sp, #0x94] + ldr lr, [ip, #0x20] + str lr, [sp, #0x98] + ldr lr, [ip, #0x24] + str lr, [sp, #0x9c] + ldr lr, [ip, #0x28] + str lr, [sp, #0xa0] + ldr lr, [ip, #0x2c] + str lr, [sp, #0xa4] + ldr lr, [ip, #0x30] + str lr, [sp, #0xa8] + ldr lr, [ip, #0x34] + str lr, [sp, #0xac] + ldr lr, [ip, #0x38] + str lr, [sp, #0xb0] + ldr lr, [ip, #0x3c] + str lr, [sp, #0xb4] + ldr lr, [ip, #0x40] + str lr, [sp, #0xb8] + ldr lr, [ip, #0x44] + str lr, [sp, #0xbc] + ldr ip, [ip, #0x48] + str ip, [sp, #0xc0] + bl func_01ffe904 + cmp r0, #0 + beq _0207ed34 + ldr r1, [sp, #0x10] + cmp r1, r5 + bge _0207ed34 + ldrh r0, [sp, #0x78] + mov r5, r1 + ldrh r1, [sp, #0x7a] + strh r0, [sp, #0x2c] + ldrh r0, [sp, #0x7c] + strh r1, [sp, #0x2e] + ldrh r1, [sp, #0x7e] + strh r0, [sp, #0x30] + ldr r0, [sp, #0x80] + strh r1, [sp, #0x32] + str r0, [sp, #0x34] + ldr r1, [sp, #0x84] + ldr r0, [sp, #0x88] + str r1, [sp, #0x38] + str r0, [sp, #0x3c] + ldr r1, [sp, #0x8c] + ldr r0, [sp, #0x90] + str r1, [sp, #0x40] + str r0, [sp, #0x44] + ldr r1, [sp, #0x94] + ldr r0, [sp, #0x98] + str r1, [sp, #0x48] + str r0, [sp, #0x4c] + ldr r1, [sp, #0x9c] + ldr r0, [sp, #0xa0] + str r1, [sp, #0x50] + str r0, [sp, #0x54] + ldr r1, [sp, #0xa4] + ldr r0, [sp, #0xa8] + str r1, [sp, #0x58] + str r0, [sp, #0x5c] + ldr r1, [sp, #0xac] + ldr r0, [sp, #0xb0] + str r1, [sp, #0x60] + str r0, [sp, #0x64] + ldr r1, [sp, #0xb4] + ldr r0, [sp, #0xb8] + str r1, [sp, #0x68] + str r0, [sp, #0x6c] + ldr r1, [sp, #0xbc] + ldr r0, [sp, #0xc0] + str r1, [sp, #0x70] + str r0, [sp, #0x74] +_0207ed34: + add r0, r6, #1 + mov r0, r0, lsl #0x10 + cmp r4, r0, lsr #16 + mov r6, r0, lsr #0x10 + bgt _0207eba0 +_0207ed48: + cmp r5, #0x1000 + bgt _0207eda4 + mvn r1, #0 + mov r0, r1, lsl #0x10 + umull r3, r2, r5, r0 + mla r2, r5, r1, r2 + ldr r4, [sp, #0x34] + mov r1, r5, asr #0x1f + str r4, [r7] + ldr r4, [sp, #0x38] + mla r2, r1, r0, r2 + str r4, [r7, #4] + ldr r1, [sp, #0x3c] + adds r3, r3, #0x800 + str r1, [r7, #8] + adc r0, r2, #0 + mov r1, r3, lsr #0xc + orr r1, r1, r0, lsl #20 + ldr r2, [sp, #0x18] + ldr r0, [sp, #8] + add r1, r2, r1 + str r1, [r0] + b _0207edd0 +_0207eda4: + mov r0, r8 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x60] + blx r2 + ldr r1, [sp, #8] + str r0, [r1] + mov r1, #0 + str r1, [r7] + mov r0, #0x1000 + stmib r7, {r0, r1} +_0207edd0: + ldr r3, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x44 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + ldr r3, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x90 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + add sp, sp, #0xc4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_6cEiii +_0207ee00: .word gMapManager +_0207ee04: .word data_027e0f6c +_0207ee08: .word data_ov00_020ec864 +_0207ee0c: .word _ZN7MapBase18func_ov00_0207e968Ev +_0207ee10: .word _ZN7MapBase18func_ov00_0207e96cEv + + .global _ZN7MapBase8vfunc_70EP5Vec3p + arm_func_start _ZN7MapBase8vfunc_70EP5Vec3p +_ZN7MapBase8vfunc_70EP5Vec3p: ; 0x0207ee14 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x74 + ldr r0, _0207efdc ; =gMapManager + mov r9, r1 + ldr r1, [r0] + add r0, sp, #8 + mov r2, r9 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, #0x20 + str r0, [sp] + mov r1, #0 + str r1, [sp, #4] + ldr r0, _0207efe0 ; =data_027e0f6c + ldr r3, _0207efe4 ; =data_ov00_020ec8a4 + ldr r0, [r0] + mov r1, r9 + mov r2, #2 + bl func_01fff084 + ldr r1, _0207efe8 ; =_ZN7MapBase18func_ov00_0207e968Ev + mov r5, r0 + str r1, [sp] + ldr r3, _0207efec ; =_ZN7MapBase18func_ov00_0207e96cEv + add r0, sp, #0x40 + mov r1, #3 + mov r2, #0x10 + mov r6, #0x2000 + ldr r7, _0207eff0 ; =0x0000ffff + bl func_0204f614 + mov r8, #0 + sub r0, r8, #0x10000 + str r8, [sp, #0x1c] + str r8, [sp, #0x24] + str r0, [sp, #0x20] + add r4, sp, #0x10 + ldmia r9, {r0, r1, r2} + cmp r5, #0 + stmia r4, {r0, r1, r2} + ble _0207efbc + ldr r10, _0207efe4 ; =data_ov00_020ec8a4 + ldr r9, _0207efe0 ; =data_027e0f6c + mov r11, #0x4c +_0207eeb8: + mov r0, r8, lsl #0x1 + ldrh r1, [r10, r0] + ldr r2, [r9] + add r0, sp, #0x28 + ldr r3, [r2, #0x20] + mul r2, r1, r11 + add ip, r3, r2 + ldrh lr, [r3, r2] + ldrh r3, [ip, #2] + mov r1, r4 + add r2, sp, #0x1c + strh r3, [sp, #0x2a] + strh lr, [sp, #0x28] + ldrh lr, [ip, #4] + add r3, sp, #0xc + strh lr, [sp, #0x2c] + ldrh lr, [ip, #6] + strh lr, [sp, #0x2e] + ldr lr, [ip, #8] + str lr, [sp, #0x30] + ldr lr, [ip, #0xc] + str lr, [sp, #0x34] + ldr lr, [ip, #0x10] + str lr, [sp, #0x38] + ldr lr, [ip, #0x14] + str lr, [sp, #0x3c] + ldr lr, [ip, #0x18] + str lr, [sp, #0x40] + ldr lr, [ip, #0x1c] + str lr, [sp, #0x44] + ldr lr, [ip, #0x20] + str lr, [sp, #0x48] + ldr lr, [ip, #0x24] + str lr, [sp, #0x4c] + ldr lr, [ip, #0x28] + str lr, [sp, #0x50] + ldr lr, [ip, #0x2c] + str lr, [sp, #0x54] + ldr lr, [ip, #0x30] + str lr, [sp, #0x58] + ldr lr, [ip, #0x34] + str lr, [sp, #0x5c] + ldr lr, [ip, #0x38] + str lr, [sp, #0x60] + ldr lr, [ip, #0x3c] + str lr, [sp, #0x64] + ldr lr, [ip, #0x40] + str lr, [sp, #0x68] + ldr lr, [ip, #0x44] + str lr, [sp, #0x6c] + ldr ip, [ip, #0x48] + str ip, [sp, #0x70] + bl func_01ffe904 + cmp r0, #0 + beq _0207efa8 + ldr r1, [sp, #0xc] + cmp r1, r6 + movlt r0, r8, lsl #0x1 + ldrlth r7, [r10, r0] + movlt r6, r1 +_0207efa8: + add r0, r8, #1 + mov r0, r0, lsl #0x10 + cmp r5, r0, lsr #16 + mov r8, r0, lsr #0x10 + bgt _0207eeb8 +_0207efbc: + ldr r3, _0207efe8 ; =_ZN7MapBase18func_ov00_0207e968Ev + add r0, sp, #0x40 + mov r1, #3 + mov r2, #0x10 + bl func_0204f754 + mov r0, r7 + add sp, sp, #0x74 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_70EP5Vec3p +_0207efdc: .word gMapManager +_0207efe0: .word data_027e0f6c +_0207efe4: .word data_ov00_020ec8a4 +_0207efe8: .word _ZN7MapBase18func_ov00_0207e968Ev +_0207efec: .word _ZN7MapBase18func_ov00_0207e96cEv +_0207eff0: .word 0x0000ffff + + .global _ZN7MapBase8vfunc_74EP5Vec3p + arm_func_start _ZN7MapBase8vfunc_74EP5Vec3p +_ZN7MapBase8vfunc_74EP5Vec3p: ; 0x0207eff4 + stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x24 + ldr r0, _0207f0f4 ; =gMapManager + mov r8, r1 + ldr r1, [r0] + add r0, sp, #8 + mov r2, r8 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r4, sp, #0xc + ldmia r8, {r0, r1, r2} + stmia r4, {r0, r1, r2} + add r3, sp, #0x18 + ldmia r8, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r4 + mov r1, #0x800 + bl func_ov00_0208ee00 + mov r0, #0x20 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _0207f0f8 ; =data_027e0f6c + ldr r3, _0207f0fc ; =data_ov00_020ec8e4 + ldr r0, [r0] + mov r1, r4 + mov r2, #8 + bl func_01fff264 + mov r5, r0 + cmp r5, #0 + mov r6, #0 + ble _0207f0e8 + ldr r4, _0207f0fc ; =data_ov00_020ec8e4 + ldr r9, _0207f0f8 ; =data_027e0f6c +_0207f078: + mov r0, r6, lsl #0x1 + ldr r1, [r9] + ldrh r0, [r4, r0] + ldr r1, [r1, #0x40] + ldr r7, [r1, r0, lsl #2] + cmp r7, #0 + ldrneb r0, [r7, #4] + cmpne r0, #0 + ldrneb r0, [r7, #5] + cmpne r0, #0 + beq _0207f0dc + ldr r0, [r7, #0xc] + ands r0, r0, #0x1f + cmpne r0, #1 + cmpne r0, #2 + beq _0207f0dc + mov r0, r7 + ldr r2, [r0] + mov r1, r8 + ldr r2, [r2, #0x48] + blx r2 + cmp r0, #0 + addne sp, sp, #0x24 + movne r0, r7 + ldmneia sp!, {r4, r5, r6, r7, r8, r9, pc} +_0207f0dc: + add r6, r6, #1 + cmp r6, r5 + blt _0207f078 +_0207f0e8: + mov r0, #0 + add sp, sp, #0x24 + ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_74EP5Vec3p +_0207f0f4: .word gMapManager +_0207f0f8: .word data_027e0f6c +_0207f0fc: .word data_ov00_020ec8e4 + + .global _ZN7MapBase18func_ov00_0207f100Ev + arm_func_start _ZN7MapBase18func_ov00_0207f100Ev +_ZN7MapBase18func_ov00_0207f100Ev: ; 0x0207f100 + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f100Ev + + .global _ZN7MapBase18func_ov00_0207f104Eii + arm_func_start _ZN7MapBase18func_ov00_0207f104Eii +_ZN7MapBase18func_ov00_0207f104Eii: ; 0x0207f104 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + ldr r3, _0207f1f0 ; =gMapManager + mov r5, r1 + ldr r1, [r3] + mov r6, r0 + mov r4, r2 + add r0, sp, #0 + mov r2, r5 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + mov r0, r6 + ldr r2, [r0] + add r1, sp, #0 + ldr r2, [r2, #0x78] + blx r2 + movs r7, r0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldr r1, [r0] + ldr r1, [r1, #0x58] + blx r1 + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r7 + ldr r1, [r0] + ldr r1, [r1, #0x54] + blx r1 + cmp r0, #0 + moveq r0, #0 + ldrneb r0, [r0, #5] + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r7 + mov r1, r5 + bl func_ov00_0208b79c + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r7 + ldr r1, [r0] + ldr r1, [r1, #0x54] + blx r1 + cmp r0, #0 + moveq r5, #0 + beq _0207f1cc + ldr r1, [r0] + ldr r1, [r1, #0x44] + blx r1 + mov r5, r0 +_0207f1cc: + mov r0, r6 + ldr r2, [r0] + add r1, sp, #0 + ldr r2, [r2, #0x60] + blx r2 + add r0, r0, r5 + str r0, [r4] + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207f104Eii +_0207f1f0: .word gMapManager + + .global _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi + arm_func_start _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi +_ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi: ; 0x0207f1f4 + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, lr} + sub sp, sp, #0x3c + ldr r0, _0207f318 ; =gMapManager + mov r9, r1 + ldr r1, [r0] + mov r8, r2 + add r0, sp, #8 + mov r2, r9 + bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p + add r4, sp, #0x24 + ldmia r9, {r0, r1, r2} + stmia r4, {r0, r1, r2} + add r3, sp, #0x30 + ldmia r9, {r0, r1, r2} + stmia r3, {r0, r1, r2} + mov r0, r4 + mov r1, #0x800 + bl func_ov00_0208ee00 + mov r0, #0x20 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + ldr r0, _0207f31c ; =data_027e0f6c + ldr r3, _0207f320 ; =data_ov00_020ec924 + ldr r0, [r0] + mov r1, r4 + mov r2, #8 + bl func_01fff264 + mov r5, r0 + cmp r5, #0 + mov r6, #0 + ble _0207f30c + ldr r4, _0207f320 ; =data_ov00_020ec924 + ldr r10, _0207f31c ; =data_027e0f6c +_0207f27c: + mov r0, r6, lsl #0x1 + ldr r1, [r10] + ldrh r0, [r4, r0] + ldr r1, [r1, #0x40] + ldr r7, [r1, r0, lsl #2] + cmp r7, #0 + ldrneb r0, [r7, #4] + cmpne r0, #0 + ldrneb r0, [r7, #5] + cmpne r0, #0 + beq _0207f300 + ldr r0, [r7, #0xc] + ands r0, r0, #0x1f + cmpne r0, #1 + cmpne r0, #2 + beq _0207f300 + mov r0, r7 + ldr r2, [r0] + mov r1, r9 + ldr r2, [r2, #0x48] + blx r2 + cmp r0, #0 + beq _0207f300 + mov r0, r7 + ldr r2, [r0] + add r1, sp, #0xc + ldr r2, [r2, #0x2c] + blx r2 + ldr r1, [sp, #0x1c] + add sp, sp, #0x3c + mov r0, #1 + str r1, [r8] + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} +_0207f300: + add r6, r6, #1 + cmp r6, r5 + blt _0207f27c +_0207f30c: + mov r0, #0 + add sp, sp, #0x3c + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi +_0207f318: .word gMapManager +_0207f31c: .word data_027e0f6c +_0207f320: .word data_ov00_020ec924 + + .global _ZN7MapBase8vfunc_88Ev + arm_func_start _ZN7MapBase8vfunc_88Ev +_ZN7MapBase8vfunc_88Ev: ; 0x0207f324 + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_88Ev + + .global _ZN7MapBase8vfunc_8cEv + arm_func_start _ZN7MapBase8vfunc_8cEv +_ZN7MapBase8vfunc_8cEv: ; 0x0207f32c + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_8cEv + + .global _ZN7MapBase8vfunc_9cEv + arm_func_start _ZN7MapBase8vfunc_9cEv +_ZN7MapBase8vfunc_9cEv: ; 0x0207f334 + bx lr + arm_func_end _ZN7MapBase8vfunc_9cEv + + .global _ZN7MapBase8vfunc_a0Ev + arm_func_start _ZN7MapBase8vfunc_a0Ev +_ZN7MapBase8vfunc_a0Ev: ; 0x0207f338 + bx lr + arm_func_end _ZN7MapBase8vfunc_a0Ev + + .global _ZN7MapBase8vfunc_a4Ev + arm_func_start _ZN7MapBase8vfunc_a4Ev +_ZN7MapBase8vfunc_a4Ev: ; 0x0207f33c + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_a4Ev + + .global _ZN7MapBase8vfunc_a8Ev + arm_func_start _ZN7MapBase8vfunc_a8Ev +_ZN7MapBase8vfunc_a8Ev: ; 0x0207f344 + bx lr + arm_func_end _ZN7MapBase8vfunc_a8Ev + + .global _ZN7MapBase8vfunc_acEv + arm_func_start _ZN7MapBase8vfunc_acEv +_ZN7MapBase8vfunc_acEv: ; 0x0207f348 + bx lr + arm_func_end _ZN7MapBase8vfunc_acEv + + .global _ZN7MapBase8vfunc_78Ev + arm_func_start _ZN7MapBase8vfunc_78Ev +_ZN7MapBase8vfunc_78Ev: ; 0x0207f34c + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase8vfunc_78Ev + + .global _ZN7MapBase8vfunc_7cEv + arm_func_start _ZN7MapBase8vfunc_7cEv +_ZN7MapBase8vfunc_7cEv: ; 0x0207f354 + mov r0, #1 + bx lr + arm_func_end _ZN7MapBase8vfunc_7cEv + + .global _ZN7MapBase8vfunc_80Ev + arm_func_start _ZN7MapBase8vfunc_80Ev +_ZN7MapBase8vfunc_80Ev: ; 0x0207f35c + mov r0, #1 + bx lr + arm_func_end _ZN7MapBase8vfunc_80Ev + + .global _ZN7MapBase8vfunc_84Ei + arm_func_start _ZN7MapBase8vfunc_84Ei +_ZN7MapBase8vfunc_84Ei: ; 0x0207f364 + stmdb sp!, {r3, lr} + ldrb r3, [r1, #0x15] + ldrb r2, [r1, #0x14] + add r1, sp, #0 + strb r3, [sp, #1] + strb r2, [sp] + ldr r2, [r0] + ldr r2, [r2, #0x80] + blx r2 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase8vfunc_84Ei + + .global _ZN7MapBase18func_ov00_0207f38cEi + arm_func_start _ZN7MapBase18func_ov00_0207f38cEi +_ZN7MapBase18func_ov00_0207f38cEi: ; 0x0207f38c + stmdb sp!, {r4, lr} + ldr r2, [r0] + mov r4, r1 + ldr r2, [r2, #0x84] + blx r2 + cmp r0, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldr r0, _0207f3c0 ; =data_027e0f68 + mov r1, r4 + ldr r0, [r0] + bl func_ov00_0208d820 + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0207f38cEi +_0207f3c0: .word data_027e0f68 + + .global _ZN7MapBase8vfunc_90Eiii + arm_func_start _ZN7MapBase8vfunc_90Eiii +_ZN7MapBase8vfunc_90Eiii: ; 0x0207f3c4 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + ldr r3, [r0] + mov r6, r0 + ldr r3, [r3, #0x54] + mov r5, r1 + mov r4, r2 + blx r3 + mov r7, r0 + cmp r7, r4 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + mov r0, r6 + ldr r3, [r0] + mov r1, r5 + ldr r3, [r3, #0xbc] + mov r2, r4 + blx r3 + mov r0, r6 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x5c] + blx r2 + mov r1, r0 + cmp r4, #0x14 + bne _0207f448 + mov r0, r6 + ldr r3, [r0] + sub r1, r1, #3 + mov r2, r1, lsl #0x18 + ldr r3, [r3, #0xc0] + mov r1, r5 + mov r2, r2, asr #0x18 + blx r3 + b _0207f470 +_0207f448: + cmp r7, #0x14 + bne _0207f470 + mov r0, r6 + ldr r3, [r0] + add r1, r1, #3 + mov r2, r1, lsl #0x18 + ldr r3, [r3, #0xc0] + mov r1, r5 + mov r2, r2, asr #0x18 + blx r3 +_0207f470: + mov r0, r6 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x78] + blx r2 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x44] + blx r2 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase8vfunc_90Eiii + + .global _ZN7MapBase8vfunc_94Ev + arm_func_start _ZN7MapBase8vfunc_94Ev +_ZN7MapBase8vfunc_94Ev: ; 0x0207f4a0 + bx lr + arm_func_end _ZN7MapBase8vfunc_94Ev + + .global _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si + arm_func_start _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si +_ZN7MapBase18func_ov00_0207f4a4EP5Vec2si: ; 0x0207f4a4 + stmdb sp!, {r3, r4, lr} + sub sp, sp, #4 + ldrsh r3, [r1, #2] + ldrsh r4, [r1] + add r3, r3, r3, lsr #31 + add ip, r4, r4, lsr #31 + mov r4, r3, asr #0x1 + mov r3, ip, asr #0x1 + strb r3, [sp] + strb r4, [sp, #1] + ldrsh r4, [r1] + ldrsh ip, [r1, #2] + mov r3, r4, lsr #0x1f + mov lr, ip, lsr #0x1f + rsb r1, r3, r4, lsl #31 + rsb ip, lr, ip, lsl #31 + adds r1, r3, r1, ror #31 + add r3, lr, ip, ror #31 + cmpeq r3, #0 + moveq r2, #0 + beq _0207f524 + cmp r1, #1 + cmpeq r3, #0 + moveq r2, #1 + beq _0207f524 + cmp r1, #1 + cmpeq r3, #1 + moveq r2, #3 + beq _0207f524 + cmp r1, #0 + cmpeq r3, #1 + moveq r2, #2 +_0207f524: + ldr r3, [r0] + add r1, sp, #0 + ldr r3, [r3, #0x58] + blx r3 + add sp, sp, #4 + ldmia sp!, {r3, r4, pc} + arm_func_end _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si + + .global _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + arm_func_start _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p +_ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p: ; 0x0207f53c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + mov r0, #0 + strh r0, [r5] + mov r4, r2 + strh r0, [r5, #2] + ldr r0, [r4] + mov r1, #0x800 + bl Divide + add r0, r0, #0x800 + mov r0, r0, asr #0xc + strh r0, [r5] + ldr r0, [r4, #8] + mov r1, #0x800 + bl Divide + add r0, r0, #0x800 + mov r0, r0, asr #0xc + strh r0, [r5, #2] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p + + .global _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi + arm_func_start _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi +_ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi: ; 0x0207f588 + mov r1, #0 + strh r1, [r0] + strh r1, [r0, #2] + cmp r3, #3 + addls pc, pc, r3, lsl #2 + bx lr +_0207f5a0: ; jump table + b _0207f5b0 ; case 0 + b _0207f5cc ; case 1 + b _0207f5ec ; case 2 + b _0207f60c ; case 3 +_0207f5b0: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + strh r1, [r0, #2] + bx lr +_0207f5cc: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + strh r1, [r0, #2] + bx lr +_0207f5ec: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0, #2] + bx lr +_0207f60c: + ldrb r1, [r2] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0] + ldrb r1, [r2, #1] + mov r1, r1, lsl #0x1 + add r1, r1, #1 + strh r1, [r0, #2] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi + + .global _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p + arm_func_start _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p +_ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p: ; 0x0207f630 + stmdb sp!, {r4, lr} + ldrsh r3, [r1, #2] + ldrsh r1, [r1] + mov r0, #0x800 + mov lr, r3, lsl #0xc + mov ip, lr, asr #0x1f + mov r3, r1, lsl #0xc + mov ip, ip, lsl #0xb + mov r1, r3, asr #0x1f + mov r1, r1, lsl #0xb + adds r4, r0, lr, lsl #11 + orr ip, ip, lr, lsr #21 + adc lr, ip, #0 + adds ip, r0, r3, lsl #11 + orr r1, r1, r3, lsr #21 + mov r3, r4, lsr #0xc + adc r0, r1, #0 + mov r1, ip, lsr #0xc + orr r1, r1, r0, lsl #20 + str r1, [r2] + mov r0, #0 + str r0, [r2, #4] + orr r3, r3, lr, lsl #20 + str r3, [r2, #8] + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p + + .global _ZN7MapBase13GetTileStartXEi + arm_func_start _ZN7MapBase13GetTileStartXEi +_ZN7MapBase13GetTileStartXEi: ; 0x0207f694 + ldr r0, [r0, #0xf4] + add r0, r0, r1, lsl #12 + bx lr + arm_func_end _ZN7MapBase13GetTileStartXEi + + .global _ZN7MapBase13GetTileStartZEi + arm_func_start _ZN7MapBase13GetTileStartZEi +_ZN7MapBase13GetTileStartZEi: ; 0x0207f6a0 + ldr r0, [r0, #0xfc] + add r0, r0, r1, lsl #12 + bx lr + arm_func_end _ZN7MapBase13GetTileStartZEi + + .global _ZN7MapBase11GetTileEndXEi + arm_func_start _ZN7MapBase11GetTileEndXEi +_ZN7MapBase11GetTileEndXEi: ; 0x0207f6ac + stmdb sp!, {r3, lr} + bl _ZN7MapBase13GetTileStartXEi + add r0, r0, #0x1000 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase11GetTileEndXEi + + .global _ZN7MapBase11GetTileEndZEi + arm_func_start _ZN7MapBase11GetTileEndZEi +_ZN7MapBase11GetTileEndZEi: ; 0x0207f6bc + stmdb sp!, {r3, lr} + bl _ZN7MapBase13GetTileStartZEi + add r0, r0, #0x1000 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase11GetTileEndZEi + + .global _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB + arm_func_start _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB +_ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB: ; 0x0207f6cc + stmdb sp!, {r3, r4, r5, r6, r7, lr} + sub sp, sp, #0x18 + mov r7, r1 + ldrb r1, [r7] + mov r6, r0 + mov r5, r2 + bl _ZN7MapBase13GetTileStartXEi + ldrb r1, [r7, #1] + mov r0, r6 + bl _ZN7MapBase13GetTileStartZEi + mov r4, r0 + ldrb r1, [r7] + mov r0, r6 + bl _ZN7MapBase13GetTileStartXEi + ldr r2, _0207f774 ; =0xffffeccd + str r0, [sp, #0xc] + ldrb r1, [r7, #1] + mov r0, r6 + str r2, [sp, #0x10] + str r4, [sp, #0x14] + bl _ZN7MapBase11GetTileEndZEi + mov r4, r0 + mov r0, r6 + mov r1, r7 + ldr r2, [r0] + ldr r2, [r2, #0x60] + blx r2 + ldrb r1, [r7] + mov r7, r0 + mov r0, r6 + bl _ZN7MapBase11GetTileEndXEi + ldr r2, [sp, #0xc] + ldr r1, [sp, #0x10] + str r2, [r5] + str r1, [r5, #4] + ldr r1, [sp, #0x14] + str r1, [r5, #8] + str r0, [r5, #0xc] + str r7, [r5, #0x10] + str r4, [r5, #0x14] + add sp, sp, #0x18 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 + arm_func_end _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB +_0207f774: .word 0xffffeccd + + .global _ZN7MapBase15GetClampedTileXEi + arm_func_start _ZN7MapBase15GetClampedTileXEi +_ZN7MapBase15GetClampedTileXEi: ; 0x0207f778 + ldr r2, [r0, #0xf4] + ldrh r0, [r0, #0x28] + sub r1, r1, r2 + movs r1, r1, asr #0xc + movmi r1, #0 + sub r0, r0, #1 + cmp r1, r0 + movge r1, r0 + mov r0, r1 + bx lr + arm_func_end _ZN7MapBase15GetClampedTileXEi + + .global _ZN7MapBase15GetClampedTileYEi + arm_func_start _ZN7MapBase15GetClampedTileYEi +_ZN7MapBase15GetClampedTileYEi: ; 0x0207f7a0 + ldr r2, [r0, #0xfc] + ldrh r0, [r0, #0x2a] + sub r1, r1, r2 + movs r1, r1, asr #0xc + movmi r1, #0 + sub r0, r0, #1 + cmp r1, r0 + movge r1, r0 + mov r0, r1 + bx lr + arm_func_end _ZN7MapBase15GetClampedTileYEi + + .global _ZN7MapBase8GetTileXEi + arm_func_start _ZN7MapBase8GetTileXEi +_ZN7MapBase8GetTileXEi: ; 0x0207f7c8 + ldr r0, [r0, #0xf4] + sub r0, r1, r0 + mov r0, r0, asr #0xc + bx lr + arm_func_end _ZN7MapBase8GetTileXEi + + .global _ZN7MapBase8GetTileYEi + arm_func_start _ZN7MapBase8GetTileYEi +_ZN7MapBase8GetTileYEi: ; 0x0207f7d8 + ldr r0, [r0, #0xfc] + sub r0, r1, r0 + mov r0, r0, asr #0xc + bx lr + arm_func_end _ZN7MapBase8GetTileYEi + + .global _ZN7MapBase10IsInBoundsEP5Vec3p + arm_func_start _ZN7MapBase10IsInBoundsEP5Vec3p +_ZN7MapBase10IsInBoundsEP5Vec3p: ; 0x0207f7e8 + stmdb sp!, {r4, r5, r6, lr} + mov r5, r1 + ldr r1, [r5] + mov r6, r0 + bl _ZN7MapBase8GetTileXEi + mov r4, r0 + ldr r1, [r5, #8] + mov r0, r6 + bl _ZN7MapBase8GetTileYEi + cmp r4, #0 + blt _0207f834 + ldrh r1, [r6, #0x28] + cmp r4, r1 + bge _0207f834 + cmp r0, #0 + blt _0207f834 + ldrh r1, [r6, #0x2a] + cmp r0, r1 + blt _0207f83c +_0207f834: + mov r0, #0 + ldmia sp!, {r4, r5, r6, pc} +_0207f83c: + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN7MapBase10IsInBoundsEP5Vec3p + + .global _ZN7MapBase11AddEntranceEP8Entrance + arm_func_start _ZN7MapBase11AddEntranceEP8Entrance +_ZN7MapBase11AddEntranceEP8Entrance: ; 0x0207f844 + stmdb sp!, {r3, lr} + mov lr, #0 + strb lr, [sp, #1] + ldr ip, [r0, #0x104] + ldr r2, [r0, #0x108] + mov r3, r1 + cmp ip, r2 + bhs _0207f8a0 + add r1, ip, #1 + str r1, [r0, #0x104] + ldr r2, [r0, #0x100] + sub r1, r1, #1 + mov r0, #0x14 + mla ip, r1, r0, r2 + ldmia r3, {r0, r1, r2} + stmia ip, {r0, r1, r2} + ldrsh r0, [r3, #0xc] + strh r0, [ip, #0xc] + ldrb r0, [r3, #0xe] + strb r0, [ip, #0xe] + ldr r0, [r3, #0x10] + str r0, [ip, #0x10] + ldmia sp!, {r3, pc} +_0207f8a0: + strb lr, [sp] + sub r3, sp, #4 + and r2, lr, #0xff + strb r2, [r3] + ldr r2, [r3] + add r0, r0, #0x100 + bl func_ov00_02081040 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase11AddEntranceEP8Entrance + + .global _ZN7MapBase12FindEntranceEi + arm_func_start _ZN7MapBase12FindEntranceEi +_ZN7MapBase12FindEntranceEi: ; 0x0207f8c0 + sub sp, sp, #0x18 + ldr r3, [r0, #0x100] + ldr r2, [r0, #0x104] + mov r0, #0x14 + mla ip, r2, r0, r3 + str r1, [sp, #0xc] + str r1, [sp] + str ip, [sp, #0x10] + str ip, [sp, #4] + str r3, [sp, #0x14] + str r3, [sp, #8] + mov r2, r3 + b _0207f8fc +_0207f8f4: + add r2, r2, #0x14 + str r2, [sp, #8] +_0207f8fc: + cmp r2, ip + ldrneb r0, [r2, #0xe] + cmpne r1, r0 + bne _0207f8f4 + ldr r0, [sp, #8] + cmp r0, ip + moveq r0, r3 + ldrne r0, [sp, #8] + add sp, sp, #0x18 + bx lr + arm_func_end _ZN7MapBase12FindEntranceEi + + .global _ZN7MapBase18func_ov00_0207f924Ei + arm_func_start _ZN7MapBase18func_ov00_0207f924Ei +_ZN7MapBase18func_ov00_0207f924Ei: ; 0x0207f924 + add r1, r0, r1 + ldrb r0, [r1, #0x18] + strb r0, [r1, #0x16] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f924Ei + + .global _ZN7MapBase18func_ov00_0207f934Ev + arm_func_start _ZN7MapBase18func_ov00_0207f934Ev +_ZN7MapBase18func_ov00_0207f934Ev: ; 0x0207f934 + ldr r0, [r0, #0x140] + cmp r0, #0 + moveq r0, #0 + ldrne r0, [r0, #0x60] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f934Ev + + .global _ZN7MapBase18func_ov00_0207f948Ei + arm_func_start _ZN7MapBase18func_ov00_0207f948Ei +_ZN7MapBase18func_ov00_0207f948Ei: ; 0x0207f948 + ldr r0, [r0, #0x140] + cmp r0, #0 + strne r1, [r0, #0x60] + bx lr + arm_func_end _ZN7MapBase18func_ov00_0207f948Ei + + .global _ZN7MapBase10AddTriggerEP13TriggerParams + arm_func_start _ZN7MapBase10AddTriggerEP13TriggerParams +_ZN7MapBase10AddTriggerEP13TriggerParams: ; 0x0207f958 + stmdb sp!, {r3, r4, r5, lr} + sub sp, sp, #8 + mov r2, #0 + str r2, [sp, #4] + mov r4, r1 + ldrb r1, [r4, #5] + mov r5, r0 + mov r2, #4 + cmp r1, #0 + beq _0207f9a8 + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0x5c + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207f9a0 + mov r1, r4 + bl func_ov00_02095d58 +_0207f9a0: + str r0, [sp, #4] + b _0207fa34 +_0207f9a8: + ldrb r0, [r4, #9] + cmp r0, #1 + bne _0207f9dc + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0xe0 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207f9d4 + mov r1, r4 + bl func_ov00_0209581c +_0207f9d4: + str r0, [sp, #4] + b _0207fa34 +_0207f9dc: + ldrb r0, [r4, #0xa] + cmp r0, #1 + bne _0207fa10 + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0x28 + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207fa08 + mov r1, r4 + bl func_ov00_0209564c +_0207fa08: + str r0, [sp, #4] + b _0207fa34 +_0207fa10: + ldr r1, _0207faa4 ; =data_027e0ce0 + mov r0, #0x2c + ldr r1, [r1, #4] + bl _ZN9SysObjectnwEmPjj + cmp r0, #0 + beq _0207fa30 + mov r1, r4 + bl func_ov00_02095554 +_0207fa30: + str r0, [sp, #4] +_0207fa34: + ldr r0, [sp, #4] + ldr r1, [r0] + ldr r1, [r1, #8] + blx r1 + mov r2, #0 + strb r2, [sp, #1] + ldr r1, [r5, #0x110] + ldr r0, [r5, #0x114] + cmp r1, r0 + bhs _0207fa7c + add r0, r1, #1 + str r0, [r5, #0x110] + ldr r2, [sp, #4] + ldr r1, [r5, #0x10c] + sub r0, r0, #1 + str r2, [r1, r0, lsl #2] + add sp, sp, #8 + ldmia sp!, {r3, r4, r5, pc} +_0207fa7c: + strb r2, [sp] + sub r1, sp, #4 + and r0, r2, #0xff + strb r0, [r1] + ldr r2, [r1] + add r1, sp, #4 + add r0, r5, #0x10c + bl func_ov00_02080f64 + add sp, sp, #8 + ldmia sp!, {r3, r4, r5, pc} + .align 2, 0 + arm_func_end _ZN7MapBase10AddTriggerEP13TriggerParams +_0207faa4: .word data_027e0ce0 + + .global _ZN11TriggerBase8vfunc_08Ev + arm_func_start _ZN11TriggerBase8vfunc_08Ev +_ZN11TriggerBase8vfunc_08Ev: ; 0x0207faa8 + bx lr + arm_func_end _ZN11TriggerBase8vfunc_08Ev + + .global _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB + arm_func_start _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB +_ZN7MapBase21GetTriggerBoundingBoxEiP4AABB: ; 0x0207faac + stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} + sub sp, sp, #0x18 + mov r9, r0 + ldr r6, [r9, #0x10c] + ldr r0, [r9, #0x110] + mov r8, r1 + add r0, r6, r0, lsl #2 + mov r7, r2 + cmp r6, r0 + mov r5, #0 + beq _0207fb50 + add r4, sp, #0 +_0207fadc: + ldr r0, [r6] + ldrb r1, [r0, #5] + cmp r8, r1 + bne _0207fb38 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x18] + blx r2 + cmp r0, #0 + beq _0207fb38 + ldr r0, [sp] + add r5, r5, #1 + str r0, [r7] + ldr r0, [sp, #4] + str r0, [r7, #4] + ldr r0, [sp, #8] + str r0, [r7, #8] + ldr r0, [sp, #0xc] + str r0, [r7, #0xc] + ldr r0, [sp, #0x10] + str r0, [r7, #0x10] + ldr r0, [sp, #0x14] + str r0, [r7, #0x14] +_0207fb38: + ldr r1, [r9, #0x10c] + ldr r0, [r9, #0x110] + add r6, r6, #4 + add r0, r1, r0, lsl #2 + cmp r6, r0 + bne _0207fadc +_0207fb50: + mov r0, r5 + add sp, sp, #0x18 + ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} + arm_func_end _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB + + .global _ZN11TriggerBase14GetBoundingBoxEv + arm_func_start _ZN11TriggerBase14GetBoundingBoxEv +_ZN11TriggerBase14GetBoundingBoxEv: ; 0x0207fb5c + mov r0, #0 + bx lr + arm_func_end _ZN11TriggerBase14GetBoundingBoxEv + + .global _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi + arm_func_start _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi +_ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi: ; 0x0207fb64 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + sub sp, sp, #0x18 + mov r10, r0 + ldr r6, [r10, #0x10c] + ldr r0, [r10, #0x110] + mov r9, r1 + add r0, r6, r0, lsl #2 + mov r8, r2 + mov r7, r3 + cmp r6, r0 + mov r5, #0 + beq _0207fc20 + add r4, sp, #0 +_0207fb98: + ldr r0, [r6] + ldrb r1, [r0, #5] + cmp r9, r1 + bne _0207fbf8 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0x18] + blx r2 + cmp r0, #0 + beq _0207fbf8 + ldr r0, [sp] + add r5, r5, #1 + str r0, [r8] + ldr r0, [sp, #4] + str r0, [r8, #4] + ldr r0, [sp, #8] + str r0, [r8, #8] + ldr r0, [sp, #0xc] + str r0, [r8, #0xc] + ldr r0, [sp, #0x10] + str r0, [r8, #0x10] + ldr r0, [sp, #0x14] + str r0, [r8, #0x14] + add r8, r8, #0x18 +_0207fbf8: + cmp r5, r7 + addhs sp, sp, #0x18 + movhs r0, r5 + ldmhsia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + ldr r1, [r10, #0x10c] + ldr r0, [r10, #0x110] + add r6, r6, #4 + add r0, r1, r0, lsl #2 + cmp r6, r0 + bne _0207fb98 +_0207fc20: + mov r0, r5 + add sp, sp, #0x18 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + arm_func_end _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi + + .global _ZN7MapBase21GetOverlappingTriggerEP5Vec3p + arm_func_start _ZN7MapBase21GetOverlappingTriggerEP5Vec3p +_ZN7MapBase21GetOverlappingTriggerEP5Vec3p: ; 0x0207fc2c + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r6, r0 + ldr r4, [r6, #0x10c] + ldr r0, [r6, #0x110] + mov r5, r1 + add r0, r4, r0, lsl #2 + cmp r4, r0 + beq _0207fc88 +_0207fc4c: + ldr r7, [r4] + mov r1, r5 + mov r0, r7 + ldr r2, [r0] + ldr r2, [r2, #0x14] + blx r2 + cmp r0, #0 + ldrneb r0, [r7, #5] + ldmneia sp!, {r3, r4, r5, r6, r7, pc} + ldr r1, [r6, #0x10c] + ldr r0, [r6, #0x110] + add r4, r4, #4 + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _0207fc4c +_0207fc88: + mov r0, #0 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase21GetOverlappingTriggerEP5Vec3p + + .global _ZN11TriggerBase8OverlapsEv + arm_func_start _ZN11TriggerBase8OverlapsEv +_ZN11TriggerBase8OverlapsEv: ; 0x0207fc90 + mov r0, #0 + bx lr + arm_func_end _ZN11TriggerBase8OverlapsEv + + .global _ZN7MapBase11FindTriggerEi + arm_func_start _ZN7MapBase11FindTriggerEi +_ZN7MapBase11FindTriggerEi: ; 0x0207fc98 + ldr ip, [r0, #0x10c] + ldr r2, [r0, #0x110] + add r2, ip, r2, lsl #2 + cmp ip, r2 + beq _0207fcd8 +_0207fcac: + ldr r3, [ip] + ldrb r2, [r3, #5] + cmp r1, r2 + moveq r0, r3 + bxeq lr + ldr r3, [r0, #0x10c] + ldr r2, [r0, #0x110] + add ip, ip, #4 + add r2, r3, r2, lsl #2 + cmp ip, r2 + bne _0207fcac +_0207fcd8: + mov r0, #0 + bx lr + arm_func_end _ZN7MapBase11FindTriggerEi + + .global _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei + arm_func_start _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei +_ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei: ; 0x0207fce0 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + mov r10, r0 + ldr r6, [r10, #0x10c] + ldr r0, [r10, #0x110] + mov r9, r1 + add r0, r6, r0, lsl #2 + mov r8, r2 + mov r7, r3 + cmp r6, r0 + mov r4, #0 + beq _0207fd50 +_0207fd0c: + cmp r4, r7 + bhs _0207fd50 + ldr r5, [r6] + mov r1, r9 + mov r0, r5 + ldr r2, [r0] + ldr r2, [r2, #0x14] + blx r2 + cmp r0, #0 + strne r5, [r8, r4, lsl #2] + ldr r1, [r10, #0x10c] + ldr r0, [r10, #0x110] + add r6, r6, #4 + add r0, r1, r0, lsl #2 + addne r4, r4, #1 + cmp r6, r0 + bne _0207fd0c +_0207fd50: + mov r0, r4 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + arm_func_end _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei + + .global _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p + arm_func_start _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p +_ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p: ; 0x0207fd58 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + movs r6, r1 + mov r7, r0 + mov r5, r2 + moveq r0, #1 + ldmeqia sp!, {r3, r4, r5, r6, r7, pc} + ldr r4, [r7, #0x10c] + ldr r0, [r7, #0x110] + add r0, r4, r0, lsl #2 + cmp r4, r0 + beq _0207fdc8 +_0207fd84: + ldr r0, [r4] + ldrb r1, [r0, #5] + cmp r6, r1 + bne _0207fdb0 + ldr r2, [r0] + mov r1, r5 + ldr r2, [r2, #0x14] + blx r2 + cmp r0, #0 + movne r0, #1 + ldmneia sp!, {r3, r4, r5, r6, r7, pc} +_0207fdb0: + ldr r1, [r7, #0x10c] + ldr r0, [r7, #0x110] + add r4, r4, #4 + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _0207fd84 +_0207fdc8: + mov r0, #0 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p + + .global _ZN7MapBase18AnyTrigger_func_0cEi + arm_func_start _ZN7MapBase18AnyTrigger_func_0cEi +_ZN7MapBase18AnyTrigger_func_0cEi: ; 0x0207fdd0 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r7, r0 + ldr r5, [r7, #0x10c] + ldr r0, [r7, #0x110] + mov r6, r1 + add r0, r5, r0, lsl #2 + cmp r5, r0 + beq _0207fe2c + mov r4, #1 +_0207fdf4: + ldr r0, [r5] + ldrb r1, [r0, #5] + cmp r6, r1 + bne _0207fe14 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0xc] + blx r2 +_0207fe14: + ldr r1, [r7, #0x10c] + ldr r0, [r7, #0x110] + add r5, r5, #4 + add r0, r1, r0, lsl #2 + cmp r5, r0 + bne _0207fdf4 +_0207fe2c: + mov r0, #1 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + arm_func_end _ZN7MapBase18AnyTrigger_func_0cEi + + .global _ZN11TriggerBase8vfunc_0cEv + arm_func_start _ZN11TriggerBase8vfunc_0cEv +_ZN11TriggerBase8vfunc_0cEv: ; 0x0207fe34 + mov r0, #0 + bx lr + arm_func_end _ZN11TriggerBase8vfunc_0cEv + + .global _ZN7MapBase16Trigger_vfunc_08Ev + arm_func_start _ZN7MapBase16Trigger_vfunc_08Ev +_ZN7MapBase16Trigger_vfunc_08Ev: ; 0x0207fe3c + stmdb sp!, {r3, r4, r5, lr} + mov r5, r0 + ldr r4, [r5, #0x10c] + ldr r0, [r5, #0x110] + add r0, r4, r0, lsl #2 + cmp r4, r0 + ldmeqia sp!, {r3, r4, r5, pc} +_0207fe58: + ldr r0, [r4], #4 + ldr r1, [r0] + ldr r1, [r1, #8] + blx r1 + ldr r1, [r5, #0x10c] + ldr r0, [r5, #0x110] + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _0207fe58 + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase16Trigger_vfunc_08Ev + + .global _ZN7MapBase10AddTriggerEi + arm_func_start _ZN7MapBase10AddTriggerEi +_ZN7MapBase10AddTriggerEi: ; 0x0207fe80 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr r1, [r0, #0x110] + cmp r1, #0x40 + addhs sp, sp, #0x14 + movhs r0, #0 + ldmhsia sp!, {lr} + addhs sp, sp, #0x10 + bxhs lr + ldr r2, [r0, #0x10c] + ldr r1, [r0, #0x110] + str r2, [sp, #0x10] + add ip, r2, r1, lsl #2 + str ip, [sp, #0xc] + str ip, [sp, #4] + str r2, [sp, #8] + ldr r3, [sp, #0x1c] + b _0207fed4 +_0207fecc: + add r2, r2, #4 + str r2, [sp, #8] +_0207fed4: + cmp r2, ip + ldrne r1, [r2] + cmpne r1, r3 + bne _0207fecc + ldr r1, [sp, #8] + cmp r1, ip + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {lr} + addne sp, sp, #0x10 + bxne lr + ldr r1, [sp, #0x1c] + ldrb r1, [r1, #4] + cmp r1, #0 + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {lr} + addne sp, sp, #0x10 + bxne lr + mov r3, #0 + strb r3, [sp, #1] + ldr r2, [r0, #0x110] + ldr r1, [r0, #0x114] + cmp r2, r1 + bhs _0207ff54 + add r3, r2, #1 + str r3, [r0, #0x110] + ldr r1, [r0, #0x10c] + ldr r2, [sp, #0x1c] + sub r0, r3, #1 + str r2, [r1, r0, lsl #2] + b _0207ff74 +_0207ff54: + strb r3, [sp] + sub r2, sp, #4 + and r1, r3, #0xff + strb r1, [r2] + ldr r2, [r2] + add r1, sp, #0x1c + add r0, r0, #0x10c + bl func_ov00_02080f64 +_0207ff74: + mov r0, #1 + add sp, sp, #0x14 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN7MapBase10AddTriggerEi + + .global _ZN7MapBase18func_ov00_0207ff88Ei + arm_func_start _ZN7MapBase18func_ov00_0207ff88Ei +_ZN7MapBase18func_ov00_0207ff88Ei: ; 0x0207ff88 + stmdb sp!, {r3, lr} + sub sp, sp, #0x28 + ldrb r2, [r1, #4] + cmp r2, #0 + addne sp, sp, #0x28 + movne r0, #0 + ldmneia sp!, {r3, pc} + ldr ip, [r0, #0x10c] + ldr r2, [r0, #0x110] + str ip, [sp, #0x20] + add r3, ip, r2, lsl #2 + str r3, [sp, #0x1c] + str r3, [sp, #0xc] + str r3, [sp, #4] + str ip, [sp, #8] + b _0207ffd0 +_0207ffc8: + add ip, ip, #4 + str ip, [sp, #8] +_0207ffd0: + cmp ip, r3 + ldrne r2, [ip] + cmpne r2, r1 + bne _0207ffc8 + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + mov lr, r2 + cmp r2, r3 + addne ip, lr, #4 + cmpne ip, r3 + beq _02080014 +_0207fffc: + ldr r2, [ip] + add ip, ip, #4 + cmp r2, r1 + strne r2, [lr], #4 + cmp ip, r3 + bne _0207fffc +_02080014: + ldr r2, [r0, #0x10c] + ldr r1, [r0, #0x110] + mov r3, #0 + add r2, r2, r1, lsl #2 + strb r3, [sp] + sub r1, sp, #4 + strb r3, [r1] + ldr r3, [r1] + mov r1, lr + add r0, r0, #0x10c + str lr, [sp, #0x24] + str r2, [sp, #0x18] + str r2, [sp, #0x10] + str lr, [sp, #0x14] + bl func_ov00_02080f94 + mov r0, #1 + add sp, sp, #0x28 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_0207ff88Ei + + .global _ZN7MapBase18func_ov00_0208005cEiii + arm_func_start _ZN7MapBase18func_ov00_0208005cEiii +_ZN7MapBase18func_ov00_0208005cEiii: ; 0x0208005c + ldr ip, _02080068 ; =func_ov00_0209c1e4 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208005cEiii +_02080068: .word func_ov00_0209c1e4 + + .global _ZN7MapBase18func_ov00_0208006cEii + arm_func_start _ZN7MapBase18func_ov00_0208006cEii +_ZN7MapBase18func_ov00_0208006cEii: ; 0x0208006c + ldr ip, _02080078 ; =func_ov00_0209c2b4 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208006cEii +_02080078: .word func_ov00_0209c2b4 + + .global _ZN7MapBase18func_ov00_0208007cEii + arm_func_start _ZN7MapBase18func_ov00_0208007cEii +_ZN7MapBase18func_ov00_0208007cEii: ; 0x0208007c + ldr ip, _02080088 ; =func_ov00_0209c2d0 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208007cEii +_02080088: .word func_ov00_0209c2d0 + + .global _ZN7MapBase18func_ov00_0208008cEj + arm_func_start _ZN7MapBase18func_ov00_0208008cEj +_ZN7MapBase18func_ov00_0208008cEj: ; 0x0208008c + ldr ip, _02080098 ; =func_ov00_0209c8e4 + ldr r0, [r0, #0x144] + bx ip + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_0208008cEj +_02080098: .word func_ov00_0209c8e4 + + .global _ZN7MapBase7AddExitEP4Exit + arm_func_start _ZN7MapBase7AddExitEP4Exit +_ZN7MapBase7AddExitEP4Exit: ; 0x0208009c + stmdb sp!, {r3, lr} + mov ip, #0 + strb ip, [sp, #1] + ldr r3, [r0, #0x11c] + ldr r2, [r0, #0x120] + cmp r3, r2 + bhs _02080120 + add ip, r3, #1 + sub r3, ip, #1 + mov r2, #0x18 + mul r2, r3, r2 + str ip, [r0, #0x11c] + ldr r3, [r0, #0x118] + ldr r0, [r1] + add ip, r3, r2 + str r0, [r3, r2] + ldr r0, [r1, #4] + str r0, [ip, #4] + ldr r0, [r1, #8] + str r0, [ip, #8] + ldr r0, [r1, #0xc] + str r0, [ip, #0xc] + ldrsh r0, [r1, #0x10] + strh r0, [ip, #0x10] + ldrb r0, [r1, #0x12] + strb r0, [ip, #0x12] + ldrb r0, [r1, #0x13] + strb r0, [ip, #0x13] + ldrb r0, [r1, #0x14] + strb r0, [ip, #0x14] + ldrb r0, [r1, #0x15] + strb r0, [ip, #0x15] + ldmia sp!, {r3, pc} +_02080120: + strb ip, [sp] + sub r3, sp, #4 + and r2, ip, #0xff + strb r2, [r3] + ldr r2, [r3] + add r0, r0, #0x118 + bl func_ov00_020810b8 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase7AddExitEP4Exit + + .global _ZN7MapBase18func_ov00_02080140EP4Exit + arm_func_start _ZN7MapBase18func_ov00_02080140EP4Exit +_ZN7MapBase18func_ov00_02080140EP4Exit: ; 0x02080140 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} + sub sp, sp, #0x50 + ldr r9, [r1] + mov r4, r0 + str r9, [sp, #0x38] + ldr r8, [r1, #4] + mov r10, #0x18 + str r8, [sp, #0x3c] + ldr r7, [r1, #8] + add r0, sp, #0x1c + str r7, [sp, #0x40] + ldr r6, [r1, #0xc] + add r3, sp, #0x20 + str r6, [sp, #0x44] + ldrsh r5, [r1, #0x10] + strh r5, [sp, #0x48] + ldrb lr, [r1, #0x12] + strb lr, [sp, #0x4a] + ldrb ip, [r1, #0x13] + strb ip, [sp, #0x4b] + ldrb r2, [r1, #0x14] + strb r2, [sp, #0x4c] + ldrb r1, [r1, #0x15] + str r9, [sp, #0x20] + str r8, [sp, #0x24] + strb r1, [sp, #0x4d] + str r7, [sp, #0x28] + str r6, [sp, #0x2c] + strh r5, [sp, #0x30] + strb lr, [sp, #0x32] + strb ip, [sp, #0x33] + strb r2, [sp, #0x34] + strb r1, [sp, #0x35] + ldr r1, [r4, #0x118] + ldr r5, [r4, #0x11c] + str r1, [sp, #0x18] + mla r2, r5, r10, r1 + str r2, [sp, #0x14] + bl _ZN12MapBase_Unk118func_ov00_02080324Eiii + ldr r0, [r4, #0x118] + ldr r2, [r4, #0x11c] + mov r1, r10 + mla r5, r2, r1, r0 + ldr r1, [sp, #0x1c] + cmp r1, r5 + bne _02080310 + mov r1, #0 + cmp r0, r5 + str r0, [sp, #8] + addne r3, r0, #0x18 + strne r3, [sp, #8] + str r5, [sp, #0xc] + str r0, [sp, #0x10] + strb r1, [sp, #2] + str r5, [sp, #4] + cmpne r3, r5 + beq _02080244 +_02080224: + ldrb r2, [r0, #0x14] + ldrb r1, [r3, #0x14] + cmp r2, r1 + movlo r0, r3 + add r3, r3, #0x18 + cmp r3, r5 + bne _02080224 + str r3, [sp, #8] +_02080244: + ldr r3, [r4, #0x118] + ldr r2, [r4, #0x11c] + mov r1, #0x18 + mla r1, r2, r1, r3 + cmp r0, r1 + moveq r0, #1 + streqb r0, [sp, #0x4c] + ldrneb r0, [r0, #0x14] + mov r2, #0 + addne r0, r0, #1 + strneb r0, [sp, #0x4c] + strb r2, [sp, #1] + ldr r1, [r4, #0x11c] + ldr r0, [r4, #0x120] + cmp r1, r0 + bhs _020802ec + add r3, r1, #1 + sub r1, r3, #1 + mov r0, #0x18 + mul r2, r1, r0 + str r3, [r4, #0x11c] + ldr r1, [r4, #0x118] + ldr r0, [sp, #0x38] + add r3, r1, r2 + str r0, [r1, r2] + ldr r0, [sp, #0x3c] + str r0, [r3, #4] + ldr r0, [sp, #0x40] + str r0, [r3, #8] + ldr r0, [sp, #0x44] + str r0, [r3, #0xc] + ldrsh r0, [sp, #0x48] + strh r0, [r3, #0x10] + ldrb r0, [sp, #0x4a] + strb r0, [r3, #0x12] + ldrb r0, [sp, #0x4b] + strb r0, [r3, #0x13] + ldrb r0, [sp, #0x4c] + strb r0, [r3, #0x14] + ldrb r0, [sp, #0x4d] + strb r0, [r3, #0x15] + b _02080318 +_020802ec: + strb r2, [sp] + sub r1, sp, #4 + and r0, r2, #0xff + strb r0, [r1] + ldr r2, [r1] + add r1, sp, #0x38 + add r0, r4, #0x118 + bl func_ov00_020810b8 + b _02080318 +_02080310: + ldrb r0, [r1, #0x14] + strb r0, [sp, #0x4c] +_02080318: + ldrb r0, [sp, #0x4c] + add sp, sp, #0x50 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} + arm_func_end _ZN7MapBase18func_ov00_02080140EP4Exit + + .global _ZN12MapBase_Unk118func_ov00_02080324Eiii + arm_func_start _ZN12MapBase_Unk118func_ov00_02080324Eiii +_ZN12MapBase_Unk118func_ov00_02080324Eiii: ; 0x02080324 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r4, r5, r6, r7, r8, lr} + mov r7, r0 + mov r6, r3 + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x1c] + b _02080344 +_02080340: + add r4, r4, #0x18 +_02080344: + cmp r4, r5 + beq _0208038c + mov r0, r4 + bl func_ov00_020a5e9c + mov r8, r0 + mov r0, r6 + bl func_ov00_020a5e9c + cmp r8, r0 + ldreqb r1, [r4, #0x12] + ldreqb r0, [r6, #0x12] + cmpeq r1, r0 + ldreqb r1, [r4, #0x13] + ldreqb r0, [r6, #0x13] + cmpeq r1, r0 + ldreq r1, [r4, #8] + ldreq r0, [r6, #8] + cmpeq r1, r0 + bne _02080340 +_0208038c: + str r4, [r7] + ldmia sp!, {r4, r5, r6, r7, r8, lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN12MapBase_Unk118func_ov00_02080324Eiii + + .global _ZN7MapBase8FindExitEiP4Exit + arm_func_start _ZN7MapBase8FindExitEiP4Exit +_ZN7MapBase8FindExitEiP4Exit: ; 0x0208039c + stmdb sp!, {lr} + sub sp, sp, #0x14 + cmp r1, #0 + addle sp, sp, #0x14 + movle r0, #0 + ldmleia sp!, {pc} + ldr ip, [r0, #0x118] + ldr r3, [r0, #0x11c] + mov r0, #0x18 + mla lr, r3, r0, ip + and r0, r1, #0xff + strb r1, [sp, #1] + strb r0, [sp] + str lr, [sp, #0xc] + str lr, [sp, #4] + str ip, [sp, #0x10] + str ip, [sp, #8] + and r1, r0, #0xff + b _020803f0 +_020803e8: + add ip, ip, #0x18 + str ip, [sp, #8] +_020803f0: + cmp ip, lr + ldrneb r0, [ip, #0x14] + cmpne r1, r0 + bne _020803e8 + ldr r0, [sp, #8] + cmp r0, lr + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {pc} + ldr r3, [sp, #8] + mov r0, #1 + ldr r1, [r3] + str r1, [r2] + ldr r1, [r3, #4] + str r1, [r2, #4] + ldr r1, [r3, #8] + str r1, [r2, #8] + ldr r1, [r3, #0xc] + str r1, [r2, #0xc] + ldrsh r1, [r3, #0x10] + strh r1, [r2, #0x10] + ldrb r1, [r3, #0x12] + strb r1, [r2, #0x12] + ldrb r1, [r3, #0x13] + strb r1, [r2, #0x13] + ldrb r1, [r3, #0x14] + strb r1, [r2, #0x14] + ldrb r1, [r3, #0x15] + strb r1, [r2, #0x15] + add sp, sp, #0x14 + ldmia sp!, {pc} + arm_func_end _ZN7MapBase8FindExitEiP4Exit + + .global _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint + arm_func_start _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint +_ZN7MapBase18AddCameraViewpointEP15CameraViewpoint: ; 0x0208046c + stmdb sp!, {r3, lr} + mov ip, #0 + strb ip, [sp, #1] + ldr r3, [r0, #0x128] + ldr r2, [r0, #0x12c] + cmp r3, r2 + bhs _020804f0 + add ip, r3, #1 + sub r3, ip, #1 + mov r2, #0x1c + mul r2, r3, r2 + str ip, [r0, #0x128] + ldr r3, [r0, #0x124] + ldr r0, [r1] + add ip, r3, r2 + str r0, [r3, r2] + ldrb r0, [r1, #4] + strb r0, [ip, #4] + ldr r0, [r1, #8] + str r0, [ip, #8] + ldr r0, [r1, #0xc] + str r0, [ip, #0xc] + ldr r0, [r1, #0x10] + str r0, [ip, #0x10] + ldrsh r0, [r1, #0x14] + strh r0, [ip, #0x14] + ldrsh r0, [r1, #0x16] + strh r0, [ip, #0x16] + ldrh r2, [r1, #0x18] + ldrh r0, [r1, #0x1a] + strh r2, [ip, #0x18] + strh r0, [ip, #0x1a] + ldmia sp!, {r3, pc} +_020804f0: + strb ip, [sp] + sub r3, sp, #4 + and r2, ip, #0xff + strb r2, [r3] + ldr r2, [r3] + add r0, r0, #0x124 + bl func_ov00_02081130 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint + + .global _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + arm_func_start _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint +_ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint: ; 0x02080510 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr ip, [r0, #0x124] + ldr r3, [r0, #0x128] + mov r0, #0x1c + mla lr, r3, r0, ip + and r0, r1, #0xff + strb r1, [sp, #1] + strb r0, [sp] + str lr, [sp, #0xc] + str lr, [sp, #4] + str ip, [sp, #0x10] + str ip, [sp, #8] + and r1, r0, #0xff + b _02080554 +_0208054c: + add ip, ip, #0x1c + str ip, [sp, #8] +_02080554: + cmp ip, lr + ldrneb r0, [ip, #4] + cmpne r1, r0 + bne _0208054c + ldr r0, [sp, #8] + cmp r0, lr + addeq sp, sp, #0x14 + moveq r0, #0 + ldmeqia sp!, {pc} + ldr ip, [sp, #8] + mov r0, #1 + ldr r1, [ip] + str r1, [r2] + ldrb r1, [ip, #4] + strb r1, [r2, #4] + ldr r1, [ip, #8] + str r1, [r2, #8] + ldr r1, [ip, #0xc] + str r1, [r2, #0xc] + ldr r1, [ip, #0x10] + str r1, [r2, #0x10] + ldrsh r1, [ip, #0x14] + strh r1, [r2, #0x14] + ldrsh r1, [ip, #0x16] + strh r1, [r2, #0x16] + ldrh r3, [ip, #0x18] + ldrh r1, [ip, #0x1a] + strh r3, [r2, #0x18] + strh r1, [r2, #0x1a] + add sp, sp, #0x14 + ldmia sp!, {pc} + arm_func_end _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + + .global _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint + arm_func_start _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint +_ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint: ; 0x020805d0 + stmdb sp!, {r3, lr} + sub sp, sp, #0x18 + ldr ip, [r0, #0x124] + ldr r3, [r0, #0x128] + mov r0, #0x1c + mla lr, r3, r0, ip + str r1, [sp, #0xc] + str r1, [sp] + str lr, [sp, #0x10] + str lr, [sp, #4] + str ip, [sp, #0x14] + str ip, [sp, #8] + b _0208060c +_02080604: + add ip, ip, #0x1c + str ip, [sp, #8] +_0208060c: + cmp ip, lr + ldrne r0, [ip] + cmpne r1, r0 + bne _02080604 + ldr r0, [sp, #8] + cmp r0, lr + addeq sp, sp, #0x18 + moveq r0, #0 + ldmeqia sp!, {r3, pc} + ldr ip, [sp, #8] + mov r0, #1 + ldr r1, [ip] + str r1, [r2] + ldrb r1, [ip, #4] + strb r1, [r2, #4] + ldr r1, [ip, #8] + str r1, [r2, #8] + ldr r1, [ip, #0xc] + str r1, [r2, #0xc] + ldr r1, [ip, #0x10] + str r1, [r2, #0x10] + ldrsh r1, [ip, #0x14] + strh r1, [r2, #0x14] + ldrsh r1, [ip, #0x16] + strh r1, [r2, #0x16] + ldrh r3, [ip, #0x18] + ldrh r1, [ip, #0x1a] + strh r3, [r2, #0x18] + strh r1, [r2, #0x1a] + add sp, sp, #0x18 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint + + .global _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + arm_func_start _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi +_ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi: ; 0x02080688 + stmdb sp!, {r3, r4, r5, r6, lr} + sub sp, sp, #0x1c + mov r6, r0 + mov r4, r2 + add r2, r6, r4 + mov r5, r1 + ldrb r1, [r2, #0x16] + cmp r1, #0 + bne _020806c8 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0xb8] + blx r2 + add sp, sp, #0x1c + str r0, [r5] + ldmia sp!, {r3, r4, r5, r6, pc} +_020806c8: + mov ip, #0 + mov r0, #0xff + add r3, sp, #0 + str ip, [sp] + strb r0, [sp, #4] + strh ip, [sp, #0x14] + strh ip, [sp, #0x16] + mov r2, ip +_020806e8: + add r0, r3, ip, lsl #1 + add ip, ip, #1 + strh r2, [r0, #0x18] + cmp ip, #2 + blo _020806e8 + add r2, sp, #0 + mov r0, r6 + bl _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint + cmp r0, #0 + bne _02080730 + mov r0, r6 + ldr r2, [r0] + mov r1, r4 + ldr r2, [r2, #0xb8] + blx r2 + add sp, sp, #0x1c + str r0, [r5] + ldmia sp!, {r3, r4, r5, r6, pc} +_02080730: + ldr r0, [sp] + str r0, [r5] + ldrb r0, [sp, #4] + strb r0, [r5, #4] + ldr r0, [sp, #8] + str r0, [r5, #8] + ldr r0, [sp, #0xc] + str r0, [r5, #0xc] + ldr r0, [sp, #0x10] + str r0, [r5, #0x10] + ldrsh r0, [sp, #0x14] + strh r0, [r5, #0x14] + ldrsh r0, [sp, #0x16] + strh r0, [r5, #0x16] + ldrh r1, [sp, #0x18] + ldrh r0, [sp, #0x1a] + strh r1, [r5, #0x18] + strh r0, [r5, #0x1a] + add sp, sp, #0x1c + ldmia sp!, {r3, r4, r5, r6, pc} + arm_func_end _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + + .global _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei + arm_func_start _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei +_ZN7MapBase26GetCurrentViewpoint_Unk_00Ei: ; 0x02080780 + stmdb sp!, {lr} + sub sp, sp, #0x1c + mov lr, #0 + mov r3, #0xff + strb r3, [sp, #4] + add ip, sp, #0 + mov r2, r1 + str lr, [sp] + strh lr, [sp, #0x14] + strh lr, [sp, #0x16] + mov r3, lr +_020807ac: + add r1, ip, lr, lsl #1 + add lr, lr, #1 + strh r3, [r1, #0x18] + cmp lr, #2 + blo _020807ac + add r1, sp, #0 + bl _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi + ldr r0, [sp] + add sp, sp, #0x1c + ldmia sp!, {pc} + arm_func_end _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei + + .global _ZN7MapBase8vfunc_b8Ev + arm_func_start _ZN7MapBase8vfunc_b8Ev +_ZN7MapBase8vfunc_b8Ev: ; 0x020807d4 + stmdb sp!, {r3, lr} + ldr r0, _02080820 ; =data_027e0618 + ldr r0, [r0] + cmp r0, #6 + bne _02080818 + bl func_ov00_02079e3c + cmp r0, #0 + beq _02080800 + cmp r0, #1 + beq _02080808 + b _02080810 +_02080800: + mov r0, #0 + ldmia sp!, {r3, pc} +_02080808: + mov r0, #0x1c + ldmia sp!, {r3, pc} +_02080810: + mov r0, #0x1c + ldmia sp!, {r3, pc} +_02080818: + mov r0, #0 + ldmia sp!, {r3, pc} + .align 2, 0 + arm_func_end _ZN7MapBase8vfunc_b8Ev +_02080820: .word data_027e0618 + + .global _ZN7MapBase18func_ov00_02080824Eii + arm_func_start _ZN7MapBase18func_ov00_02080824Eii +_ZN7MapBase18func_ov00_02080824Eii: ; 0x02080824 + stmdb sp!, {r4, lr} + ldr r4, [r0, #0x14c] + cmp r4, #0 + moveq r0, #0 + ldmeqia sp!, {r4, pc} + ldrh r3, [r4, #4] + mov ip, #0 + cmp r3, #0 + ble _020808c8 + mov lr, r4 +_0208084c: + ldrb r0, [lr, #8] + cmp r1, r0 + bne _020808b8 + mov r0, #0x1c + mul r0, ip, r0 + add r3, r4, #8 + ldrb r1, [r3, r0] + add r3, r3, r0 + mov r0, #1 + strb r1, [r2] + ldrb r1, [r3, #1] + strb r1, [r2, #1] + ldrsh r1, [r3, #2] + strh r1, [r2, #2] + ldr r1, [r3, #4] + str r1, [r2, #4] + ldr r1, [r3, #8] + str r1, [r2, #8] + ldr r1, [r3, #0xc] + str r1, [r2, #0xc] + ldr r1, [r3, #0x10] + str r1, [r2, #0x10] + ldr r1, [r3, #0x14] + str r1, [r2, #0x14] + ldr r1, [r3, #0x18] + str r1, [r2, #0x18] + ldmia sp!, {r4, pc} +_020808b8: + add ip, ip, #1 + cmp ip, r3 + add lr, lr, #0x1c + blt _0208084c +_020808c8: + mov r0, #0 + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase18func_ov00_02080824Eii + + .global _ZN7MapBase10AddUnk_130Ei + arm_func_start _ZN7MapBase10AddUnk_130Ei +_ZN7MapBase10AddUnk_130Ei: ; 0x020808d0 + stmdb sp!, {r0, r1, r2, r3} + arm_func_end _ZN7MapBase10AddUnk_130Ei + + .global func_ov00_020808d4 + arm_func_start func_ov00_020808d4 +func_ov00_020808d4: ; 0x020808d4 + stmdb sp!, {lr} + sub sp, sp, #0x14 + ldr r1, [r0, #0x134] + cmp r1, #0x20 + addhs sp, sp, #0x14 + movhs r0, #0 + ldmhsia sp!, {lr} + addhs sp, sp, #0x10 + bxhs lr + ldr r2, [r0, #0x130] + ldr r1, [r0, #0x134] + str r2, [sp, #0x10] + add ip, r2, r1, lsl #2 + str ip, [sp, #0xc] + str ip, [sp, #4] + str r2, [sp, #8] + ldr r3, [sp, #0x1c] + b _02080924 +_0208091c: + add r2, r2, #4 + str r2, [sp, #8] +_02080924: + cmp r2, ip + ldrne r1, [r2] + cmpne r1, r3 + bne _0208091c + ldr r1, [sp, #8] + cmp r1, ip + addne sp, sp, #0x14 + movne r0, #0 + ldmneia sp!, {lr} + addne sp, sp, #0x10 + bxne lr + mov r3, #0 + strb r3, [sp, #1] + ldr r2, [r0, #0x134] + ldr r1, [r0, #0x138] + cmp r2, r1 + bhs _02080984 + add r3, r2, #1 + str r3, [r0, #0x134] + ldr r1, [r0, #0x130] + ldr r2, [sp, #0x1c] + sub r0, r3, #1 + str r2, [r1, r0, lsl #2] + b _020809a4 +_02080984: + strb r3, [sp] + sub r2, sp, #4 + and r1, r3, #0xff + strb r1, [r2] + ldr r2, [r2] + add r1, sp, #0x1c + add r0, r0, #0x130 + bl func_ov00_02080f64 +_020809a4: + mov r0, #1 + add sp, sp, #0x14 + ldmia sp!, {lr} + add sp, sp, #0x10 + bx lr + arm_func_end func_ov00_020808d4 + + .global _ZN7MapBase18func_ov00_020809b8Ei + arm_func_start _ZN7MapBase18func_ov00_020809b8Ei +_ZN7MapBase18func_ov00_020809b8Ei: ; 0x020809b8 + stmdb sp!, {r3, lr} + sub sp, sp, #0x28 + ldr ip, [r0, #0x130] + ldr r2, [r0, #0x134] + str ip, [sp, #0x20] + add r3, ip, r2, lsl #2 + str r3, [sp, #0x1c] + str r3, [sp, #0xc] + str r3, [sp, #4] + str ip, [sp, #8] + b _020809ec +_020809e4: + add ip, ip, #4 + str ip, [sp, #8] +_020809ec: + cmp ip, r3 + ldrne r2, [ip] + cmpne r2, r1 + bne _020809e4 + ldr r2, [sp, #8] + ldr r3, [sp, #0xc] + mov lr, r2 + cmp r2, r3 + addne ip, lr, #4 + cmpne ip, r3 + beq _02080a30 +_02080a18: + ldr r2, [ip] + add ip, ip, #4 + cmp r2, r1 + strne r2, [lr], #4 + cmp ip, r3 + bne _02080a18 +_02080a30: + ldr r2, [r0, #0x130] + ldr r1, [r0, #0x134] + mov r3, #0 + add r2, r2, r1, lsl #2 + strb r3, [sp] + sub r1, sp, #4 + strb r3, [r1] + ldr r3, [r1] + mov r1, lr + add r0, r0, #0x130 + str lr, [sp, #0x24] + str r2, [sp, #0x18] + str r2, [sp, #0x10] + str lr, [sp, #0x14] + bl func_ov00_02080f94 + mov r0, #1 + add sp, sp, #0x28 + ldmia sp!, {r3, pc} + arm_func_end _ZN7MapBase18func_ov00_020809b8Ei + + .global _ZN7MapBase18func_ov00_02080a78EP5Vec3p + arm_func_start _ZN7MapBase18func_ov00_02080a78EP5Vec3p +_ZN7MapBase18func_ov00_02080a78EP5Vec3p: ; 0x02080a78 + stmdb sp!, {r4, lr} + sub sp, sp, #0x18 + mov r4, r0 + add r3, sp, #0xc + ldmia r1, {r0, r1, r2} + stmia r3, {r0, r1, r2} + ldr r1, [r4, #0x130] + ldr r2, [r4, #0x134] + add r0, sp, #8 + add r2, r1, r2, lsl #2 + str r2, [sp] + str r1, [sp, #4] + bl _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ + ldr r1, [r4, #0x130] + ldr r0, [r4, #0x134] + ldr r2, [sp, #8] + add r0, r1, r0, lsl #2 + cmp r2, r0 + moveq r0, #0 + ldrne r0, [r2] + add sp, sp, #0x18 + ldmia sp!, {r4, pc} + arm_func_end _ZN7MapBase18func_ov00_02080a78EP5Vec3p + + .global _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ + arm_func_start _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ +_ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_: ; 0x02080ad0 + stmdb sp!, {r0, r1, r2, r3} + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r7, r0 + mov r6, r3 + ldr r5, [sp, #0x20] + ldr r4, [sp, #0x1c] + b _02080af0 +_02080aec: + add r4, r4, #4 +_02080af0: + cmp r4, r5 + beq _02080b14 + ldr r0, [r4] + mov r1, r6 + ldr r2, [r0] + ldr r2, [r2] + blx r2 + cmp r0, #0 + beq _02080aec +_02080b14: + str r4, [r7] + ldmia sp!, {r3, r4, r5, r6, r7, lr} + add sp, sp, #0x10 + bx lr + arm_func_end _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ + + .global _ZN7MapBase18func_ov00_02080b24EP5Vec2b + arm_func_start _ZN7MapBase18func_ov00_02080b24EP5Vec2b +_ZN7MapBase18func_ov00_02080b24EP5Vec2b: ; 0x02080b24 + stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} + sub sp, sp, #0x14 + ldr r3, [r0] + mov r2, #4 + ldr r3, [r3, #0x58] + str r0, [sp] + mov r10, r1 + blx r3 + cmp r0, #0 + addne sp, sp, #0x14 + ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r0, [sp] + ldrh r0, [r0, #0x30] + cmp r0, #0x60 + blo _02080cd0 + ldr r0, [sp] + mov r6, #0 + ldrh r0, [r0, #0x28] + mov r7, r6 + mov r8, r6 + str r0, [sp, #4] + cmp r0, #0 + ldr r0, [sp] + ldrh r11, [r0, #0x2a] + ble _02080c4c +_02080b88: + cmp r11, #0 + mov r9, #0 + ble _02080c3c + and r0, r8, #0xff + str r0, [sp, #8] +_02080b9c: + ldr r1, [sp, #8] + ldr r0, [sp] + strb r1, [sp, #0x10] + strb r9, [sp, #0x11] + ldr r2, [r0] + add r1, sp, #0x10 + ldr r2, [r2, #0x78] + blx r2 + movs r5, r0 + beq _02080c30 + ldr r1, [r0] + ldr r1, [r1, #0x1c] + blx r1 + cmp r0, #0x42 + bne _02080c30 + cmp r6, #0 + ldrb r0, [r10] + bne _02080c08 + sub r0, r8, r0 + mov r6, r5 + bl func_02042f68 + ldrb r1, [r10, #1] + mov r4, r0 + sub r0, r9, r1 + bl func_02042f68 + add r7, r4, r0 + b _02080c30 +_02080c08: + sub r0, r8, r0 + bl func_02042f68 + ldrb r1, [r10, #1] + mov r4, r0 + sub r0, r9, r1 + bl func_02042f68 + add r0, r4, r0 + cmp r0, r7 + movgt r6, r5 + movgt r7, r0 +_02080c30: + add r9, r9, #1 + cmp r9, r11 + blt _02080b9c +_02080c3c: + ldr r0, [sp, #4] + add r8, r8, #1 + cmp r8, r0 + blt _02080b88 +_02080c4c: + cmp r6, #0 + addeq sp, sp, #0x14 + ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + ldr r1, [r6, #4] + ldr r0, [sp] + bic r1, r1, #1 + str r1, [r6, #4] + ldrb r4, [r6, #0x15] + ldrb r3, [r6, #0x14] + add r1, sp, #0xe + mov r2, #4 + strb r3, [sp, #0xe] + strb r4, [sp, #0xf] + ldr r4, [r0] + mov r3, #0 + ldr r4, [r4, #0x98] + blx r4 + ldrb r3, [r6, #0x15] + ldrb r2, [r6, #0x14] + ldr r0, [sp] + add r1, sp, #0xc + strb r2, [sp, #0xc] + strb r3, [sp, #0xd] + ldr r4, [r0] + mov r2, #6 + ldr r4, [r4, #0x98] + mov r3, #1 + blx r4 + ldr r0, [sp] + ldrh r0, [r0, #0x30] + sub r1, r0, #1 + ldr r0, [sp] + strh r1, [r0, #0x30] +_02080cd0: + ldr r0, [sp] + mov r1, r10 + ldr r4, [r0] + mov r2, #4 + ldr r4, [r4, #0x98] + mov r3, #1 + blx r4 + ldr r0, [sp] + ldrh r0, [r0, #0x30] + add r1, r0, #1 + ldr r0, [sp] + strh r1, [r0, #0x30] + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} + arm_func_end _ZN7MapBase18func_ov00_02080b24EP5Vec2b + + .global _ZN7MapBase18func_ov00_02080d08Ei + arm_func_start _ZN7MapBase18func_ov00_02080d08Ei +_ZN7MapBase18func_ov00_02080d08Ei: ; 0x02080d08 + stmdb sp!, {r3, r4, r5, lr} + ldr r3, [r0] + mov r2, #4 + ldr r3, [r3, #0x58] + mov r5, r0 + mov r4, r1 + blx r3 + cmp r0, #0 + ldmeqia sp!, {r3, r4, r5, pc} + mov r0, r5 + ldr ip, [r0] + mov r1, r4 + ldr ip, [ip, #0x98] + mov r2, #4 + mov r3, #0 + blx ip + mov r0, r5 + ldr ip, [r0] + mov r1, r4 + ldr ip, [ip, #0x98] + mov r2, #6 + mov r3, #1 + blx ip + ldrh r0, [r5, #0x30] + sub r0, r0, #1 + strh r0, [r5, #0x30] + ldmia sp!, {r3, r4, r5, pc} + arm_func_end _ZN7MapBase18func_ov00_02080d08Ei + + .global _ZN7MapBase8vfunc_bcEv + arm_func_start _ZN7MapBase8vfunc_bcEv +_ZN7MapBase8vfunc_bcEv: ; 0x02080d74 + bx lr + arm_func_end _ZN7MapBase8vfunc_bcEv + + .global _ZN7MapBase8vfunc_98Ev + arm_func_start _ZN7MapBase8vfunc_98Ev +_ZN7MapBase8vfunc_98Ev: ; 0x02080d78 + bx lr + arm_func_end _ZN7MapBase8vfunc_98Ev + + .global _ZN7MapBase8vfunc_c0Ev + arm_func_start _ZN7MapBase8vfunc_c0Ev +_ZN7MapBase8vfunc_c0Ev: ; 0x02080d7c + bx lr + arm_func_end _ZN7MapBase8vfunc_c0Ev + + .global _ZN7MapBase22TriggerOfType_vfunc_10Ei + arm_func_start _ZN7MapBase22TriggerOfType_vfunc_10Ei +_ZN7MapBase22TriggerOfType_vfunc_10Ei: ; 0x02080d80 + stmdb sp!, {r4, r5, r6, lr} + mov r6, r0 + ldr r4, [r6, #0x10c] + ldr r0, [r6, #0x110] + mov r5, r1 + add r0, r4, r0, lsl #2 + cmp r4, r0 + beq _02080dd4 +_02080da0: + ldr r0, [r4] + ldrb r1, [r0, #5] + cmp r5, r1 + bne _02080dbc + ldr r1, [r0] + ldr r1, [r1, #0x10] + blx r1 +_02080dbc: + ldr r1, [r6, #0x10c] + ldr r0, [r6, #0x110] + add r4, r4, #4 + add r0, r1, r0, lsl #2 + cmp r4, r0 + bne _02080da0 +_02080dd4: + mov r0, #1 + ldmia sp!, {r4, r5, r6, pc} + arm_func_end _ZN7MapBase22TriggerOfType_vfunc_10Ei + + .global _ZN11TriggerBase8vfunc_10Ev + arm_func_start _ZN11TriggerBase8vfunc_10Ev +_ZN11TriggerBase8vfunc_10Ev: ; 0x02080ddc + mov r0, #1 + bx lr + arm_func_end _ZN11TriggerBase8vfunc_10Ev + + .global _ZN7MapBase18func_ov00_02080de4Ev + arm_func_start _ZN7MapBase18func_ov00_02080de4Ev +_ZN7MapBase18func_ov00_02080de4Ev: ; 0x02080de4 + bx lr + arm_func_end _ZN7MapBase18func_ov00_02080de4Ev + + .global _ZN7MapBase18func_ov00_02080de8Ei + arm_func_start _ZN7MapBase18func_ov00_02080de8Ei +_ZN7MapBase18func_ov00_02080de8Ei: ; 0x02080de8 + stmdb sp!, {r4, r5, r6, lr} + ldr r2, _02080ed4 ; =data_027e0f64 + mov r5, r0 + ldr r0, [r2] + mov r4, #0 + add r0, r0, r1, lsl #2 + ldr r6, [r0, #4] + ldr r0, [r6, #0x15c] + cmp r0, #0x16 + bgt _02080e64 + bge _02080e84 + cmp r0, #0xb + bgt _02080e58 + cmp r0, #0 + addge pc, pc, r0, lsl #2 + b _02080e94 +_02080e28: ; jump table + b _02080e84 ; case 0 + b _02080e84 ; case 1 + b _02080e84 ; case 2 + b _02080e8c ; case 3 + b _02080e94 ; case 4 + b _02080e94 ; case 5 + b _02080e94 ; case 6 + b _02080e94 ; case 7 + b _02080e94 ; case 8 + b _02080e94 ; case 9 + b _02080e94 ; case 10 + b _02080e88 ; case 11 +_02080e58: + cmp r0, #0x15 + beq _02080e84 + b _02080e94 +_02080e64: + cmp r0, #0x5a + bgt _02080e7c + bge _02080e84 + cmp r0, #0x33 + beq _02080e84 + b _02080e94 +_02080e7c: + cmp r0, #0x5b + bne _02080e94 +_02080e84: + mov r4, #0 +_02080e88: + b _02080ec8 +_02080e8c: + mov r4, #0x1f + b _02080ec8 +_02080e94: + mov r0, r6 + bl func_ov00_02087dd8 + cmp r0, #0 + beq _02080ec8 + add r0, r6, #0x200 + ldrsh r1, [r0, #0x24] + ldr r0, _02080ed8 ; =0x00001c72 + cmp r1, r0 + ble _02080ec4 + rsb r0, r0, #0x4000 + cmp r1, r0 + blt _02080ec8 +_02080ec4: + mov r4, #0x1f +_02080ec8: + ldr r0, [r5, #0x140] + strb r4, [r0, #0x5c] + ldmia sp!, {r4, r5, r6, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_02080de8Ei +_02080ed4: .word data_027e0f64 +_02080ed8: .word 0x00001c72 + + .global _ZN7MapBase18func_ov00_02080edcEv + arm_func_start _ZN7MapBase18func_ov00_02080edcEv +_ZN7MapBase18func_ov00_02080edcEv: ; 0x02080edc + stmdb sp!, {r4, lr} + ldr r1, _02080f1c ; =data_027e0d38 + mov r4, r0 + ldr r0, [r1] + add r0, r0, #0xc + bl func_ov00_020a5e9c + cmp r0, #0x2a + cmpne r0, #0x2f + cmpne r0, #0x30 + bne _02080f10 + mov r0, #0 + strb r0, [r4, #5] + ldmia sp!, {r4, pc} +_02080f10: + mov r0, #1 + strb r0, [r4, #5] + ldmia sp!, {r4, pc} + .align 2, 0 + arm_func_end _ZN7MapBase18func_ov00_02080edcEv +_02080f1c: .word data_027e0d38 + + .data + .global data_ov00_020e22fc +data_ov00_020e22fc: ; 0x020e22fc + .ascii "fnl" + .byte 0x00 + .global data_ov00_020e2300 +data_ov00_020e2300: ; 0x020e2300 + .ascii "bow" + .byte 0x00 + .global data_ov00_020e2304 +data_ov00_020e2304: ; 0x020e2304 + .ascii "dco" + .byte 0x00 + .global data_ov00_020e2308 +data_ov00_020e2308: ; 0x020e2308 + .ascii "can" + .byte 0x00 + .global data_ov00_020e230c +data_ov00_020e230c: ; 0x020e230c + .ascii "hul" + .byte 0x00 + .global data_ov00_020e2310 +data_ov00_020e2310: ; 0x020e2310 + .ascii "pdl" + .byte 0x00 + .global data_ov00_020e2314 +data_ov00_020e2314: ; 0x020e2314 + .ascii "anc" + .byte 0x00 + .global data_ov00_020e2318 +data_ov00_020e2318: ; 0x020e2318 + .ascii "brg" + .byte 0x00 + .global data_ov00_020e231c +data_ov00_020e231c: ; 0x020e231c + .word data_ov00_020e2314 + .global data_ov00_020e2320 +data_ov00_020e2320: ; 0x020e2320 + .word data_ov00_020e2300 + .global data_ov00_020e2324 +data_ov00_020e2324: ; 0x020e2324 + .word data_ov00_020e230c + .global data_ov00_020e2328 +data_ov00_020e2328: ; 0x020e2328 + .word data_ov00_020e2308 + .global data_ov00_020e232c +data_ov00_020e232c: ; 0x020e232c + .word data_ov00_020e2304 + .global data_ov00_020e2330 +data_ov00_020e2330: ; 0x020e2330 + .word data_ov00_020e2310 + .global data_ov00_020e2334 +data_ov00_020e2334: ; 0x020e2334 + .word data_ov00_020e22fc + .global data_ov00_020e2338 +data_ov00_020e2338: ; 0x020e2338 + .word data_ov00_020e2318 + .global data_ov00_020e233c +data_ov00_020e233c: ; 0x020e233c + .word data_ov00_020e240c + .global data_ov00_020e2340 +data_ov00_020e2340: ; 0x020e2340 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2344 +data_ov00_020e2344: ; 0x020e2344 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2348 +data_ov00_020e2348: ; 0x020e2348 + .word _ZN7MapBaseD2Ev + .global data_ov00_020e234c +data_ov00_020e234c: ; 0x020e234c + .word _ZN7MapBaseD0Ev + .global data_ov00_020e2350 +data_ov00_020e2350: ; 0x020e2350 + .word func_ov04_0210c1f8 ; data_ov07_0210c1f8 + .global data_ov00_020e2354 +data_ov00_020e2354: ; 0x020e2354 + .word func_ov04_0210c3fc ; data_ov07_0210c3fc + .global data_ov00_020e2358 +data_ov00_020e2358: ; 0x020e2358 + .word func_ov04_0210c52c ; data_ov07_0210c52c + .global data_ov00_020e235c +data_ov00_020e235c: ; 0x020e235c + .word func_ov04_0210bfa8 ; data_ov07_0210bfa8 + .global data_ov00_020e2360 +data_ov00_020e2360: ; 0x020e2360 + .word _ZN7MapBase8vfunc_18Ev + .global data_ov00_020e2364 +data_ov00_020e2364: ; 0x020e2364 + .word func_ov05_02111bc0 + .global data_ov00_020e2368 +data_ov00_020e2368: ; 0x020e2368 + .word func_ov05_02111c00 + .global data_ov00_020e236c +data_ov00_020e236c: ; 0x020e236c + .word func_ov05_02111c6c + .global data_ov00_020e2370 +data_ov00_020e2370: ; 0x020e2370 + .word func_ov05_02111c70 + .global data_ov00_020e2374 +data_ov00_020e2374: ; 0x020e2374 + .word func_ov04_0210c5cc ; data_ov07_0210c5cc + .global data_ov00_020e2378 +data_ov00_020e2378: ; 0x020e2378 + .word func_ov04_0210c764 ; data_ov07_0210c764 + .global data_ov00_020e237c +data_ov00_020e237c: ; 0x020e237c + .word func_ov04_0210c800 ; data_ov07_0210c800 + .global data_ov00_020e2380 +data_ov00_020e2380: ; 0x020e2380 + .word func_ov04_0210c88c ; data_ov07_0210c88c + .global data_ov00_020e2384 +data_ov00_020e2384: ; 0x020e2384 + .word func_ov04_0210c8d4 ; data_ov07_0210c8d4 + .global data_ov00_020e2388 +data_ov00_020e2388: ; 0x020e2388 + .word func_ov04_0210ca84 ; data_ov07_0210ca84 + .global data_ov00_020e238c +data_ov00_020e238c: ; 0x020e238c + .word func_ov04_0210cb00 ; data_ov07_0210cb00 + .global data_ov00_020e2390 +data_ov00_020e2390: ; 0x020e2390 + .word _ZN7MapBase8vfunc_48Ev + .global data_ov00_020e2394 +data_ov00_020e2394: ; 0x020e2394 + .byte 0x00, 0x00, 0x00, 0x00 + .global data_ov00_020e2398 +data_ov00_020e2398: ; 0x020e2398 + .word _ZN7MapBase8vfunc_50Ev + .global data_ov00_020e239c +data_ov00_020e239c: ; 0x020e239c + .word _ZN7MapBase8vfunc_54Ev + .global data_ov00_020e23a0 +data_ov00_020e23a0: ; 0x020e23a0 + .word _ZN7MapBase8vfunc_58Ev + .global data_ov00_020e23a4 +data_ov00_020e23a4: ; 0x020e23a4 + .word _ZN7MapBase8vfunc_5cEv + .global data_ov00_020e23a8 +data_ov00_020e23a8: ; 0x020e23a8 + .word _ZN7MapBase8vfunc_60Ev + .global data_ov00_020e23ac +data_ov00_020e23ac: ; 0x020e23ac + .word _ZN7MapBase8vfunc_64Ev + .global data_ov00_020e23b0 +data_ov00_020e23b0: ; 0x020e23b0 + .word _ZN7MapBase8vfunc_68Eii + .global data_ov00_020e23b4 +data_ov00_020e23b4: ; 0x020e23b4 + .word _ZN7MapBase8vfunc_6cEiii + .global data_ov00_020e23b8 +data_ov00_020e23b8: ; 0x020e23b8 + .word _ZN7MapBase8vfunc_70EP5Vec3p + .global data_ov00_020e23bc +data_ov00_020e23bc: ; 0x020e23bc + .word _ZN7MapBase8vfunc_74EP5Vec3p + .global data_ov00_020e23c0 +data_ov00_020e23c0: ; 0x020e23c0 + .word _ZN7MapBase8vfunc_78Ev + .global data_ov00_020e23c4 +data_ov00_020e23c4: ; 0x020e23c4 + .word _ZN7MapBase8vfunc_7cEv + .global data_ov00_020e23c8 +data_ov00_020e23c8: ; 0x020e23c8 + .word _ZN7MapBase8vfunc_80Ev + .global data_ov00_020e23cc +data_ov00_020e23cc: ; 0x020e23cc + .word _ZN7MapBase8vfunc_84Ei + .global data_ov00_020e23d0 +data_ov00_020e23d0: ; 0x020e23d0 + .word _ZN7MapBase8vfunc_88Ev + .global data_ov00_020e23d4 +data_ov00_020e23d4: ; 0x020e23d4 + .word _ZN7MapBase8vfunc_8cEv + .global data_ov00_020e23d8 +data_ov00_020e23d8: ; 0x020e23d8 + .word _ZN7MapBase8vfunc_90Eiii + .global data_ov00_020e23dc +data_ov00_020e23dc: ; 0x020e23dc + .word _ZN7MapBase8vfunc_94Ev + .global data_ov00_020e23e0 +data_ov00_020e23e0: ; 0x020e23e0 + .word _ZN7MapBase8vfunc_98Ev + .global data_ov00_020e23e4 +data_ov00_020e23e4: ; 0x020e23e4 + .word _ZN7MapBase8vfunc_9cEv + .global data_ov00_020e23e8 +data_ov00_020e23e8: ; 0x020e23e8 + .word _ZN7MapBase8vfunc_a0Ev + .global data_ov00_020e23ec +data_ov00_020e23ec: ; 0x020e23ec + .word _ZN7MapBase8vfunc_a4Ev + .global data_ov00_020e23f0 +data_ov00_020e23f0: ; 0x020e23f0 + .word _ZN7MapBase8vfunc_a8Ev + .global data_ov00_020e23f4 +data_ov00_020e23f4: ; 0x020e23f4 + .word _ZN7MapBase8vfunc_acEv + .global data_ov00_020e23f8 +data_ov00_020e23f8: ; 0x020e23f8 + .word _ZN7MapBase8vfunc_b0Eii + .global data_ov00_020e23fc +data_ov00_020e23fc: ; 0x020e23fc + .word _ZN7MapBase8vfunc_b4Ev + .global data_ov00_020e2400 +data_ov00_020e2400: ; 0x020e2400 + .word _ZN7MapBase8vfunc_b8Ev + .global data_ov00_020e2404 +data_ov00_020e2404: ; 0x020e2404 + .word _ZN7MapBase8vfunc_bcEv + .global data_ov00_020e2408 +data_ov00_020e2408: ; 0x020e2408 + .word _ZN7MapBase8vfunc_c0Ev + .global data_ov00_020e240c +data_ov00_020e240c: ; 0x020e240c + .ascii "M00" + .byte 0x00 + .global data_ov00_020e2410 +data_ov00_020e2410: ; 0x020e2410 + .ascii "Map/%s/map%d%d.bin" + .byte 0x00, 0x00 + + .sbss + .global data_ov00_020ec81c +data_ov00_020ec81c: + .space 0x4 + .global data_ov00_020ec820 +data_ov00_020ec820: + .space 0x4 + .global data_ov00_020ec824 +data_ov00_020ec824: + .space 0x4 + .global data_ov00_020ec828 +data_ov00_020ec828: + .space 0x4 + .global data_ov00_020ec82c +data_ov00_020ec82c: + .space 0x4 + .global data_ov00_020ec830 +data_ov00_020ec830: + .space 0x4 + .global data_ov00_020ec834 +data_ov00_020ec834: + .space 0x4 + .global data_ov00_020ec838 +data_ov00_020ec838: + .space 0x4 + .global data_ov00_020ec83c +data_ov00_020ec83c: + .space 0x4 + .global data_ov00_020ec840 +data_ov00_020ec840: + .space 0x4 + .global data_ov00_020ec844 +data_ov00_020ec844: + .space 0x4 + .global data_ov00_020ec848 +data_ov00_020ec848: + .space 0x4 + .global data_ov00_020ec84c +data_ov00_020ec84c: + .space 0x4 + .global data_ov00_020ec850 +data_ov00_020ec850: + .space 0x4 + .global data_ov00_020ec854 +data_ov00_020ec854: + .space 0x4 + .global data_ov00_020ec858 +data_ov00_020ec858: + .space 0x4 + .global data_ov00_020ec85c +data_ov00_020ec85c: + .space 0x4 + .global data_ov00_020ec860 +data_ov00_020ec860: + .space 0x4 + .global data_ov00_020ec864 +data_ov00_020ec864: + .space 0x4 + .global data_ov00_020ec868 +data_ov00_020ec868: + .space 0x4 + .global data_ov00_020ec86c +data_ov00_020ec86c: + .space 0x4 + .global data_ov00_020ec870 +data_ov00_020ec870: + .space 0x4 + .global data_ov00_020ec874 +data_ov00_020ec874: + .space 0x4 + .global data_ov00_020ec878 +data_ov00_020ec878: + .space 0x4 + .global data_ov00_020ec87c +data_ov00_020ec87c: + .space 0x4 + .global data_ov00_020ec880 +data_ov00_020ec880: + .space 0x4 + .global data_ov00_020ec884 +data_ov00_020ec884: + .space 0x4 + .global data_ov00_020ec888 +data_ov00_020ec888: + .space 0x4 + .global data_ov00_020ec88c +data_ov00_020ec88c: + .space 0x4 + .global data_ov00_020ec890 +data_ov00_020ec890: + .space 0x4 + .global data_ov00_020ec894 +data_ov00_020ec894: + .space 0x4 + .global data_ov00_020ec898 +data_ov00_020ec898: + .space 0x4 + .global data_ov00_020ec89c +data_ov00_020ec89c: + .space 0x4 + .global data_ov00_020ec8a0 +data_ov00_020ec8a0: + .space 0x4 + .global data_ov00_020ec8a4 +data_ov00_020ec8a4: + .space 0x4 + .global data_ov00_020ec8a8 +data_ov00_020ec8a8: + .space 0x4 + .global data_ov00_020ec8ac +data_ov00_020ec8ac: + .space 0x4 + .global data_ov00_020ec8b0 +data_ov00_020ec8b0: + .space 0x4 + .global data_ov00_020ec8b4 +data_ov00_020ec8b4: + .space 0x4 + .global data_ov00_020ec8b8 +data_ov00_020ec8b8: + .space 0x4 + .global data_ov00_020ec8bc +data_ov00_020ec8bc: + .space 0x4 + .global data_ov00_020ec8c0 +data_ov00_020ec8c0: + .space 0x4 + .global data_ov00_020ec8c4 +data_ov00_020ec8c4: + .space 0x4 + .global data_ov00_020ec8c8 +data_ov00_020ec8c8: + .space 0x4 + .global data_ov00_020ec8cc +data_ov00_020ec8cc: + .space 0x4 + .global data_ov00_020ec8d0 +data_ov00_020ec8d0: + .space 0x4 + .global data_ov00_020ec8d4 +data_ov00_020ec8d4: + .space 0x4 + .global data_ov00_020ec8d8 +data_ov00_020ec8d8: + .space 0x4 + .global data_ov00_020ec8dc +data_ov00_020ec8dc: + .space 0x4 + .global data_ov00_020ec8e0 +data_ov00_020ec8e0: + .space 0x4 + .global data_ov00_020ec8e4 +data_ov00_020ec8e4: + .space 0x4 + .global data_ov00_020ec8e8 +data_ov00_020ec8e8: + .space 0x4 + .global data_ov00_020ec8ec +data_ov00_020ec8ec: + .space 0x4 + .global data_ov00_020ec8f0 +data_ov00_020ec8f0: + .space 0x4 + .global data_ov00_020ec8f4 +data_ov00_020ec8f4: + .space 0x4 + .global data_ov00_020ec8f8 +data_ov00_020ec8f8: + .space 0x4 + .global data_ov00_020ec8fc +data_ov00_020ec8fc: + .space 0x4 + .global data_ov00_020ec900 +data_ov00_020ec900: + .space 0x4 + .global data_ov00_020ec904 +data_ov00_020ec904: + .space 0x4 + .global data_ov00_020ec908 +data_ov00_020ec908: + .space 0x4 + .global data_ov00_020ec90c +data_ov00_020ec90c: + .space 0x4 + .global data_ov00_020ec910 +data_ov00_020ec910: + .space 0x4 + .global data_ov00_020ec914 +data_ov00_020ec914: + .space 0x4 + .global data_ov00_020ec918 +data_ov00_020ec918: + .space 0x4 + .global data_ov00_020ec91c +data_ov00_020ec91c: + .space 0x4 + .global data_ov00_020ec920 +data_ov00_020ec920: + .space 0x4 + .global data_ov00_020ec924 +data_ov00_020ec924: + .space 0x4 + .global data_ov00_020ec928 +data_ov00_020ec928: + .space 0x4 + .global data_ov00_020ec92c +data_ov00_020ec92c: + .space 0x4 + .global data_ov00_020ec930 +data_ov00_020ec930: + .space 0x4 + .global data_ov00_020ec934 +data_ov00_020ec934: + .space 0x4 + .global data_ov00_020ec938 +data_ov00_020ec938: + .space 0x4 + .global data_ov00_020ec93c +data_ov00_020ec93c: + .space 0x4 + .global data_ov00_020ec940 +data_ov00_020ec940: + .space 0x4 + .global data_ov00_020ec944 +data_ov00_020ec944: + .space 0x4 + .global data_ov00_020ec948 +data_ov00_020ec948: + .space 0x4 + .global data_ov00_020ec94c +data_ov00_020ec94c: + .space 0x4 + .global data_ov00_020ec950 +data_ov00_020ec950: + .space 0x4 + .global data_ov00_020ec954 +data_ov00_020ec954: + .space 0x4 + .global data_ov00_020ec958 +data_ov00_020ec958: + .space 0x4 + .global data_ov00_020ec95c +data_ov00_020ec95c: + .space 0x4 + .global data_ov00_020ec960 +data_ov00_020ec960: + .space 0x4 diff --git a/asm/ov00/ov00_0207afa0.s b/asm/ov00/ov00_0207afa0.s index 12806524..8a8c3b32 100644 --- a/asm/ov00/ov00_0207afa0.s +++ b/asm/ov00/ov00_0207afa0.s @@ -6128,249 +6128,3 @@ data_ov00_020ec7ef: .global data_ov00_020ec7f0 data_ov00_020ec7f0: .space 0x2c - .global data_ov00_020ec81c -data_ov00_020ec81c: - .space 0x4 - .global data_ov00_020ec820 -data_ov00_020ec820: - .space 0x4 - .global data_ov00_020ec824 -data_ov00_020ec824: - .space 0x4 - .global data_ov00_020ec828 -data_ov00_020ec828: - .space 0x4 - .global data_ov00_020ec82c -data_ov00_020ec82c: - .space 0x4 - .global data_ov00_020ec830 -data_ov00_020ec830: - .space 0x4 - .global data_ov00_020ec834 -data_ov00_020ec834: - .space 0x4 - .global data_ov00_020ec838 -data_ov00_020ec838: - .space 0x4 - .global data_ov00_020ec83c -data_ov00_020ec83c: - .space 0x4 - .global data_ov00_020ec840 -data_ov00_020ec840: - .space 0x4 - .global data_ov00_020ec844 -data_ov00_020ec844: - .space 0x4 - .global data_ov00_020ec848 -data_ov00_020ec848: - .space 0x4 - .global data_ov00_020ec84c -data_ov00_020ec84c: - .space 0x4 - .global data_ov00_020ec850 -data_ov00_020ec850: - .space 0x4 - .global data_ov00_020ec854 -data_ov00_020ec854: - .space 0x4 - .global data_ov00_020ec858 -data_ov00_020ec858: - .space 0x4 - .global data_ov00_020ec85c -data_ov00_020ec85c: - .space 0x4 - .global data_ov00_020ec860 -data_ov00_020ec860: - .space 0x4 - .global data_ov00_020ec864 -data_ov00_020ec864: - .space 0x4 - .global data_ov00_020ec868 -data_ov00_020ec868: - .space 0x4 - .global data_ov00_020ec86c -data_ov00_020ec86c: - .space 0x4 - .global data_ov00_020ec870 -data_ov00_020ec870: - .space 0x4 - .global data_ov00_020ec874 -data_ov00_020ec874: - .space 0x4 - .global data_ov00_020ec878 -data_ov00_020ec878: - .space 0x4 - .global data_ov00_020ec87c -data_ov00_020ec87c: - .space 0x4 - .global data_ov00_020ec880 -data_ov00_020ec880: - .space 0x4 - .global data_ov00_020ec884 -data_ov00_020ec884: - .space 0x4 - .global data_ov00_020ec888 -data_ov00_020ec888: - .space 0x4 - .global data_ov00_020ec88c -data_ov00_020ec88c: - .space 0x4 - .global data_ov00_020ec890 -data_ov00_020ec890: - .space 0x4 - .global data_ov00_020ec894 -data_ov00_020ec894: - .space 0x4 - .global data_ov00_020ec898 -data_ov00_020ec898: - .space 0x4 - .global data_ov00_020ec89c -data_ov00_020ec89c: - .space 0x4 - .global data_ov00_020ec8a0 -data_ov00_020ec8a0: - .space 0x4 - .global data_ov00_020ec8a4 -data_ov00_020ec8a4: - .space 0x4 - .global data_ov00_020ec8a8 -data_ov00_020ec8a8: - .space 0x4 - .global data_ov00_020ec8ac -data_ov00_020ec8ac: - .space 0x4 - .global data_ov00_020ec8b0 -data_ov00_020ec8b0: - .space 0x4 - .global data_ov00_020ec8b4 -data_ov00_020ec8b4: - .space 0x4 - .global data_ov00_020ec8b8 -data_ov00_020ec8b8: - .space 0x4 - .global data_ov00_020ec8bc -data_ov00_020ec8bc: - .space 0x4 - .global data_ov00_020ec8c0 -data_ov00_020ec8c0: - .space 0x4 - .global data_ov00_020ec8c4 -data_ov00_020ec8c4: - .space 0x4 - .global data_ov00_020ec8c8 -data_ov00_020ec8c8: - .space 0x4 - .global data_ov00_020ec8cc -data_ov00_020ec8cc: - .space 0x4 - .global data_ov00_020ec8d0 -data_ov00_020ec8d0: - .space 0x4 - .global data_ov00_020ec8d4 -data_ov00_020ec8d4: - .space 0x4 - .global data_ov00_020ec8d8 -data_ov00_020ec8d8: - .space 0x4 - .global data_ov00_020ec8dc -data_ov00_020ec8dc: - .space 0x4 - .global data_ov00_020ec8e0 -data_ov00_020ec8e0: - .space 0x4 - .global data_ov00_020ec8e4 -data_ov00_020ec8e4: - .space 0x4 - .global data_ov00_020ec8e8 -data_ov00_020ec8e8: - .space 0x4 - .global data_ov00_020ec8ec -data_ov00_020ec8ec: - .space 0x4 - .global data_ov00_020ec8f0 -data_ov00_020ec8f0: - .space 0x4 - .global data_ov00_020ec8f4 -data_ov00_020ec8f4: - .space 0x4 - .global data_ov00_020ec8f8 -data_ov00_020ec8f8: - .space 0x4 - .global data_ov00_020ec8fc -data_ov00_020ec8fc: - .space 0x4 - .global data_ov00_020ec900 -data_ov00_020ec900: - .space 0x4 - .global data_ov00_020ec904 -data_ov00_020ec904: - .space 0x4 - .global data_ov00_020ec908 -data_ov00_020ec908: - .space 0x4 - .global data_ov00_020ec90c -data_ov00_020ec90c: - .space 0x4 - .global data_ov00_020ec910 -data_ov00_020ec910: - .space 0x4 - .global data_ov00_020ec914 -data_ov00_020ec914: - .space 0x4 - .global data_ov00_020ec918 -data_ov00_020ec918: - .space 0x4 - .global data_ov00_020ec91c -data_ov00_020ec91c: - .space 0x4 - .global data_ov00_020ec920 -data_ov00_020ec920: - .space 0x4 - .global data_ov00_020ec924 -data_ov00_020ec924: - .space 0x4 - .global data_ov00_020ec928 -data_ov00_020ec928: - .space 0x4 - .global data_ov00_020ec92c -data_ov00_020ec92c: - .space 0x4 - .global data_ov00_020ec930 -data_ov00_020ec930: - .space 0x4 - .global data_ov00_020ec934 -data_ov00_020ec934: - .space 0x4 - .global data_ov00_020ec938 -data_ov00_020ec938: - .space 0x4 - .global data_ov00_020ec93c -data_ov00_020ec93c: - .space 0x4 - .global data_ov00_020ec940 -data_ov00_020ec940: - .space 0x4 - .global data_ov00_020ec944 -data_ov00_020ec944: - .space 0x4 - .global data_ov00_020ec948 -data_ov00_020ec948: - .space 0x4 - .global data_ov00_020ec94c -data_ov00_020ec94c: - .space 0x4 - .global data_ov00_020ec950 -data_ov00_020ec950: - .space 0x4 - .global data_ov00_020ec954 -data_ov00_020ec954: - .space 0x4 - .global data_ov00_020ec958 -data_ov00_020ec958: - .space 0x4 - .global data_ov00_020ec95c -data_ov00_020ec95c: - .space 0x4 - .global data_ov00_020ec960 -data_ov00_020ec960: - .space 0x4 diff --git a/asm/ov00/ov00_0207da38.inc b/asm/ov00/ov00_0207da38.inc index 5632b1cb..3e40e77d 100644 --- a/asm/ov00/ov00_0207da38.inc +++ b/asm/ov00/ov00_0207da38.inc @@ -1,86 +1,8 @@ #pragma once -.extern Divide -.extern _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p -.extern _ZN6Course13FindMapCenterEi .extern _ZN9SysObjectdlEPv .extern _ZN9SysObjectnwEmPjj -.extern data_027e0618 .extern data_027e0ce0 -.extern data_027e0d38 -.extern data_027e0e58 -.extern data_027e0f64 -.extern data_027e0f68 -.extern data_027e0f6c -.extern data_027e0f78 -.extern data_027e0f88 -.extern data_027e0f8c -.extern data_ov00_020ec81c -.extern data_ov00_020ec824 -.extern data_ov00_020ec864 -.extern data_ov00_020ec8a4 -.extern data_ov00_020ec8e4 -.extern data_ov00_020ec924 -.extern data_ov00_020ecde4 -.extern data_ov00_020ee0a0 -.extern func_01ffe904 -.extern func_01fff084 -.extern func_01fff264 -.extern func_020078f4 -.extern func_0200c8d0 -.extern func_020196bc -.extern func_020196fc -.extern func_0201e24c -.extern func_0201e4cc -.extern func_02042f68 .extern func_02043594 .extern func_020435b4 .extern func_02043600 .extern func_0204dd9c -.extern func_0204f614 -.extern func_0204f754 -.extern func_ov00_02078b40 -.extern func_ov00_02079e3c -.extern func_ov00_02087dd8 -.extern func_ov00_0208b79c -.extern func_ov00_0208d820 -.extern func_ov00_0208ee00 -.extern func_ov00_02095554 -.extern func_ov00_0209564c -.extern func_ov00_0209581c -.extern func_ov00_02095d58 -.extern func_ov00_0209c08c -.extern func_ov00_0209c1e4 -.extern func_ov00_0209c2b4 -.extern func_ov00_0209c2d0 -.extern func_ov00_0209c530 -.extern func_ov00_0209c61c -.extern func_ov00_0209c788 -.extern func_ov00_0209c8e4 -.extern func_ov00_0209cc3c -.extern func_ov00_0209cc48 -.extern func_ov00_0209cd80 -.extern func_ov00_0209cd9c -.extern func_ov00_0209cddc -.extern func_ov00_0209cdf8 -.extern func_ov00_020a1a0c -.extern func_ov00_020a3de0 -.extern func_ov00_020a5e9c -.extern func_ov04_0210bfa8 -.extern func_ov04_0210c1f8 -.extern func_ov04_0210c3fc -.extern func_ov04_0210c52c -.extern func_ov04_0210c5cc -.extern func_ov04_0210c764 -.extern func_ov04_0210c800 -.extern func_ov04_0210c88c -.extern func_ov04_0210c8d4 -.extern func_ov04_0210ca84 -.extern func_ov04_0210cb00 -.extern func_ov04_0210cb1c -.extern func_ov04_0210dd90 -.extern func_ov05_02111bc0 -.extern func_ov05_02111c00 -.extern func_ov05_02111c6c -.extern func_ov05_02111c70 -.extern gMapManager -.extern strcmp diff --git a/asm/ov00/ov00_0207da38.s b/asm/ov00/ov00_0207da38.s index a575616f..4de0c9ba 100644 --- a/asm/ov00/ov00_0207da38.s +++ b/asm/ov00/ov00_0207da38.s @@ -3,4159 +3,6 @@ .text - .global _ZN7MapBaseD1Ev - arm_func_start _ZN7MapBaseD1Ev -_ZN7MapBaseD1Ev: ; 0x0207da38 - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0207db0c ; =data_ov00_020e2348 - mov r4, r0 - str r1, [r4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r5, [r4, #0x144] - cmp r5, #0 - beq _0207da7c - beq _0207da74 - mov r0, r5 - blx func_ov04_0210dd90 - mov r0, r5 - bl _ZN9SysObjectdlEPv -_0207da74: - mov r0, #0 - str r0, [r4, #0x144] -_0207da7c: - ldr r0, _0207db10 ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dac0 - ldr r1, [r0] - ldr r1, [r1, #0xc] - blx r1 - ldr r0, _0207db10 ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dab4 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_0207dab4: - ldr r0, _0207db10 ; =data_ov00_020ec81c - mov r1, #0 - str r1, [r0, #4] -_0207dac0: - mov r0, r4 - blx func_ov04_0210cb1c - ldr r3, _0207db14 ; =_ZN15MapBase_Unk_180D1Ev - add r0, r4, #0x180 - mov r1, #2 - mov r2, #4 - bl func_0204f754 - add r0, r4, #0x130 - bl func_ov00_02080f20 - add r0, r4, #0x124 - bl func_ov00_020810e8 - add r0, r4, #0x118 - bl func_ov00_02081070 - add r0, r4, #0x10c - bl func_ov00_02080f20 - add r0, r4, #0x100 - bl func_ov00_02080ff8 - mov r0, r4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end _ZN7MapBaseD1Ev -_0207db0c: .word data_ov00_020e2348 -_0207db10: .word data_ov00_020ec81c -_0207db14: .word _ZN15MapBase_Unk_180D1Ev - - .global _ZN15MapBase_Unk_180D1Ev - arm_func_start _ZN15MapBase_Unk_180D1Ev -_ZN15MapBase_Unk_180D1Ev: ; 0x0207db18 - bx lr - arm_func_end _ZN15MapBase_Unk_180D1Ev - - .global _ZN7MapBaseD0Ev - arm_func_start _ZN7MapBaseD0Ev -_ZN7MapBaseD0Ev: ; 0x0207db1c - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0207dbf8 ; =data_ov00_020e2348 - mov r4, r0 - str r1, [r4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r5, [r4, #0x144] - cmp r5, #0 - beq _0207db60 - beq _0207db58 - mov r0, r5 - blx func_ov04_0210dd90 - mov r0, r5 - bl _ZN9SysObjectdlEPv -_0207db58: - mov r0, #0 - str r0, [r4, #0x144] -_0207db60: - ldr r0, _0207dbfc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dba4 - ldr r1, [r0] - ldr r1, [r1, #0xc] - blx r1 - ldr r0, _0207dbfc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207db98 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_0207db98: - ldr r0, _0207dbfc ; =data_ov00_020ec81c - mov r1, #0 - str r1, [r0, #4] -_0207dba4: - mov r0, r4 - blx func_ov04_0210cb1c - ldr r3, _0207dc00 ; =_ZN15MapBase_Unk_180D1Ev - add r0, r4, #0x180 - mov r1, #2 - mov r2, #4 - bl func_0204f754 - add r0, r4, #0x130 - bl func_ov00_02080f20 - add r0, r4, #0x124 - bl func_ov00_020810e8 - add r0, r4, #0x118 - bl func_ov00_02081070 - add r0, r4, #0x10c - bl func_ov00_02080f20 - add r0, r4, #0x100 - bl func_ov00_02080ff8 - mov r0, r4 - bl _ZN9SysObjectdlEPv - mov r0, r4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end _ZN7MapBaseD0Ev -_0207dbf8: .word data_ov00_020e2348 -_0207dbfc: .word data_ov00_020ec81c -_0207dc00: .word _ZN15MapBase_Unk_180D1Ev - - .global _ZN7MapBaseD2Ev - arm_func_start _ZN7MapBaseD2Ev -_ZN7MapBaseD2Ev: ; 0x0207dc04 - stmdb sp!, {r3, r4, r5, lr} - ldr r1, _0207dcd8 ; =data_ov00_020e2348 - mov r4, r0 - str r1, [r4] - ldr r1, [r0] - ldr r1, [r1, #0x2c] - blx r1 - ldr r5, [r4, #0x144] - cmp r5, #0 - beq _0207dc48 - beq _0207dc40 - mov r0, r5 - blx func_ov04_0210dd90 - mov r0, r5 - bl _ZN9SysObjectdlEPv -_0207dc40: - mov r0, #0 - str r0, [r4, #0x144] -_0207dc48: - ldr r0, _0207dcdc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dc8c - ldr r1, [r0] - ldr r1, [r1, #0xc] - blx r1 - ldr r0, _0207dcdc ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - beq _0207dc80 - ldr r1, [r0] - ldr r1, [r1, #4] - blx r1 -_0207dc80: - ldr r0, _0207dcdc ; =data_ov00_020ec81c - mov r1, #0 - str r1, [r0, #4] -_0207dc8c: - mov r0, r4 - blx func_ov04_0210cb1c - ldr r3, _0207dce0 ; =_ZN15MapBase_Unk_180D1Ev - add r0, r4, #0x180 - mov r1, #2 - mov r2, #4 - bl func_0204f754 - add r0, r4, #0x130 - bl func_ov00_02080f20 - add r0, r4, #0x124 - bl func_ov00_020810e8 - add r0, r4, #0x118 - bl func_ov00_02081070 - add r0, r4, #0x10c - bl func_ov00_02080f20 - add r0, r4, #0x100 - bl func_ov00_02080ff8 - mov r0, r4 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end _ZN7MapBaseD2Ev -_0207dcd8: .word data_ov00_020e2348 -_0207dcdc: .word data_ov00_020ec81c -_0207dce0: .word _ZN15MapBase_Unk_180D1Ev - - .global _ZN7MapBase9SetBoundsEii - arm_func_start _ZN7MapBase9SetBoundsEii -_ZN7MapBase9SetBoundsEii: ; 0x0207dce4 - stmdb sp!, {r4, r5, lr} - sub sp, sp, #0x2c - mov r4, r0 - ldrh r5, [r4, #0x28] - ldrh r3, [r4, #0x2a] - mov r0, r2 - mov r5, r5, lsl #0xc - mov r2, r3, lsl #0xc - str r5, [sp] - str r2, [sp, #4] - bl _ZN6Course13FindMapCenterEi - mov ip, r5 - add r5, sp, #0x20 - ldmia r0, {r0, r1, r2} - stmia r5, {r0, r1, r2} - ldr r1, [sp, #0x20] - ldr r3, [sp, #4] - ldr r2, [sp, #0x28] - ldr r0, [sp, #0x24] - sub r1, r1, ip, asr #1 - str r1, [r4, #0xdc] - str r0, [r4, #0xe0] - sub r1, r2, r3, asr #1 - str r1, [r4, #0xe4] - ldr r1, [sp, #0x20] - mov r5, r3, asr #0x1 - str r1, [r4, #0xd0] - ldr r1, [sp, #0x24] - add r3, r2, r3, asr #1 - str r1, [r4, #0xd4] - ldr r1, [sp, #0x28] - mov lr, ip, asr #0x1 - str r1, [r4, #0xd8] - ldr r2, [sp, #0x20] - rsb r1, lr, #0 - add r2, r2, ip, asr #1 - str r2, [r4, #0xe8] - str r0, [r4, #0xec] - str r3, [r4, #0xf0] - str r1, [r4, #0xf4] - mov r0, #0 - str r0, [r4, #0xf8] - rsb r0, r5, #0 - str r0, [r4, #0xfc] - add sp, sp, #0x2c - ldmia sp!, {r4, r5, pc} - arm_func_end _ZN7MapBase9SetBoundsEii - - .global _ZN15MapManager_Unk2D1Ev - arm_func_start _ZN15MapManager_Unk2D1Ev -_ZN15MapManager_Unk2D1Ev: ; 0x0207dd9c - bx lr - arm_func_end _ZN15MapManager_Unk2D1Ev - - .global _ZN7MapBase14GetMapFilePathEPcii - arm_func_start _ZN7MapBase14GetMapFilePathEPcii -_ZN7MapBase14GetMapFilePathEPcii: ; 0x0207dda0 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #4 - ldr ip, _0207ddec ; =0x66666667 - mov r6, r1 - smull r0, r5, ip, r2 - mov r0, r3 - smull r1, r3, ip, r2 - mov r4, r2, lsr #0x1f - add r5, r4, r5, asr #2 - mov lr, #0xa - smull r1, ip, lr, r5 - sub r5, r2, r1 - ldr r1, _0207ddf0 ; =data_ov00_020e2410 - mov r2, r6 - add r3, r4, r3, asr #2 - str r5, [sp] - bl func_0200c8d0 - add sp, sp, #4 - ldmia sp!, {r3, r4, r5, r6, pc} - .align 2, 0 - arm_func_end _ZN7MapBase14GetMapFilePathEPcii -_0207ddec: .word 0x66666667 -_0207ddf0: .word data_ov00_020e2410 - - .global _ZN7MapBase8vfunc_18Ev - arm_func_start _ZN7MapBase8vfunc_18Ev -_ZN7MapBase8vfunc_18Ev: ; 0x0207ddf4 - bx lr - arm_func_end _ZN7MapBase8vfunc_18Ev - - .global _ZN7MapBase18func_ov00_0207ddf8Eb - arm_func_start _ZN7MapBase18func_ov00_0207ddf8Eb -_ZN7MapBase18func_ov00_0207ddf8Eb: ; 0x0207ddf8 - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, lr} - mov r7, #0 - mov r10, r0 - mov r9, r1 - add r8, r10, #0x180 - mvn r5, #0 - mov r6, r7 - mov r4, r7 - mov r11, #4 -_0207de1c: - cmp r9, #0 - beq _0207de44 - mov r2, r6 - add r1, r10, r7, lsl #2 -_0207de2c: - add r0, r1, r2, lsl #2 - add r2, r2, #1 - str r5, [r0, #0x180] - cmp r2, #1 - blo _0207de2c - b _0207de54 -_0207de44: - mov r0, r4 - mov r1, r8 - mov r2, r11 - bl func_020078f4 -_0207de54: - add r7, r7, #1 - cmp r7, #2 - add r8, r8, #4 - blt _0207de1c - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end _ZN7MapBase18func_ov00_0207ddf8Eb - - .global _ZN7MapBase18func_ov00_0207de68Ei - arm_func_start _ZN7MapBase18func_ov00_0207de68Ei -_ZN7MapBase18func_ov00_0207de68Ei: ; 0x0207de68 - stmdb sp!, {r3, lr} - ldr r0, [r0, #0x144] - mov r2, r1 - cmp r0, #0 - ldmeqia sp!, {r3, pc} - mov r1, #0 - bl func_ov00_0209c08c - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase18func_ov00_0207de68Ei - - .global _ZN7MapBase18func_ov00_0207de88Ev - arm_func_start _ZN7MapBase18func_ov00_0207de88Ev -_ZN7MapBase18func_ov00_0207de88Ev: ; 0x0207de88 - stmdb sp!, {r3, lr} - ldr r0, [r0, #0x144] - cmp r0, #0 - ldmeqia sp!, {r3, pc} - bl func_ov00_0209c61c - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase18func_ov00_0207de88Ev - - .global _ZN7MapBase18func_ov00_0207dea0Eb - arm_func_start _ZN7MapBase18func_ov00_0207dea0Eb -_ZN7MapBase18func_ov00_0207dea0Eb: ; 0x0207dea0 - stmdb sp!, {r4, r5, r6, lr} - sub sp, sp, #0x10 - mov r5, r0 - ldr r2, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - mov r4, r1 - ldr r6, [r2] - bl func_ov00_0209c530 - ldrh r2, [r0, #4] - mov r0, r6 - mov r1, #0 - bl func_ov00_0209cc3c - ldr r1, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #6] - mov r0, r6 - mov r1, #1 - bl func_ov00_0209cc3c - ldr r1, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #8] - mov r0, r6 - mov r1, #2 - bl func_ov00_0209cc3c - ldr r1, _0207e044 ; =data_027e0f78 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #0xa] - mov r0, r6 - mov r1, #3 - bl func_ov00_0209cc3c - ldr r0, _0207e044 ; =data_027e0f78 - ldr r0, [r0] - bl func_ov00_0209cc48 - ldr r1, _0207e048 ; =data_027e0f88 - ldr r0, [r5, #0x144] - ldr r6, [r1] - bl func_ov00_0209c530 - mov r1, r0 - ldrh r2, [r1, #0xc] - mov r0, r6 - mov r1, #0 - bl func_ov00_020a1a0c - cmp r4, #0 - beq _0207dff0 - ldr r0, [r5, #0x144] - ldr r1, _0207e04c ; =data_ov00_020ecde4 - ldr r2, [r0, #0xc] - mov r0, #0x68 - mla r0, r2, r0, r1 - add r0, r0, #0x54 - add r4, sp, #0 - ldmia r0, {r0, r1, r2, r3} - stmia r4, {r0, r1, r2, r3} - ldr r0, [sp] - cmp r0, #1 - blt _0207dfb4 - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - mov r1, #1 - bl func_ov00_0209cd80 - b _0207dfc0 -_0207dfb4: - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - mov r1, #0 - bl func_ov00_0209cd80 -_0207dfc0: - ldr r0, [r5, #0x144] - bl func_ov00_0209c530 - ldrh r1, [r0, #0xe] - ldr r2, [sp, #0xc] - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - bl func_ov00_0209cd9c - ldr r1, [sp, #4] - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - bl func_ov00_0209cddc - ldr r1, [sp, #8] - ldr r0, _0207e050 ; =data_ov00_020ee0a0 - bl func_ov00_0209cdf8 -_0207dff0: - ldr r0, _0207e054 ; =data_027e0d38 - ldr r0, [r0] - bl func_ov00_02078b40 - cmp r0, #2 - bne _0207e01c - ldr r0, [r5, #0x144] - bl func_ov00_0209c530 - ldr r1, _0207e058 ; =data_027e0e58 - ldrh r2, [r0, #0x10] - ldr r0, [r1] - strh r2, [r0, #0x22] -_0207e01c: - ldr r0, [r5, #0x144] - bl func_ov00_0209c530 - mov r1, r0 - ldr r0, _0207e05c ; =data_027e0f8c - add r1, r1, #0x12 - bl func_ov00_020a3de0 - ldr r0, [r5, #0x144] - bl func_ov00_0209c788 - add sp, sp, #0x10 - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0207dea0Eb -_0207e044: .word data_027e0f78 -_0207e048: .word data_027e0f88 -_0207e04c: .word data_ov00_020ecde4 -_0207e050: .word data_ov00_020ee0a0 -_0207e054: .word data_027e0d38 -_0207e058: .word data_027e0e58 -_0207e05c: .word data_027e0f8c - - .global _ZN7MapBase8vfunc_b0Eii - arm_func_start _ZN7MapBase8vfunc_b0Eii -_ZN7MapBase8vfunc_b0Eii: ; 0x0207e060 - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r0, [r5, #0x13c] - mov r4, r2 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - bl func_020196fc - ldr r0, [r5, #0x13c] - mov r1, r4 - bl func_020196bc - ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN7MapBase8vfunc_b0Eii - - .global _ZN7MapBase18func_ov00_0207e08cEii - arm_func_start _ZN7MapBase18func_ov00_0207e08cEii -_ZN7MapBase18func_ov00_0207e08cEii: ; 0x0207e08c - stmdb sp!, {r3, lr} - ldr r3, [r0, #0x13c] - cmp r3, #0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r0, [r3, #8] - adds lr, r3, r0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldrh r0, [lr, #0xa] - add ip, lr, #4 - cmp lr, #0 - ldrh r3, [ip, r0] - add r0, ip, r0 - mla r0, r3, r2, r0 - ldr r0, [r0, #4] - add r3, lr, r0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r2, [r3, #0x14] - mov r0, #1 - str r2, [r1] - ldrh r2, [r3, #0x1c] - strh r2, [r1, #4] - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase18func_ov00_0207e08cEii - - .global _ZN7MapBase18func_ov00_0207e0f0Ei - arm_func_start _ZN7MapBase18func_ov00_0207e0f0Ei -_ZN7MapBase18func_ov00_0207e0f0Ei: ; 0x0207e0f0 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r2, [r10, #0x13c] - str r1, [sp] - cmp r2, #0 - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, [r2, #8] - adds r0, r2, r0 - str r0, [sp, #4] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrh r1, [r0] - adds r0, r0, r1 - str r0, [sp, #0xc] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrb r1, [r0, #1] - mov r0, #0 - str r0, [sp, #8] - cmp r1, #0 - bls _0207e280 - mov r7, r0 -_0207e15c: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0xc] - ldrh r3, [r0, #6] - mov r0, r10 - ldr r2, [r0] - add r3, r1, r3 - ldrh r1, [r3, #2] - ldr r2, [r2, #0xb4] - add r4, r3, r1 - blx r2 - add r0, r0, #0x3c - add r1, r4, r7 - bl func_0201e24c - cmp r0, #0 - beq _0207e260 - ldr r0, [sp, #0xc] - mov r5, #0 - ldrh r2, [r0, #6] - ldrh r1, [r0, r2] - add r0, r0, r2 - add r2, r0, #4 - ldr r0, [sp, #8] - mul r0, r1, r0 - add r11, r2, r0 - ldrb r1, [r11, #2] - ldrh r0, [r2, r0] - cmp r1, #0 - str r0, [sp, #0x10] - ble _0207e260 -_0207e1d0: - ldr r1, [sp, #4] - ldr r0, [sp, #0x10] - ldrb r0, [r1, r0] - add r1, r0, r5 - ldr r0, [sp] - cmp r0, r1 - bne _0207e250 - mov r0, r10 - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - add r1, r0, #0x3c - ldrb r9, [r1, #1] - mov r6, #0 - cmp r9, #0 - ble _0207e250 - ldrh r0, [r1, #6] - add r8, r1, r0 -_0207e218: - ldrh r0, [r8, #2] - add r1, r4, r7 - add r0, r8, r0 - add r0, r0, r6, lsl #4 - bl strcmp - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, r6 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r0, r6, #1 - mov r0, r0, lsl #0x10 - cmp r9, r0, lsr #16 - mov r6, r0, lsr #0x10 - bgt _0207e218 -_0207e250: - ldrb r0, [r11, #2] - add r5, r5, #1 - cmp r5, r0 - blt _0207e1d0 -_0207e260: - ldr r0, [sp, #0xc] - add r7, r7, #0x10 - ldrb r1, [r0, #1] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, r1 - blo _0207e15c -_0207e280: - mvn r0, #0 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end _ZN7MapBase18func_ov00_0207e0f0Ei - - .global _ZN7MapBase18func_ov00_0207e28cEi - arm_func_start _ZN7MapBase18func_ov00_0207e28cEi -_ZN7MapBase18func_ov00_0207e28cEi: ; 0x0207e28c - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x14 - mov r10, r0 - ldr r2, [r10, #0x13c] - str r1, [sp] - cmp r2, #0 - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, [r2, #8] - adds r0, r2, r0 - str r0, [sp, #4] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrh r1, [r0, #2] - adds r0, r0, r1 - str r0, [sp, #0xc] - addeq sp, sp, #0x14 - mvneq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldrb r1, [r0, #1] - mov r0, #0 - str r0, [sp, #8] - cmp r1, #0 - bls _0207e438 - mov r7, r0 -_0207e2f8: - ldr r0, [sp, #0xc] - ldr r1, [sp, #0xc] - ldrh r3, [r0, #6] - mov r0, r10 - ldr r2, [r0] - add r3, r1, r3 - ldrh r1, [r3, #2] - ldr r2, [r2, #0xb4] - add r4, r3, r1 - blx r2 - ldrh r2, [r0, #0x34] - add r1, r4, r7 - add r0, r0, r2 - bl func_0201e24c - cmp r0, #0 - beq _0207e418 - ldr r0, [sp, #0xc] - mov r5, #0 - ldrh r2, [r0, #6] - ldrh r1, [r0, r2] - add r0, r0, r2 - add r2, r0, #4 - ldr r0, [sp, #8] - mul r0, r1, r0 - add r11, r2, r0 - ldrb r1, [r11, #2] - ldrh r0, [r2, r0] - cmp r1, #0 - str r0, [sp, #0x10] - ble _0207e418 -_0207e370: - ldr r1, [sp, #4] - ldr r0, [sp, #0x10] - ldrb r0, [r1, r0] - add r1, r0, r5 - ldr r0, [sp] - cmp r0, r1 - bne _0207e408 - mov r0, r10 - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - mov r8, r0 - mov r0, r10 - ldr r1, [r0] - ldr r1, [r1, #0xb4] - blx r1 - ldrh r0, [r0, #0x34] - mov r6, #0 - add r1, r8, r0 - ldrb r9, [r1, #1] - cmp r9, #0 - ble _0207e408 - ldrh r0, [r1, #6] - add r8, r1, r0 -_0207e3d0: - ldrh r0, [r8, #2] - add r1, r4, r7 - add r0, r8, r0 - add r0, r0, r6, lsl #4 - bl strcmp - cmp r0, #0 - addeq sp, sp, #0x14 - moveq r0, r6 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r0, r6, #1 - mov r0, r0, lsl #0x10 - cmp r9, r0, lsr #16 - mov r6, r0, lsr #0x10 - bgt _0207e3d0 -_0207e408: - ldrb r0, [r11, #2] - add r5, r5, #1 - cmp r5, r0 - blt _0207e370 -_0207e418: - ldr r0, [sp, #0xc] - add r7, r7, #0x10 - ldrb r1, [r0, #1] - ldr r0, [sp, #8] - add r0, r0, #1 - str r0, [sp, #8] - cmp r0, r1 - blo _0207e2f8 -_0207e438: - mvn r0, #0 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end _ZN7MapBase18func_ov00_0207e28cEi - - .global _ZN7MapBase8vfunc_b4Ev - arm_func_start _ZN7MapBase8vfunc_b4Ev -_ZN7MapBase8vfunc_b4Ev: ; 0x0207e444 - stmdb sp!, {r3, lr} - ldr r0, _0207e468 ; =data_ov00_020ec81c - ldr r0, [r0, #4] - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr r0, [r0, #8] - bl func_0201e4cc - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end _ZN7MapBase8vfunc_b4Ev -_0207e468: .word data_ov00_020ec81c - - .global _ZN7MapBase8vfunc_48Ev - arm_func_start _ZN7MapBase8vfunc_48Ev -_ZN7MapBase8vfunc_48Ev: ; 0x0207e46c - stmdb sp!, {r4, lr} - mov r4, r0 - bl _ZN7MapBase16Trigger_vfunc_08Ev - ldr r0, [r4, #0x144] - mov r1, #0 - bl func_ov00_0209c8e4 - ldmia sp!, {r4, pc} - arm_func_end _ZN7MapBase8vfunc_48Ev - - .global _ZN7MapBase8vfunc_50Ev - arm_func_start _ZN7MapBase8vfunc_50Ev -_ZN7MapBase8vfunc_50Ev: ; 0x0207e488 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_50Ev - - .global _ZN7MapBase8vfunc_54Ev - arm_func_start _ZN7MapBase8vfunc_54Ev -_ZN7MapBase8vfunc_54Ev: ; 0x0207e490 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_54Ev - - .global _ZN7MapBase8vfunc_58Ev - arm_func_start _ZN7MapBase8vfunc_58Ev -_ZN7MapBase8vfunc_58Ev: ; 0x0207e498 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_58Ev - - .global _ZN7MapBase8vfunc_5cEv - arm_func_start _ZN7MapBase8vfunc_5cEv -_ZN7MapBase8vfunc_5cEv: ; 0x0207e4a0 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_5cEv - - .global _ZN7MapBase8vfunc_60Ev - arm_func_start _ZN7MapBase8vfunc_60Ev -_ZN7MapBase8vfunc_60Ev: ; 0x0207e4a8 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_60Ev - - .global _ZN7MapBase8vfunc_64Ev - arm_func_start _ZN7MapBase8vfunc_64Ev -_ZN7MapBase8vfunc_64Ev: ; 0x0207e4b0 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_64Ev - - .global _ZN7MapBase8vfunc_68Eii - arm_func_start _ZN7MapBase8vfunc_68Eii -_ZN7MapBase8vfunc_68Eii: ; 0x0207e4b8 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x7c - ldr r3, _0207e92c ; =gMapManager - mov r9, r1 - ldr r1, [r3] - mov r8, r0 - mov r4, r2 - add r0, sp, #8 - mov r2, r9 - bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x54] - blx r2 - cmp r0, #0x1e - bgt _0207e570 - bge _0207e724 - cmp r0, #0x17 - bgt _0207e554 - bge _0207e724 - cmp r0, #9 - bgt _0207e548 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _0207e63c -_0207e520: ; jump table - b _0207e63c ; case 0 - b _0207e724 ; case 1 - b _0207e724 ; case 2 - b _0207e724 ; case 3 - b _0207e724 ; case 4 - b _0207e63c ; case 5 - b _0207e63c ; case 6 - b _0207e63c ; case 7 - b _0207e724 ; case 8 - b _0207e724 ; case 9 -_0207e548: - cmp r0, #0x16 - beq _0207e724 - b _0207e63c -_0207e554: - cmp r0, #0x19 - bgt _0207e564 - beq _0207e724 - b _0207e63c -_0207e564: - cmp r0, #0x1d - beq _0207e724 - b _0207e63c -_0207e570: - cmp r0, #0x35 - bgt _0207e5c8 - bge _0207e5e4 - cmp r0, #0x29 - bgt _0207e5bc - subs r1, r0, #0x1f - addpl pc, pc, r1, lsl #2 - b _0207e63c -_0207e590: ; jump table - b _0207e724 ; case 0 - b _0207e63c ; case 1 - b _0207e63c ; case 2 - b _0207e63c ; case 3 - b _0207e63c ; case 4 - b _0207e63c ; case 5 - b _0207e63c ; case 6 - b _0207e63c ; case 7 - b _0207e724 ; case 8 - b _0207e724 ; case 9 - b _0207e724 ; case 10 -_0207e5bc: - cmp r0, #0x30 - beq _0207e724 - b _0207e63c -_0207e5c8: - cmp r0, #0x40 - bgt _0207e5d8 - beq _0207e724 - b _0207e63c -_0207e5d8: - cmp r0, #0x50 - beq _0207e724 - b _0207e63c -_0207e5e4: - cmp r4, #0 - beq _0207e724 - add r2, sp, #0x14 - mov r0, r8 - mov r1, r9 - bl _ZN7MapBase18func_ov00_0207f104Eii - cmp r0, #0 - ldrne r0, [sp, #0x14] - addne sp, sp, #0x7c - ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r2, sp, #0x14 - mov r0, r8 - mov r1, r9 - bl _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi - cmp r0, #0 - beq _0207e724 - ldr r0, [sp, #0x14] - ldr r1, [r9, #4] - cmp r1, r0 - blt _0207e724 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e63c: - ldrb r0, [r8, #0xe] - cmp r0, #0 - bne _0207e724 - cmp r4, #0 - bne _0207e694 - mov r0, r8 - ldr r3, [r0] - add r1, sp, #8 - ldr r3, [r3, #0x58] - mov r2, #5 - blx r3 - cmp r0, #0 - ldreqb r0, [r8, #8] - cmpeq r0, #0 - bne _0207e724 - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x60] - blx r2 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e694: - add r2, sp, #0x10 - mov r0, r8 - mov r1, r9 - bl _ZN7MapBase18func_ov00_0207f104Eii - cmp r0, #0 - ldrne r0, [sp, #0x10] - addne sp, sp, #0x7c - ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - add r2, sp, #0x10 - mov r0, r8 - mov r1, r9 - bl _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi - cmp r0, #0 - beq _0207e6e0 - ldr r0, [sp, #0x10] - ldr r1, [r9, #4] - cmp r1, r0 - addge sp, sp, #0x7c - ldmgeia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e6e0: - mov r0, r8 - ldr r3, [r0] - add r1, sp, #8 - ldr r3, [r3, #0x58] - mov r2, #5 - blx r3 - cmp r0, #0 - ldreqb r0, [r8, #8] - cmpeq r0, #0 - bne _0207e724 - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x60] - blx r2 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e724: - mov r0, #0x20 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r0, _0207e930 ; =data_027e0f6c - ldr r3, _0207e934 ; =data_ov00_020ec824 - ldr r0, [r0] - mov r1, r9 - mov r2, #2 - bl func_01fff084 - ldr r4, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev - mov r5, r0 - ldr r3, _0207e93c ; =_ZN7MapBase18func_ov00_0207e96cEv - add r0, sp, #0x48 - mov r1, #3 - mov r2, #0x10 - str r4, [sp] - mov r6, #0x2000 - bl func_0204f614 - mov r7, #0 - sub r0, r7, #0x10000 - add r4, sp, #0x18 - str r7, [sp, #0x24] - str r7, [sp, #0x2c] - str r0, [sp, #0x28] - ldmia r9, {r0, r1, r2} - stmia r4, {r0, r1, r2} - cmp r5, #0 - ble _0207e8a0 - ldr r10, _0207e934 ; =data_ov00_020ec824 - ldr r9, _0207e930 ; =data_027e0f6c - mov r11, #0x4c -_0207e7a4: - mov r0, r7, lsl #0x1 - ldrh r1, [r10, r0] - ldr r2, [r9] - add r0, sp, #0x30 - ldr r3, [r2, #0x20] - mul r2, r1, r11 - add ip, r3, r2 - ldrh lr, [r3, r2] - ldrh r3, [ip, #2] - mov r1, r4 - add r2, sp, #0x24 - strh r3, [sp, #0x32] - strh lr, [sp, #0x30] - ldrh lr, [ip, #4] - add r3, sp, #0xc - strh lr, [sp, #0x34] - ldrh lr, [ip, #6] - strh lr, [sp, #0x36] - ldr lr, [ip, #8] - str lr, [sp, #0x38] - ldr lr, [ip, #0xc] - str lr, [sp, #0x3c] - ldr lr, [ip, #0x10] - str lr, [sp, #0x40] - ldr lr, [ip, #0x14] - str lr, [sp, #0x44] - ldr lr, [ip, #0x18] - str lr, [sp, #0x48] - ldr lr, [ip, #0x1c] - str lr, [sp, #0x4c] - ldr lr, [ip, #0x20] - str lr, [sp, #0x50] - ldr lr, [ip, #0x24] - str lr, [sp, #0x54] - ldr lr, [ip, #0x28] - str lr, [sp, #0x58] - ldr lr, [ip, #0x2c] - str lr, [sp, #0x5c] - ldr lr, [ip, #0x30] - str lr, [sp, #0x60] - ldr lr, [ip, #0x34] - str lr, [sp, #0x64] - ldr lr, [ip, #0x38] - str lr, [sp, #0x68] - ldr lr, [ip, #0x3c] - str lr, [sp, #0x6c] - ldr lr, [ip, #0x40] - str lr, [sp, #0x70] - ldr lr, [ip, #0x44] - str lr, [sp, #0x74] - ldr ip, [ip, #0x48] - str ip, [sp, #0x78] - bl func_01ffe904 - cmp r0, #0 - beq _0207e88c - ldr r0, [sp, #0xc] - cmp r0, r6 - movlt r6, r0 -_0207e88c: - add r0, r7, #1 - mov r0, r0, lsl #0x10 - cmp r5, r0, lsr #16 - mov r7, r0, lsr #0x10 - bgt _0207e7a4 -_0207e8a0: - cmp r6, #0x1000 - bgt _0207e8f4 - mvn r1, #0 - mov r0, r1, lsl #0x10 - umull r3, r2, r6, r0 - mla r2, r6, r1, r2 - mov r1, r6, asr #0x1f - mla r2, r1, r0, r2 - adds r3, r3, #0x800 - adc r1, r2, #0 - mov r4, r3, lsr #0xc - orr r4, r4, r1, lsl #20 - ldr r3, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev - ldr r5, [sp, #0x1c] - add r0, sp, #0x48 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - add sp, sp, #0x7c - add r0, r5, r4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207e8f4: - mov r0, r8 - ldr r2, [r0] - add r1, sp, #8 - ldr r2, [r2, #0x60] - blx r2 - mov r4, r0 - ldr r3, _0207e938 ; =_ZN7MapBase18func_ov00_0207e968Ev - add r0, sp, #0x48 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - mov r0, r4 - add sp, sp, #0x7c - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end _ZN7MapBase8vfunc_68Eii -_0207e92c: .word gMapManager -_0207e930: .word data_027e0f6c -_0207e934: .word data_ov00_020ec824 -_0207e938: .word _ZN7MapBase18func_ov00_0207e968Ev -_0207e93c: .word _ZN7MapBase18func_ov00_0207e96cEv - - .global _ZN7MapBase18func_ov00_0207e940EPc - arm_func_start _ZN7MapBase18func_ov00_0207e940EPc -_ZN7MapBase18func_ov00_0207e940EPc: ; 0x0207e940 - stmdb sp!, {r4, lr} - mov r4, r0 - ldr r3, _0207e964 ; =_ZN7MapBase18func_ov00_0207e968Ev - add r0, r4, #0x18 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - mov r0, r4 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0207e940EPc -_0207e964: .word _ZN7MapBase18func_ov00_0207e968Ev - - .global _ZN7MapBase18func_ov00_0207e968Ev - arm_func_start _ZN7MapBase18func_ov00_0207e968Ev -_ZN7MapBase18func_ov00_0207e968Ev: ; 0x0207e968 - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207e968Ev - - .global _ZN7MapBase18func_ov00_0207e96cEv - arm_func_start _ZN7MapBase18func_ov00_0207e96cEv -_ZN7MapBase18func_ov00_0207e96cEv: ; 0x0207e96c - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207e96cEv - - .global _ZN7MapBase8vfunc_6cEiii - arm_func_start _ZN7MapBase8vfunc_6cEiii -_ZN7MapBase8vfunc_6cEiii: ; 0x0207e970 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0xc4 - ldr r4, _0207ee00 ; =gMapManager - mov r9, r1 - ldr r1, [r4] - mov r8, r0 - str r2, [sp, #8] - add r0, sp, #0xc - mov r2, r9 - mov r7, r3 - bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p - mov r0, r8 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x54] - blx r2 - cmp r0, #0x1e - bgt _0207ea2c - bge _0207eb04 - cmp r0, #0x17 - bgt _0207ea10 - bge _0207eb04 - cmp r0, #9 - bgt _0207ea04 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _0207ea9c -_0207e9dc: ; jump table - b _0207ea9c ; case 0 - b _0207eb04 ; case 1 - b _0207eb04 ; case 2 - b _0207eb04 ; case 3 - b _0207eb04 ; case 4 - b _0207ea9c ; case 5 - b _0207ea9c ; case 6 - b _0207ea9c ; case 7 - b _0207eb04 ; case 8 - b _0207eb04 ; case 9 -_0207ea04: - cmp r0, #0x16 - beq _0207eb04 - b _0207ea9c -_0207ea10: - cmp r0, #0x19 - bgt _0207ea20 - beq _0207eb04 - b _0207ea9c -_0207ea20: - cmp r0, #0x1d - beq _0207eb04 - b _0207ea9c -_0207ea2c: - cmp r0, #0x35 - bgt _0207ea84 - bge _0207eb04 - cmp r0, #0x29 - bgt _0207ea78 - subs r1, r0, #0x1f - addpl pc, pc, r1, lsl #2 - b _0207ea9c -_0207ea4c: ; jump table - b _0207eb04 ; case 0 - b _0207ea9c ; case 1 - b _0207ea9c ; case 2 - b _0207ea9c ; case 3 - b _0207ea9c ; case 4 - b _0207ea9c ; case 5 - b _0207ea9c ; case 6 - b _0207ea9c ; case 7 - b _0207eb04 ; case 8 - b _0207eb04 ; case 9 - b _0207eb04 ; case 10 -_0207ea78: - cmp r0, #0x30 - beq _0207eb04 - b _0207ea9c -_0207ea84: - cmp r0, #0x40 - bgt _0207ea94 - beq _0207eb04 - b _0207ea9c -_0207ea94: - cmp r0, #0x50 - beq _0207eb04 -_0207ea9c: - ldrb r0, [r8, #0xe] - cmp r0, #0 - bne _0207eb04 - mov r0, r8 - ldr r3, [r0] - add r1, sp, #0xc - ldr r3, [r3, #0x58] - mov r2, #5 - blx r3 - cmp r0, #0 - ldreqb r0, [r8, #8] - cmpeq r0, #0 - bne _0207eb04 - mov r0, r8 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x60] - blx r2 - ldr r1, [sp, #8] - add sp, sp, #0xc4 - str r0, [r1] - mov r1, #0 - str r1, [r7] - mov r0, #0x1000 - stmib r7, {r0, r1} - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} -_0207eb04: - mov r0, #0x20 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r0, _0207ee04 ; =data_027e0f6c - ldr r3, _0207ee08 ; =data_ov00_020ec864 - ldr r0, [r0] - mov r1, r9 - mov r2, #2 - bl func_01fff084 - ldr r5, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev - mov r4, r0 - str r5, [sp] - ldr r3, _0207ee10 ; =_ZN7MapBase18func_ov00_0207e96cEv - add r0, sp, #0x90 - mov r1, #3 - mov r2, #0x10 - mov r5, #0x2000 - bl func_0204f614 - ldr r1, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev - ldr r3, _0207ee10 ; =_ZN7MapBase18func_ov00_0207e96cEv - str r1, [sp] - add r0, sp, #0x44 - mov r1, #3 - mov r2, #0x10 - bl func_0204f614 - mov r6, #0 - sub r0, r6, #0x10000 - str r6, [sp, #0x20] - str r6, [sp, #0x28] - str r0, [sp, #0x24] - add r3, sp, #0x14 - ldmia r9, {r0, r1, r2} - cmp r4, #0 - stmia r3, {r0, r1, r2} - ble _0207ed48 - ldr r10, _0207ee08 ; =data_ov00_020ec864 - ldr r9, _0207ee04 ; =data_027e0f6c - mov r11, #0x4c -_0207eba0: - mov r0, r6, lsl #0x1 - ldrh r1, [r10, r0] - ldr r2, [r9] - add r0, sp, #0x78 - ldr r3, [r2, #0x20] - mul r2, r1, r11 - add ip, r3, r2 - ldrh lr, [r3, r2] - ldrh r3, [ip, #2] - add r1, sp, #0x14 - add r2, sp, #0x20 - strh r3, [sp, #0x7a] - strh lr, [sp, #0x78] - ldrh lr, [ip, #4] - add r3, sp, #0x10 - strh lr, [sp, #0x7c] - ldrh lr, [ip, #6] - strh lr, [sp, #0x7e] - ldr lr, [ip, #8] - str lr, [sp, #0x80] - ldr lr, [ip, #0xc] - str lr, [sp, #0x84] - ldr lr, [ip, #0x10] - str lr, [sp, #0x88] - ldr lr, [ip, #0x14] - str lr, [sp, #0x8c] - ldr lr, [ip, #0x18] - str lr, [sp, #0x90] - ldr lr, [ip, #0x1c] - str lr, [sp, #0x94] - ldr lr, [ip, #0x20] - str lr, [sp, #0x98] - ldr lr, [ip, #0x24] - str lr, [sp, #0x9c] - ldr lr, [ip, #0x28] - str lr, [sp, #0xa0] - ldr lr, [ip, #0x2c] - str lr, [sp, #0xa4] - ldr lr, [ip, #0x30] - str lr, [sp, #0xa8] - ldr lr, [ip, #0x34] - str lr, [sp, #0xac] - ldr lr, [ip, #0x38] - str lr, [sp, #0xb0] - ldr lr, [ip, #0x3c] - str lr, [sp, #0xb4] - ldr lr, [ip, #0x40] - str lr, [sp, #0xb8] - ldr lr, [ip, #0x44] - str lr, [sp, #0xbc] - ldr ip, [ip, #0x48] - str ip, [sp, #0xc0] - bl func_01ffe904 - cmp r0, #0 - beq _0207ed34 - ldr r1, [sp, #0x10] - cmp r1, r5 - bge _0207ed34 - ldrh r0, [sp, #0x78] - mov r5, r1 - ldrh r1, [sp, #0x7a] - strh r0, [sp, #0x2c] - ldrh r0, [sp, #0x7c] - strh r1, [sp, #0x2e] - ldrh r1, [sp, #0x7e] - strh r0, [sp, #0x30] - ldr r0, [sp, #0x80] - strh r1, [sp, #0x32] - str r0, [sp, #0x34] - ldr r1, [sp, #0x84] - ldr r0, [sp, #0x88] - str r1, [sp, #0x38] - str r0, [sp, #0x3c] - ldr r1, [sp, #0x8c] - ldr r0, [sp, #0x90] - str r1, [sp, #0x40] - str r0, [sp, #0x44] - ldr r1, [sp, #0x94] - ldr r0, [sp, #0x98] - str r1, [sp, #0x48] - str r0, [sp, #0x4c] - ldr r1, [sp, #0x9c] - ldr r0, [sp, #0xa0] - str r1, [sp, #0x50] - str r0, [sp, #0x54] - ldr r1, [sp, #0xa4] - ldr r0, [sp, #0xa8] - str r1, [sp, #0x58] - str r0, [sp, #0x5c] - ldr r1, [sp, #0xac] - ldr r0, [sp, #0xb0] - str r1, [sp, #0x60] - str r0, [sp, #0x64] - ldr r1, [sp, #0xb4] - ldr r0, [sp, #0xb8] - str r1, [sp, #0x68] - str r0, [sp, #0x6c] - ldr r1, [sp, #0xbc] - ldr r0, [sp, #0xc0] - str r1, [sp, #0x70] - str r0, [sp, #0x74] -_0207ed34: - add r0, r6, #1 - mov r0, r0, lsl #0x10 - cmp r4, r0, lsr #16 - mov r6, r0, lsr #0x10 - bgt _0207eba0 -_0207ed48: - cmp r5, #0x1000 - bgt _0207eda4 - mvn r1, #0 - mov r0, r1, lsl #0x10 - umull r3, r2, r5, r0 - mla r2, r5, r1, r2 - ldr r4, [sp, #0x34] - mov r1, r5, asr #0x1f - str r4, [r7] - ldr r4, [sp, #0x38] - mla r2, r1, r0, r2 - str r4, [r7, #4] - ldr r1, [sp, #0x3c] - adds r3, r3, #0x800 - str r1, [r7, #8] - adc r0, r2, #0 - mov r1, r3, lsr #0xc - orr r1, r1, r0, lsl #20 - ldr r2, [sp, #0x18] - ldr r0, [sp, #8] - add r1, r2, r1 - str r1, [r0] - b _0207edd0 -_0207eda4: - mov r0, r8 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x60] - blx r2 - ldr r1, [sp, #8] - str r0, [r1] - mov r1, #0 - str r1, [r7] - mov r0, #0x1000 - stmib r7, {r0, r1} -_0207edd0: - ldr r3, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev - add r0, sp, #0x44 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - ldr r3, _0207ee0c ; =_ZN7MapBase18func_ov00_0207e968Ev - add r0, sp, #0x90 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - add sp, sp, #0xc4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end _ZN7MapBase8vfunc_6cEiii -_0207ee00: .word gMapManager -_0207ee04: .word data_027e0f6c -_0207ee08: .word data_ov00_020ec864 -_0207ee0c: .word _ZN7MapBase18func_ov00_0207e968Ev -_0207ee10: .word _ZN7MapBase18func_ov00_0207e96cEv - - .global _ZN7MapBase8vfunc_70EP5Vec3p - arm_func_start _ZN7MapBase8vfunc_70EP5Vec3p -_ZN7MapBase8vfunc_70EP5Vec3p: ; 0x0207ee14 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x74 - ldr r0, _0207efdc ; =gMapManager - mov r9, r1 - ldr r1, [r0] - add r0, sp, #8 - mov r2, r9 - bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p - mov r0, #0x20 - str r0, [sp] - mov r1, #0 - str r1, [sp, #4] - ldr r0, _0207efe0 ; =data_027e0f6c - ldr r3, _0207efe4 ; =data_ov00_020ec8a4 - ldr r0, [r0] - mov r1, r9 - mov r2, #2 - bl func_01fff084 - ldr r1, _0207efe8 ; =_ZN7MapBase18func_ov00_0207e968Ev - mov r5, r0 - str r1, [sp] - ldr r3, _0207efec ; =_ZN7MapBase18func_ov00_0207e96cEv - add r0, sp, #0x40 - mov r1, #3 - mov r2, #0x10 - mov r6, #0x2000 - ldr r7, _0207eff0 ; =0x0000ffff - bl func_0204f614 - mov r8, #0 - sub r0, r8, #0x10000 - str r8, [sp, #0x1c] - str r8, [sp, #0x24] - str r0, [sp, #0x20] - add r4, sp, #0x10 - ldmia r9, {r0, r1, r2} - cmp r5, #0 - stmia r4, {r0, r1, r2} - ble _0207efbc - ldr r10, _0207efe4 ; =data_ov00_020ec8a4 - ldr r9, _0207efe0 ; =data_027e0f6c - mov r11, #0x4c -_0207eeb8: - mov r0, r8, lsl #0x1 - ldrh r1, [r10, r0] - ldr r2, [r9] - add r0, sp, #0x28 - ldr r3, [r2, #0x20] - mul r2, r1, r11 - add ip, r3, r2 - ldrh lr, [r3, r2] - ldrh r3, [ip, #2] - mov r1, r4 - add r2, sp, #0x1c - strh r3, [sp, #0x2a] - strh lr, [sp, #0x28] - ldrh lr, [ip, #4] - add r3, sp, #0xc - strh lr, [sp, #0x2c] - ldrh lr, [ip, #6] - strh lr, [sp, #0x2e] - ldr lr, [ip, #8] - str lr, [sp, #0x30] - ldr lr, [ip, #0xc] - str lr, [sp, #0x34] - ldr lr, [ip, #0x10] - str lr, [sp, #0x38] - ldr lr, [ip, #0x14] - str lr, [sp, #0x3c] - ldr lr, [ip, #0x18] - str lr, [sp, #0x40] - ldr lr, [ip, #0x1c] - str lr, [sp, #0x44] - ldr lr, [ip, #0x20] - str lr, [sp, #0x48] - ldr lr, [ip, #0x24] - str lr, [sp, #0x4c] - ldr lr, [ip, #0x28] - str lr, [sp, #0x50] - ldr lr, [ip, #0x2c] - str lr, [sp, #0x54] - ldr lr, [ip, #0x30] - str lr, [sp, #0x58] - ldr lr, [ip, #0x34] - str lr, [sp, #0x5c] - ldr lr, [ip, #0x38] - str lr, [sp, #0x60] - ldr lr, [ip, #0x3c] - str lr, [sp, #0x64] - ldr lr, [ip, #0x40] - str lr, [sp, #0x68] - ldr lr, [ip, #0x44] - str lr, [sp, #0x6c] - ldr ip, [ip, #0x48] - str ip, [sp, #0x70] - bl func_01ffe904 - cmp r0, #0 - beq _0207efa8 - ldr r1, [sp, #0xc] - cmp r1, r6 - movlt r0, r8, lsl #0x1 - ldrlth r7, [r10, r0] - movlt r6, r1 -_0207efa8: - add r0, r8, #1 - mov r0, r0, lsl #0x10 - cmp r5, r0, lsr #16 - mov r8, r0, lsr #0x10 - bgt _0207eeb8 -_0207efbc: - ldr r3, _0207efe8 ; =_ZN7MapBase18func_ov00_0207e968Ev - add r0, sp, #0x40 - mov r1, #3 - mov r2, #0x10 - bl func_0204f754 - mov r0, r7 - add sp, sp, #0x74 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - .align 2, 0 - arm_func_end _ZN7MapBase8vfunc_70EP5Vec3p -_0207efdc: .word gMapManager -_0207efe0: .word data_027e0f6c -_0207efe4: .word data_ov00_020ec8a4 -_0207efe8: .word _ZN7MapBase18func_ov00_0207e968Ev -_0207efec: .word _ZN7MapBase18func_ov00_0207e96cEv -_0207eff0: .word 0x0000ffff - - .global _ZN7MapBase8vfunc_74EP5Vec3p - arm_func_start _ZN7MapBase8vfunc_74EP5Vec3p -_ZN7MapBase8vfunc_74EP5Vec3p: ; 0x0207eff4 - stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x24 - ldr r0, _0207f0f4 ; =gMapManager - mov r8, r1 - ldr r1, [r0] - add r0, sp, #8 - mov r2, r8 - bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p - add r4, sp, #0xc - ldmia r8, {r0, r1, r2} - stmia r4, {r0, r1, r2} - add r3, sp, #0x18 - ldmia r8, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r4 - mov r1, #0x800 - bl func_ov00_0208ee00 - mov r0, #0x20 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _0207f0f8 ; =data_027e0f6c - ldr r3, _0207f0fc ; =data_ov00_020ec8e4 - ldr r0, [r0] - mov r1, r4 - mov r2, #8 - bl func_01fff264 - mov r5, r0 - cmp r5, #0 - mov r6, #0 - ble _0207f0e8 - ldr r4, _0207f0fc ; =data_ov00_020ec8e4 - ldr r9, _0207f0f8 ; =data_027e0f6c -_0207f078: - mov r0, r6, lsl #0x1 - ldr r1, [r9] - ldrh r0, [r4, r0] - ldr r1, [r1, #0x40] - ldr r7, [r1, r0, lsl #2] - cmp r7, #0 - ldrneb r0, [r7, #4] - cmpne r0, #0 - ldrneb r0, [r7, #5] - cmpne r0, #0 - beq _0207f0dc - ldr r0, [r7, #0xc] - ands r0, r0, #0x1f - cmpne r0, #1 - cmpne r0, #2 - beq _0207f0dc - mov r0, r7 - ldr r2, [r0] - mov r1, r8 - ldr r2, [r2, #0x48] - blx r2 - cmp r0, #0 - addne sp, sp, #0x24 - movne r0, r7 - ldmneia sp!, {r4, r5, r6, r7, r8, r9, pc} -_0207f0dc: - add r6, r6, #1 - cmp r6, r5 - blt _0207f078 -_0207f0e8: - mov r0, #0 - add sp, sp, #0x24 - ldmia sp!, {r4, r5, r6, r7, r8, r9, pc} - .align 2, 0 - arm_func_end _ZN7MapBase8vfunc_74EP5Vec3p -_0207f0f4: .word gMapManager -_0207f0f8: .word data_027e0f6c -_0207f0fc: .word data_ov00_020ec8e4 - - .global _ZN7MapBase18func_ov00_0207f100Ev - arm_func_start _ZN7MapBase18func_ov00_0207f100Ev -_ZN7MapBase18func_ov00_0207f100Ev: ; 0x0207f100 - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207f100Ev - - .global _ZN7MapBase18func_ov00_0207f104Eii - arm_func_start _ZN7MapBase18func_ov00_0207f104Eii -_ZN7MapBase18func_ov00_0207f104Eii: ; 0x0207f104 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - ldr r3, _0207f1f0 ; =gMapManager - mov r5, r1 - ldr r1, [r3] - mov r6, r0 - mov r4, r2 - add r0, sp, #0 - mov r2, r5 - bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p - mov r0, r6 - ldr r2, [r0] - add r1, sp, #0 - ldr r2, [r2, #0x78] - blx r2 - movs r7, r0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, [r0] - ldr r1, [r1, #0x58] - blx r1 - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r7 - ldr r1, [r0] - ldr r1, [r1, #0x54] - blx r1 - cmp r0, #0 - moveq r0, #0 - ldrneb r0, [r0, #5] - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r7 - mov r1, r5 - bl func_ov00_0208b79c - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r7 - ldr r1, [r0] - ldr r1, [r1, #0x54] - blx r1 - cmp r0, #0 - moveq r5, #0 - beq _0207f1cc - ldr r1, [r0] - ldr r1, [r1, #0x44] - blx r1 - mov r5, r0 -_0207f1cc: - mov r0, r6 - ldr r2, [r0] - add r1, sp, #0 - ldr r2, [r2, #0x60] - blx r2 - add r0, r0, r5 - str r0, [r4] - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0207f104Eii -_0207f1f0: .word gMapManager - - .global _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi - arm_func_start _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi -_ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi: ; 0x0207f1f4 - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, r10, lr} - sub sp, sp, #0x3c - ldr r0, _0207f318 ; =gMapManager - mov r9, r1 - ldr r1, [r0] - mov r8, r2 - add r0, sp, #8 - mov r2, r9 - bl _ZN10MapManager18func_ov00_02083a1cEiPS_P5Vec3p - add r4, sp, #0x24 - ldmia r9, {r0, r1, r2} - stmia r4, {r0, r1, r2} - add r3, sp, #0x30 - ldmia r9, {r0, r1, r2} - stmia r3, {r0, r1, r2} - mov r0, r4 - mov r1, #0x800 - bl func_ov00_0208ee00 - mov r0, #0x20 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _0207f31c ; =data_027e0f6c - ldr r3, _0207f320 ; =data_ov00_020ec924 - ldr r0, [r0] - mov r1, r4 - mov r2, #8 - bl func_01fff264 - mov r5, r0 - cmp r5, #0 - mov r6, #0 - ble _0207f30c - ldr r4, _0207f320 ; =data_ov00_020ec924 - ldr r10, _0207f31c ; =data_027e0f6c -_0207f27c: - mov r0, r6, lsl #0x1 - ldr r1, [r10] - ldrh r0, [r4, r0] - ldr r1, [r1, #0x40] - ldr r7, [r1, r0, lsl #2] - cmp r7, #0 - ldrneb r0, [r7, #4] - cmpne r0, #0 - ldrneb r0, [r7, #5] - cmpne r0, #0 - beq _0207f300 - ldr r0, [r7, #0xc] - ands r0, r0, #0x1f - cmpne r0, #1 - cmpne r0, #2 - beq _0207f300 - mov r0, r7 - ldr r2, [r0] - mov r1, r9 - ldr r2, [r2, #0x48] - blx r2 - cmp r0, #0 - beq _0207f300 - mov r0, r7 - ldr r2, [r0] - add r1, sp, #0xc - ldr r2, [r2, #0x2c] - blx r2 - ldr r1, [sp, #0x1c] - add sp, sp, #0x3c - mov r0, #1 - str r1, [r8] - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} -_0207f300: - add r6, r6, #1 - cmp r6, r5 - blt _0207f27c -_0207f30c: - mov r0, #0 - add sp, sp, #0x3c - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, r10, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0207f1f4EP5Vec3pPi -_0207f318: .word gMapManager -_0207f31c: .word data_027e0f6c -_0207f320: .word data_ov00_020ec924 - - .global _ZN7MapBase8vfunc_88Ev - arm_func_start _ZN7MapBase8vfunc_88Ev -_ZN7MapBase8vfunc_88Ev: ; 0x0207f324 - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_88Ev - - .global _ZN7MapBase8vfunc_8cEv - arm_func_start _ZN7MapBase8vfunc_8cEv -_ZN7MapBase8vfunc_8cEv: ; 0x0207f32c - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_8cEv - - .global _ZN7MapBase8vfunc_9cEv - arm_func_start _ZN7MapBase8vfunc_9cEv -_ZN7MapBase8vfunc_9cEv: ; 0x0207f334 - bx lr - arm_func_end _ZN7MapBase8vfunc_9cEv - - .global _ZN7MapBase8vfunc_a0Ev - arm_func_start _ZN7MapBase8vfunc_a0Ev -_ZN7MapBase8vfunc_a0Ev: ; 0x0207f338 - bx lr - arm_func_end _ZN7MapBase8vfunc_a0Ev - - .global _ZN7MapBase8vfunc_a4Ev - arm_func_start _ZN7MapBase8vfunc_a4Ev -_ZN7MapBase8vfunc_a4Ev: ; 0x0207f33c - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_a4Ev - - .global _ZN7MapBase8vfunc_a8Ev - arm_func_start _ZN7MapBase8vfunc_a8Ev -_ZN7MapBase8vfunc_a8Ev: ; 0x0207f344 - bx lr - arm_func_end _ZN7MapBase8vfunc_a8Ev - - .global _ZN7MapBase8vfunc_acEv - arm_func_start _ZN7MapBase8vfunc_acEv -_ZN7MapBase8vfunc_acEv: ; 0x0207f348 - bx lr - arm_func_end _ZN7MapBase8vfunc_acEv - - .global _ZN7MapBase8vfunc_78Ev - arm_func_start _ZN7MapBase8vfunc_78Ev -_ZN7MapBase8vfunc_78Ev: ; 0x0207f34c - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase8vfunc_78Ev - - .global _ZN7MapBase8vfunc_7cEv - arm_func_start _ZN7MapBase8vfunc_7cEv -_ZN7MapBase8vfunc_7cEv: ; 0x0207f354 - mov r0, #1 - bx lr - arm_func_end _ZN7MapBase8vfunc_7cEv - - .global _ZN7MapBase8vfunc_80Ev - arm_func_start _ZN7MapBase8vfunc_80Ev -_ZN7MapBase8vfunc_80Ev: ; 0x0207f35c - mov r0, #1 - bx lr - arm_func_end _ZN7MapBase8vfunc_80Ev - - .global _ZN7MapBase8vfunc_84Ei - arm_func_start _ZN7MapBase8vfunc_84Ei -_ZN7MapBase8vfunc_84Ei: ; 0x0207f364 - stmdb sp!, {r3, lr} - ldrb r3, [r1, #0x15] - ldrb r2, [r1, #0x14] - add r1, sp, #0 - strb r3, [sp, #1] - strb r2, [sp] - ldr r2, [r0] - ldr r2, [r2, #0x80] - blx r2 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase8vfunc_84Ei - - .global _ZN7MapBase18func_ov00_0207f38cEi - arm_func_start _ZN7MapBase18func_ov00_0207f38cEi -_ZN7MapBase18func_ov00_0207f38cEi: ; 0x0207f38c - stmdb sp!, {r4, lr} - ldr r2, [r0] - mov r4, r1 - ldr r2, [r2, #0x84] - blx r2 - cmp r0, #0 - moveq r0, #0 - ldmeqia sp!, {r4, pc} - ldr r0, _0207f3c0 ; =data_027e0f68 - mov r1, r4 - ldr r0, [r0] - bl func_ov00_0208d820 - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0207f38cEi -_0207f3c0: .word data_027e0f68 - - .global _ZN7MapBase8vfunc_90Eiii - arm_func_start _ZN7MapBase8vfunc_90Eiii -_ZN7MapBase8vfunc_90Eiii: ; 0x0207f3c4 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - ldr r3, [r0] - mov r6, r0 - ldr r3, [r3, #0x54] - mov r5, r1 - mov r4, r2 - blx r3 - mov r7, r0 - cmp r7, r4 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - mov r0, r6 - ldr r3, [r0] - mov r1, r5 - ldr r3, [r3, #0xbc] - mov r2, r4 - blx r3 - mov r0, r6 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x5c] - blx r2 - mov r1, r0 - cmp r4, #0x14 - bne _0207f448 - mov r0, r6 - ldr r3, [r0] - sub r1, r1, #3 - mov r2, r1, lsl #0x18 - ldr r3, [r3, #0xc0] - mov r1, r5 - mov r2, r2, asr #0x18 - blx r3 - b _0207f470 -_0207f448: - cmp r7, #0x14 - bne _0207f470 - mov r0, r6 - ldr r3, [r0] - add r1, r1, #3 - mov r2, r1, lsl #0x18 - ldr r3, [r3, #0xc0] - mov r1, r5 - mov r2, r2, asr #0x18 - blx r3 -_0207f470: - mov r0, r6 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x78] - blx r2 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x44] - blx r2 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end _ZN7MapBase8vfunc_90Eiii - - .global _ZN7MapBase8vfunc_94Ev - arm_func_start _ZN7MapBase8vfunc_94Ev -_ZN7MapBase8vfunc_94Ev: ; 0x0207f4a0 - bx lr - arm_func_end _ZN7MapBase8vfunc_94Ev - - .global _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si - arm_func_start _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si -_ZN7MapBase18func_ov00_0207f4a4EP5Vec2si: ; 0x0207f4a4 - stmdb sp!, {r3, r4, lr} - sub sp, sp, #4 - ldrsh r3, [r1, #2] - ldrsh r4, [r1] - add r3, r3, r3, lsr #31 - add ip, r4, r4, lsr #31 - mov r4, r3, asr #0x1 - mov r3, ip, asr #0x1 - strb r3, [sp] - strb r4, [sp, #1] - ldrsh r4, [r1] - ldrsh ip, [r1, #2] - mov r3, r4, lsr #0x1f - mov lr, ip, lsr #0x1f - rsb r1, r3, r4, lsl #31 - rsb ip, lr, ip, lsl #31 - adds r1, r3, r1, ror #31 - add r3, lr, ip, ror #31 - cmpeq r3, #0 - moveq r2, #0 - beq _0207f524 - cmp r1, #1 - cmpeq r3, #0 - moveq r2, #1 - beq _0207f524 - cmp r1, #1 - cmpeq r3, #1 - moveq r2, #3 - beq _0207f524 - cmp r1, #0 - cmpeq r3, #1 - moveq r2, #2 -_0207f524: - ldr r3, [r0] - add r1, sp, #0 - ldr r3, [r3, #0x58] - blx r3 - add sp, sp, #4 - ldmia sp!, {r3, r4, pc} - arm_func_end _ZN7MapBase18func_ov00_0207f4a4EP5Vec2si - - .global _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p - arm_func_start _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p -_ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p: ; 0x0207f53c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - mov r0, #0 - strh r0, [r5] - mov r4, r2 - strh r0, [r5, #2] - ldr r0, [r4] - mov r1, #0x800 - bl Divide - add r0, r0, #0x800 - mov r0, r0, asr #0xc - strh r0, [r5] - ldr r0, [r4, #8] - mov r1, #0x800 - bl Divide - add r0, r0, #0x800 - mov r0, r0, asr #0xc - strh r0, [r5, #2] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN7MapBase18func_ov00_0207f53cEP5Vec2sPS_P5Vec3p - - .global _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi - arm_func_start _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi -_ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi: ; 0x0207f588 - mov r1, #0 - strh r1, [r0] - strh r1, [r0, #2] - cmp r3, #3 - addls pc, pc, r3, lsl #2 - bx lr -_0207f5a0: ; jump table - b _0207f5b0 ; case 0 - b _0207f5cc ; case 1 - b _0207f5ec ; case 2 - b _0207f60c ; case 3 -_0207f5b0: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - strh r1, [r0, #2] - bx lr -_0207f5cc: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - strh r1, [r0, #2] - bx lr -_0207f5ec: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0, #2] - bx lr -_0207f60c: - ldrb r1, [r2] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0] - ldrb r1, [r2, #1] - mov r1, r1, lsl #0x1 - add r1, r1, #1 - strh r1, [r0, #2] - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207f588EP5Vec2sPS_P5Vec2bi - - .global _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p - arm_func_start _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p -_ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p: ; 0x0207f630 - stmdb sp!, {r4, lr} - ldrsh r3, [r1, #2] - ldrsh r1, [r1] - mov r0, #0x800 - mov lr, r3, lsl #0xc - mov ip, lr, asr #0x1f - mov r3, r1, lsl #0xc - mov ip, ip, lsl #0xb - mov r1, r3, asr #0x1f - mov r1, r1, lsl #0xb - adds r4, r0, lr, lsl #11 - orr ip, ip, lr, lsr #21 - adc lr, ip, #0 - adds ip, r0, r3, lsl #11 - orr r1, r1, r3, lsr #21 - mov r3, r4, lsr #0xc - adc r0, r1, #0 - mov r1, ip, lsr #0xc - orr r1, r1, r0, lsl #20 - str r1, [r2] - mov r0, #0 - str r0, [r2, #4] - orr r3, r3, lr, lsl #20 - str r3, [r2, #8] - ldmia sp!, {r4, pc} - arm_func_end _ZN7MapBase18func_ov00_0207f630EP5Vec2sP5Vec3p - - .global _ZN7MapBase13GetTileStartXEi - arm_func_start _ZN7MapBase13GetTileStartXEi -_ZN7MapBase13GetTileStartXEi: ; 0x0207f694 - ldr r0, [r0, #0xf4] - add r0, r0, r1, lsl #12 - bx lr - arm_func_end _ZN7MapBase13GetTileStartXEi - - .global _ZN7MapBase13GetTileStartZEi - arm_func_start _ZN7MapBase13GetTileStartZEi -_ZN7MapBase13GetTileStartZEi: ; 0x0207f6a0 - ldr r0, [r0, #0xfc] - add r0, r0, r1, lsl #12 - bx lr - arm_func_end _ZN7MapBase13GetTileStartZEi - - .global _ZN7MapBase11GetTileEndXEi - arm_func_start _ZN7MapBase11GetTileEndXEi -_ZN7MapBase11GetTileEndXEi: ; 0x0207f6ac - stmdb sp!, {r3, lr} - bl _ZN7MapBase13GetTileStartXEi - add r0, r0, #0x1000 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase11GetTileEndXEi - - .global _ZN7MapBase11GetTileEndZEi - arm_func_start _ZN7MapBase11GetTileEndZEi -_ZN7MapBase11GetTileEndZEi: ; 0x0207f6bc - stmdb sp!, {r3, lr} - bl _ZN7MapBase13GetTileStartZEi - add r0, r0, #0x1000 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase11GetTileEndZEi - - .global _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB - arm_func_start _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB -_ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB: ; 0x0207f6cc - stmdb sp!, {r3, r4, r5, r6, r7, lr} - sub sp, sp, #0x18 - mov r7, r1 - ldrb r1, [r7] - mov r6, r0 - mov r5, r2 - bl _ZN7MapBase13GetTileStartXEi - ldrb r1, [r7, #1] - mov r0, r6 - bl _ZN7MapBase13GetTileStartZEi - mov r4, r0 - ldrb r1, [r7] - mov r0, r6 - bl _ZN7MapBase13GetTileStartXEi - ldr r2, _0207f774 ; =0xffffeccd - str r0, [sp, #0xc] - ldrb r1, [r7, #1] - mov r0, r6 - str r2, [sp, #0x10] - str r4, [sp, #0x14] - bl _ZN7MapBase11GetTileEndZEi - mov r4, r0 - mov r0, r6 - mov r1, r7 - ldr r2, [r0] - ldr r2, [r2, #0x60] - blx r2 - ldrb r1, [r7] - mov r7, r0 - mov r0, r6 - bl _ZN7MapBase11GetTileEndXEi - ldr r2, [sp, #0xc] - ldr r1, [sp, #0x10] - str r2, [r5] - str r1, [r5, #4] - ldr r1, [sp, #0x14] - str r1, [r5, #8] - str r0, [r5, #0xc] - str r7, [r5, #0x10] - str r4, [r5, #0x14] - add sp, sp, #0x18 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 - arm_func_end _ZN7MapBase13GetTileBoundsEP5Vec2bP4AABB -_0207f774: .word 0xffffeccd - - .global _ZN7MapBase15GetClampedTileXEi - arm_func_start _ZN7MapBase15GetClampedTileXEi -_ZN7MapBase15GetClampedTileXEi: ; 0x0207f778 - ldr r2, [r0, #0xf4] - ldrh r0, [r0, #0x28] - sub r1, r1, r2 - movs r1, r1, asr #0xc - movmi r1, #0 - sub r0, r0, #1 - cmp r1, r0 - movge r1, r0 - mov r0, r1 - bx lr - arm_func_end _ZN7MapBase15GetClampedTileXEi - - .global _ZN7MapBase15GetClampedTileYEi - arm_func_start _ZN7MapBase15GetClampedTileYEi -_ZN7MapBase15GetClampedTileYEi: ; 0x0207f7a0 - ldr r2, [r0, #0xfc] - ldrh r0, [r0, #0x2a] - sub r1, r1, r2 - movs r1, r1, asr #0xc - movmi r1, #0 - sub r0, r0, #1 - cmp r1, r0 - movge r1, r0 - mov r0, r1 - bx lr - arm_func_end _ZN7MapBase15GetClampedTileYEi - - .global _ZN7MapBase8GetTileXEi - arm_func_start _ZN7MapBase8GetTileXEi -_ZN7MapBase8GetTileXEi: ; 0x0207f7c8 - ldr r0, [r0, #0xf4] - sub r0, r1, r0 - mov r0, r0, asr #0xc - bx lr - arm_func_end _ZN7MapBase8GetTileXEi - - .global _ZN7MapBase8GetTileYEi - arm_func_start _ZN7MapBase8GetTileYEi -_ZN7MapBase8GetTileYEi: ; 0x0207f7d8 - ldr r0, [r0, #0xfc] - sub r0, r1, r0 - mov r0, r0, asr #0xc - bx lr - arm_func_end _ZN7MapBase8GetTileYEi - - .global _ZN7MapBase10IsInBoundsEP5Vec3p - arm_func_start _ZN7MapBase10IsInBoundsEP5Vec3p -_ZN7MapBase10IsInBoundsEP5Vec3p: ; 0x0207f7e8 - stmdb sp!, {r4, r5, r6, lr} - mov r5, r1 - ldr r1, [r5] - mov r6, r0 - bl _ZN7MapBase8GetTileXEi - mov r4, r0 - ldr r1, [r5, #8] - mov r0, r6 - bl _ZN7MapBase8GetTileYEi - cmp r4, #0 - blt _0207f834 - ldrh r1, [r6, #0x28] - cmp r4, r1 - bge _0207f834 - cmp r0, #0 - blt _0207f834 - ldrh r1, [r6, #0x2a] - cmp r0, r1 - blt _0207f83c -_0207f834: - mov r0, #0 - ldmia sp!, {r4, r5, r6, pc} -_0207f83c: - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end _ZN7MapBase10IsInBoundsEP5Vec3p - - .global _ZN7MapBase11AddEntranceEP8Entrance - arm_func_start _ZN7MapBase11AddEntranceEP8Entrance -_ZN7MapBase11AddEntranceEP8Entrance: ; 0x0207f844 - stmdb sp!, {r3, lr} - mov lr, #0 - strb lr, [sp, #1] - ldr ip, [r0, #0x104] - ldr r2, [r0, #0x108] - mov r3, r1 - cmp ip, r2 - bhs _0207f8a0 - add r1, ip, #1 - str r1, [r0, #0x104] - ldr r2, [r0, #0x100] - sub r1, r1, #1 - mov r0, #0x14 - mla ip, r1, r0, r2 - ldmia r3, {r0, r1, r2} - stmia ip, {r0, r1, r2} - ldrsh r0, [r3, #0xc] - strh r0, [ip, #0xc] - ldrb r0, [r3, #0xe] - strb r0, [ip, #0xe] - ldr r0, [r3, #0x10] - str r0, [ip, #0x10] - ldmia sp!, {r3, pc} -_0207f8a0: - strb lr, [sp] - sub r3, sp, #4 - and r2, lr, #0xff - strb r2, [r3] - ldr r2, [r3] - add r0, r0, #0x100 - bl func_ov00_02081040 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase11AddEntranceEP8Entrance - - .global _ZN7MapBase12FindEntranceEi - arm_func_start _ZN7MapBase12FindEntranceEi -_ZN7MapBase12FindEntranceEi: ; 0x0207f8c0 - sub sp, sp, #0x18 - ldr r3, [r0, #0x100] - ldr r2, [r0, #0x104] - mov r0, #0x14 - mla ip, r2, r0, r3 - str r1, [sp, #0xc] - str r1, [sp] - str ip, [sp, #0x10] - str ip, [sp, #4] - str r3, [sp, #0x14] - str r3, [sp, #8] - mov r2, r3 - b _0207f8fc -_0207f8f4: - add r2, r2, #0x14 - str r2, [sp, #8] -_0207f8fc: - cmp r2, ip - ldrneb r0, [r2, #0xe] - cmpne r1, r0 - bne _0207f8f4 - ldr r0, [sp, #8] - cmp r0, ip - moveq r0, r3 - ldrne r0, [sp, #8] - add sp, sp, #0x18 - bx lr - arm_func_end _ZN7MapBase12FindEntranceEi - - .global _ZN7MapBase18func_ov00_0207f924Ei - arm_func_start _ZN7MapBase18func_ov00_0207f924Ei -_ZN7MapBase18func_ov00_0207f924Ei: ; 0x0207f924 - add r1, r0, r1 - ldrb r0, [r1, #0x18] - strb r0, [r1, #0x16] - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207f924Ei - - .global _ZN7MapBase18func_ov00_0207f934Ev - arm_func_start _ZN7MapBase18func_ov00_0207f934Ev -_ZN7MapBase18func_ov00_0207f934Ev: ; 0x0207f934 - ldr r0, [r0, #0x140] - cmp r0, #0 - moveq r0, #0 - ldrne r0, [r0, #0x60] - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207f934Ev - - .global _ZN7MapBase18func_ov00_0207f948Ei - arm_func_start _ZN7MapBase18func_ov00_0207f948Ei -_ZN7MapBase18func_ov00_0207f948Ei: ; 0x0207f948 - ldr r0, [r0, #0x140] - cmp r0, #0 - strne r1, [r0, #0x60] - bx lr - arm_func_end _ZN7MapBase18func_ov00_0207f948Ei - - .global _ZN7MapBase10AddTriggerEP13TriggerParams - arm_func_start _ZN7MapBase10AddTriggerEP13TriggerParams -_ZN7MapBase10AddTriggerEP13TriggerParams: ; 0x0207f958 - stmdb sp!, {r3, r4, r5, lr} - sub sp, sp, #8 - mov r2, #0 - str r2, [sp, #4] - mov r4, r1 - ldrb r1, [r4, #5] - mov r5, r0 - mov r2, #4 - cmp r1, #0 - beq _0207f9a8 - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0x5c - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207f9a0 - mov r1, r4 - bl func_ov00_02095d58 -_0207f9a0: - str r0, [sp, #4] - b _0207fa34 -_0207f9a8: - ldrb r0, [r4, #9] - cmp r0, #1 - bne _0207f9dc - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0xe0 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207f9d4 - mov r1, r4 - bl func_ov00_0209581c -_0207f9d4: - str r0, [sp, #4] - b _0207fa34 -_0207f9dc: - ldrb r0, [r4, #0xa] - cmp r0, #1 - bne _0207fa10 - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0x28 - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207fa08 - mov r1, r4 - bl func_ov00_0209564c -_0207fa08: - str r0, [sp, #4] - b _0207fa34 -_0207fa10: - ldr r1, _0207faa4 ; =data_027e0ce0 - mov r0, #0x2c - ldr r1, [r1, #4] - bl _ZN9SysObjectnwEmPjj - cmp r0, #0 - beq _0207fa30 - mov r1, r4 - bl func_ov00_02095554 -_0207fa30: - str r0, [sp, #4] -_0207fa34: - ldr r0, [sp, #4] - ldr r1, [r0] - ldr r1, [r1, #8] - blx r1 - mov r2, #0 - strb r2, [sp, #1] - ldr r1, [r5, #0x110] - ldr r0, [r5, #0x114] - cmp r1, r0 - bhs _0207fa7c - add r0, r1, #1 - str r0, [r5, #0x110] - ldr r2, [sp, #4] - ldr r1, [r5, #0x10c] - sub r0, r0, #1 - str r2, [r1, r0, lsl #2] - add sp, sp, #8 - ldmia sp!, {r3, r4, r5, pc} -_0207fa7c: - strb r2, [sp] - sub r1, sp, #4 - and r0, r2, #0xff - strb r0, [r1] - ldr r2, [r1] - add r1, sp, #4 - add r0, r5, #0x10c - bl func_ov00_02080f64 - add sp, sp, #8 - ldmia sp!, {r3, r4, r5, pc} - .align 2, 0 - arm_func_end _ZN7MapBase10AddTriggerEP13TriggerParams -_0207faa4: .word data_027e0ce0 - - .global _ZN11TriggerBase8vfunc_08Ev - arm_func_start _ZN11TriggerBase8vfunc_08Ev -_ZN11TriggerBase8vfunc_08Ev: ; 0x0207faa8 - bx lr - arm_func_end _ZN11TriggerBase8vfunc_08Ev - - .global _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB - arm_func_start _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB -_ZN7MapBase21GetTriggerBoundingBoxEiP4AABB: ; 0x0207faac - stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - sub sp, sp, #0x18 - mov r9, r0 - ldr r6, [r9, #0x10c] - ldr r0, [r9, #0x110] - mov r8, r1 - add r0, r6, r0, lsl #2 - mov r7, r2 - cmp r6, r0 - mov r5, #0 - beq _0207fb50 - add r4, sp, #0 -_0207fadc: - ldr r0, [r6] - ldrb r1, [r0, #5] - cmp r8, r1 - bne _0207fb38 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x18] - blx r2 - cmp r0, #0 - beq _0207fb38 - ldr r0, [sp] - add r5, r5, #1 - str r0, [r7] - ldr r0, [sp, #4] - str r0, [r7, #4] - ldr r0, [sp, #8] - str r0, [r7, #8] - ldr r0, [sp, #0xc] - str r0, [r7, #0xc] - ldr r0, [sp, #0x10] - str r0, [r7, #0x10] - ldr r0, [sp, #0x14] - str r0, [r7, #0x14] -_0207fb38: - ldr r1, [r9, #0x10c] - ldr r0, [r9, #0x110] - add r6, r6, #4 - add r0, r1, r0, lsl #2 - cmp r6, r0 - bne _0207fadc -_0207fb50: - mov r0, r5 - add sp, sp, #0x18 - ldmia sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - arm_func_end _ZN7MapBase21GetTriggerBoundingBoxEiP4AABB - - .global _ZN11TriggerBase14GetBoundingBoxEv - arm_func_start _ZN11TriggerBase14GetBoundingBoxEv -_ZN11TriggerBase14GetBoundingBoxEv: ; 0x0207fb5c - mov r0, #0 - bx lr - arm_func_end _ZN11TriggerBase14GetBoundingBoxEv - - .global _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi - arm_func_start _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi -_ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi: ; 0x0207fb64 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - sub sp, sp, #0x18 - mov r10, r0 - ldr r6, [r10, #0x10c] - ldr r0, [r10, #0x110] - mov r9, r1 - add r0, r6, r0, lsl #2 - mov r8, r2 - mov r7, r3 - cmp r6, r0 - mov r5, #0 - beq _0207fc20 - add r4, sp, #0 -_0207fb98: - ldr r0, [r6] - ldrb r1, [r0, #5] - cmp r9, r1 - bne _0207fbf8 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x18] - blx r2 - cmp r0, #0 - beq _0207fbf8 - ldr r0, [sp] - add r5, r5, #1 - str r0, [r8] - ldr r0, [sp, #4] - str r0, [r8, #4] - ldr r0, [sp, #8] - str r0, [r8, #8] - ldr r0, [sp, #0xc] - str r0, [r8, #0xc] - ldr r0, [sp, #0x10] - str r0, [r8, #0x10] - ldr r0, [sp, #0x14] - str r0, [r8, #0x14] - add r8, r8, #0x18 -_0207fbf8: - cmp r5, r7 - addhs sp, sp, #0x18 - movhs r0, r5 - ldmhsia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - ldr r1, [r10, #0x10c] - ldr r0, [r10, #0x110] - add r6, r6, #4 - add r0, r1, r0, lsl #2 - cmp r6, r0 - bne _0207fb98 -_0207fc20: - mov r0, r5 - add sp, sp, #0x18 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - arm_func_end _ZN7MapBase23GetTriggerBoundingBoxesEiP4AABBi - - .global _ZN7MapBase21GetOverlappingTriggerEP5Vec3p - arm_func_start _ZN7MapBase21GetOverlappingTriggerEP5Vec3p -_ZN7MapBase21GetOverlappingTriggerEP5Vec3p: ; 0x0207fc2c - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r6, r0 - ldr r4, [r6, #0x10c] - ldr r0, [r6, #0x110] - mov r5, r1 - add r0, r4, r0, lsl #2 - cmp r4, r0 - beq _0207fc88 -_0207fc4c: - ldr r7, [r4] - mov r1, r5 - mov r0, r7 - ldr r2, [r0] - ldr r2, [r2, #0x14] - blx r2 - cmp r0, #0 - ldrneb r0, [r7, #5] - ldmneia sp!, {r3, r4, r5, r6, r7, pc} - ldr r1, [r6, #0x10c] - ldr r0, [r6, #0x110] - add r4, r4, #4 - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _0207fc4c -_0207fc88: - mov r0, #0 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end _ZN7MapBase21GetOverlappingTriggerEP5Vec3p - - .global _ZN11TriggerBase8OverlapsEv - arm_func_start _ZN11TriggerBase8OverlapsEv -_ZN11TriggerBase8OverlapsEv: ; 0x0207fc90 - mov r0, #0 - bx lr - arm_func_end _ZN11TriggerBase8OverlapsEv - - .global _ZN7MapBase11FindTriggerEi - arm_func_start _ZN7MapBase11FindTriggerEi -_ZN7MapBase11FindTriggerEi: ; 0x0207fc98 - ldr ip, [r0, #0x10c] - ldr r2, [r0, #0x110] - add r2, ip, r2, lsl #2 - cmp ip, r2 - beq _0207fcd8 -_0207fcac: - ldr r3, [ip] - ldrb r2, [r3, #5] - cmp r1, r2 - moveq r0, r3 - bxeq lr - ldr r3, [r0, #0x10c] - ldr r2, [r0, #0x110] - add ip, ip, #4 - add r2, r3, r2, lsl #2 - cmp ip, r2 - bne _0207fcac -_0207fcd8: - mov r0, #0 - bx lr - arm_func_end _ZN7MapBase11FindTriggerEi - - .global _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei - arm_func_start _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei -_ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei: ; 0x0207fce0 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - mov r10, r0 - ldr r6, [r10, #0x10c] - ldr r0, [r10, #0x110] - mov r9, r1 - add r0, r6, r0, lsl #2 - mov r8, r2 - mov r7, r3 - cmp r6, r0 - mov r4, #0 - beq _0207fd50 -_0207fd0c: - cmp r4, r7 - bhs _0207fd50 - ldr r5, [r6] - mov r1, r9 - mov r0, r5 - ldr r2, [r0] - ldr r2, [r2, #0x14] - blx r2 - cmp r0, #0 - strne r5, [r8, r4, lsl #2] - ldr r1, [r10, #0x10c] - ldr r0, [r10, #0x110] - add r6, r6, #4 - add r0, r1, r0, lsl #2 - addne r4, r4, #1 - cmp r6, r0 - bne _0207fd0c -_0207fd50: - mov r0, r4 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - arm_func_end _ZN7MapBase22GetOverlappingTriggersEP5Vec3pPP11TriggerBasei - - .global _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p - arm_func_start _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p -_ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p: ; 0x0207fd58 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - movs r6, r1 - mov r7, r0 - mov r5, r2 - moveq r0, #1 - ldmeqia sp!, {r3, r4, r5, r6, r7, pc} - ldr r4, [r7, #0x10c] - ldr r0, [r7, #0x110] - add r0, r4, r0, lsl #2 - cmp r4, r0 - beq _0207fdc8 -_0207fd84: - ldr r0, [r4] - ldrb r1, [r0, #5] - cmp r6, r1 - bne _0207fdb0 - ldr r2, [r0] - mov r1, r5 - ldr r2, [r2, #0x14] - blx r2 - cmp r0, #0 - movne r0, #1 - ldmneia sp!, {r3, r4, r5, r6, r7, pc} -_0207fdb0: - ldr r1, [r7, #0x10c] - ldr r0, [r7, #0x110] - add r4, r4, #4 - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _0207fd84 -_0207fdc8: - mov r0, #0 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end _ZN7MapBase23IsTriggerTypeOverlappedEiP5Vec3p - - .global _ZN7MapBase18AnyTrigger_func_0cEi - arm_func_start _ZN7MapBase18AnyTrigger_func_0cEi -_ZN7MapBase18AnyTrigger_func_0cEi: ; 0x0207fdd0 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - ldr r5, [r7, #0x10c] - ldr r0, [r7, #0x110] - mov r6, r1 - add r0, r5, r0, lsl #2 - cmp r5, r0 - beq _0207fe2c - mov r4, #1 -_0207fdf4: - ldr r0, [r5] - ldrb r1, [r0, #5] - cmp r6, r1 - bne _0207fe14 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0xc] - blx r2 -_0207fe14: - ldr r1, [r7, #0x10c] - ldr r0, [r7, #0x110] - add r5, r5, #4 - add r0, r1, r0, lsl #2 - cmp r5, r0 - bne _0207fdf4 -_0207fe2c: - mov r0, #1 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - arm_func_end _ZN7MapBase18AnyTrigger_func_0cEi - - .global _ZN11TriggerBase8vfunc_0cEv - arm_func_start _ZN11TriggerBase8vfunc_0cEv -_ZN11TriggerBase8vfunc_0cEv: ; 0x0207fe34 - mov r0, #0 - bx lr - arm_func_end _ZN11TriggerBase8vfunc_0cEv - - .global _ZN7MapBase16Trigger_vfunc_08Ev - arm_func_start _ZN7MapBase16Trigger_vfunc_08Ev -_ZN7MapBase16Trigger_vfunc_08Ev: ; 0x0207fe3c - stmdb sp!, {r3, r4, r5, lr} - mov r5, r0 - ldr r4, [r5, #0x10c] - ldr r0, [r5, #0x110] - add r0, r4, r0, lsl #2 - cmp r4, r0 - ldmeqia sp!, {r3, r4, r5, pc} -_0207fe58: - ldr r0, [r4], #4 - ldr r1, [r0] - ldr r1, [r1, #8] - blx r1 - ldr r1, [r5, #0x10c] - ldr r0, [r5, #0x110] - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _0207fe58 - ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN7MapBase16Trigger_vfunc_08Ev - - .global _ZN7MapBase10AddTriggerEi - arm_func_start _ZN7MapBase10AddTriggerEi -_ZN7MapBase10AddTriggerEi: ; 0x0207fe80 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr r1, [r0, #0x110] - cmp r1, #0x40 - addhs sp, sp, #0x14 - movhs r0, #0 - ldmhsia sp!, {lr} - addhs sp, sp, #0x10 - bxhs lr - ldr r2, [r0, #0x10c] - ldr r1, [r0, #0x110] - str r2, [sp, #0x10] - add ip, r2, r1, lsl #2 - str ip, [sp, #0xc] - str ip, [sp, #4] - str r2, [sp, #8] - ldr r3, [sp, #0x1c] - b _0207fed4 -_0207fecc: - add r2, r2, #4 - str r2, [sp, #8] -_0207fed4: - cmp r2, ip - ldrne r1, [r2] - cmpne r1, r3 - bne _0207fecc - ldr r1, [sp, #8] - cmp r1, ip - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {lr} - addne sp, sp, #0x10 - bxne lr - ldr r1, [sp, #0x1c] - ldrb r1, [r1, #4] - cmp r1, #0 - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {lr} - addne sp, sp, #0x10 - bxne lr - mov r3, #0 - strb r3, [sp, #1] - ldr r2, [r0, #0x110] - ldr r1, [r0, #0x114] - cmp r2, r1 - bhs _0207ff54 - add r3, r2, #1 - str r3, [r0, #0x110] - ldr r1, [r0, #0x10c] - ldr r2, [sp, #0x1c] - sub r0, r3, #1 - str r2, [r1, r0, lsl #2] - b _0207ff74 -_0207ff54: - strb r3, [sp] - sub r2, sp, #4 - and r1, r3, #0xff - strb r1, [r2] - ldr r2, [r2] - add r1, sp, #0x1c - add r0, r0, #0x10c - bl func_ov00_02080f64 -_0207ff74: - mov r0, #1 - add sp, sp, #0x14 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - arm_func_end _ZN7MapBase10AddTriggerEi - - .global _ZN7MapBase18func_ov00_0207ff88Ei - arm_func_start _ZN7MapBase18func_ov00_0207ff88Ei -_ZN7MapBase18func_ov00_0207ff88Ei: ; 0x0207ff88 - stmdb sp!, {r3, lr} - sub sp, sp, #0x28 - ldrb r2, [r1, #4] - cmp r2, #0 - addne sp, sp, #0x28 - movne r0, #0 - ldmneia sp!, {r3, pc} - ldr ip, [r0, #0x10c] - ldr r2, [r0, #0x110] - str ip, [sp, #0x20] - add r3, ip, r2, lsl #2 - str r3, [sp, #0x1c] - str r3, [sp, #0xc] - str r3, [sp, #4] - str ip, [sp, #8] - b _0207ffd0 -_0207ffc8: - add ip, ip, #4 - str ip, [sp, #8] -_0207ffd0: - cmp ip, r3 - ldrne r2, [ip] - cmpne r2, r1 - bne _0207ffc8 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - mov lr, r2 - cmp r2, r3 - addne ip, lr, #4 - cmpne ip, r3 - beq _02080014 -_0207fffc: - ldr r2, [ip] - add ip, ip, #4 - cmp r2, r1 - strne r2, [lr], #4 - cmp ip, r3 - bne _0207fffc -_02080014: - ldr r2, [r0, #0x10c] - ldr r1, [r0, #0x110] - mov r3, #0 - add r2, r2, r1, lsl #2 - strb r3, [sp] - sub r1, sp, #4 - strb r3, [r1] - ldr r3, [r1] - mov r1, lr - add r0, r0, #0x10c - str lr, [sp, #0x24] - str r2, [sp, #0x18] - str r2, [sp, #0x10] - str lr, [sp, #0x14] - bl func_ov00_02080f94 - mov r0, #1 - add sp, sp, #0x28 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase18func_ov00_0207ff88Ei - - .global _ZN7MapBase18func_ov00_0208005cEiii - arm_func_start _ZN7MapBase18func_ov00_0208005cEiii -_ZN7MapBase18func_ov00_0208005cEiii: ; 0x0208005c - ldr ip, _02080068 ; =func_ov00_0209c1e4 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0208005cEiii -_02080068: .word func_ov00_0209c1e4 - - .global _ZN7MapBase18func_ov00_0208006cEii - arm_func_start _ZN7MapBase18func_ov00_0208006cEii -_ZN7MapBase18func_ov00_0208006cEii: ; 0x0208006c - ldr ip, _02080078 ; =func_ov00_0209c2b4 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0208006cEii -_02080078: .word func_ov00_0209c2b4 - - .global _ZN7MapBase18func_ov00_0208007cEii - arm_func_start _ZN7MapBase18func_ov00_0208007cEii -_ZN7MapBase18func_ov00_0208007cEii: ; 0x0208007c - ldr ip, _02080088 ; =func_ov00_0209c2d0 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0208007cEii -_02080088: .word func_ov00_0209c2d0 - - .global _ZN7MapBase18func_ov00_0208008cEj - arm_func_start _ZN7MapBase18func_ov00_0208008cEj -_ZN7MapBase18func_ov00_0208008cEj: ; 0x0208008c - ldr ip, _02080098 ; =func_ov00_0209c8e4 - ldr r0, [r0, #0x144] - bx ip - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_0208008cEj -_02080098: .word func_ov00_0209c8e4 - - .global _ZN7MapBase7AddExitEP4Exit - arm_func_start _ZN7MapBase7AddExitEP4Exit -_ZN7MapBase7AddExitEP4Exit: ; 0x0208009c - stmdb sp!, {r3, lr} - mov ip, #0 - strb ip, [sp, #1] - ldr r3, [r0, #0x11c] - ldr r2, [r0, #0x120] - cmp r3, r2 - bhs _02080120 - add ip, r3, #1 - sub r3, ip, #1 - mov r2, #0x18 - mul r2, r3, r2 - str ip, [r0, #0x11c] - ldr r3, [r0, #0x118] - ldr r0, [r1] - add ip, r3, r2 - str r0, [r3, r2] - ldr r0, [r1, #4] - str r0, [ip, #4] - ldr r0, [r1, #8] - str r0, [ip, #8] - ldr r0, [r1, #0xc] - str r0, [ip, #0xc] - ldrsh r0, [r1, #0x10] - strh r0, [ip, #0x10] - ldrb r0, [r1, #0x12] - strb r0, [ip, #0x12] - ldrb r0, [r1, #0x13] - strb r0, [ip, #0x13] - ldrb r0, [r1, #0x14] - strb r0, [ip, #0x14] - ldrb r0, [r1, #0x15] - strb r0, [ip, #0x15] - ldmia sp!, {r3, pc} -_02080120: - strb ip, [sp] - sub r3, sp, #4 - and r2, ip, #0xff - strb r2, [r3] - ldr r2, [r3] - add r0, r0, #0x118 - bl func_ov00_020810b8 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase7AddExitEP4Exit - - .global _ZN7MapBase18func_ov00_02080140EP4Exit - arm_func_start _ZN7MapBase18func_ov00_02080140EP4Exit -_ZN7MapBase18func_ov00_02080140EP4Exit: ; 0x02080140 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - sub sp, sp, #0x50 - ldr r9, [r1] - mov r4, r0 - str r9, [sp, #0x38] - ldr r8, [r1, #4] - mov r10, #0x18 - str r8, [sp, #0x3c] - ldr r7, [r1, #8] - add r0, sp, #0x1c - str r7, [sp, #0x40] - ldr r6, [r1, #0xc] - add r3, sp, #0x20 - str r6, [sp, #0x44] - ldrsh r5, [r1, #0x10] - strh r5, [sp, #0x48] - ldrb lr, [r1, #0x12] - strb lr, [sp, #0x4a] - ldrb ip, [r1, #0x13] - strb ip, [sp, #0x4b] - ldrb r2, [r1, #0x14] - strb r2, [sp, #0x4c] - ldrb r1, [r1, #0x15] - str r9, [sp, #0x20] - str r8, [sp, #0x24] - strb r1, [sp, #0x4d] - str r7, [sp, #0x28] - str r6, [sp, #0x2c] - strh r5, [sp, #0x30] - strb lr, [sp, #0x32] - strb ip, [sp, #0x33] - strb r2, [sp, #0x34] - strb r1, [sp, #0x35] - ldr r1, [r4, #0x118] - ldr r5, [r4, #0x11c] - str r1, [sp, #0x18] - mla r2, r5, r10, r1 - str r2, [sp, #0x14] - bl _ZN12MapBase_Unk118func_ov00_02080324Eiii - ldr r0, [r4, #0x118] - ldr r2, [r4, #0x11c] - mov r1, r10 - mla r5, r2, r1, r0 - ldr r1, [sp, #0x1c] - cmp r1, r5 - bne _02080310 - mov r1, #0 - cmp r0, r5 - str r0, [sp, #8] - addne r3, r0, #0x18 - strne r3, [sp, #8] - str r5, [sp, #0xc] - str r0, [sp, #0x10] - strb r1, [sp, #2] - str r5, [sp, #4] - cmpne r3, r5 - beq _02080244 -_02080224: - ldrb r2, [r0, #0x14] - ldrb r1, [r3, #0x14] - cmp r2, r1 - movlo r0, r3 - add r3, r3, #0x18 - cmp r3, r5 - bne _02080224 - str r3, [sp, #8] -_02080244: - ldr r3, [r4, #0x118] - ldr r2, [r4, #0x11c] - mov r1, #0x18 - mla r1, r2, r1, r3 - cmp r0, r1 - moveq r0, #1 - streqb r0, [sp, #0x4c] - ldrneb r0, [r0, #0x14] - mov r2, #0 - addne r0, r0, #1 - strneb r0, [sp, #0x4c] - strb r2, [sp, #1] - ldr r1, [r4, #0x11c] - ldr r0, [r4, #0x120] - cmp r1, r0 - bhs _020802ec - add r3, r1, #1 - sub r1, r3, #1 - mov r0, #0x18 - mul r2, r1, r0 - str r3, [r4, #0x11c] - ldr r1, [r4, #0x118] - ldr r0, [sp, #0x38] - add r3, r1, r2 - str r0, [r1, r2] - ldr r0, [sp, #0x3c] - str r0, [r3, #4] - ldr r0, [sp, #0x40] - str r0, [r3, #8] - ldr r0, [sp, #0x44] - str r0, [r3, #0xc] - ldrsh r0, [sp, #0x48] - strh r0, [r3, #0x10] - ldrb r0, [sp, #0x4a] - strb r0, [r3, #0x12] - ldrb r0, [sp, #0x4b] - strb r0, [r3, #0x13] - ldrb r0, [sp, #0x4c] - strb r0, [r3, #0x14] - ldrb r0, [sp, #0x4d] - strb r0, [r3, #0x15] - b _02080318 -_020802ec: - strb r2, [sp] - sub r1, sp, #4 - and r0, r2, #0xff - strb r0, [r1] - ldr r2, [r1] - add r1, sp, #0x38 - add r0, r4, #0x118 - bl func_ov00_020810b8 - b _02080318 -_02080310: - ldrb r0, [r1, #0x14] - strb r0, [sp, #0x4c] -_02080318: - ldrb r0, [sp, #0x4c] - add sp, sp, #0x50 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - arm_func_end _ZN7MapBase18func_ov00_02080140EP4Exit - - .global _ZN12MapBase_Unk118func_ov00_02080324Eiii - arm_func_start _ZN12MapBase_Unk118func_ov00_02080324Eiii -_ZN12MapBase_Unk118func_ov00_02080324Eiii: ; 0x02080324 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r4, r5, r6, r7, r8, lr} - mov r7, r0 - mov r6, r3 - ldr r5, [sp, #0x20] - ldr r4, [sp, #0x1c] - b _02080344 -_02080340: - add r4, r4, #0x18 -_02080344: - cmp r4, r5 - beq _0208038c - mov r0, r4 - bl func_ov00_020a5e9c - mov r8, r0 - mov r0, r6 - bl func_ov00_020a5e9c - cmp r8, r0 - ldreqb r1, [r4, #0x12] - ldreqb r0, [r6, #0x12] - cmpeq r1, r0 - ldreqb r1, [r4, #0x13] - ldreqb r0, [r6, #0x13] - cmpeq r1, r0 - ldreq r1, [r4, #8] - ldreq r0, [r6, #8] - cmpeq r1, r0 - bne _02080340 -_0208038c: - str r4, [r7] - ldmia sp!, {r4, r5, r6, r7, r8, lr} - add sp, sp, #0x10 - bx lr - arm_func_end _ZN12MapBase_Unk118func_ov00_02080324Eiii - - .global _ZN7MapBase8FindExitEiP4Exit - arm_func_start _ZN7MapBase8FindExitEiP4Exit -_ZN7MapBase8FindExitEiP4Exit: ; 0x0208039c - stmdb sp!, {lr} - sub sp, sp, #0x14 - cmp r1, #0 - addle sp, sp, #0x14 - movle r0, #0 - ldmleia sp!, {pc} - ldr ip, [r0, #0x118] - ldr r3, [r0, #0x11c] - mov r0, #0x18 - mla lr, r3, r0, ip - and r0, r1, #0xff - strb r1, [sp, #1] - strb r0, [sp] - str lr, [sp, #0xc] - str lr, [sp, #4] - str ip, [sp, #0x10] - str ip, [sp, #8] - and r1, r0, #0xff - b _020803f0 -_020803e8: - add ip, ip, #0x18 - str ip, [sp, #8] -_020803f0: - cmp ip, lr - ldrneb r0, [ip, #0x14] - cmpne r1, r0 - bne _020803e8 - ldr r0, [sp, #8] - cmp r0, lr - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {pc} - ldr r3, [sp, #8] - mov r0, #1 - ldr r1, [r3] - str r1, [r2] - ldr r1, [r3, #4] - str r1, [r2, #4] - ldr r1, [r3, #8] - str r1, [r2, #8] - ldr r1, [r3, #0xc] - str r1, [r2, #0xc] - ldrsh r1, [r3, #0x10] - strh r1, [r2, #0x10] - ldrb r1, [r3, #0x12] - strb r1, [r2, #0x12] - ldrb r1, [r3, #0x13] - strb r1, [r2, #0x13] - ldrb r1, [r3, #0x14] - strb r1, [r2, #0x14] - ldrb r1, [r3, #0x15] - strb r1, [r2, #0x15] - add sp, sp, #0x14 - ldmia sp!, {pc} - arm_func_end _ZN7MapBase8FindExitEiP4Exit - - .global _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint - arm_func_start _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint -_ZN7MapBase18AddCameraViewpointEP15CameraViewpoint: ; 0x0208046c - stmdb sp!, {r3, lr} - mov ip, #0 - strb ip, [sp, #1] - ldr r3, [r0, #0x128] - ldr r2, [r0, #0x12c] - cmp r3, r2 - bhs _020804f0 - add ip, r3, #1 - sub r3, ip, #1 - mov r2, #0x1c - mul r2, r3, r2 - str ip, [r0, #0x128] - ldr r3, [r0, #0x124] - ldr r0, [r1] - add ip, r3, r2 - str r0, [r3, r2] - ldrb r0, [r1, #4] - strb r0, [ip, #4] - ldr r0, [r1, #8] - str r0, [ip, #8] - ldr r0, [r1, #0xc] - str r0, [ip, #0xc] - ldr r0, [r1, #0x10] - str r0, [ip, #0x10] - ldrsh r0, [r1, #0x14] - strh r0, [ip, #0x14] - ldrsh r0, [r1, #0x16] - strh r0, [ip, #0x16] - ldrh r2, [r1, #0x18] - ldrh r0, [r1, #0x1a] - strh r2, [ip, #0x18] - strh r0, [ip, #0x1a] - ldmia sp!, {r3, pc} -_020804f0: - strb ip, [sp] - sub r3, sp, #4 - and r2, ip, #0xff - strb r2, [r3] - ldr r2, [r3] - add r0, r0, #0x124 - bl func_ov00_02081130 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase18AddCameraViewpointEP15CameraViewpoint - - .global _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint - arm_func_start _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint -_ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint: ; 0x02080510 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr ip, [r0, #0x124] - ldr r3, [r0, #0x128] - mov r0, #0x1c - mla lr, r3, r0, ip - and r0, r1, #0xff - strb r1, [sp, #1] - strb r0, [sp] - str lr, [sp, #0xc] - str lr, [sp, #4] - str ip, [sp, #0x10] - str ip, [sp, #8] - and r1, r0, #0xff - b _02080554 -_0208054c: - add ip, ip, #0x1c - str ip, [sp, #8] -_02080554: - cmp ip, lr - ldrneb r0, [ip, #4] - cmpne r1, r0 - bne _0208054c - ldr r0, [sp, #8] - cmp r0, lr - addeq sp, sp, #0x14 - moveq r0, #0 - ldmeqia sp!, {pc} - ldr ip, [sp, #8] - mov r0, #1 - ldr r1, [ip] - str r1, [r2] - ldrb r1, [ip, #4] - strb r1, [r2, #4] - ldr r1, [ip, #8] - str r1, [r2, #8] - ldr r1, [ip, #0xc] - str r1, [r2, #0xc] - ldr r1, [ip, #0x10] - str r1, [r2, #0x10] - ldrsh r1, [ip, #0x14] - strh r1, [r2, #0x14] - ldrsh r1, [ip, #0x16] - strh r1, [r2, #0x16] - ldrh r3, [ip, #0x18] - ldrh r1, [ip, #0x1a] - strh r3, [r2, #0x18] - strh r1, [r2, #0x1a] - add sp, sp, #0x14 - ldmia sp!, {pc} - arm_func_end _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint - - .global _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint - arm_func_start _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint -_ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint: ; 0x020805d0 - stmdb sp!, {r3, lr} - sub sp, sp, #0x18 - ldr ip, [r0, #0x124] - ldr r3, [r0, #0x128] - mov r0, #0x1c - mla lr, r3, r0, ip - str r1, [sp, #0xc] - str r1, [sp] - str lr, [sp, #0x10] - str lr, [sp, #4] - str ip, [sp, #0x14] - str ip, [sp, #8] - b _0208060c -_02080604: - add ip, ip, #0x1c - str ip, [sp, #8] -_0208060c: - cmp ip, lr - ldrne r0, [ip] - cmpne r1, r0 - bne _02080604 - ldr r0, [sp, #8] - cmp r0, lr - addeq sp, sp, #0x18 - moveq r0, #0 - ldmeqia sp!, {r3, pc} - ldr ip, [sp, #8] - mov r0, #1 - ldr r1, [ip] - str r1, [r2] - ldrb r1, [ip, #4] - strb r1, [r2, #4] - ldr r1, [ip, #8] - str r1, [r2, #8] - ldr r1, [ip, #0xc] - str r1, [r2, #0xc] - ldr r1, [ip, #0x10] - str r1, [r2, #0x10] - ldrsh r1, [ip, #0x14] - strh r1, [r2, #0x14] - ldrsh r1, [ip, #0x16] - strh r1, [r2, #0x16] - ldrh r3, [ip, #0x18] - ldrh r1, [ip, #0x1a] - strh r3, [r2, #0x18] - strh r1, [r2, #0x1a] - add sp, sp, #0x18 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase19FindViewpoint_Unk_0EiP15CameraViewpoint - - .global _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi - arm_func_start _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi -_ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi: ; 0x02080688 - stmdb sp!, {r3, r4, r5, r6, lr} - sub sp, sp, #0x1c - mov r6, r0 - mov r4, r2 - add r2, r6, r4 - mov r5, r1 - ldrb r1, [r2, #0x16] - cmp r1, #0 - bne _020806c8 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0xb8] - blx r2 - add sp, sp, #0x1c - str r0, [r5] - ldmia sp!, {r3, r4, r5, r6, pc} -_020806c8: - mov ip, #0 - mov r0, #0xff - add r3, sp, #0 - str ip, [sp] - strb r0, [sp, #4] - strh ip, [sp, #0x14] - strh ip, [sp, #0x16] - mov r2, ip -_020806e8: - add r0, r3, ip, lsl #1 - add ip, ip, #1 - strh r2, [r0, #0x18] - cmp ip, #2 - blo _020806e8 - add r2, sp, #0 - mov r0, r6 - bl _ZN7MapBase19FindViewpoint_Unk_4EcP15CameraViewpoint - cmp r0, #0 - bne _02080730 - mov r0, r6 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0xb8] - blx r2 - add sp, sp, #0x1c - str r0, [r5] - ldmia sp!, {r3, r4, r5, r6, pc} -_02080730: - ldr r0, [sp] - str r0, [r5] - ldrb r0, [sp, #4] - strb r0, [r5, #4] - ldr r0, [sp, #8] - str r0, [r5, #8] - ldr r0, [sp, #0xc] - str r0, [r5, #0xc] - ldr r0, [sp, #0x10] - str r0, [r5, #0x10] - ldrsh r0, [sp, #0x14] - strh r0, [r5, #0x14] - ldrsh r0, [sp, #0x16] - strh r0, [r5, #0x16] - ldrh r1, [sp, #0x18] - ldrh r0, [sp, #0x1a] - strh r1, [r5, #0x18] - strh r0, [r5, #0x1a] - add sp, sp, #0x1c - ldmia sp!, {r3, r4, r5, r6, pc} - arm_func_end _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi - - .global _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei - arm_func_start _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei -_ZN7MapBase26GetCurrentViewpoint_Unk_00Ei: ; 0x02080780 - stmdb sp!, {lr} - sub sp, sp, #0x1c - mov lr, #0 - mov r3, #0xff - strb r3, [sp, #4] - add ip, sp, #0 - mov r2, r1 - str lr, [sp] - strh lr, [sp, #0x14] - strh lr, [sp, #0x16] - mov r3, lr -_020807ac: - add r1, ip, lr, lsl #1 - add lr, lr, #1 - strh r3, [r1, #0x18] - cmp lr, #2 - blo _020807ac - add r1, sp, #0 - bl _ZN7MapBase19GetCurrentViewpointEP15CameraViewpointi - ldr r0, [sp] - add sp, sp, #0x1c - ldmia sp!, {pc} - arm_func_end _ZN7MapBase26GetCurrentViewpoint_Unk_00Ei - - .global _ZN7MapBase8vfunc_b8Ev - arm_func_start _ZN7MapBase8vfunc_b8Ev -_ZN7MapBase8vfunc_b8Ev: ; 0x020807d4 - stmdb sp!, {r3, lr} - ldr r0, _02080820 ; =data_027e0618 - ldr r0, [r0] - cmp r0, #6 - bne _02080818 - bl func_ov00_02079e3c - cmp r0, #0 - beq _02080800 - cmp r0, #1 - beq _02080808 - b _02080810 -_02080800: - mov r0, #0 - ldmia sp!, {r3, pc} -_02080808: - mov r0, #0x1c - ldmia sp!, {r3, pc} -_02080810: - mov r0, #0x1c - ldmia sp!, {r3, pc} -_02080818: - mov r0, #0 - ldmia sp!, {r3, pc} - .align 2, 0 - arm_func_end _ZN7MapBase8vfunc_b8Ev -_02080820: .word data_027e0618 - - .global _ZN7MapBase18func_ov00_02080824Eii - arm_func_start _ZN7MapBase18func_ov00_02080824Eii -_ZN7MapBase18func_ov00_02080824Eii: ; 0x02080824 - stmdb sp!, {r4, lr} - ldr r4, [r0, #0x14c] - cmp r4, #0 - moveq r0, #0 - ldmeqia sp!, {r4, pc} - ldrh r3, [r4, #4] - mov ip, #0 - cmp r3, #0 - ble _020808c8 - mov lr, r4 -_0208084c: - ldrb r0, [lr, #8] - cmp r1, r0 - bne _020808b8 - mov r0, #0x1c - mul r0, ip, r0 - add r3, r4, #8 - ldrb r1, [r3, r0] - add r3, r3, r0 - mov r0, #1 - strb r1, [r2] - ldrb r1, [r3, #1] - strb r1, [r2, #1] - ldrsh r1, [r3, #2] - strh r1, [r2, #2] - ldr r1, [r3, #4] - str r1, [r2, #4] - ldr r1, [r3, #8] - str r1, [r2, #8] - ldr r1, [r3, #0xc] - str r1, [r2, #0xc] - ldr r1, [r3, #0x10] - str r1, [r2, #0x10] - ldr r1, [r3, #0x14] - str r1, [r2, #0x14] - ldr r1, [r3, #0x18] - str r1, [r2, #0x18] - ldmia sp!, {r4, pc} -_020808b8: - add ip, ip, #1 - cmp ip, r3 - add lr, lr, #0x1c - blt _0208084c -_020808c8: - mov r0, #0 - ldmia sp!, {r4, pc} - arm_func_end _ZN7MapBase18func_ov00_02080824Eii - - .global _ZN7MapBase10AddUnk_130Ei - arm_func_start _ZN7MapBase10AddUnk_130Ei -_ZN7MapBase10AddUnk_130Ei: ; 0x020808d0 - stmdb sp!, {r0, r1, r2, r3} - arm_func_end _ZN7MapBase10AddUnk_130Ei - - .global func_ov00_020808d4 - arm_func_start func_ov00_020808d4 -func_ov00_020808d4: ; 0x020808d4 - stmdb sp!, {lr} - sub sp, sp, #0x14 - ldr r1, [r0, #0x134] - cmp r1, #0x20 - addhs sp, sp, #0x14 - movhs r0, #0 - ldmhsia sp!, {lr} - addhs sp, sp, #0x10 - bxhs lr - ldr r2, [r0, #0x130] - ldr r1, [r0, #0x134] - str r2, [sp, #0x10] - add ip, r2, r1, lsl #2 - str ip, [sp, #0xc] - str ip, [sp, #4] - str r2, [sp, #8] - ldr r3, [sp, #0x1c] - b _02080924 -_0208091c: - add r2, r2, #4 - str r2, [sp, #8] -_02080924: - cmp r2, ip - ldrne r1, [r2] - cmpne r1, r3 - bne _0208091c - ldr r1, [sp, #8] - cmp r1, ip - addne sp, sp, #0x14 - movne r0, #0 - ldmneia sp!, {lr} - addne sp, sp, #0x10 - bxne lr - mov r3, #0 - strb r3, [sp, #1] - ldr r2, [r0, #0x134] - ldr r1, [r0, #0x138] - cmp r2, r1 - bhs _02080984 - add r3, r2, #1 - str r3, [r0, #0x134] - ldr r1, [r0, #0x130] - ldr r2, [sp, #0x1c] - sub r0, r3, #1 - str r2, [r1, r0, lsl #2] - b _020809a4 -_02080984: - strb r3, [sp] - sub r2, sp, #4 - and r1, r3, #0xff - strb r1, [r2] - ldr r2, [r2] - add r1, sp, #0x1c - add r0, r0, #0x130 - bl func_ov00_02080f64 -_020809a4: - mov r0, #1 - add sp, sp, #0x14 - ldmia sp!, {lr} - add sp, sp, #0x10 - bx lr - arm_func_end func_ov00_020808d4 - - .global _ZN7MapBase18func_ov00_020809b8Ei - arm_func_start _ZN7MapBase18func_ov00_020809b8Ei -_ZN7MapBase18func_ov00_020809b8Ei: ; 0x020809b8 - stmdb sp!, {r3, lr} - sub sp, sp, #0x28 - ldr ip, [r0, #0x130] - ldr r2, [r0, #0x134] - str ip, [sp, #0x20] - add r3, ip, r2, lsl #2 - str r3, [sp, #0x1c] - str r3, [sp, #0xc] - str r3, [sp, #4] - str ip, [sp, #8] - b _020809ec -_020809e4: - add ip, ip, #4 - str ip, [sp, #8] -_020809ec: - cmp ip, r3 - ldrne r2, [ip] - cmpne r2, r1 - bne _020809e4 - ldr r2, [sp, #8] - ldr r3, [sp, #0xc] - mov lr, r2 - cmp r2, r3 - addne ip, lr, #4 - cmpne ip, r3 - beq _02080a30 -_02080a18: - ldr r2, [ip] - add ip, ip, #4 - cmp r2, r1 - strne r2, [lr], #4 - cmp ip, r3 - bne _02080a18 -_02080a30: - ldr r2, [r0, #0x130] - ldr r1, [r0, #0x134] - mov r3, #0 - add r2, r2, r1, lsl #2 - strb r3, [sp] - sub r1, sp, #4 - strb r3, [r1] - ldr r3, [r1] - mov r1, lr - add r0, r0, #0x130 - str lr, [sp, #0x24] - str r2, [sp, #0x18] - str r2, [sp, #0x10] - str lr, [sp, #0x14] - bl func_ov00_02080f94 - mov r0, #1 - add sp, sp, #0x28 - ldmia sp!, {r3, pc} - arm_func_end _ZN7MapBase18func_ov00_020809b8Ei - - .global _ZN7MapBase18func_ov00_02080a78EP5Vec3p - arm_func_start _ZN7MapBase18func_ov00_02080a78EP5Vec3p -_ZN7MapBase18func_ov00_02080a78EP5Vec3p: ; 0x02080a78 - stmdb sp!, {r4, lr} - sub sp, sp, #0x18 - mov r4, r0 - add r3, sp, #0xc - ldmia r1, {r0, r1, r2} - stmia r3, {r0, r1, r2} - ldr r1, [r4, #0x130] - ldr r2, [r4, #0x134] - add r0, sp, #8 - add r2, r1, r2, lsl #2 - str r2, [sp] - str r1, [sp, #4] - bl _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ - ldr r1, [r4, #0x130] - ldr r0, [r4, #0x134] - ldr r2, [sp, #8] - add r0, r1, r0, lsl #2 - cmp r2, r0 - moveq r0, #0 - ldrne r0, [r2] - add sp, sp, #0x18 - ldmia sp!, {r4, pc} - arm_func_end _ZN7MapBase18func_ov00_02080a78EP5Vec3p - - .global _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ - arm_func_start _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ -_ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_: ; 0x02080ad0 - stmdb sp!, {r0, r1, r2, r3} - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r7, r0 - mov r6, r3 - ldr r5, [sp, #0x20] - ldr r4, [sp, #0x1c] - b _02080af0 -_02080aec: - add r4, r4, #4 -_02080af0: - cmp r4, r5 - beq _02080b14 - ldr r0, [r4] - mov r1, r6 - ldr r2, [r0] - ldr r2, [r2] - blx r2 - cmp r0, #0 - beq _02080aec -_02080b14: - str r4, [r7] - ldmia sp!, {r3, r4, r5, r6, r7, lr} - add sp, sp, #0x10 - bx lr - arm_func_end _ZN12MapBase_Unk218func_ov00_02080ad0EPP11TriggerBaseS2_ - - .global _ZN7MapBase18func_ov00_02080b24EP5Vec2b - arm_func_start _ZN7MapBase18func_ov00_02080b24EP5Vec2b -_ZN7MapBase18func_ov00_02080b24EP5Vec2b: ; 0x02080b24 - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr} - sub sp, sp, #0x14 - ldr r3, [r0] - mov r2, #4 - ldr r3, [r3, #0x58] - str r0, [sp] - mov r10, r1 - blx r3 - cmp r0, #0 - addne sp, sp, #0x14 - ldmneia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r0, [sp] - ldrh r0, [r0, #0x30] - cmp r0, #0x60 - blo _02080cd0 - ldr r0, [sp] - mov r6, #0 - ldrh r0, [r0, #0x28] - mov r7, r6 - mov r8, r6 - str r0, [sp, #4] - cmp r0, #0 - ldr r0, [sp] - ldrh r11, [r0, #0x2a] - ble _02080c4c -_02080b88: - cmp r11, #0 - mov r9, #0 - ble _02080c3c - and r0, r8, #0xff - str r0, [sp, #8] -_02080b9c: - ldr r1, [sp, #8] - ldr r0, [sp] - strb r1, [sp, #0x10] - strb r9, [sp, #0x11] - ldr r2, [r0] - add r1, sp, #0x10 - ldr r2, [r2, #0x78] - blx r2 - movs r5, r0 - beq _02080c30 - ldr r1, [r0] - ldr r1, [r1, #0x1c] - blx r1 - cmp r0, #0x42 - bne _02080c30 - cmp r6, #0 - ldrb r0, [r10] - bne _02080c08 - sub r0, r8, r0 - mov r6, r5 - bl func_02042f68 - ldrb r1, [r10, #1] - mov r4, r0 - sub r0, r9, r1 - bl func_02042f68 - add r7, r4, r0 - b _02080c30 -_02080c08: - sub r0, r8, r0 - bl func_02042f68 - ldrb r1, [r10, #1] - mov r4, r0 - sub r0, r9, r1 - bl func_02042f68 - add r0, r4, r0 - cmp r0, r7 - movgt r6, r5 - movgt r7, r0 -_02080c30: - add r9, r9, #1 - cmp r9, r11 - blt _02080b9c -_02080c3c: - ldr r0, [sp, #4] - add r8, r8, #1 - cmp r8, r0 - blt _02080b88 -_02080c4c: - cmp r6, #0 - addeq sp, sp, #0x14 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - ldr r1, [r6, #4] - ldr r0, [sp] - bic r1, r1, #1 - str r1, [r6, #4] - ldrb r4, [r6, #0x15] - ldrb r3, [r6, #0x14] - add r1, sp, #0xe - mov r2, #4 - strb r3, [sp, #0xe] - strb r4, [sp, #0xf] - ldr r4, [r0] - mov r3, #0 - ldr r4, [r4, #0x98] - blx r4 - ldrb r3, [r6, #0x15] - ldrb r2, [r6, #0x14] - ldr r0, [sp] - add r1, sp, #0xc - strb r2, [sp, #0xc] - strb r3, [sp, #0xd] - ldr r4, [r0] - mov r2, #6 - ldr r4, [r4, #0x98] - mov r3, #1 - blx r4 - ldr r0, [sp] - ldrh r0, [r0, #0x30] - sub r1, r0, #1 - ldr r0, [sp] - strh r1, [r0, #0x30] -_02080cd0: - ldr r0, [sp] - mov r1, r10 - ldr r4, [r0] - mov r2, #4 - ldr r4, [r4, #0x98] - mov r3, #1 - blx r4 - ldr r0, [sp] - ldrh r0, [r0, #0x30] - add r1, r0, #1 - ldr r0, [sp] - strh r1, [r0, #0x30] - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, r11, pc} - arm_func_end _ZN7MapBase18func_ov00_02080b24EP5Vec2b - - .global _ZN7MapBase18func_ov00_02080d08Ei - arm_func_start _ZN7MapBase18func_ov00_02080d08Ei -_ZN7MapBase18func_ov00_02080d08Ei: ; 0x02080d08 - stmdb sp!, {r3, r4, r5, lr} - ldr r3, [r0] - mov r2, #4 - ldr r3, [r3, #0x58] - mov r5, r0 - mov r4, r1 - blx r3 - cmp r0, #0 - ldmeqia sp!, {r3, r4, r5, pc} - mov r0, r5 - ldr ip, [r0] - mov r1, r4 - ldr ip, [ip, #0x98] - mov r2, #4 - mov r3, #0 - blx ip - mov r0, r5 - ldr ip, [r0] - mov r1, r4 - ldr ip, [ip, #0x98] - mov r2, #6 - mov r3, #1 - blx ip - ldrh r0, [r5, #0x30] - sub r0, r0, #1 - strh r0, [r5, #0x30] - ldmia sp!, {r3, r4, r5, pc} - arm_func_end _ZN7MapBase18func_ov00_02080d08Ei - - .global _ZN7MapBase8vfunc_bcEv - arm_func_start _ZN7MapBase8vfunc_bcEv -_ZN7MapBase8vfunc_bcEv: ; 0x02080d74 - bx lr - arm_func_end _ZN7MapBase8vfunc_bcEv - - .global _ZN7MapBase8vfunc_98Ev - arm_func_start _ZN7MapBase8vfunc_98Ev -_ZN7MapBase8vfunc_98Ev: ; 0x02080d78 - bx lr - arm_func_end _ZN7MapBase8vfunc_98Ev - - .global _ZN7MapBase8vfunc_c0Ev - arm_func_start _ZN7MapBase8vfunc_c0Ev -_ZN7MapBase8vfunc_c0Ev: ; 0x02080d7c - bx lr - arm_func_end _ZN7MapBase8vfunc_c0Ev - - .global _ZN7MapBase22TriggerOfType_vfunc_10Ei - arm_func_start _ZN7MapBase22TriggerOfType_vfunc_10Ei -_ZN7MapBase22TriggerOfType_vfunc_10Ei: ; 0x02080d80 - stmdb sp!, {r4, r5, r6, lr} - mov r6, r0 - ldr r4, [r6, #0x10c] - ldr r0, [r6, #0x110] - mov r5, r1 - add r0, r4, r0, lsl #2 - cmp r4, r0 - beq _02080dd4 -_02080da0: - ldr r0, [r4] - ldrb r1, [r0, #5] - cmp r5, r1 - bne _02080dbc - ldr r1, [r0] - ldr r1, [r1, #0x10] - blx r1 -_02080dbc: - ldr r1, [r6, #0x10c] - ldr r0, [r6, #0x110] - add r4, r4, #4 - add r0, r1, r0, lsl #2 - cmp r4, r0 - bne _02080da0 -_02080dd4: - mov r0, #1 - ldmia sp!, {r4, r5, r6, pc} - arm_func_end _ZN7MapBase22TriggerOfType_vfunc_10Ei - - .global _ZN11TriggerBase8vfunc_10Ev - arm_func_start _ZN11TriggerBase8vfunc_10Ev -_ZN11TriggerBase8vfunc_10Ev: ; 0x02080ddc - mov r0, #1 - bx lr - arm_func_end _ZN11TriggerBase8vfunc_10Ev - - .global _ZN7MapBase18func_ov00_02080de4Ev - arm_func_start _ZN7MapBase18func_ov00_02080de4Ev -_ZN7MapBase18func_ov00_02080de4Ev: ; 0x02080de4 - bx lr - arm_func_end _ZN7MapBase18func_ov00_02080de4Ev - - .global _ZN7MapBase18func_ov00_02080de8Ei - arm_func_start _ZN7MapBase18func_ov00_02080de8Ei -_ZN7MapBase18func_ov00_02080de8Ei: ; 0x02080de8 - stmdb sp!, {r4, r5, r6, lr} - ldr r2, _02080ed4 ; =data_027e0f64 - mov r5, r0 - ldr r0, [r2] - mov r4, #0 - add r0, r0, r1, lsl #2 - ldr r6, [r0, #4] - ldr r0, [r6, #0x15c] - cmp r0, #0x16 - bgt _02080e64 - bge _02080e84 - cmp r0, #0xb - bgt _02080e58 - cmp r0, #0 - addge pc, pc, r0, lsl #2 - b _02080e94 -_02080e28: ; jump table - b _02080e84 ; case 0 - b _02080e84 ; case 1 - b _02080e84 ; case 2 - b _02080e8c ; case 3 - b _02080e94 ; case 4 - b _02080e94 ; case 5 - b _02080e94 ; case 6 - b _02080e94 ; case 7 - b _02080e94 ; case 8 - b _02080e94 ; case 9 - b _02080e94 ; case 10 - b _02080e88 ; case 11 -_02080e58: - cmp r0, #0x15 - beq _02080e84 - b _02080e94 -_02080e64: - cmp r0, #0x5a - bgt _02080e7c - bge _02080e84 - cmp r0, #0x33 - beq _02080e84 - b _02080e94 -_02080e7c: - cmp r0, #0x5b - bne _02080e94 -_02080e84: - mov r4, #0 -_02080e88: - b _02080ec8 -_02080e8c: - mov r4, #0x1f - b _02080ec8 -_02080e94: - mov r0, r6 - bl func_ov00_02087dd8 - cmp r0, #0 - beq _02080ec8 - add r0, r6, #0x200 - ldrsh r1, [r0, #0x24] - ldr r0, _02080ed8 ; =0x00001c72 - cmp r1, r0 - ble _02080ec4 - rsb r0, r0, #0x4000 - cmp r1, r0 - blt _02080ec8 -_02080ec4: - mov r4, #0x1f -_02080ec8: - ldr r0, [r5, #0x140] - strb r4, [r0, #0x5c] - ldmia sp!, {r4, r5, r6, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_02080de8Ei -_02080ed4: .word data_027e0f64 -_02080ed8: .word 0x00001c72 - - .global _ZN7MapBase18func_ov00_02080edcEv - arm_func_start _ZN7MapBase18func_ov00_02080edcEv -_ZN7MapBase18func_ov00_02080edcEv: ; 0x02080edc - stmdb sp!, {r4, lr} - ldr r1, _02080f1c ; =data_027e0d38 - mov r4, r0 - ldr r0, [r1] - add r0, r0, #0xc - bl func_ov00_020a5e9c - cmp r0, #0x2a - cmpne r0, #0x2f - cmpne r0, #0x30 - bne _02080f10 - mov r0, #0 - strb r0, [r4, #5] - ldmia sp!, {r4, pc} -_02080f10: - mov r0, #1 - strb r0, [r4, #5] - ldmia sp!, {r4, pc} - .align 2, 0 - arm_func_end _ZN7MapBase18func_ov00_02080edcEv -_02080f1c: .word data_027e0d38 - .global func_ov00_02080f20 arm_func_start func_ov00_02080f20 func_ov00_02080f20: ; 0x02080f20 @@ -5685,226 +1532,6 @@ data_ov00_020d88ec: ; 0x020d88ec .byte 0x00, 0x00, 0x00, 0x00 .data - .global data_ov00_020e22fc -data_ov00_020e22fc: ; 0x020e22fc - .ascii "fnl" - .byte 0x00 - .global data_ov00_020e2300 -data_ov00_020e2300: ; 0x020e2300 - .ascii "bow" - .byte 0x00 - .global data_ov00_020e2304 -data_ov00_020e2304: ; 0x020e2304 - .ascii "dco" - .byte 0x00 - .global data_ov00_020e2308 -data_ov00_020e2308: ; 0x020e2308 - .ascii "can" - .byte 0x00 - .global data_ov00_020e230c -data_ov00_020e230c: ; 0x020e230c - .ascii "hul" - .byte 0x00 - .global data_ov00_020e2310 -data_ov00_020e2310: ; 0x020e2310 - .ascii "pdl" - .byte 0x00 - .global data_ov00_020e2314 -data_ov00_020e2314: ; 0x020e2314 - .ascii "anc" - .byte 0x00 - .global data_ov00_020e2318 -data_ov00_020e2318: ; 0x020e2318 - .ascii "brg" - .byte 0x00 - .global data_ov00_020e231c -data_ov00_020e231c: ; 0x020e231c - .word data_ov00_020e2314 - .global data_ov00_020e2320 -data_ov00_020e2320: ; 0x020e2320 - .word data_ov00_020e2300 - .global data_ov00_020e2324 -data_ov00_020e2324: ; 0x020e2324 - .word data_ov00_020e230c - .global data_ov00_020e2328 -data_ov00_020e2328: ; 0x020e2328 - .word data_ov00_020e2308 - .global data_ov00_020e232c -data_ov00_020e232c: ; 0x020e232c - .word data_ov00_020e2304 - .global data_ov00_020e2330 -data_ov00_020e2330: ; 0x020e2330 - .word data_ov00_020e2310 - .global data_ov00_020e2334 -data_ov00_020e2334: ; 0x020e2334 - .word data_ov00_020e22fc - .global data_ov00_020e2338 -data_ov00_020e2338: ; 0x020e2338 - .word data_ov00_020e2318 - .global data_ov00_020e233c -data_ov00_020e233c: ; 0x020e233c - .word data_ov00_020e240c - .global data_ov00_020e2340 -data_ov00_020e2340: ; 0x020e2340 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2344 -data_ov00_020e2344: ; 0x020e2344 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2348 -data_ov00_020e2348: ; 0x020e2348 - .word _ZN7MapBaseD2Ev - .global data_ov00_020e234c -data_ov00_020e234c: ; 0x020e234c - .word _ZN7MapBaseD0Ev - .global data_ov00_020e2350 -data_ov00_020e2350: ; 0x020e2350 - .word func_ov04_0210c1f8 ; data_ov07_0210c1f8 - .global data_ov00_020e2354 -data_ov00_020e2354: ; 0x020e2354 - .word func_ov04_0210c3fc ; data_ov07_0210c3fc - .global data_ov00_020e2358 -data_ov00_020e2358: ; 0x020e2358 - .word func_ov04_0210c52c ; data_ov07_0210c52c - .global data_ov00_020e235c -data_ov00_020e235c: ; 0x020e235c - .word func_ov04_0210bfa8 ; data_ov07_0210bfa8 - .global data_ov00_020e2360 -data_ov00_020e2360: ; 0x020e2360 - .word _ZN7MapBase8vfunc_18Ev - .global data_ov00_020e2364 -data_ov00_020e2364: ; 0x020e2364 - .word func_ov05_02111bc0 - .global data_ov00_020e2368 -data_ov00_020e2368: ; 0x020e2368 - .word func_ov05_02111c00 - .global data_ov00_020e236c -data_ov00_020e236c: ; 0x020e236c - .word func_ov05_02111c6c - .global data_ov00_020e2370 -data_ov00_020e2370: ; 0x020e2370 - .word func_ov05_02111c70 - .global data_ov00_020e2374 -data_ov00_020e2374: ; 0x020e2374 - .word func_ov04_0210c5cc ; data_ov07_0210c5cc - .global data_ov00_020e2378 -data_ov00_020e2378: ; 0x020e2378 - .word func_ov04_0210c764 ; data_ov07_0210c764 - .global data_ov00_020e237c -data_ov00_020e237c: ; 0x020e237c - .word func_ov04_0210c800 ; data_ov07_0210c800 - .global data_ov00_020e2380 -data_ov00_020e2380: ; 0x020e2380 - .word func_ov04_0210c88c ; data_ov07_0210c88c - .global data_ov00_020e2384 -data_ov00_020e2384: ; 0x020e2384 - .word func_ov04_0210c8d4 ; data_ov07_0210c8d4 - .global data_ov00_020e2388 -data_ov00_020e2388: ; 0x020e2388 - .word func_ov04_0210ca84 ; data_ov07_0210ca84 - .global data_ov00_020e238c -data_ov00_020e238c: ; 0x020e238c - .word func_ov04_0210cb00 ; data_ov07_0210cb00 - .global data_ov00_020e2390 -data_ov00_020e2390: ; 0x020e2390 - .word _ZN7MapBase8vfunc_48Ev - .global data_ov00_020e2394 -data_ov00_020e2394: ; 0x020e2394 - .byte 0x00, 0x00, 0x00, 0x00 - .global data_ov00_020e2398 -data_ov00_020e2398: ; 0x020e2398 - .word _ZN7MapBase8vfunc_50Ev - .global data_ov00_020e239c -data_ov00_020e239c: ; 0x020e239c - .word _ZN7MapBase8vfunc_54Ev - .global data_ov00_020e23a0 -data_ov00_020e23a0: ; 0x020e23a0 - .word _ZN7MapBase8vfunc_58Ev - .global data_ov00_020e23a4 -data_ov00_020e23a4: ; 0x020e23a4 - .word _ZN7MapBase8vfunc_5cEv - .global data_ov00_020e23a8 -data_ov00_020e23a8: ; 0x020e23a8 - .word _ZN7MapBase8vfunc_60Ev - .global data_ov00_020e23ac -data_ov00_020e23ac: ; 0x020e23ac - .word _ZN7MapBase8vfunc_64Ev - .global data_ov00_020e23b0 -data_ov00_020e23b0: ; 0x020e23b0 - .word _ZN7MapBase8vfunc_68Eii - .global data_ov00_020e23b4 -data_ov00_020e23b4: ; 0x020e23b4 - .word _ZN7MapBase8vfunc_6cEiii - .global data_ov00_020e23b8 -data_ov00_020e23b8: ; 0x020e23b8 - .word _ZN7MapBase8vfunc_70EP5Vec3p - .global data_ov00_020e23bc -data_ov00_020e23bc: ; 0x020e23bc - .word _ZN7MapBase8vfunc_74EP5Vec3p - .global data_ov00_020e23c0 -data_ov00_020e23c0: ; 0x020e23c0 - .word _ZN7MapBase8vfunc_78Ev - .global data_ov00_020e23c4 -data_ov00_020e23c4: ; 0x020e23c4 - .word _ZN7MapBase8vfunc_7cEv - .global data_ov00_020e23c8 -data_ov00_020e23c8: ; 0x020e23c8 - .word _ZN7MapBase8vfunc_80Ev - .global data_ov00_020e23cc -data_ov00_020e23cc: ; 0x020e23cc - .word _ZN7MapBase8vfunc_84Ei - .global data_ov00_020e23d0 -data_ov00_020e23d0: ; 0x020e23d0 - .word _ZN7MapBase8vfunc_88Ev - .global data_ov00_020e23d4 -data_ov00_020e23d4: ; 0x020e23d4 - .word _ZN7MapBase8vfunc_8cEv - .global data_ov00_020e23d8 -data_ov00_020e23d8: ; 0x020e23d8 - .word _ZN7MapBase8vfunc_90Eiii - .global data_ov00_020e23dc -data_ov00_020e23dc: ; 0x020e23dc - .word _ZN7MapBase8vfunc_94Ev - .global data_ov00_020e23e0 -data_ov00_020e23e0: ; 0x020e23e0 - .word _ZN7MapBase8vfunc_98Ev - .global data_ov00_020e23e4 -data_ov00_020e23e4: ; 0x020e23e4 - .word _ZN7MapBase8vfunc_9cEv - .global data_ov00_020e23e8 -data_ov00_020e23e8: ; 0x020e23e8 - .word _ZN7MapBase8vfunc_a0Ev - .global data_ov00_020e23ec -data_ov00_020e23ec: ; 0x020e23ec - .word _ZN7MapBase8vfunc_a4Ev - .global data_ov00_020e23f0 -data_ov00_020e23f0: ; 0x020e23f0 - .word _ZN7MapBase8vfunc_a8Ev - .global data_ov00_020e23f4 -data_ov00_020e23f4: ; 0x020e23f4 - .word _ZN7MapBase8vfunc_acEv - .global data_ov00_020e23f8 -data_ov00_020e23f8: ; 0x020e23f8 - .word _ZN7MapBase8vfunc_b0Eii - .global data_ov00_020e23fc -data_ov00_020e23fc: ; 0x020e23fc - .word _ZN7MapBase8vfunc_b4Ev - .global data_ov00_020e2400 -data_ov00_020e2400: ; 0x020e2400 - .word _ZN7MapBase8vfunc_b8Ev - .global data_ov00_020e2404 -data_ov00_020e2404: ; 0x020e2404 - .word _ZN7MapBase8vfunc_bcEv - .global data_ov00_020e2408 -data_ov00_020e2408: ; 0x020e2408 - .word _ZN7MapBase8vfunc_c0Ev - .global data_ov00_020e240c -data_ov00_020e240c: ; 0x020e240c - .ascii "M00" - .byte 0x00 - .global data_ov00_020e2410 -data_ov00_020e2410: ; 0x020e2410 - .ascii "Map/%s/map%d%d.bin" - .byte 0x00, 0x00 .global data_ov00_020e2424 data_ov00_020e2424: ; 0x020e2424 .byte 0x00, 0x00, 0x00, 0x00 diff --git a/asm/ov00/ov00_02086cd0.inc b/asm/ov00/ov00_02086cd0.inc index c40fd6ef..42b8f47b 100644 --- a/asm/ov00/ov00_02086cd0.inc +++ b/asm/ov00/ov00_02086cd0.inc @@ -34,6 +34,11 @@ .extern _ZN10MapManager18func_ov00_02084b38Eiii .extern _ZN10MapManager18func_ov00_02084be0Eii .extern _ZN10MapManager18func_ov00_02084d24Ecci +.extern _ZN11TriggerBase14GetBoundingBoxEv +.extern _ZN11TriggerBase8OverlapsEv +.extern _ZN11TriggerBase8vfunc_08Ev +.extern _ZN11TriggerBase8vfunc_0cEv +.extern _ZN11TriggerBase8vfunc_10Ev .extern _ZN12ActorManager12FilterActorsEP15ActorFilterBaseP9ActorList .extern _ZN12ActorManager13FindActorByIdEj .extern _ZN12ActorManager18func_ov00_020c3b2cEPi @@ -91,6 +96,10 @@ .extern _ZN5Actor8vfunc_b0Ev .extern _ZN5ActorC2Ev .extern _ZN5ActorD2Ev +.extern _ZN7MapBase18func_ov00_0207e940EPc +.extern _ZN7MapBase18func_ov00_0207e968Ev +.extern _ZN7MapBase18func_ov00_0207e96cEv +.extern _ZN7MapBase18func_ov00_0207f100Ev .extern _ZN9ActorTypeC1EjPFP5ActorvEPv .extern _ZN9ActorTypeD1Ev .extern _ZN9SysObjectdlEPv @@ -223,15 +232,6 @@ .extern func_ov00_02079008 .extern func_ov00_02079470 .extern func_ov00_02079680 -.extern _ZN7MapBase18func_ov00_0207e940EPc -.extern _ZN7MapBase18func_ov00_0207e968Ev -.extern _ZN7MapBase18func_ov00_0207e96cEv -.extern _ZN7MapBase18func_ov00_0207f100Ev -.extern _ZN11TriggerBase8vfunc_08Ev -.extern _ZN11TriggerBase14GetBoundingBoxEv -.extern _ZN11TriggerBase8OverlapsEv -.extern _ZN11TriggerBase8vfunc_0cEv -.extern _ZN11TriggerBase8vfunc_10Ev .extern func_ov00_02081f4c .extern func_ov00_02081f6c .extern func_ov00_0209afc4 diff --git a/tools/lcf.py b/tools/lcf.py index cc574903..7122d656 100644 --- a/tools/lcf.py +++ b/tools/lcf.py @@ -41,6 +41,8 @@ ov00 = Overlay(name='ov00', after='ARM9', objects=[ 'asm/ov00/Map/Course.s', 'src/00_Core/Map/Course.cpp', + 'asm/ov00/Map/MapBase.s', + 'src/00_Core/Map/MapBase.cpp', 'asm/ov00/ov00_0207da38.s',