.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 thumb_func_start MOD77_021D74E0 MOD77_021D74E0: ; 0x021D74E0 push {r3, r4, r5, lr} add r4, r0, #0 mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB mov r0, #0 add r1, r0, #0 bl FUN_02015F34 bl GX_DisableEngineALayers bl GX_DisableEngineBLayers mov r2, #1 lsl r2, r2, #0x1a ldr r1, [r2] ldr r0, _021D75D4 ; =0xFFFFE0FF and r1, r0 str r1, [r2] ldr r2, _021D75D8 ; =0x04001000 ldr r1, [r2] and r0, r1 str r0, [r2] mov r0, #3 mov r1, #0x32 lsl r2, r2, #7 bl CreateHeap ldr r1, _021D75DC ; =0x0000C32C add r0, r4, #0 mov r2, #0x32 bl OverlayManager_CreateAndGetData ldr r2, _021D75DC ; =0x0000C32C mov r1, #0 add r5, r0, #0 bl memset mov r0, #0x32 str r0, [r5] ldr r0, _021D75E0 ; =gGameLanguage ldrb r0, [r0] cmp r0, #1 bne _021D753E mov r1, #1 b _021D7540 _021D753E: mov r1, #0 _021D7540: ldr r0, _021D75E4 ; =0x0000C2F0 str r1, [r5, r0] add r0, r4, #0 bl OverlayManager_GetField18 add r4, r0, #0 bl FUN_02029AFC str r0, [r5, #4] bl FUN_02029B38 ldr r1, _021D75E8 ; =0x0000C314 str r0, [r5, r1] ldr r0, [r5, #4] bl FUN_02029B3C ldr r1, _021D75EC ; =0x0000C318 str r0, [r5, r1] ldr r0, [r5, #4] bl FUN_02029C00 ldr r1, _021D75F0 ; =0x0000C324 str r0, [r5, r1] add r0, r4, #0 bl Sav2_PlayerData_GetOptionsAddr str r0, [r5, #8] bl MOD77_021D7C24 bl MOD77_021D7C44 ldr r0, [r5] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201B2EC ldr r0, [r5] bl BgConfig_Alloc ldr r1, _021D75F4 ; =0x0000C010 str r0, [r5, r1] bl GX_BothDispOn bl FUN_0201BD5C ldr r2, [r5] mov r0, #8 mov r1, #0x40 bl ScrStrBufs_new_custom ldr r1, _021D75F8 ; =0x0000C070 str r0, [r5, r1] ldr r0, [r5] bl Camera_Alloc ldr r1, _021D75FC ; =0x0000C2CC str r0, [r5, r1] mov r0, #0 add r1, #0x1c str r0, [r5, r1] ldr r0, _021D7600 ; =gMain + 0x60 mov r1, #1 strb r1, [r0, #5] bl GX_SwapDisplay mov r0, #4 mov r1, #8 bl SetKeyRepeatTimers add r0, r5, #0 bl MOD77_021D7C64 mov r0, #1 pop {r3, r4, r5, pc} .align 2, 0 _021D75D4: .word 0xFFFFE0FF _021D75D8: .word 0x04001000 _021D75DC: .word 0x0000C32C _021D75E0: .word gGameLanguage _021D75E4: .word 0x0000C2F0 _021D75E8: .word 0x0000C314 _021D75EC: .word 0x0000C318 _021D75F0: .word 0x0000C324 _021D75F4: .word 0x0000C010 _021D75F8: .word 0x0000C070 _021D75FC: .word 0x0000C2CC _021D7600: .word gMain + 0x60 thumb_func_end MOD77_021D74E0 thumb_func_start MOD77_021D7604 MOD77_021D7604: ; 0x021D7604 push {r4, r5, r6, r7, lr} sub sp, #0x14 add r5, r1, #0 bl OverlayManager_GetData ldr r1, [r5] add r4, r0, #0 mov r7, #0 cmp r1, #0x12 bls _021D761A b _021D7B66 _021D761A: add r1, r1, r1 add r1, pc ldrh r1, [r1, #6] lsl r1, r1, #0x10 asr r1, r1, #0x10 add pc, r1 _021D7626: ; jump table .short _021D764C - _021D7626 - 2 ; case 0 .short _021D76A8 - _021D7626 - 2 ; case 1 .short _021D76B6 - _021D7626 - 2 ; case 2 .short _021D76D6 - _021D7626 - 2 ; case 3 .short _021D76FA - _021D7626 - 2 ; case 4 .short _021D7744 - _021D7626 - 2 ; case 5 .short _021D776C - _021D7626 - 2 ; case 6 .short _021D77A2 - _021D7626 - 2 ; case 7 .short _021D77DE - _021D7626 - 2 ; case 8 .short _021D7838 - _021D7626 - 2 ; case 9 .short _021D7886 - _021D7626 - 2 ; case 10 .short _021D78DC - _021D7626 - 2 ; case 11 .short _021D78EE - _021D7626 - 2 ; case 12 .short _021D7916 - _021D7626 - 2 ; case 13 .short _021D7964 - _021D7626 - 2 ; case 14 .short _021D7A32 - _021D7626 - 2 ; case 15 .short _021D7B0E - _021D7626 - 2 ; case 16 .short _021D7B1C - _021D7626 - 2 ; case 17 .short _021D7B3E - _021D7626 - 2 ; case 18 _021D764C: ldr r2, _021D7968 ; =0x0000013E ldr r3, [r4] mov r0, #1 mov r1, #0x1a bl NewMsgDataFromNarc ldr r1, _021D796C ; =0x0000C060 str r0, [r4, r1] add r0, r4, #0 bl MOD77_021D8814 add r0, r4, #0 bl MOD77_021D7FAC add r0, r7, #0 ldr r1, _021D7970 ; =0x0000C2EC add r3, r0, #0 str r0, [r4, r1] mov r1, #6 str r1, [sp] mov r1, #1 str r1, [sp, #4] ldr r2, [r4] str r2, [sp, #8] add r2, r1, #0 bl FUN_0200E1D0 mov r0, #4 mov r1, #1 bl GX_EngineAToggleLayers mov r0, #4 mov r1, #1 bl GX_EngineBToggleLayers mov r0, #8 mov r1, #1 bl GX_EngineAToggleLayers mov r0, #8 mov r1, #1 bl GX_EngineBToggleLayers mov r0, #1 str r0, [r5] b _021D7B66 _021D76A8: bl FUN_0200E308 cmp r0, #1 bne _021D7780 mov r0, #2 str r0, [r5] b _021D7B66 _021D76B6: add r1, r7, #0 mov r2, #1 bl MOD77_021D8294 cmp r0, #1 bne _021D7780 ldr r0, _021D7974 ; =0x0000C314 ldr r0, [r4, r0] cmp r0, #0 bne _021D76D0 mov r0, #3 str r0, [r5] b _021D7B66 _021D76D0: mov r0, #0xe str r0, [r5] b _021D7B66 _021D76D6: mov r1, #1 add r2, r1, #0 bl MOD77_021D8294 cmp r0, #1 bne _021D7780 ldr r0, _021D7978 ; =0x021D8F64 ldr r1, _021D797C ; =0x0000C024 str r0, [sp] ldr r2, _021D7980 ; =0x021D8F18 ldr r3, _021D7984 ; =0x021D8FB4 add r0, r4, #0 add r1, r4, r1 bl MOD77_021D8370 mov r0, #4 str r0, [r5] b _021D7B66 _021D76FA: ldr r0, _021D7988 ; =0x0000C054 ldr r0, [r4, r0] bl ListMenu_ProcessInput add r6, r0, #0 sub r0, r7, #1 cmp r6, r0 beq _021D7780 add r0, r4, #0 bl MOD77_021D84D8 ldr r0, _021D798C ; =0x000005DC bl PlaySE add r0, r6, #2 cmp r0, #4 bhi _021D7732 add r0, r0, r0 add r0, pc ldrh r0, [r0, #6] lsl r0, r0, #0x10 asr r0, r0, #0x10 add pc, r0 _021D7728: ; jump table .short _021D773E - _021D7728 - 2 ; case 0 .short _021D7732 - _021D7728 - 2 ; case 1 .short _021D7732 - _021D7728 - 2 ; case 2 .short _021D7738 - _021D7728 - 2 ; case 3 .short _021D773E - _021D7728 - 2 ; case 4 _021D7732: mov r0, #0xe str r0, [r5] b _021D7B66 _021D7738: mov r0, #5 str r0, [r5] b _021D7B66 _021D773E: mov r0, #0x11 str r0, [r5] b _021D7B66 _021D7744: mov r1, #2 mov r2, #1 bl MOD77_021D8294 cmp r0, #1 bne _021D7780 ldr r0, [r4] ldr r1, _021D7990 ; =0x021D8F38 str r0, [sp] ldr r0, _021D7994 ; =0x0000C010 ldr r2, _021D7998 ; =0x000001D9 ldr r0, [r4, r0] mov r3, #7 bl Std_CreateYesNoMenu ldr r1, _021D799C ; =0x0000C05C str r0, [r4, r1] mov r0, #6 str r0, [r5] b _021D7B66 _021D776C: ldr r0, _021D799C ; =0x0000C05C ldr r1, [r4] ldr r0, [r4, r0] bl FUN_020021AC cmp r0, #0 beq _021D7782 sub r1, r7, #2 cmp r0, r1 beq _021D779C _021D7780: b _021D7B66 _021D7782: ldr r0, _021D79A0 ; =0x0000C2F0 ldr r1, [r4, r0] cmp r1, #1 bne _021D7796 mov r1, #0x67 add r0, #0x2c str r1, [r4, r0] mov r0, #9 str r0, [r5] b _021D7B66 _021D7796: mov r0, #7 str r0, [r5] b _021D7B66 _021D779C: mov r0, #3 str r0, [r5] b _021D7B66 _021D77A2: mov r1, #3 mov r2, #1 bl MOD77_021D8294 cmp r0, #1 bne _021D77EE ldr r1, _021D79A4 ; =0x0000C31C add r0, r7, #0 str r0, [r4, r1] bl FUN_02088DA0 add r6, r0, #0 add r0, r7, #0 bl FUN_02088DBC mov r1, #0x99 lsl r1, r1, #2 str r1, [sp] ldr r1, _021D797C ; =0x0000C024 str r6, [sp, #4] str r0, [sp, #8] ldr r2, _021D79A8 ; =0x021D8F20 ldr r3, _021D79AC ; =0x021D8FD4 add r0, r4, #0 add r1, r4, r1 bl MOD77_021D8418 mov r0, #8 str r0, [r5] b _021D7B66 _021D77DE: ldr r0, _021D7988 ; =0x0000C054 ldr r0, [r4, r0] bl ListMenu_ProcessInput add r6, r0, #0 sub r0, r7, #1 cmp r6, r0 bne _021D77F0 _021D77EE: b _021D7B66 _021D77F0: add r0, r4, #0 bl MOD77_021D84D8 ldr r0, _021D798C ; =0x000005DC bl PlaySE sub r0, r7, #2 cmp r6, r0 beq _021D780A add r0, r7, #0 bl FUN_02088DA0 ldrb r6, [r0, r6] _021D780A: mov r0, #1 mvn r0, r0 cmp r6, r0 beq _021D7832 ldr r0, _021D79A4 ; =0x0000C31C str r6, [r4, r0] ldr r0, [r4, r0] bl MOD77_021D8F04 cmp r0, #1 bne _021D7826 mov r0, #9 str r0, [r5] b _021D7B66 _021D7826: ldr r0, _021D79B0 ; =0x0000C320 mov r1, #0 str r1, [r4, r0] mov r0, #0xb str r0, [r5] b _021D7B66 _021D7832: mov r0, #3 str r0, [r5] b _021D7B66 _021D7838: mov r1, #4 mov r2, #1 bl MOD77_021D8294 cmp r0, #1 bne _021D792A ldr r0, _021D79B0 ; =0x0000C320 add r1, r7, #0 str r1, [r4, r0] sub r0, r0, #4 ldr r0, [r4, r0] bl FUN_02088D20 add r6, r0, #0 bl FUN_02088D4C str r0, [sp, #0xc] add r0, r6, #0 bl FUN_02088DA0 str r0, [sp, #0x10] add r0, r6, #0 bl FUN_02088DBC ldr r1, [sp, #0xc] ldr r2, _021D79A8 ; =0x021D8F20 str r1, [sp] ldr r1, [sp, #0x10] ldr r3, _021D79AC ; =0x021D8FD4 str r1, [sp, #4] ldr r1, _021D797C ; =0x0000C024 str r0, [sp, #8] add r0, r4, #0 add r1, r4, r1 bl MOD77_021D8418 mov r0, #0xa str r0, [r5] b _021D7B66 _021D7886: ldr r0, _021D7988 ; =0x0000C054 ldr r0, [r4, r0] bl ListMenu_ProcessInput add r6, r0, #0 sub r0, r7, #1 cmp r6, r0 beq _021D792A add r0, r4, #0 bl MOD77_021D84D8 ldr r0, _021D798C ; =0x000005DC bl PlaySE sub r0, r7, #2 cmp r6, r0 beq _021D78B6 ldr r0, _021D79A4 ; =0x0000C31C ldr r0, [r4, r0] bl FUN_02088D20 bl FUN_02088DA0 ldrb r6, [r0, r6] _021D78B6: mov r0, #1 mvn r0, r0 cmp r6, r0 beq _021D78C8 ldr r0, _021D79B0 ; =0x0000C320 str r6, [r4, r0] mov r0, #0xb str r0, [r5] b _021D7B66 _021D78C8: ldr r0, _021D79A0 ; =0x0000C2F0 ldr r0, [r4, r0] cmp r0, #1 bne _021D78D6 mov r0, #3 str r0, [r5] b _021D7B66 _021D78D6: mov r0, #7 str r0, [r5] b _021D7B66 _021D78DC: ldr r2, _021D79A4 ; =0x0000C31C ldr r1, [r4, r2] add r2, r2, #4 ldr r2, [r4, r2] bl MOD77_021D85E0 mov r0, #0xc str r0, [r5] b _021D7B66 _021D78EE: mov r1, #5 mov r2, #1 bl MOD77_021D8294 cmp r0, #1 bne _021D792A ldr r0, [r4] ldr r1, _021D7990 ; =0x021D8F38 str r0, [sp] ldr r0, _021D7994 ; =0x0000C010 ldr r2, _021D7998 ; =0x000001D9 ldr r0, [r4, r0] mov r3, #7 bl Std_CreateYesNoMenu ldr r1, _021D799C ; =0x0000C05C str r0, [r4, r1] mov r0, #0xd str r0, [r5] b _021D7B66 _021D7916: ldr r0, _021D799C ; =0x0000C05C ldr r1, [r4] ldr r0, [r4, r0] bl FUN_020021AC cmp r0, #0 beq _021D792C sub r1, r7, #2 cmp r0, r1 beq _021D7958 _021D792A: b _021D7B66 _021D792C: add r0, r4, #0 bl MOD77_021D8698 ldr r2, _021D79A4 ; =0x0000C31C ldr r0, [r4, #4] ldr r1, [r4, r2] add r2, r2, #4 ldr r2, [r4, r2] bl FUN_02029B08 ldr r0, _021D79A4 ; =0x0000C31C add r1, r0, #0 ldr r2, [r4, r0] sub r1, #8 str r2, [r4, r1] add r1, r0, #4 ldr r1, [r4, r1] sub r0, r0, #4 str r1, [r4, r0] mov r0, #0xe str r0, [r5] b _021D7B66 _021D7958: add r0, r4, #0 bl MOD77_021D8698 mov r0, #3 str r0, [r5] b _021D7B66 _021D7964: ldr r1, _021D79A0 ; =0x0000C2F0 b _021D79B4 .align 2, 0 _021D7968: .word 0x0000013E _021D796C: .word 0x0000C060 _021D7970: .word 0x0000C2EC _021D7974: .word 0x0000C314 _021D7978: .word MOD77_021D8F64 _021D797C: .word 0x0000C024 _021D7980: .word MOD77_021D8F18 _021D7984: .word MOD77_021D8FB4 _021D7988: .word 0x0000C054 _021D798C: .word 0x000005DC _021D7990: .word MOD77_021D8F38 _021D7994: .word 0x0000C010 _021D7998: .word 0x000001D9 _021D799C: .word 0x0000C05C _021D79A0: .word 0x0000C2F0 _021D79A4: .word 0x0000C31C _021D79A8: .word MOD77_021D8F20 _021D79AC: .word MOD77_021D8FD4 _021D79B0: .word 0x0000C320 _021D79B4: ldr r0, [r4, r1] cmp r0, #1 bne _021D79CA add r0, r1, #0 add r0, #0x34 ldr r0, [r4, r0] cmp r0, #0 bne _021D79CA add r0, r1, #4 strh r7, [r4, r0] b _021D79D0 _021D79CA: ldr r0, _021D7B74 ; =0x0000C2F4 mov r1, #1 strh r1, [r4, r0] _021D79D0: add r0, r4, #0 bl MOD77_021D8914 add r0, r4, #0 bl MOD77_021D7DCC add r0, r4, #0 bl MOD77_021D8970 add r0, r4, #0 bl MOD77_021D89F4 mov r0, #0xd8 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] ldr r0, _021D7B78 ; =0x0000C014 mov r2, #0 add r0, r4, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D7B7C ; =0x0000C034 ldr r2, _021D7B80 ; =0x000001D9 add r0, r4, r0 mov r1, #0 mov r3, #7 bl DrawFrameAndWindow1 ldr r0, _021D7B84 ; =0x0000C314 ldr r0, [r4, r0] cmp r0, #0 beq _021D7A1A add r0, r4, #0 bl MOD77_021D8510 _021D7A1A: add r0, r4, #0 bl MOD77_021D86B4 ldr r0, _021D7B88 ; =0x0000C328 mov r1, #0 str r1, [r4, r0] mov r1, #1 sub r0, #0x40 str r1, [r4, r0] mov r0, #0xf str r0, [r5] b _021D7B66 _021D7A32: ldr r1, _021D7B8C ; =0x0000C2D8 ldrh r6, [r4, r1] bl MOD77_021D7E24 ldr r0, _021D7B90 ; =gMain mov r3, #2 ldr r1, [r0, #0x48] add r0, r1, #0 tst r0, r3 bne _021D7A4E ldr r0, _021D7B94 ; =0x0000C2F8 ldr r2, [r4, r0] tst r2, r3 beq _021D7A94 _021D7A4E: ldr r0, _021D7B7C ; =0x0000C034 mov r1, #0 add r0, r4, r0 bl ClearFrameAndWindow1 ldr r0, _021D7B98 ; =0x000005DD bl PlaySE mov r0, #0xd8 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] ldr r0, _021D7B78 ; =0x0000C014 mov r2, #0 add r0, r4, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D7B84 ; =0x0000C314 ldr r1, [r4, r0] cmp r1, #0 bne _021D7A88 mov r1, #2 sub r0, #0x2c str r1, [r4, r0] mov r0, #3 str r0, [r5] b _021D7B66 _021D7A88: add r0, r4, #0 bl MOD77_021D8698 mov r0, #0x11 str r0, [r5] b _021D7B66 _021D7A94: lsl r2, r3, #9 tst r2, r1 beq _021D7AC0 add r2, r0, #0 add r2, #0x30 ldr r2, [r4, r2] cmp r2, #0 bne _021D7AC0 mov r1, #1 add r0, #0x30 str r1, [r4, r0] add r0, r4, #0 bl MOD77_021D86B4 ldr r0, _021D7B88 ; =0x0000C328 ldr r0, [r4, r0] cmp r0, #1 bne _021D7B66 ldr r0, _021D7B98 ; =0x000005DD bl PlaySE b _021D7B66 _021D7AC0: ldr r0, _021D7B9C ; =0x00000403 tst r0, r1 beq _021D7ADA ldr r0, _021D7B88 ; =0x0000C328 ldr r2, [r4, r0] cmp r2, #1 bne _021D7ADA mov r1, #0 str r1, [r4, r0] add r0, r4, #0 bl MOD77_021D86B4 b _021D7B66 _021D7ADA: ldr r2, _021D7B90 ; =gMain add r0, r4, #0 ldr r2, [r2, #0x44] bl MOD77_021D8B20 cmp r0, #1 bne _021D7AFA ldr r0, _021D7B88 ; =0x0000C328 ldr r1, [r4, r0] cmp r1, #1 bne _021D7AFA mov r1, #0 str r1, [r4, r0] add r0, r4, #0 bl MOD77_021D86B4 _021D7AFA: ldr r0, _021D7B8C ; =0x0000C2D8 ldrh r0, [r4, r0] cmp r6, r0 beq _021D7B66 mov r0, #0x10 str r0, [r5] ldr r0, _021D7B98 ; =0x000005DD bl PlaySE b _021D7B66 _021D7B0E: bl MOD77_021D8CF8 cmp r0, #1 bne _021D7B66 mov r0, #0xf str r0, [r5] b _021D7B66 _021D7B1C: ldr r0, _021D7BA0 ; =0x0000C2EC add r1, r7, #0 str r7, [r4, r0] mov r0, #6 str r0, [sp] mov r0, #1 str r0, [sp, #4] ldr r0, [r4] add r2, r7, #0 str r0, [sp, #8] add r0, r7, #0 add r3, r7, #0 bl FUN_0200E1D0 mov r0, #0x12 str r0, [r5] b _021D7B66 _021D7B3E: bl FUN_0200E308 cmp r0, #1 bne _021D7B66 ldr r0, _021D7BA4 ; =0x0000C2E8 mov r1, #1 str r1, [r4, r0] add r0, r4, #0 bl MOD77_021D8248 add r0, r4, #0 bl MOD77_021D88D0 ldr r0, _021D7BA8 ; =0x0000C060 ldr r0, [r4, r0] bl DestroyMsgData add r0, r7, #0 str r0, [r5] mov r7, #1 _021D7B66: add r0, r4, #0 bl MOD77_021D8D84 add r0, r7, #0 add sp, #0x14 pop {r4, r5, r6, r7, pc} nop _021D7B74: .word 0x0000C2F4 _021D7B78: .word 0x0000C014 _021D7B7C: .word 0x0000C034 _021D7B80: .word 0x000001D9 _021D7B84: .word 0x0000C314 _021D7B88: .word 0x0000C328 _021D7B8C: .word 0x0000C2D8 _021D7B90: .word gMain _021D7B94: .word 0x0000C2F8 _021D7B98: .word 0x000005DD _021D7B9C: .word 0x00000403 _021D7BA0: .word 0x0000C2EC _021D7BA4: .word 0x0000C2E8 _021D7BA8: .word 0x0000C060 thumb_func_end MOD77_021D7604 thumb_func_start MOD77_021D7BAC MOD77_021D7BAC: ; 0x021D7BAC push {r4, r5, r6, lr} add r6, r0, #0 bl OverlayManager_GetData add r4, r0, #0 mov r0, #4 mov r1, #0 ldr r5, [r4] bl GX_EngineAToggleLayers mov r0, #4 mov r1, #0 bl GX_EngineBToggleLayers mov r0, #8 mov r1, #0 bl GX_EngineAToggleLayers mov r0, #8 mov r1, #0 bl GX_EngineBToggleLayers ldr r0, _021D7C14 ; =0x0000C2CC ldr r0, [r4, r0] bl Camera_Free ldr r0, _021D7C18 ; =0x0000C070 ldr r0, [r4, r0] bl ScrStrBufs_delete bl FUN_0201B398 ldr r0, _021D7C1C ; =0x0000C010 ldr r0, [r4, r0] bl FreeToHeap mov r0, #0 add r1, r0, #0 bl Main_SetVBlankIntrCB add r0, r6, #0 bl OverlayManager_FreeData add r0, r5, #0 bl DestroyHeap ldr r0, _021D7C20 ; =gMain + 0x60 mov r1, #0 strb r1, [r0, #5] mov r0, #1 pop {r4, r5, r6, pc} nop _021D7C14: .word 0x0000C2CC _021D7C18: .word 0x0000C070 _021D7C1C: .word 0x0000C010 _021D7C20: .word gMain + 0x60 thumb_func_end MOD77_021D7BAC thumb_func_start MOD77_021D7C24 MOD77_021D7C24: ; 0x021D7C24 push {r4, lr} sub sp, #0x28 ldr r4, _021D7C40 ; =0x021D9084 add r3, sp, #0 mov r2, #5 _021D7C2E: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7C2E add r0, sp, #0 bl GX_SetBanks add sp, #0x28 pop {r4, pc} .align 2, 0 _021D7C40: .word MOD77_021D9084 thumb_func_end MOD77_021D7C24 thumb_func_start MOD77_021D7C44 MOD77_021D7C44: ; 0x021D7C44 push {r4, lr} sub sp, #0x10 ldr r4, _021D7C60 ; =0x021D8F54 add r3, sp, #0 add r2, r3, #0 ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldmia r4!, {r0, r1} stmia r3!, {r0, r1} add r0, r2, #0 bl SetBothScreensModesAndDisable add sp, #0x10 pop {r4, pc} .align 2, 0 _021D7C60: .word MOD77_021D8F54 thumb_func_end MOD77_021D7C44 thumb_func_start MOD77_021D7C64 MOD77_021D7C64: ; 0x021D7C64 push {r4, r5, r6, r7, lr} sub sp, #0x24 mov r2, #0 str r0, [sp, #8] str r2, [r0, #0xc] str r2, [sp] add r0, sp, #0x20 str r0, [sp, #4] ldr r3, [sp, #8] mov r0, #0x66 ldr r3, [r3] mov r1, #0x12 bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [sp, #0x18] ldr r0, [sp, #0x20] mov r1, #6 bl _u32_div_f add r7, r0, #0 ldr r0, [sp, #0x18] mov r5, #1 add r4, r0, #6 cmp r7, #1 ble _021D7CCA ldr r6, [sp, #8] add r6, #0xc _021D7C9A: ldrh r0, [r4] cmp r0, #2 beq _021D7CC2 lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp] mov r0, #0 str r0, [sp, #4] ldr r0, [sp, #8] mov r2, #2 mov r3, #4 add r1, r0, #0 ldrsh r2, [r4, r2] ldrsh r3, [r4, r3] ldr r1, [r1, #0xc] bl MOD77_021D7D58 ldr r0, [r6] add r0, r0, #1 str r0, [r6] _021D7CC2: add r5, r5, #1 add r4, r4, #6 cmp r5, r7 blt _021D7C9A _021D7CCA: ldr r0, [sp, #0x18] bl FreeToHeap mov r7, #1 bl FUN_02088D1C str r0, [sp, #0x10] cmp r0, #1 ble _021D7D52 ldr r6, [sp, #8] add r6, #0xc _021D7CE0: add r0, r7, #0 bl FUN_02088D84 add r1, r0, #0 mov r0, #0 str r0, [sp] add r0, sp, #0x1c str r0, [sp, #4] ldr r3, [sp, #8] mov r0, #0x66 ldr r3, [r3] mov r2, #0 bl GfGfxLoader_LoadFromNarc_GetSizeOut str r0, [sp, #0x14] ldr r0, [sp, #0x1c] mov r5, #1 lsr r0, r0, #2 str r0, [sp, #0xc] ldr r0, [sp, #0x14] add r4, r0, #4 ldr r0, [sp, #0xc] cmp r0, #1 ble _021D7D44 _021D7D10: add r0, r7, #0 bl FUN_02088D68 lsl r0, r0, #0x10 lsr r0, r0, #0x10 str r0, [sp] lsl r0, r5, #0x10 lsr r0, r0, #0x10 str r0, [sp, #4] ldr r0, [sp, #8] mov r2, #0 mov r3, #2 add r1, r0, #0 ldrsh r2, [r4, r2] ldrsh r3, [r4, r3] ldr r1, [r1, #0xc] bl MOD77_021D7D58 ldr r0, [r6] add r5, r5, #1 add r0, r0, #1 str r0, [r6] ldr r0, [sp, #0xc] add r4, r4, #4 cmp r5, r0 blt _021D7D10 _021D7D44: ldr r0, [sp, #0x14] bl FreeToHeap ldr r0, [sp, #0x10] add r7, r7, #1 cmp r7, r0 blt _021D7CE0 _021D7D52: add sp, #0x24 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_end MOD77_021D7C64 thumb_func_start MOD77_021D7D58 MOD77_021D7D58: ; 0x021D7D58 push {r3, r4, r5, r6, r7, lr} sub sp, #0x30 ldr r5, _021D7DC8 ; =0x021D903C add r7, r2, #0 add r6, r3, #0 add r4, r0, #0 mov ip, r1 add r3, sp, #0xc mov r2, #4 _021D7D6A: ldmia r5!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7D6A ldr r0, [r5] mov r1, #0x30 str r0, [r3] mov r0, ip add r5, r0, #0 mul r5, r1 add r0, r4, r5 strh r7, [r0, #0x10] strh r6, [r0, #0x12] mov r0, #0 str r0, [sp, #8] add r0, sp, #0xc add r1, sp, #0 str r7, [sp] str r6, [sp, #4] bl MOD77_021D8AA8 add r3, r4, r5 add r6, sp, #0xc add r3, #0x14 mov r2, #4 _021D7D9C: ldmia r6!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D7D9C ldr r0, [r6] add r2, sp, #0x38 str r0, [r3] ldrh r1, [r2, #0x10] ldrh r2, [r2, #0x14] ldr r0, [r4, #4] bl FUN_02029B40 add r2, r4, r5 strh r0, [r2, #0x38] add r0, sp, #0x38 ldrh r1, [r0, #0x10] strh r1, [r2, #0x3a] ldrh r0, [r0, #0x14] strh r0, [r2, #0x3c] add sp, #0x30 pop {r3, r4, r5, r6, r7, pc} nop _021D7DC8: .word MOD77_021D903C thumb_func_end MOD77_021D7D58 thumb_func_start MOD77_021D7DCC MOD77_021D7DCC: ; 0x021D7DCC push {r4, r5, r6, r7} ldr r1, [r0, #0xc] mov r4, #0 cmp r1, #0 bls _021D7E0A ldr r1, _021D7E10 ; =0x0000C318 add r5, r0, #0 mov r3, #3 sub r2, r1, #4 _021D7DDE: ldrh r6, [r5, #0x3a] ldr r7, [r0, r2] cmp r7, r6 bne _021D7E00 ldrh r6, [r5, #0x3c] ldr r7, [r0, r1] cmp r7, r6 bne _021D7E00 strh r3, [r5, #0x38] mov r6, #0x10 ldrsh r7, [r5, r6] ldr r6, _021D7E14 ; =0x0000C2B4 str r7, [r0, r6] mov r6, #0x12 ldrsh r7, [r5, r6] ldr r6, _021D7E18 ; =0x0000C2B8 str r7, [r0, r6] _021D7E00: ldr r6, [r0, #0xc] add r4, r4, #1 add r5, #0x30 cmp r4, r6 blo _021D7DDE _021D7E0A: pop {r4, r5, r6, r7} bx lr nop _021D7E10: .word 0x0000C318 _021D7E14: .word 0x0000C2B4 _021D7E18: .word 0x0000C2B8 thumb_func_end MOD77_021D7DCC thumb_func_start MOD77_021D7E1C MOD77_021D7E1C: ; 0x021D7E1C ldr r3, _021D7E20 ; =FUN_02088D20 bx r3 .align 2, 0 _021D7E20: .word FUN_02088D20 thumb_func_end MOD77_021D7E1C thumb_func_start MOD77_021D7E24 MOD77_021D7E24: ; 0x021D7E24 push {r4, lr} sub sp, #0x18 add r4, r0, #0 ldr r0, _021D7F2C ; =0x0000C2F8 mov r1, #0 str r1, [r4, r0] ldr r1, _021D7F30 ; =gMain + 0x40 ldrh r2, [r1, #0x20] cmp r2, #0 beq _021D7E86 ldrh r2, [r1, #0x1c] cmp r2, #0xc8 blo _021D7E54 cmp r2, #0xf8 bhi _021D7E54 ldrh r1, [r1, #0x1e] cmp r1, #0xa8 blo _021D7E54 cmp r1, #0xb8 bhi _021D7E54 mov r1, #2 add sp, #0x18 str r1, [r4, r0] pop {r4, pc} _021D7E54: ldr r0, _021D7F34 ; =0x0000C2FC mov r2, #0 add r1, r0, #0 str r2, [r4, r0] add r1, #0xc str r2, [r4, r1] add r1, r0, #0 add r1, #0x10 str r2, [r4, r1] add r1, r0, #0 add r1, #0x14 str r2, [r4, r1] sub r1, r0, #4 str r2, [r4, r1] ldr r2, _021D7F30 ; =gMain + 0x40 add r1, r0, #4 ldrh r3, [r2, #0x1c] str r3, [r4, r1] add r1, r0, #0 ldrh r2, [r2, #0x1e] add r1, #8 add r0, #0x14 str r2, [r4, r1] mov r1, #4 str r1, [r4, r0] _021D7E86: ldr r0, _021D7F30 ; =gMain + 0x40 ldrh r0, [r0, #0x22] cmp r0, #0 beq _021D7F02 ldr r1, _021D7F34 ; =0x0000C2FC ldr r2, [r4, r1] cmp r2, #0 beq _021D7E9E cmp r2, #1 beq _021D7EBA add sp, #0x18 pop {r4, pc} _021D7E9E: add r0, r1, #0 add r0, #0x14 ldr r0, [r4, r0] cmp r0, #0 bne _021D7EAE add r0, r2, #1 str r0, [r4, r1] b _021D7EBA _021D7EAE: add r0, r1, #0 add r0, #0x14 ldr r0, [r4, r0] add r1, #0x14 sub r0, r0, #1 str r0, [r4, r1] _021D7EBA: add r0, sp, #0xc mov r1, #0xc3 str r0, [sp] add r0, sp, #8 lsl r1, r1, #8 str r0, [sp, #4] ldr r0, [r4, r1] add r1, r1, #4 ldr r1, [r4, r1] add r2, sp, #0x14 add r3, sp, #0x10 bl MOD77_021D7F3C ldr r1, [sp, #0x14] ldr r0, [sp, #0xc] orr r0, r1 ldr r1, _021D7F2C ; =0x0000C2F8 str r0, [r4, r1] add r0, r1, #0 ldr r2, [sp, #0x10] add r0, #0x10 str r2, [r4, r0] ldr r2, [sp, #8] add r0, r1, #0 add r0, #0x14 str r2, [r4, r0] add r0, r1, #0 ldr r2, _021D7F30 ; =gMain + 0x40 add r0, #8 ldrh r3, [r2, #0x1c] add r1, #0xc add sp, #0x18 str r3, [r4, r0] ldrh r0, [r2, #0x1e] str r0, [r4, r1] pop {r4, pc} _021D7F02: ldr r0, _021D7F38 ; =0x0000C310 ldr r1, [r4, r0] cmp r1, #0 beq _021D7F10 mov r1, #1 sub r0, #0x18 str r1, [r4, r0] _021D7F10: ldr r1, _021D7F34 ; =0x0000C2FC mov r2, #0 add r0, r1, #0 str r2, [r4, r1] add r0, #0xc str r2, [r4, r0] add r0, r1, #0 add r0, #0x10 str r2, [r4, r0] add r1, #0x14 str r2, [r4, r1] add sp, #0x18 pop {r4, pc} nop _021D7F2C: .word 0x0000C2F8 _021D7F30: .word gMain + 0x40 _021D7F34: .word 0x0000C2FC _021D7F38: .word 0x0000C310 thumb_func_end MOD77_021D7E24 thumb_func_start MOD77_021D7F3C MOD77_021D7F3C: ; 0x021D7F3C push {r3, r4, r5, r6, r7, lr} mov lr, r0 ldr r0, _021D7FA4 ; =gMain + 0x40 mov ip, r1 ldrh r5, [r0, #0x1c] mov r1, #0 add r7, r2, #0 add r6, r3, #0 ldr r0, _021D7FA8 ; =0x0000FFFF add r2, r1, #0 add r3, r1, #0 add r4, r1, #0 cmp r5, r0 beq _021D7F6C mov r0, lr sub r3, r5, r0 bpl _021D7F66 sub r0, r1, #1 eor r3, r0 mov r1, #0x10 b _021D7F6C _021D7F66: cmp r3, #0 ble _021D7F6C mov r1, #0x20 _021D7F6C: str r1, [r7] mov r1, #0x3f add r0, r3, #0 and r0, r1 str r0, [r6] ldr r0, _021D7FA4 ; =gMain + 0x40 ldrh r3, [r0, #0x1e] ldr r0, _021D7FA8 ; =0x0000FFFF cmp r3, r0 beq _021D7F94 mov r0, ip sub r4, r3, r0 bpl _021D7F8E sub r1, #0x40 eor r4, r1 mov r2, #0x80 b _021D7F94 _021D7F8E: cmp r4, #0 ble _021D7F94 mov r2, #0x40 _021D7F94: ldr r0, [sp, #0x18] add r1, r4, #0 str r2, [r0] mov r0, #0x3f and r1, r0 ldr r0, [sp, #0x1c] str r1, [r0] pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D7FA4: .word gMain + 0x40 _021D7FA8: .word 0x0000FFFF thumb_func_end MOD77_021D7F3C thumb_func_start MOD77_021D7FAC MOD77_021D7FAC: ; 0x021D7FAC push {r3, r4, r5, lr} sub sp, #0x18 add r5, r0, #0 ldr r0, _021D8208 ; =0x0000C010 ldr r2, _021D820C ; =0x021D8F7C ldr r0, [r5, r0] mov r1, #6 mov r3, #0 bl InitBgFromTemplate ldr r0, _021D8208 ; =0x0000C010 mov r1, #6 ldr r0, [r5, r0] bl BgClearTilemapBufferAndCommit ldr r0, _021D8208 ; =0x0000C010 ldr r2, _021D8210 ; =0x021D8F98 ldr r0, [r5, r0] mov r1, #7 mov r3, #0 bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r5] ldr r2, _021D8208 ; =0x0000C010 str r0, [sp, #0xc] ldr r2, [r5, r2] mov r0, #0x81 mov r1, #5 mov r3, #7 bl GfGfxLoader_LoadCharData mov r0, #0x80 str r0, [sp] ldr r0, [r5] mov r1, #6 str r0, [sp, #4] mov r0, #0x81 mov r2, #4 mov r3, #0 bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r5] mov r1, #7 str r0, [sp, #0xc] ldr r2, _021D8208 ; =0x0000C010 mov r0, #0x81 ldr r2, [r5, r2] add r3, r1, #0 bl GfGfxLoader_LoadScrnData ldr r0, [r5, #8] bl Options_GetFrame lsl r0, r0, #0x18 lsr r0, r0, #0x18 str r0, [sp] ldr r0, [r5] mov r1, #6 str r0, [sp, #4] ldr r0, _021D8208 ; =0x0000C010 ldr r2, _021D8214 ; =0x000001E2 ldr r0, [r5, r0] add r3, r1, #0 bl FUN_0200CD68 mov r0, #0 str r0, [sp] ldr r0, [r5] ldr r2, _021D8218 ; =0x000001D9 str r0, [sp, #4] ldr r0, _021D8208 ; =0x0000C010 mov r1, #6 ldr r0, [r5, r0] mov r3, #7 bl FUN_0200CB00 ldr r2, [r5] mov r0, #4 mov r1, #0x80 bl FUN_02002ED0 ldr r3, [r5] mov r0, #6 mov r1, #0x20 mov r2, #0 bl BG_ClearCharDataRange ldr r1, _021D821C ; =0x00004753 mov r0, #6 bl BG_SetMaskColor ldr r1, _021D8208 ; =0x0000C010 ldr r2, _021D8220 ; =0x021D8F40 ldr r0, [r5, r1] add r1, r1, #4 add r1, r5, r1 bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] ldr r0, _021D8224 ; =0x0000C014 mov r2, #0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D8224 ; =0x0000C014 ldr r2, _021D8214 ; =0x000001E2 add r0, r5, r0 mov r1, #0 mov r3, #6 bl DrawFrameAndWindow2 ldr r0, _021D8228 ; =0x0000C064 mov r3, #0 str r3, [r5, r0] sub r0, #0x54 ldr r0, [r5, r0] ldr r2, _021D820C ; =0x021D8F7C mov r1, #2 bl InitBgFromTemplate ldr r0, _021D8208 ; =0x0000C010 mov r1, #2 ldr r0, [r5, r0] bl BgClearTilemapBufferAndCommit ldr r0, _021D8208 ; =0x0000C010 ldr r2, _021D8210 ; =0x021D8F98 ldr r0, [r5, r0] mov r1, #3 mov r3, #0 bl InitBgFromTemplate mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r5] ldr r2, _021D8208 ; =0x0000C010 str r0, [sp, #0xc] ldr r2, [r5, r2] mov r0, #0x81 mov r1, #5 mov r3, #3 bl GfGfxLoader_LoadCharData mov r0, #0x80 str r0, [sp] ldr r0, [r5] mov r2, #0 str r0, [sp, #4] mov r0, #0x81 mov r1, #6 add r3, r2, #0 bl GfGfxLoader_GXLoadPal mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] ldr r0, [r5] ldr r2, _021D8208 ; =0x0000C010 str r0, [sp, #0xc] ldr r2, [r5, r2] mov r0, #0x81 mov r1, #7 mov r3, #3 bl GfGfxLoader_LoadScrnData mov r0, #0 str r0, [sp] ldr r0, [r5] ldr r2, _021D8218 ; =0x000001D9 str r0, [sp, #4] ldr r0, _021D8208 ; =0x0000C010 mov r1, #2 ldr r0, [r5, r0] mov r3, #7 bl FUN_0200CB00 ldr r2, [r5] mov r0, #0 mov r1, #0x80 bl FUN_02002ED0 ldr r3, [r5] mov r0, #2 mov r1, #0x20 mov r2, #0 bl BG_ClearCharDataRange mov r0, #2 mov r1, #0 bl BG_SetMaskColor ldr r1, [r5] mov r0, #0x10 bl String_ctor add r4, r0, #0 ldr r1, [r5] mov r0, #2 bl FUN_02002C50 ldr r1, _021D822C ; =0x00004E56 add r0, sp, #0x10 strh r1, [r0, #6] ldr r1, _021D8230 ; =0x00003571 mov r3, #0x82 strh r1, [r0, #4] ldr r1, _021D8234 ; =0x0000208C strh r1, [r0, #2] ldr r1, _021D8238 ; =0x00007FFF strh r1, [r0] mov r0, #2 add r1, sp, #0x14 add r1, #2 add r2, r0, #0 bl BG_LoadPlttData mov r0, #2 add r1, sp, #0x14 add r2, r0, #0 mov r3, #0x84 bl BG_LoadPlttData mov r0, #2 add r1, sp, #0x10 add r1, #2 add r2, r0, #0 mov r3, #0x86 bl BG_LoadPlttData mov r0, #2 add r1, sp, #0x10 add r2, r0, #0 mov r3, #0x9e bl BG_LoadPlttData ldr r1, _021D8208 ; =0x0000C010 ldr r2, _021D823C ; =0x021D8F30 ldr r0, [r5, r1] add r1, #0x24 add r1, r5, r1 bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x20 str r0, [sp, #4] ldr r0, _021D8240 ; =0x0000C034 mov r2, #0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D8244 ; =0x0000C060 mov r1, #0xc ldr r0, [r5, r0] add r2, r4, #0 bl ReadMsgDataIntoString mov r0, #2 add r1, r4, #0 mov r2, #0 mov r3, #0x30 bl FUN_02002F40 mov r1, #0 add r3, r0, #0 str r1, [sp] mov r0, #0xff str r0, [sp, #4] ldr r0, _021D8240 ; =0x0000C034 str r1, [sp, #8] add r0, r5, r0 mov r1, #2 add r2, r4, #0 bl AddTextPrinterParameterized add r0, r4, #0 bl String_dtor mov r0, #2 bl FUN_02002CF8 add sp, #0x18 pop {r3, r4, r5, pc} nop _021D8208: .word 0x0000C010 _021D820C: .word MOD77_021D8F7C _021D8210: .word MOD77_021D8F98 _021D8214: .word 0x000001E2 _021D8218: .word 0x000001D9 _021D821C: .word 0x00004753 _021D8220: .word MOD77_021D8F40 _021D8224: .word 0x0000C014 _021D8228: .word 0x0000C064 _021D822C: .word 0x00004E56 _021D8230: .word 0x00003571 _021D8234: .word 0x0000208C _021D8238: .word 0x00007FFF _021D823C: .word MOD77_021D8F30 _021D8240: .word 0x0000C034 _021D8244: .word 0x0000C060 thumb_func_end MOD77_021D7FAC thumb_func_start MOD77_021D8248 MOD77_021D8248: ; 0x021D8248 push {r4, lr} add r4, r0, #0 ldr r0, _021D8288 ; =0x0000C034 add r0, r4, r0 bl RemoveWindow ldr r0, _021D828C ; =0x0000C014 add r0, r4, r0 bl RemoveWindow ldr r0, _021D8290 ; =0x0000C010 mov r1, #2 ldr r0, [r4, r0] bl FreeBgTilemapBuffer ldr r0, _021D8290 ; =0x0000C010 mov r1, #6 ldr r0, [r4, r0] bl FreeBgTilemapBuffer ldr r0, _021D8290 ; =0x0000C010 mov r1, #3 ldr r0, [r4, r0] bl FreeBgTilemapBuffer ldr r0, _021D8290 ; =0x0000C010 mov r1, #7 ldr r0, [r4, r0] bl FreeBgTilemapBuffer pop {r4, pc} nop _021D8288: .word 0x0000C034 _021D828C: .word 0x0000C014 _021D8290: .word 0x0000C010 thumb_func_end MOD77_021D8248 thumb_func_start MOD77_021D8294 MOD77_021D8294: ; 0x021D8294 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 ldr r0, _021D8348 ; =0x0000C064 add r6, r1, #0 ldr r1, [r5, r0] mov r4, #0 cmp r1, #0 beq _021D82B0 cmp r1, #1 beq _021D830A cmp r1, #2 beq _021D832A b _021D8340 _021D82B0: mov r1, #0xd8 str r1, [sp] mov r1, #0x20 sub r0, #0x50 str r1, [sp, #4] add r0, r5, r0 mov r1, #0xf add r2, r4, #0 add r3, r4, #0 bl FillWindowPixelRect mov r0, #1 ldr r1, [r5] lsl r0, r0, #0xa bl String_ctor ldr r2, _021D834C ; =0x0000C06C add r1, r6, #0 str r0, [r5, r2] add r0, r2, #0 sub r0, #0xc ldr r0, [r5, r0] ldr r2, [r5, r2] bl ReadMsgDataIntoString ldr r0, [r5, #8] bl Options_GetTextFrameDelay add r3, r4, #0 str r3, [sp] str r0, [sp, #4] ldr r2, _021D8350 ; =0x0000C014 str r3, [sp, #8] add r0, r5, r2 add r2, #0x58 ldr r2, [r5, r2] mov r1, #1 bl AddTextPrinterParameterized ldr r1, _021D8354 ; =0x0000C068 mov r2, #1 str r0, [r5, r1] sub r0, r1, #4 str r2, [r5, r0] b _021D8340 _021D830A: add r0, r0, #4 ldr r0, [r5, r0] lsl r0, r0, #0x18 lsr r0, r0, #0x18 bl FUN_0201BD70 cmp r0, #0 bne _021D8340 ldr r0, _021D834C ; =0x0000C06C ldr r0, [r5, r0] bl String_dtor ldr r0, _021D8348 ; =0x0000C064 mov r1, #2 str r1, [r5, r0] b _021D8340 _021D832A: cmp r2, #0 bne _021D8338 ldr r0, _021D8358 ; =gMain ldr r1, [r0, #0x48] mov r0, #1 tst r0, r1 beq _021D8340 _021D8338: ldr r0, _021D8348 ; =0x0000C064 mov r1, #0 str r1, [r5, r0] mov r4, #1 _021D8340: add r0, r4, #0 add sp, #0xc pop {r3, r4, r5, r6, pc} nop _021D8348: .word 0x0000C064 _021D834C: .word 0x0000C06C _021D8350: .word 0x0000C014 _021D8354: .word 0x0000C068 _021D8358: .word gMain thumb_func_end MOD77_021D8294 thumb_func_start MOD77_021D835C MOD77_021D835C: ; 0x021D835C push {r3, lr} cmp r2, #0 bne _021D8368 ldr r0, _021D836C ; =0x000005DC bl PlaySE _021D8368: pop {r3, pc} nop _021D836C: .word 0x000005DC thumb_func_end MOD77_021D835C thumb_func_start MOD77_021D8370 MOD77_021D8370: ; 0x021D8370 push {r4, r5, r6, r7, lr} sub sp, #0x24 add r5, r0, #0 ldr r0, _021D8400 ; =0x0000C010 add r6, r3, #0 ldr r0, [r5, r0] str r1, [sp] bl AddWindow ldrh r0, [r6, #0x10] ldr r1, [r5] bl ListMenuItems_ctor ldr r1, _021D8404 ; =0x0000C058 mov r7, #0 str r0, [r5, r1] ldrh r0, [r6, #0x10] cmp r0, #0 ble _021D83B2 ldr r4, [sp, #0x38] _021D8398: ldr r0, _021D8404 ; =0x0000C058 ldr r1, _021D8408 ; =0x0000C060 ldr r0, [r5, r0] ldr r1, [r5, r1] ldr r2, [r4] ldr r3, [r4, #4] bl ListMenuItems_AppendFromMsgData ldrh r0, [r6, #0x10] add r7, r7, #1 add r4, #8 cmp r7, r0 blt _021D8398 _021D83B2: add r3, sp, #4 add r2, r3, #0 ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldmia r6!, {r0, r1} stmia r3!, {r0, r1} ldr r0, _021D8404 ; =0x0000C058 mov r1, #0 ldr r0, [r5, r0] str r0, [sp, #4] ldr r0, [sp] str r0, [sp, #0x10] ldr r0, _021D840C ; =MOD77_021D835C str r0, [sp, #8] ldr r3, [r5] add r0, r2, #0 lsl r3, r3, #0x18 add r2, r1, #0 lsr r3, r3, #0x18 bl ListMenuInit ldr r1, _021D8410 ; =0x0000C054 ldr r2, _021D8414 ; =0x000001D9 str r0, [r5, r1] ldr r0, [sp, #0x10] mov r1, #1 mov r3, #7 bl DrawFrameAndWindow1 ldr r0, [sp] bl CopyWindowToVram add sp, #0x24 pop {r4, r5, r6, r7, pc} nop _021D8400: .word 0x0000C010 _021D8404: .word 0x0000C058 _021D8408: .word 0x0000C060 _021D840C: .word MOD77_021D835C _021D8410: .word 0x0000C054 _021D8414: .word 0x000001D9 thumb_func_end MOD77_021D8370 thumb_func_start MOD77_021D8418 MOD77_021D8418: ; 0x021D8418 push {r4, r5, r6, r7, lr} sub sp, #0x2c add r5, r0, #0 ldr r0, _021D84C4 ; =0x0000C010 str r1, [sp] ldr r0, [r5, r0] str r3, [sp, #4] ldr r7, [sp, #0x44] ldr r6, [sp, #0x48] bl AddWindow ldr r2, [sp, #0x40] ldr r3, [r5] mov r0, #0 mov r1, #0x1a bl NewMsgDataFromNarc str r0, [sp, #8] ldr r1, [r5] add r0, r6, #0 bl ListMenuItems_ctor ldr r1, _021D84C8 ; =0x0000C058 mov r4, #0 str r0, [r5, r1] cmp r6, #0 bls _021D8462 _021D844E: ldr r0, _021D84C8 ; =0x0000C058 ldrb r2, [r7, r4] ldr r0, [r5, r0] ldr r1, [sp, #8] add r3, r4, #0 bl ListMenuItems_AppendFromMsgData add r4, r4, #1 cmp r4, r6 blo _021D844E _021D8462: ldr r0, [sp, #8] bl DestroyMsgData ldr r4, [sp, #4] add r3, sp, #0xc ldmia r4!, {r0, r1} add r2, r3, #0 stmia r3!, {r0, r1} str r4, [sp, #4] ldmia r4!, {r0, r1} stmia r3!, {r0, r1} str r4, [sp, #4] ldmia r4!, {r0, r1} stmia r3!, {r0, r1} str r4, [sp, #4] ldmia r4!, {r0, r1} stmia r3!, {r0, r1} ldr r0, _021D84C8 ; =0x0000C058 mov r1, #0 ldr r0, [r5, r0] str r4, [sp, #4] str r0, [sp, #0xc] add r0, sp, #0xc strh r6, [r0, #0x10] ldr r0, [sp] str r0, [sp, #0x18] ldr r0, _021D84CC ; =MOD77_021D835C str r0, [sp, #0x10] ldr r3, [r5] add r0, r2, #0 lsl r3, r3, #0x18 add r2, r1, #0 lsr r3, r3, #0x18 bl ListMenuInit ldr r1, _021D84D0 ; =0x0000C054 ldr r2, _021D84D4 ; =0x000001D9 str r0, [r5, r1] ldr r0, [sp, #0x18] mov r1, #1 mov r3, #7 bl DrawFrameAndWindow1 ldr r0, [sp] bl CopyWindowToVram add sp, #0x2c pop {r4, r5, r6, r7, pc} nop _021D84C4: .word 0x0000C010 _021D84C8: .word 0x0000C058 _021D84CC: .word MOD77_021D835C _021D84D0: .word 0x0000C054 _021D84D4: .word 0x000001D9 thumb_func_end MOD77_021D8418 thumb_func_start MOD77_021D84D8 MOD77_021D84D8: ; 0x021D84D8 push {r4, lr} add r4, r0, #0 ldr r0, _021D8504 ; =0x0000C024 mov r1, #0 add r0, r4, r0 bl ClearFrameAndWindow1 ldr r0, _021D8504 ; =0x0000C024 add r0, r4, r0 bl RemoveWindow ldr r0, _021D8508 ; =0x0000C054 mov r1, #0 ldr r0, [r4, r0] add r2, r1, #0 bl DestroyListMenu ldr r0, _021D850C ; =0x0000C058 ldr r0, [r4, r0] bl ListMenuItems_dtor pop {r4, pc} .align 2, 0 _021D8504: .word 0x0000C024 _021D8508: .word 0x0000C054 _021D850C: .word 0x0000C058 thumb_func_end MOD77_021D84D8 thumb_func_start MOD77_021D8510 MOD77_021D8510: ; 0x021D8510 push {r3, r4, r5, r6, lr} sub sp, #0xc add r5, r0, #0 mov r0, #1 ldr r1, [r5] lsl r0, r0, #0xa bl String_ctor add r4, r0, #0 mov r0, #1 ldr r1, [r5] lsl r0, r0, #0xa bl String_ctor ldr r1, _021D85C4 ; =0x0000C010 add r6, r0, #0 ldr r0, [r5, r1] add r1, #0x34 ldr r2, _021D85C8 ; =0x021D8F28 add r1, r5, r1 bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x30 str r0, [sp, #4] ldr r0, _021D85CC ; =0x0000C044 mov r2, #0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D85CC ; =0x0000C044 ldr r2, _021D85D0 ; =0x000001D9 add r0, r5, r0 mov r1, #0 mov r3, #7 bl DrawFrameAndWindow1 ldr r0, _021D85D4 ; =0x0000C070 ldr r2, _021D85D8 ; =0x0000C314 ldr r0, [r5, r0] ldr r2, [r5, r2] mov r1, #0 bl BufferCountryName ldr r3, _021D85D8 ; =0x0000C314 ldr r0, _021D85D4 ; =0x0000C070 ldr r2, [r5, r3] add r3, r3, #4 ldr r0, [r5, r0] ldr r3, [r5, r3] mov r1, #1 bl BufferCityName ldr r0, _021D85DC ; =0x0000C060 mov r1, #0xd ldr r0, [r5, r0] add r2, r6, #0 bl ReadMsgDataIntoString ldr r0, _021D85D4 ; =0x0000C070 add r1, r4, #0 ldr r0, [r5, r0] add r2, r6, #0 bl StringExpandPlaceholders mov r1, #0 ldr r0, _021D85CC ; =0x0000C044 str r1, [sp] str r1, [sp, #4] add r0, r5, r0 add r2, r4, #0 add r3, r1, #0 str r1, [sp, #8] bl AddTextPrinterParameterized add r0, r6, #0 bl String_dtor add r0, r4, #0 bl String_dtor ldr r0, _021D85CC ; =0x0000C044 add r0, r5, r0 bl CopyWindowToVram add sp, #0xc pop {r3, r4, r5, r6, pc} .align 2, 0 _021D85C4: .word 0x0000C010 _021D85C8: .word MOD77_021D8F28 _021D85CC: .word 0x0000C044 _021D85D0: .word 0x000001D9 _021D85D4: .word 0x0000C070 _021D85D8: .word 0x0000C314 _021D85DC: .word 0x0000C060 thumb_func_end MOD77_021D8510 thumb_func_start MOD77_021D85E0 MOD77_021D85E0: ; 0x021D85E0 push {r3, r4, r5, r6, r7, lr} sub sp, #0x10 add r5, r0, #0 str r1, [sp, #0xc] ldr r1, [r5] mov r0, #0x40 add r4, r2, #0 bl String_ctor add r7, r0, #0 ldr r1, [r5] mov r0, #0x40 bl String_ctor ldr r1, _021D8688 ; =0x0000C010 add r6, r0, #0 ldr r0, [r5, r1] add r1, #0x34 ldr r2, _021D868C ; =0x021D8F28 add r1, r5, r1 bl AddWindow mov r0, #0xd8 str r0, [sp] mov r0, #0x30 str r0, [sp, #4] ldr r0, _021D8690 ; =0x0000C044 mov r2, #0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D8690 ; =0x0000C044 ldr r2, _021D8694 ; =0x000001D9 add r0, r5, r0 mov r1, #0 mov r3, #7 bl DrawFrameAndWindow1 ldr r0, [r5] add r1, r4, #0 str r0, [sp] ldr r0, [sp, #0xc] add r2, r7, #0 add r3, r6, #0 bl MOD77_021D8E9C cmp r4, #0 beq _021D865C mov r0, #0x10 str r0, [sp] mov r0, #0xff str r0, [sp, #4] mov r1, #0 ldr r0, _021D8690 ; =0x0000C044 add r2, r6, #0 add r0, r5, r0 add r3, r1, #0 str r1, [sp, #8] bl AddTextPrinterParameterized _021D865C: mov r1, #0 ldr r0, _021D8690 ; =0x0000C044 str r1, [sp] str r1, [sp, #4] add r0, r5, r0 add r2, r7, #0 add r3, r1, #0 str r1, [sp, #8] bl AddTextPrinterParameterized add r0, r6, #0 bl String_dtor add r0, r7, #0 bl String_dtor ldr r0, _021D8690 ; =0x0000C044 add r0, r5, r0 bl CopyWindowToVram add sp, #0x10 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8688: .word 0x0000C010 _021D868C: .word MOD77_021D8F28 _021D8690: .word 0x0000C044 _021D8694: .word 0x000001D9 thumb_func_end MOD77_021D85E0 thumb_func_start MOD77_021D8698 MOD77_021D8698: ; 0x021D8698 push {r4, lr} add r4, r0, #0 ldr r0, _021D86B0 ; =0x0000C044 mov r1, #0 add r0, r4, r0 bl ClearFrameAndWindow1 ldr r0, _021D86B0 ; =0x0000C044 add r0, r4, r0 bl RemoveWindow pop {r4, pc} .align 2, 0 _021D86B0: .word 0x0000C044 thumb_func_end MOD77_021D8698 thumb_func_start MOD77_021D86B4 MOD77_021D86B4: ; 0x021D86B4 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 add r5, r0, #0 ldr r0, _021D8808 ; =0x0000C328 ldr r1, [r5, r0] cmp r1, #0 bne _021D870E mov r0, #1 ldr r1, [r5] lsl r0, r0, #0xa bl String_ctor add r4, r0, #0 mov r0, #0xd8 str r0, [sp] mov r0, #0x30 str r0, [sp, #4] ldr r0, _021D880C ; =0x0000C014 mov r2, #0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, _021D8810 ; =0x0000C060 mov r1, #0xe ldr r0, [r5, r0] add r2, r4, #0 bl ReadMsgDataIntoString mov r3, #0 ldr r0, _021D880C ; =0x0000C014 str r3, [sp] str r3, [sp, #4] add r0, r5, r0 mov r1, #1 add r2, r4, #0 str r3, [sp, #8] bl AddTextPrinterParameterized add r0, r4, #0 bl String_dtor add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} _021D870E: add r2, r0, #0 sub r2, #0x74 ldr r3, [r5, r2] mov r1, #0 add r2, r3, #0 sub r2, #0x30 lsl r2, r2, #0x10 asr r2, r2, #0x10 add r3, #0x30 str r2, [sp, #0x18] lsl r2, r3, #0x10 asr r2, r2, #0x10 sub r0, #0x70 str r2, [sp, #0x14] ldr r2, [r5, r0] str r1, [sp, #0x1c] add r0, r2, #0 sub r0, #0x30 lsl r0, r0, #0x10 asr r0, r0, #0x10 add r2, #0x30 str r0, [sp, #0x10] lsl r0, r2, #0x10 asr r0, r0, #0x10 str r0, [sp, #0xc] ldr r0, [r5, #0xc] cmp r0, #0 bls _021D87FA add r4, r5, #0 _021D8748: mov r0, #0x10 ldrsh r2, [r4, r0] ldr r0, [sp, #0x18] cmp r2, r0 ble _021D87EC ldr r0, [sp, #0x14] cmp r2, r0 bge _021D87EC mov r0, #0x12 ldrsh r2, [r4, r0] ldr r0, [sp, #0x10] cmp r2, r0 ble _021D87EC ldr r0, [sp, #0xc] cmp r2, r0 bge _021D87EC ldrh r0, [r4, #0x38] cmp r0, #0 beq _021D87EC ldr r1, [r5] mov r0, #0x40 bl String_ctor add r7, r0, #0 ldr r1, [r5] mov r0, #0x40 bl String_ctor add r6, r0, #0 mov r0, #0xd8 str r0, [sp] mov r0, #0x30 str r0, [sp, #4] ldr r0, _021D880C ; =0x0000C014 mov r2, #0 add r0, r5, r0 mov r1, #0xf add r3, r2, #0 bl FillWindowPixelRect ldr r0, [r5] add r2, r7, #0 str r0, [sp] ldrh r0, [r4, #0x3a] ldrh r1, [r4, #0x3c] add r3, r6, #0 bl MOD77_021D8E9C ldrh r0, [r4, #0x3c] cmp r0, #0 beq _021D87C8 mov r0, #0x10 str r0, [sp] mov r0, #0xff str r0, [sp, #4] mov r0, #0 str r0, [sp, #8] ldr r0, _021D880C ; =0x0000C014 mov r1, #1 add r0, r5, r0 add r2, r6, #0 mov r3, #0 bl AddTextPrinterParameterized _021D87C8: mov r0, #0 str r0, [sp] str r0, [sp, #4] str r0, [sp, #8] ldr r0, _021D880C ; =0x0000C014 mov r1, #1 add r0, r5, r0 add r2, r7, #0 mov r3, #0 bl AddTextPrinterParameterized add r0, r6, #0 bl String_dtor add r0, r7, #0 bl String_dtor mov r1, #1 _021D87EC: ldr r0, [sp, #0x1c] ldr r2, [r5, #0xc] add r0, r0, #1 add r4, #0x30 str r0, [sp, #0x1c] cmp r0, r2 blo _021D8748 _021D87FA: cmp r1, #0 bne _021D8804 ldr r0, _021D8808 ; =0x0000C328 mov r1, #0 str r1, [r5, r0] _021D8804: add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D8808: .word 0x0000C328 _021D880C: .word 0x0000C014 _021D8810: .word 0x0000C060 thumb_func_end MOD77_021D86B4 thumb_func_start MOD77_021D8814 MOD77_021D8814: ; 0x021D8814 push {r4, lr} add r4, r0, #0 ldr r2, [r4] mov r0, #0x81 mov r1, #0 bl AllocAndReadWholeNarcMemberByIdPair ldr r2, _021D88B4 ; =0x0000C0CC str r0, [r4, r2] add r0, r2, #0 sub r1, r2, #4 sub r0, #0x58 add r0, r4, r0 add r1, r4, r1 add r2, r4, r2 bl FUN_0201B234 ldr r2, [r4] mov r0, #0x81 mov r1, #1 bl AllocAndReadWholeNarcMemberByIdPair ldr r2, _021D88B8 ; =0x0000C294 str r0, [r4, r2] add r0, r2, #0 add r1, r2, #0 sub r0, #0xc8 sub r1, #0x14 add r0, r4, r0 add r1, r4, r1 add r2, r4, r2 bl FUN_0201B234 ldr r2, [r4] mov r0, #0x81 mov r1, #2 bl AllocAndReadWholeNarcMemberByIdPair ldr r2, _021D88BC ; =0x0000C298 str r0, [r4, r2] add r0, r2, #0 add r1, r2, #0 sub r0, #0x78 sub r1, #0x14 add r0, r4, r0 add r1, r4, r1 add r2, r4, r2 bl FUN_0201B234 ldr r2, [r4] mov r0, #0x81 mov r1, #3 bl AllocAndReadWholeNarcMemberByIdPair ldr r2, _021D88C0 ; =0x0000C28C str r0, [r4, r2] add r1, r2, #0 ldr r0, _021D88C4 ; =0x0000C124 sub r1, #0x14 add r0, r4, r0 add r1, r4, r1 add r2, r4, r2 bl FUN_0201B234 ldr r2, [r4] mov r0, #0x81 mov r1, #4 bl AllocAndReadWholeNarcMemberByIdPair ldr r2, _021D88C8 ; =0x0000C290 str r0, [r4, r2] add r1, r2, #0 ldr r0, _021D88CC ; =0x0000C178 sub r1, #0x14 add r0, r4, r0 add r1, r4, r1 add r2, r4, r2 bl FUN_0201B234 pop {r4, pc} .align 2, 0 _021D88B4: .word 0x0000C0CC _021D88B8: .word 0x0000C294 _021D88BC: .word 0x0000C298 _021D88C0: .word 0x0000C28C _021D88C4: .word 0x0000C124 _021D88C8: .word 0x0000C290 _021D88CC: .word 0x0000C178 thumb_func_end MOD77_021D8814 thumb_func_start MOD77_021D88D0 MOD77_021D88D0: ; 0x021D88D0 push {r4, lr} add r4, r0, #0 ldr r0, _021D8900 ; =0x0000C290 ldr r0, [r4, r0] bl FreeToHeap ldr r0, _021D8904 ; =0x0000C28C ldr r0, [r4, r0] bl FreeToHeap ldr r0, _021D8908 ; =0x0000C298 ldr r0, [r4, r0] bl FreeToHeap ldr r0, _021D890C ; =0x0000C294 ldr r0, [r4, r0] bl FreeToHeap ldr r0, _021D8910 ; =0x0000C0CC ldr r0, [r4, r0] bl FreeToHeap pop {r4, pc} nop _021D8900: .word 0x0000C290 _021D8904: .word 0x0000C28C _021D8908: .word 0x0000C298 _021D890C: .word 0x0000C294 _021D8910: .word 0x0000C0CC thumb_func_end MOD77_021D88D0 thumb_func_start MOD77_021D8914 MOD77_021D8914: ; 0x021D8914 push {r4, r5} ldr r1, _021D896C ; =0x0000C29C mov r3, #0 str r3, [r0, r1] add r2, r1, #4 str r3, [r0, r2] add r2, r1, #0 add r2, #8 str r3, [r0, r2] mov r2, #1 add r4, r1, #0 lsl r2, r2, #0xc add r4, #0xc str r2, [r0, r4] add r4, r1, #0 add r4, #0x10 str r2, [r0, r4] add r4, r1, #0 add r4, #0x14 str r2, [r0, r4] mov r5, #0x69 add r4, r1, #0 lsl r5, r5, #6 add r4, #0x18 str r5, [r0, r4] mov r5, #0x1f add r4, r1, #0 lsl r5, r5, #0xa add r4, #0x1c str r5, [r0, r4] add r4, r1, #0 add r4, #0x20 str r3, [r0, r4] add r3, r1, #0 add r3, #0x24 str r2, [r0, r3] add r3, r1, #0 add r3, #0x28 str r2, [r0, r3] add r1, #0x2c str r2, [r0, r1] pop {r4, r5} bx lr nop _021D896C: .word 0x0000C29C thumb_func_end MOD77_021D8914 thumb_func_start MOD77_021D8970 MOD77_021D8970: ; 0x021D8970 push {r3, r4, r5, r6, r7, lr} sub sp, #0x20 ldr r6, _021D89E4 ; =0x021D8F48 add r4, r0, #0 ldmia r6!, {r0, r1} add r5, sp, #8 add r2, r5, #0 stmia r5!, {r0, r1} ldr r0, [r6] add r1, r2, #0 str r0, [r5] add r7, sp, #0x14 mov r3, #0 str r3, [r7] str r3, [r7, #4] str r3, [r7, #8] ldr r0, _021D89E8 ; =0x0000C2CC str r3, [sp] ldr r0, [r4, r0] ldr r2, _021D89EC ; =0x000005C1 str r0, [sp, #4] add r0, r7, #0 bl Camera_InitWithPosAndTarget ldr r2, _021D89E8 ; =0x0000C2CC mov r1, #0x19 ldr r2, [r4, r2] mov r0, #0 lsl r1, r1, #0xe bl Camera_SetPerspectiveClippingPlane ldr r1, _021D89E8 ; =0x0000C2CC mov r0, #0 ldr r1, [r4, r1] bl Camera_ApplyPerspectiveType ldr r0, _021D89E8 ; =0x0000C2CC ldr r0, [r4, r0] bl Camera_SetWorkPtr ldr r0, _021D89F0 ; =0x0000C2F4 ldrh r1, [r4, r0] cmp r1, #0 bne _021D89D0 mov r1, #1 sub r0, #0x1c strh r1, [r4, r0] b _021D89D6 _021D89D0: mov r1, #0 sub r0, #0x1c strh r1, [r4, r0] _021D89D6: add r0, r4, #0 bl MOD77_021D8CF8 cmp r0, #1 bne _021D89D6 add sp, #0x20 pop {r3, r4, r5, r6, r7, pc} .align 2, 0 _021D89E4: .word MOD77_021D8F48 _021D89E8: .word 0x0000C2CC _021D89EC: .word 0x000005C1 _021D89F0: .word 0x0000C2F4 thumb_func_end MOD77_021D8970 thumb_func_start MOD77_021D89F4 MOD77_021D89F4: ; 0x021D89F4 push {r4, lr} ldr r3, _021D8A28 ; =0x0000C2DC add r4, r0, #0 mov r0, #0 str r0, [r4, r3] add r1, r3, #4 str r0, [r4, r1] add r1, r3, #0 ldr r2, _021D8A2C ; =0xFFFFF001 add r1, #8 str r2, [r4, r1] ldr r1, [r4, r3] add r2, r3, #4 add r3, #8 ldr r2, [r4, r2] ldr r3, [r4, r3] lsl r1, r1, #0x10 lsl r2, r2, #0x10 lsl r3, r3, #0x10 asr r1, r1, #0x10 asr r2, r2, #0x10 asr r3, r3, #0x10 bl NNS_G3dGlbLightVector pop {r4, pc} nop _021D8A28: .word 0x0000C2DC _021D8A2C: .word 0xFFFFF001 thumb_func_end MOD77_021D89F4 thumb_func_start MOD77_021D8A30 MOD77_021D8A30: ; 0x021D8A30 push {r4, r5, lr} sub sp, #0x24 add r4, r1, #0 ldr r1, [r4, #4] ldr r3, _021D8AA4 ; =FX_SinCosTable_ lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #4 lsl r2, r1, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r5, r0, #0 bl MTX_RotY33_ ldr r0, [r4] ldr r3, _021D8AA4 ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotX33_ add r0, r5, #0 add r1, sp, #0 add r2, r5, #0 bl MTX_Concat33 ldr r0, [r4, #8] ldr r3, _021D8AA4 ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotZ33_ add r0, r5, #0 add r1, sp, #0 add r2, r5, #0 bl MTX_Concat33 add sp, #0x24 pop {r4, r5, pc} nop _021D8AA4: .word FX_SinCosTable_ thumb_func_end MOD77_021D8A30 thumb_func_start MOD77_021D8AA8 MOD77_021D8AA8: ; 0x021D8AA8 push {r4, r5, lr} sub sp, #0x24 add r4, r1, #0 ldr r1, [r4] ldr r3, _021D8B1C ; =FX_SinCosTable_ lsl r1, r1, #0x10 lsr r1, r1, #0x10 asr r1, r1, #4 lsl r2, r1, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r5, r0, #0 bl MTX_RotY33_ ldr r0, [r4, #4] ldr r3, _021D8B1C ; =FX_SinCosTable_ neg r0, r0 lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r2, r0, #1 lsl r1, r2, #1 add r2, r2, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotX33_ add r0, r5, #0 add r1, sp, #0 add r2, r5, #0 bl MTX_Concat33 ldr r0, [r4, #8] ldr r3, _021D8B1C ; =FX_SinCosTable_ lsl r0, r0, #0x10 lsr r0, r0, #0x10 asr r0, r0, #4 lsl r2, r0, #1 add r1, r2, #1 lsl r1, r1, #1 lsl r2, r2, #1 ldrsh r1, [r3, r1] ldrsh r2, [r3, r2] add r0, sp, #0 bl MTX_RotZ33_ add r0, r5, #0 add r1, sp, #0 add r2, r5, #0 bl MTX_Concat33 add sp, #0x24 pop {r4, r5, pc} .align 2, 0 _021D8B1C: .word FX_SinCosTable_ thumb_func_end MOD77_021D8AA8 thumb_func_start MOD77_021D8B20 MOD77_021D8B20: ; 0x021D8B20 push {r3, r4, r5, r6, r7, lr} add r3, r0, #0 ldr r0, _021D8CD8 ; =0x0000C2B4 add r7, r2, #0 add r4, r0, #4 ldr r4, [r3, r4] ldr r2, [r3, r0] lsl r4, r4, #0x10 asr r4, r4, #0x10 lsl r2, r2, #0x10 mov lr, r4 mov r4, #1 mov r6, #0 asr r2, r2, #0x10 tst r1, r4 bne _021D8B4E add r1, r0, #0 add r1, #0x44 ldr r4, [r3, r1] mov r1, #1 mov ip, r4 tst r1, r4 beq _021D8B72 _021D8B4E: ldr r1, _021D8CDC ; =0x0000C2F4 ldrh r0, [r3, r1] cmp r0, #1 bne _021D8B6E add r0, r1, #0 sub r0, #0x1c ldrh r0, [r3, r0] cmp r0, #0 bne _021D8B68 mov r0, #1 sub r1, #0x1c strh r0, [r3, r1] b _021D8B6E _021D8B68: mov r0, #0 sub r1, #0x1c strh r0, [r3, r1] _021D8B6E: mov r0, #1 pop {r3, r4, r5, r6, r7, pc} _021D8B72: add r1, r0, #0 add r1, #0x24 ldrh r1, [r3, r1] cmp r1, #0 bne _021D8BA4 add r1, r0, #0 add r1, #0x54 ldr r1, [r3, r1] cmp r1, #0 bne _021D8B8E add r0, #0x58 ldr r0, [r3, r0] cmp r0, #0 beq _021D8B9C _021D8B8E: lsl r0, r1, #0x16 ldr r1, _021D8CE0 ; =0x0000C30C lsr r0, r0, #0x10 ldr r1, [r3, r1] lsl r1, r1, #0x16 lsr r1, r1, #0x10 b _021D8BC8 _021D8B9C: mov r0, #1 lsl r0, r0, #9 add r1, r0, #0 b _021D8BC8 _021D8BA4: add r1, r0, #0 add r1, #0x54 ldr r1, [r3, r1] cmp r1, #0 bne _021D8BB6 add r0, #0x58 ldr r0, [r3, r0] cmp r0, #0 beq _021D8BC4 _021D8BB6: lsl r0, r1, #0x12 ldr r1, _021D8CE0 ; =0x0000C30C lsr r0, r0, #0x10 ldr r1, [r3, r1] lsl r1, r1, #0x12 lsr r1, r1, #0x10 b _021D8BC8 _021D8BC4: mov r0, #0x20 add r1, r0, #0 _021D8BC8: mov r4, #0x20 tst r4, r7 bne _021D8BD6 mov r5, ip mov r4, #0x20 tst r4, r5 beq _021D8C02 _021D8BD6: ldr r6, _021D8CDC ; =0x0000C2F4 ldrh r4, [r3, r6] cmp r4, #1 bne _021D8BEC add r4, r6, #0 sub r4, #0x3c ldr r4, [r3, r4] sub r6, #0x3c add r4, r4, r0 str r4, [r3, r6] b _021D8C00 _021D8BEC: ldr r5, _021D8CE4 ; =0xFFFFD820 mov r4, lr cmp r4, r5 bge _021D8C00 add r4, r6, #0 sub r4, #0x3c ldr r4, [r3, r4] sub r6, #0x3c add r4, r4, r0 str r4, [r3, r6] _021D8C00: mov r6, #1 _021D8C02: mov r4, #0x10 tst r4, r7 bne _021D8C12 ldr r4, _021D8CE8 ; =0x0000C2F8 ldr r5, [r3, r4] mov r4, #0x10 tst r4, r5 beq _021D8C3E _021D8C12: ldr r5, _021D8CDC ; =0x0000C2F4 ldrh r4, [r3, r5] cmp r4, #1 bne _021D8C28 add r4, r5, #0 sub r4, #0x3c ldr r4, [r3, r4] sub r5, #0x3c sub r0, r4, r0 str r0, [r3, r5] b _021D8C3C _021D8C28: ldr r4, _021D8CEC ; =0xFFFFCC80 mov r6, lr cmp r6, r4 ble _021D8C3C add r4, r5, #0 sub r4, #0x3c ldr r4, [r3, r4] sub r5, #0x3c sub r0, r4, r0 str r0, [r3, r5] _021D8C3C: mov r6, #1 _021D8C3E: mov r4, #0x40 add r0, r7, #0 tst r0, r4 bne _021D8C4E ldr r0, _021D8CE8 ; =0x0000C2F8 ldr r0, [r3, r0] tst r0, r4 beq _021D8C88 _021D8C4E: ldr r4, _021D8CDC ; =0x0000C2F4 ldrh r0, [r3, r4] cmp r0, #1 bne _021D8C74 mov r0, #0x3e add r5, r2, r1 lsl r0, r0, #8 cmp r5, r0 bge _021D8C6E add r0, r4, #0 sub r0, #0x40 ldr r0, [r3, r0] sub r4, #0x40 add r0, r0, r1 str r0, [r3, r4] b _021D8C86 _021D8C6E: sub r4, #0x40 str r0, [r3, r4] b _021D8C86 _021D8C74: ldr r0, _021D8CF0 ; =0x00002020 cmp r2, r0 bge _021D8C86 add r0, r4, #0 sub r0, #0x40 ldr r0, [r3, r0] sub r4, #0x40 add r0, r0, r1 str r0, [r3, r4] _021D8C86: mov r6, #1 _021D8C88: mov r4, #0x80 add r0, r7, #0 tst r0, r4 bne _021D8C98 ldr r0, _021D8CE8 ; =0x0000C2F8 ldr r0, [r3, r0] tst r0, r4 beq _021D8CD2 _021D8C98: ldr r4, _021D8CDC ; =0x0000C2F4 ldrh r0, [r3, r4] cmp r0, #1 bne _021D8CBC ldr r0, _021D8CF4 ; =0xFFFFC200 sub r2, r2, r1 cmp r2, r0 ble _021D8CB6 add r0, r4, #0 sub r0, #0x40 ldr r0, [r3, r0] sub r4, #0x40 sub r0, r0, r1 str r0, [r3, r4] b _021D8CD0 _021D8CB6: sub r4, #0x40 str r0, [r3, r4] b _021D8CD0 _021D8CBC: mov r0, #0x13 lsl r0, r0, #8 cmp r2, r0 ble _021D8CD0 add r0, r4, #0 sub r0, #0x40 ldr r0, [r3, r0] sub r4, #0x40 sub r0, r0, r1 str r0, [r3, r4] _021D8CD0: mov r6, #1 _021D8CD2: add r0, r6, #0 pop {r3, r4, r5, r6, r7, pc} nop _021D8CD8: .word 0x0000C2B4 _021D8CDC: .word 0x0000C2F4 _021D8CE0: .word 0x0000C30C _021D8CE4: .word 0xFFFFD820 _021D8CE8: .word 0x0000C2F8 _021D8CEC: .word 0xFFFFCC80 _021D8CF0: .word 0x00002020 _021D8CF4: .word 0xFFFFC200 thumb_func_end MOD77_021D8B20 thumb_func_start MOD77_021D8CF8 MOD77_021D8CF8: ; 0x021D8CF8 push {r3, r4, r5, lr} add r5, r0, #0 ldr r0, _021D8D7C ; =0x0000C2CC ldr r0, [r5, r0] bl Camera_GetDistance ldr r1, _021D8D80 ; =0x0000C2D8 mov r4, #0 ldrh r2, [r5, r1] cmp r2, #0 beq _021D8D42 cmp r2, #1 bne _021D8D70 mov r2, #0x16 lsl r2, r2, #0xe cmp r0, r2 ble _021D8D3A mov r2, #2 lsl r2, r2, #0xe sub r0, r0, r2 add r2, r1, #0 sub r2, #0x18 ldr r3, [r5, r2] add r2, r1, #0 sub r3, #0x80 sub r2, #0x18 str r3, [r5, r2] add r2, r1, #0 sub r2, #0x18 ldr r2, [r5, r2] sub r1, #0x14 str r2, [r5, r1] b _021D8D70 _021D8D3A: mov r0, #5 lsl r0, r0, #0x10 mov r4, #1 b _021D8D70 _021D8D42: mov r2, #0x12 lsl r2, r2, #0x10 cmp r0, r2 bge _021D8D6A mov r2, #2 lsl r2, r2, #0xe add r0, r0, r2 add r2, r1, #0 sub r2, #0x18 ldr r3, [r5, r2] add r2, r1, #0 add r3, #0x80 sub r2, #0x18 str r3, [r5, r2] add r2, r1, #0 sub r2, #0x18 ldr r2, [r5, r2] sub r1, #0x14 str r2, [r5, r1] b _021D8D70 _021D8D6A: mov r0, #0x4a lsl r0, r0, #0xe mov r4, #1 _021D8D70: ldr r1, _021D8D7C ; =0x0000C2CC ldr r1, [r5, r1] bl Camera_SetDistance add r0, r4, #0 pop {r3, r4, r5, pc} .align 2, 0 _021D8D7C: .word 0x0000C2CC _021D8D80: .word 0x0000C2D8 thumb_func_end MOD77_021D8CF8 thumb_func_start MOD77_021D8D84 MOD77_021D8D84: ; 0x021D8D84 push {r3, r4, r5, r6, r7, lr} sub sp, #0x70 ldr r4, _021D8E74 ; =0x021D8FF4 add r5, r0, #0 add r3, sp, #0x4c mov r2, #4 _021D8D90: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D8D90 ldr r0, [r4] str r0, [r3] ldr r0, _021D8E78 ; =0x0000C2E8 ldr r0, [r5, r0] cmp r0, #0 beq _021D8E6E cmp r0, #1 beq _021D8DC2 cmp r0, #2 bne _021D8E6E bl FUN_020222AC mov r0, #0 mov r1, #1 bl FUN_020222B4 ldr r0, _021D8E78 ; =0x0000C2E8 mov r1, #0 add sp, #0x70 str r1, [r5, r0] pop {r3, r4, r5, r6, r7, pc} _021D8DC2: bl FUN_020222AC bl Camera_PushLookAtToNNSGlb ldr r1, _021D8E7C ; =0x0000C2B4 add r0, sp, #0x4c add r1, r5, r1 bl MOD77_021D8A30 ldr r3, _021D8E80 ; =0x0000C29C ldr r0, _021D8E84 ; =0x0000C074 add r1, r5, r3 add r3, #0xc add r0, r5, r0 add r2, sp, #0x4c add r3, r5, r3 bl FUN_0201B26C ldr r4, _021D8E88 ; =0x021D9060 add r3, sp, #0x28 mov r2, #4 _021D8DEC: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D8DEC ldr r0, [r4] add r2, sp, #0x28 str r0, [r3] ldr r3, _021D8E8C ; =0x0000C220 add r1, r3, #0 add r0, r5, r3 add r1, #0x7c add r3, #0xa0 add r1, r5, r1 add r3, r5, r3 bl FUN_0201B26C ldr r4, _021D8E90 ; =0x021D9018 add r3, sp, #4 mov r2, #4 _021D8E12: ldmia r4!, {r0, r1} stmia r3!, {r0, r1} sub r2, r2, #1 bne _021D8E12 ldr r0, [r4] mov r7, #0 str r0, [r3] ldr r0, [r5, #0xc] cmp r0, #0 bls _021D8E66 ldr r0, _021D8E94 ; =0x0000C0D0 add r6, r5, #0 add r0, r5, r0 add r6, #0x14 add r4, r5, #0 str r0, [sp] _021D8E32: add r0, r6, #0 add r1, sp, #0x4c add r2, sp, #4 bl MTX_Concat33 ldrh r2, [r4, #0x38] cmp r2, #0 beq _021D8E5A add r1, r2, #0 mov r0, #0x54 mul r1, r0 ldr r0, [sp] ldr r3, _021D8E98 ; =0x0000C2C0 add r0, r0, r1 ldr r1, _021D8E80 ; =0x0000C29C add r2, sp, #4 add r1, r5, r1 add r3, r5, r3 bl FUN_0201B26C _021D8E5A: ldr r0, [r5, #0xc] add r7, r7, #1 add r6, #0x30 add r4, #0x30 cmp r7, r0 blo _021D8E32 _021D8E66: mov r0, #0 mov r1, #1 bl FUN_020222B4 _021D8E6E: add sp, #0x70 pop {r3, r4, r5, r6, r7, pc} nop _021D8E74: .word MOD77_021D8FF4 _021D8E78: .word 0x0000C2E8 _021D8E7C: .word 0x0000C2B4 _021D8E80: .word 0x0000C29C _021D8E84: .word 0x0000C074 _021D8E88: .word MOD77_021D9060 _021D8E8C: .word 0x0000C220 _021D8E90: .word MOD77_021D9018 _021D8E94: .word 0x0000C0D0 _021D8E98: .word 0x0000C2C0 thumb_func_end MOD77_021D8D84 thumb_func_start MOD77_021D8E9C MOD77_021D8E9C: ; 0x021D8E9C push {r4, r5, r6, r7, lr} sub sp, #0xc add r5, r0, #0 str r1, [sp] add r6, r2, #0 str r3, [sp, #4] bl MOD77_021D7E1C ldr r7, [sp, #0x20] mov r2, #0x99 add r4, r0, #0 mov r0, #0 mov r1, #0x1a lsl r2, r2, #2 add r3, r7, #0 bl NewMsgDataFromNarc str r0, [sp, #8] add r1, r5, #0 add r2, r6, #0 bl ReadMsgDataIntoString ldr r0, [sp, #8] bl DestroyMsgData cmp r4, #0 bne _021D8EDA mov r5, #0 mov r4, #1 str r5, [sp] b _021D8EDC _021D8EDA: mov r5, #1 _021D8EDC: add r0, r4, #0 bl FUN_02088D4C add r2, r0, #0 mov r0, #0 mov r1, #0x1a add r3, r7, #0 bl NewMsgDataFromNarc ldr r1, [sp] ldr r2, [sp, #4] add r4, r0, #0 bl ReadMsgDataIntoString add r0, r4, #0 bl DestroyMsgData add r0, r5, #0 add sp, #0xc pop {r4, r5, r6, r7, pc} thumb_func_end MOD77_021D8E9C thumb_func_start MOD77_021D8F04 MOD77_021D8F04: ; 0x021D8F04 push {r3, lr} bl MOD77_021D7E1C cmp r0, #0 beq _021D8F12 mov r0, #1 pop {r3, pc} _021D8F12: mov r0, #0 pop {r3, pc} .align 2, 0 thumb_func_end MOD77_021D8F04 .rodata .global MOD77_021D8F18 MOD77_021D8F18: ; 0x021D8F18 .byte 0x06, 0x13, 0x0B, 0x0C, 0x06, 0x04, 0x25, 0x01 .global MOD77_021D8F20 MOD77_021D8F20: ; 0x021D8F20 .byte 0x06, 0x03, 0x02, 0x1A, 0x0E, 0x04, 0x01, 0x00 .global MOD77_021D8F28 MOD77_021D8F28: ; 0x021D8F28 .byte 0x06, 0x02, 0x01, 0x1B, 0x06, 0x04, 0xB3, 0x00 .global MOD77_021D8F30 MOD77_021D8F30: ; 0x021D8F30 .byte 0x02, 0x19, 0x15, 0x06, 0x02, 0x04, 0xCD, 0x01 .global MOD77_021D8F38 MOD77_021D8F38: ; 0x021D8F38 .byte 0x06, 0x19, 0x0D, 0x06, 0x04, 0x04, 0x55, 0x01 .global MOD77_021D8F40 MOD77_021D8F40: ; 0x021D8F40 .byte 0x06, 0x02, 0x13, 0x1B, 0x04, 0x04, 0x6D, 0x01 .global MOD77_021D8F48 MOD77_021D8F48: ; 0x021D8F48 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x12, 0x00 .global MOD77_021D8F54 MOD77_021D8F54: ; 0x021D8F54 .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .global MOD77_021D8F64 MOD77_021D8F64: ; 0x021D8F64 .byte 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 .byte 0x0C, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 .global MOD77_021D8F7C MOD77_021D8F7C: ; 0x021D8F7C .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD77_021D8F98 MOD77_021D8F98: ; 0x021D8F98 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0x0F, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD77_021D8FB4 MOD77_021D8FB4: ; 0x021D8FB4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD77_021D8FD4 MOD77_021D8FD4: ; 0x021D8FD4 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x07, 0x00, 0x00, 0x0C, 0x00, 0x10, 0x2F, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 .global MOD77_021D8FF4 MOD77_021D8FF4: ; 0x021D8FF4 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 .global MOD77_021D9018 MOD77_021D9018: ; 0x021D9018 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 .global MOD77_021D903C MOD77_021D903C: ; 0x021D903C .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 .global MOD77_021D9060 MOD77_021D9060: ; 0x021D9060 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x10, 0x00, 0x00 .global MOD77_021D9084 MOD77_021D9084: ; 0x021D9084 .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x03, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00 .data .bss