papermario/asm/nonmatchings/code_ebd0_len_6a0/func_80033BC0.s
2020-11-02 15:22:54 -05:00

181 lines
9.0 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80033BC0
/* EFC0 80033BC0 27BDFFD0 */ addiu $sp, $sp, -0x30
/* EFC4 80033BC4 AFB30024 */ sw $s3, 0x24($sp)
/* EFC8 80033BC8 3C138011 */ lui $s3, %hi(gPlayerStatus)
/* EFCC 80033BCC 2673EFC8 */ addiu $s3, $s3, %lo(gPlayerStatus)
/* EFD0 80033BD0 3C06800A */ lui $a2, %hi(D_800A0900)
/* EFD4 80033BD4 24C60900 */ addiu $a2, $a2, %lo(D_800A0900)
/* EFD8 80033BD8 AFBF0028 */ sw $ra, 0x28($sp)
/* EFDC 80033BDC AFB20020 */ sw $s2, 0x20($sp)
/* EFE0 80033BE0 AFB1001C */ sw $s1, 0x1c($sp)
/* EFE4 80033BE4 AFB00018 */ sw $s0, 0x18($sp)
/* EFE8 80033BE8 80C20000 */ lb $v0, ($a2)
/* EFEC 80033BEC 90C30000 */ lbu $v1, ($a2)
/* EFF0 80033BF0 04400095 */ bltz $v0, .L80033E48
/* EFF4 80033BF4 2462FFFF */ addiu $v0, $v1, -1
/* EFF8 80033BF8 A0C20000 */ sb $v0, ($a2)
/* EFFC 80033BFC 00021600 */ sll $v0, $v0, 0x18
/* F000 80033C00 14400091 */ bnez $v0, .L80033E48
/* F004 80033C04 24050003 */ addiu $a1, $zero, 3
/* F008 80033C08 3C048007 */ lui $a0, 0x8007
/* F00C 80033C0C 248478A0 */ addiu $a0, $a0, 0x78a0
/* F010 80033C10 2402FFFF */ addiu $v0, $zero, -1
/* F014 80033C14 0C017CBC */ jal nuGfxSetCfb
/* F018 80033C18 A0C20000 */ sb $v0, ($a2)
/* F01C 80033C1C 3C04800A */ lui $a0, %hi(D_8009A650)
/* F020 80033C20 2484A650 */ addiu $a0, $a0, %lo(D_8009A650)
/* F024 80033C24 8C820000 */ lw $v0, ($a0)
/* F028 80033C28 2403FFF7 */ addiu $v1, $zero, -9
/* F02C 80033C2C 00431024 */ and $v0, $v0, $v1
/* F030 80033C30 0C018030 */ jal nuContRmbForceStopEnd
/* F034 80033C34 AC820000 */ sw $v0, ($a0)
/* F038 80033C38 0C05260E */ jal func_80149838
/* F03C 80033C3C 00000000 */ nop
/* F040 80033C40 0C016AFA */ jal get_current_map_header
/* F044 80033C44 00000000 */ nop
/* F048 80033C48 3C108007 */ lui $s0, %hi(gGameStatusPtr)
/* F04C 80033C4C 2610419C */ addiu $s0, $s0, %lo(gGameStatusPtr)
/* F050 80033C50 8E040000 */ lw $a0, ($s0)
/* F054 80033C54 0040902D */ daddu $s2, $v0, $zero
/* F058 80033C58 84830086 */ lh $v1, 0x86($a0)
/* F05C 80033C5C 8482008C */ lh $v0, 0x8c($a0)
/* F060 80033C60 00031900 */ sll $v1, $v1, 4
/* F064 80033C64 3C018009 */ lui $at, 0x8009
/* F068 80033C68 00230821 */ addu $at, $at, $v1
/* F06C 80033C6C 8C2334F4 */ lw $v1, 0x34f4($at)
/* F070 80033C70 00021140 */ sll $v0, $v0, 5
/* F074 80033C74 0C0902AA */ jal func_80240AA8
/* F078 80033C78 00628821 */ addu $s1, $v1, $v0
/* F07C 80033C7C 8E020000 */ lw $v0, ($s0)
/* F080 80033C80 0C016BE1 */ jal func_8005AF84
/* F084 80033C84 A0400070 */ sb $zero, 0x70($v0)
/* F088 80033C88 0C00AB37 */ jal func_8002ACDC
/* F08C 80033C8C 00000000 */ nop
/* F090 80033C90 0C05259C */ jal func_80149670
/* F094 80033C94 24040001 */ addiu $a0, $zero, 1
/* F098 80033C98 8E030000 */ lw $v1, ($s0)
/* F09C 80033C9C 9062007E */ lbu $v0, 0x7e($v1)
/* F0A0 80033CA0 304200FE */ andi $v0, $v0, 0xfe
/* F0A4 80033CA4 0C00AB28 */ jal battle_heap_create
/* F0A8 80033CA8 A062007E */ sb $v0, 0x7e($v1)
/* F0AC 80033CAC 8E020000 */ lw $v0, ($s0)
/* F0B0 80033CB0 0C0B763E */ jal func_802DD8F8
/* F0B4 80033CB4 80440084 */ lb $a0, 0x84($v0)
/* F0B8 80033CB8 0C0457FA */ jal init_model_data
/* F0BC 80033CBC 00000000 */ nop
/* F0C0 80033CC0 0C05203C */ jal func_801480F0
/* F0C4 80033CC4 00000000 */ nop
/* F0C8 80033CC8 0C048316 */ jal init_virtual_models
/* F0CC 80033CCC 00000000 */ nop
/* F0D0 80033CD0 0C0478C4 */ jal func_8011E310
/* F0D4 80033CD4 00000000 */ nop
/* F0D8 80033CD8 0C048C45 */ jal init_dynamic_entity_list
/* F0DC 80033CDC 00000000 */ nop
/* F0E0 80033CE0 0000202D */ daddu $a0, $zero, $zero
/* F0E4 80033CE4 0C0514BA */ jal func_801452E8
/* F0E8 80033CE8 0080282D */ daddu $a1, $a0, $zero
/* F0EC 80033CEC 0C0504C0 */ jal init_menu_icon_list
/* F0F0 80033CF0 00000000 */ nop
/* F0F4 80033CF4 0C04C433 */ jal init_item_entity_list
/* F0F8 80033CF8 00000000 */ nop
/* F0FC 80033CFC 0C0B0CBB */ jal init_script_list
/* F100 80033D00 00000000 */ nop
/* F104 80033D04 0C00E14B */ jal init_npc_list
/* F108 80033D08 00000000 */ nop
/* F10C 80033D0C 0C044396 */ jal func_80110E58
/* F110 80033D10 00000000 */ nop
/* F114 80033D14 0C0515CA */ jal init_trigger_list
/* F118 80033D18 00000000 */ nop
/* F11C 80033D1C 8E020000 */ lw $v0, ($s0)
/* F120 80033D20 904200AA */ lbu $v0, 0xaa($v0)
/* F124 80033D24 30420001 */ andi $v0, $v0, 1
/* F128 80033D28 10400008 */ beqz $v0, .L80033D4C
/* F12C 80033D2C 00000000 */ nop
/* F130 80033D30 0C00EC6C */ jal func_8003B1B0
/* F134 80033D34 00000000 */ nop
/* F138 80033D38 3C02800A */ lui $v0, 0x800a
/* F13C 80033D3C 8C420904 */ lw $v0, 0x904($v0)
/* F140 80033D40 24040011 */ addiu $a0, $zero, 0x11
/* F144 80033D44 0800CF90 */ j .L80033E40
/* F148 80033D48 AE620004 */ sw $v0, 4($s3)
.L80033D4C:
/* F14C 80033D4C 3C028011 */ lui $v0, %hi(gPlayerData)
/* F150 80033D50 2442F290 */ addiu $v0, $v0, %lo(gPlayerData)
/* F154 80033D54 0C03AC80 */ jal func_800EB200
/* F158 80033D58 80440012 */ lb $a0, 0x12($v0)
/* F15C 80033D5C 0C0169B0 */ jal load_world_script_api
/* F160 80033D60 00000000 */ nop
/* F164 80033D64 3C04800E */ lui $a0, 0x800e
/* F168 80033D68 24849230 */ addiu $a0, $a0, -0x6dd0
/* F16C 80033D6C 0C016B3A */ jal load_asset_by_name
/* F170 80033D70 27A50010 */ addiu $a1, $sp, 0x10
/* F174 80033D74 0040802D */ daddu $s0, $v0, $zero
/* F178 80033D78 3C058021 */ lui $a1, 0x8021
/* F17C 80033D7C 24A50000 */ addiu $a1, $a1, 0
/* F180 80033D80 0C01BB7C */ jal decode_yay0
/* F184 80033D84 0200202D */ daddu $a0, $s0, $zero
/* F188 80033D88 0C00AB1E */ jal general_heap_free
/* F18C 80033D8C 0200202D */ daddu $a0, $s0, $zero
/* F190 80033D90 0C016BE5 */ jal initialize_collision
/* F194 80033D94 00000000 */ nop
/* F198 80033D98 0C016C16 */ jal load_collision
/* F19C 80033D9C 00000000 */ nop
/* F1A0 80033DA0 8E240008 */ lw $a0, 8($s1)
/* F1A4 80033DA4 10800004 */ beqz $a0, .L80033DB8
/* F1A8 80033DA8 00000000 */ nop
/* F1AC 80033DAC 8E25000C */ lw $a1, 0xc($s1)
/* F1B0 80033DB0 0C00A5CF */ jal dma_copy
/* F1B4 80033DB4 8E260010 */ lw $a2, 0x10($s1)
.L80033DB8:
/* F1B8 80033DB8 0C05175C */ jal load_map_bg
/* F1BC 80033DBC 8E240014 */ lw $a0, 0x14($s1)
/* F1C0 80033DC0 8E440038 */ lw $a0, 0x38($s2)
/* F1C4 80033DC4 50800005 */ beql $a0, $zero, .L80033DDC
/* F1C8 80033DC8 24040128 */ addiu $a0, $zero, 0x128
/* F1CC 80033DCC 0C05178A */ jal read_background_size
/* F1D0 80033DD0 00000000 */ nop
/* F1D4 80033DD4 0800CF7B */ j .L80033DEC
/* F1D8 80033DD8 00000000 */ nop
.L80033DDC:
/* F1DC 80033DDC 240500C8 */ addiu $a1, $zero, 0xc8
/* F1E0 80033DE0 2406000C */ addiu $a2, $zero, 0xc
/* F1E4 80033DE4 0C05179C */ jal set_background_size
/* F1E8 80033DE8 24070014 */ addiu $a3, $zero, 0x14
.L80033DEC:
/* F1EC 80033DEC 3C04800B */ lui $a0, 0x800b
/* F1F0 80033DF0 24840CF0 */ addiu $a0, $a0, 0xcf0
/* F1F4 80033DF4 0C016B74 */ jal get_asset_offset
/* F1F8 80033DF8 27A50010 */ addiu $a1, $sp, 0x10
/* F1FC 80033DFC 8E440000 */ lw $a0, ($s2)
/* F200 80033E00 8FA60010 */ lw $a2, 0x10($sp)
/* F204 80033E04 0C045709 */ jal load_model_textures
/* F208 80033E08 0040282D */ daddu $a1, $v0, $zero
/* F20C 80033E0C 0C04584B */ jal calculate_model_sizes
/* F210 80033E10 00000000 */ nop
/* F214 80033E14 0C00EC6C */ jal func_8003B1B0
/* F218 80033E18 00000000 */ nop
/* F21C 80033E1C 3C02800A */ lui $v0, 0x800a
/* F220 80033E20 8C420904 */ lw $v0, 0x904($v0)
/* F224 80033E24 3C04800A */ lui $a0, 0x800a
/* F228 80033E28 8C840908 */ lw $a0, 0x908($a0)
/* F22C 80033E2C 10800003 */ beqz $a0, .L80033E3C
/* F230 80033E30 AE620004 */ sw $v0, 4($s3)
/* F234 80033E34 0C009C22 */ jal func_80027088
/* F238 80033E38 00000000 */ nop
.L80033E3C:
/* F23C 80033E3C 24040004 */ addiu $a0, $zero, 4
.L80033E40:
/* F240 80033E40 0C00CD3C */ jal set_game_mode
/* F244 80033E44 00000000 */ nop
.L80033E48:
/* F248 80033E48 8FBF0028 */ lw $ra, 0x28($sp)
/* F24C 80033E4C 8FB30024 */ lw $s3, 0x24($sp)
/* F250 80033E50 8FB20020 */ lw $s2, 0x20($sp)
/* F254 80033E54 8FB1001C */ lw $s1, 0x1c($sp)
/* F258 80033E58 8FB00018 */ lw $s0, 0x18($sp)
/* F25C 80033E5C 03E00008 */ jr $ra
/* F260 80033E60 27BD0030 */ addiu $sp, $sp, 0x30