papermario/asm/nonmatchings/code_1b40_len_20b0/func_80027BAC.s
2020-08-12 22:37:16 -04:00

162 lines
7.9 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80027BAC
/* 002FAC 80027BAC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 002FB0 80027BB0 3C06D700 */ lui $a2, 0xd700
/* 002FB4 80027BB4 34C60002 */ ori $a2, $a2, 2
/* 002FB8 80027BB8 3C07FF10 */ lui $a3, 0xff10
/* 002FBC 80027BBC 34E7013F */ ori $a3, $a3, 0x13f
/* 002FC0 80027BC0 3C08E300 */ lui $t0, 0xe300
/* 002FC4 80027BC4 35080A01 */ ori $t0, $t0, 0xa01
/* 002FC8 80027BC8 3C09E300 */ lui $t1, 0xe300
/* 002FCC 80027BCC 35290C00 */ ori $t1, $t1, 0xc00
/* 002FD0 80027BD0 3C0AE300 */ lui $t2, 0xe300
/* 002FD4 80027BD4 354A1001 */ ori $t2, $t2, 0x1001
/* 002FD8 80027BD8 3C0BE200 */ lui $t3, 0xe200
/* 002FDC 80027BDC 356B001C */ ori $t3, $t3, 0x1c
/* 002FE0 80027BE0 3C0CE300 */ lui $t4, 0xe300
/* 002FE4 80027BE4 358C1201 */ ori $t4, $t4, 0x1201
/* 002FE8 80027BE8 0000C82D */ daddu $t9, $zero, $zero
/* 002FEC 80027BEC 3C02800A */ lui $v0, 0x800a
/* 002FF0 80027BF0 2442A66C */ addiu $v0, $v0, -0x5994
/* 002FF4 80027BF4 0040682D */ daddu $t5, $v0, $zero
/* 002FF8 80027BF8 AFB5001C */ sw $s5, 0x1c($sp)
/* 002FFC 80027BFC 3C15FD10 */ lui $s5, 0xfd10
/* 003000 80027C00 36B5013F */ ori $s5, $s5, 0x13f
/* 003004 80027C04 AFB00008 */ sw $s0, 8($sp)
/* 003008 80027C08 3C10F510 */ lui $s0, 0xf510
/* 00300C 80027C0C 3610A000 */ ori $s0, $s0, 0xa000
/* 003010 80027C10 AFB40018 */ sw $s4, 0x18($sp)
/* 003014 80027C14 3C14074F */ lui $s4, 0x74f
/* 003018 80027C18 3694C014 */ ori $s4, $s4, 0xc014
/* 00301C 80027C1C AFB1000C */ sw $s1, 0xc($sp)
/* 003020 80027C20 3C11E700 */ lui $s1, 0xe700
/* 003024 80027C24 AFBE0028 */ sw $fp, 0x28($sp)
/* 003028 80027C28 3C1EF200 */ lui $fp, 0xf200
/* 00302C 80027C2C AFB30014 */ sw $s3, 0x14($sp)
/* 003030 80027C30 3C13004F */ lui $s3, 0x4f
/* 003034 80027C34 3673C014 */ ori $s3, $s3, 0xc014
/* 003038 80027C38 AFB20010 */ sw $s2, 0x10($sp)
/* 00303C 80027C3C 3C12E44F */ lui $s2, 0xe44f
/* 003040 80027C40 3652C000 */ ori $s2, $s2, 0xc000
/* 003044 80027C44 AFB70024 */ sw $s7, 0x24($sp)
/* 003048 80027C48 3C17E100 */ lui $s7, 0xe100
/* 00304C 80027C4C AFB60020 */ sw $s6, 0x20($sp)
/* 003050 80027C50 3C16F100 */ lui $s6, 0xf100
/* 003054 80027C54 0320C02D */ daddu $t8, $t9, $zero
/* 003058 80027C58 240F0014 */ addiu $t7, $zero, 0x14
/* 00305C 80027C5C 0080702D */ daddu $t6, $a0, $zero
/* 003060 80027C60 8DA20000 */ lw $v0, ($t5)
/* 003064 80027C64 0220182D */ daddu $v1, $s1, $zero
/* 003068 80027C68 0040202D */ daddu $a0, $v0, $zero
/* 00306C 80027C6C 24420008 */ addiu $v0, $v0, 8
/* 003070 80027C70 ADA20000 */ sw $v0, ($t5)
/* 003074 80027C74 AC830000 */ sw $v1, ($a0)
/* 003078 80027C78 24430008 */ addiu $v1, $v0, 8
/* 00307C 80027C7C AC800004 */ sw $zero, 4($a0)
/* 003080 80027C80 ADA30000 */ sw $v1, ($t5)
/* 003084 80027C84 2403FFFF */ addiu $v1, $zero, -1
/* 003088 80027C88 AC430004 */ sw $v1, 4($v0)
/* 00308C 80027C8C 24430010 */ addiu $v1, $v0, 0x10
/* 003090 80027C90 AC460000 */ sw $a2, ($v0)
/* 003094 80027C94 ADA30000 */ sw $v1, ($t5)
/* 003098 80027C98 24430018 */ addiu $v1, $v0, 0x18
/* 00309C 80027C9C AC470008 */ sw $a3, 8($v0)
/* 0030A0 80027CA0 AC45000C */ sw $a1, 0xc($v0)
/* 0030A4 80027CA4 ADA30000 */ sw $v1, ($t5)
/* 0030A8 80027CA8 3C030020 */ lui $v1, 0x20
/* 0030AC 80027CAC AC430014 */ sw $v1, 0x14($v0)
/* 0030B0 80027CB0 24430020 */ addiu $v1, $v0, 0x20
/* 0030B4 80027CB4 AC480010 */ sw $t0, 0x10($v0)
/* 0030B8 80027CB8 ADA30000 */ sw $v1, ($t5)
/* 0030BC 80027CBC 24430028 */ addiu $v1, $v0, 0x28
/* 0030C0 80027CC0 AC490018 */ sw $t1, 0x18($v0)
/* 0030C4 80027CC4 AC40001C */ sw $zero, 0x1c($v0)
/* 0030C8 80027CC8 ADA30000 */ sw $v1, ($t5)
/* 0030CC 80027CCC 24430030 */ addiu $v1, $v0, 0x30
/* 0030D0 80027CD0 AC4A0020 */ sw $t2, 0x20($v0)
/* 0030D4 80027CD4 AC400024 */ sw $zero, 0x24($v0)
/* 0030D8 80027CD8 ADA30000 */ sw $v1, ($t5)
/* 0030DC 80027CDC 24430038 */ addiu $v1, $v0, 0x38
/* 0030E0 80027CE0 AC4B0028 */ sw $t3, 0x28($v0)
/* 0030E4 80027CE4 AC40002C */ sw $zero, 0x2c($v0)
/* 0030E8 80027CE8 ADA30000 */ sw $v1, ($t5)
/* 0030EC 80027CEC AC4C0030 */ sw $t4, 0x30($v0)
/* 0030F0 80027CF0 AC400034 */ sw $zero, 0x34($v0)
.L80027CF4:
/* 0030F4 80027CF4 3C061000 */ lui $a2, 0x1000
/* 0030F8 80027CF8 34C60400 */ ori $a2, $a2, 0x400
/* 0030FC 80027CFC 33050FFF */ andi $a1, $t8, 0xfff
/* 003100 80027D00 27180018 */ addiu $t8, $t8, 0x18
/* 003104 80027D04 31E40FFF */ andi $a0, $t7, 0xfff
/* 003108 80027D08 25EF0018 */ addiu $t7, $t7, 0x18
/* 00310C 80027D0C 27390001 */ addiu $t9, $t9, 1
/* 003110 80027D10 8DA20000 */ lw $v0, ($t5)
/* 003114 80027D14 00922025 */ or $a0, $a0, $s2
/* 003118 80027D18 0040182D */ daddu $v1, $v0, $zero
/* 00311C 80027D1C 24420008 */ addiu $v0, $v0, 8
/* 003120 80027D20 AC6E0004 */ sw $t6, 4($v1)
/* 003124 80027D24 ADA20000 */ sw $v0, ($t5)
/* 003128 80027D28 AC750000 */ sw $s5, ($v1)
/* 00312C 80027D2C 24430008 */ addiu $v1, $v0, 8
/* 003130 80027D30 3C070700 */ lui $a3, 0x700
/* 003134 80027D34 ADA30000 */ sw $v1, ($t5)
/* 003138 80027D38 24430010 */ addiu $v1, $v0, 0x10
/* 00313C 80027D3C AC470004 */ sw $a3, 4($v0)
/* 003140 80027D40 3C07E600 */ lui $a3, 0xe600
/* 003144 80027D44 AC500000 */ sw $s0, ($v0)
/* 003148 80027D48 ADA30000 */ sw $v1, ($t5)
/* 00314C 80027D4C 24430018 */ addiu $v1, $v0, 0x18
/* 003150 80027D50 AC470008 */ sw $a3, 8($v0)
/* 003154 80027D54 3C07F400 */ lui $a3, 0xf400
/* 003158 80027D58 AC40000C */ sw $zero, 0xc($v0)
/* 00315C 80027D5C ADA30000 */ sw $v1, ($t5)
/* 003160 80027D60 24430020 */ addiu $v1, $v0, 0x20
/* 003164 80027D64 AC470010 */ sw $a3, 0x10($v0)
/* 003168 80027D68 AC540014 */ sw $s4, 0x14($v0)
/* 00316C 80027D6C ADA30000 */ sw $v1, ($t5)
/* 003170 80027D70 24430028 */ addiu $v1, $v0, 0x28
/* 003174 80027D74 AC510018 */ sw $s1, 0x18($v0)
/* 003178 80027D78 AC40001C */ sw $zero, 0x1c($v0)
/* 00317C 80027D7C ADA30000 */ sw $v1, ($t5)
/* 003180 80027D80 24430030 */ addiu $v1, $v0, 0x30
/* 003184 80027D84 AC500020 */ sw $s0, 0x20($v0)
/* 003188 80027D88 AC400024 */ sw $zero, 0x24($v0)
/* 00318C 80027D8C ADA30000 */ sw $v1, ($t5)
/* 003190 80027D90 24430038 */ addiu $v1, $v0, 0x38
/* 003194 80027D94 AC5E0028 */ sw $fp, 0x28($v0)
/* 003198 80027D98 AC53002C */ sw $s3, 0x2c($v0)
/* 00319C 80027D9C ADA30000 */ sw $v1, ($t5)
/* 0031A0 80027DA0 24430040 */ addiu $v1, $v0, 0x40
/* 0031A4 80027DA4 AC440030 */ sw $a0, 0x30($v0)
/* 0031A8 80027DA8 AC450034 */ sw $a1, 0x34($v0)
/* 0031AC 80027DAC ADA30000 */ sw $v1, ($t5)
/* 0031B0 80027DB0 24430048 */ addiu $v1, $v0, 0x48
/* 0031B4 80027DB4 AC570038 */ sw $s7, 0x38($v0)
/* 0031B8 80027DB8 AC40003C */ sw $zero, 0x3c($v0)
/* 0031BC 80027DBC ADA30000 */ sw $v1, ($t5)
/* 0031C0 80027DC0 24430050 */ addiu $v1, $v0, 0x50
/* 0031C4 80027DC4 AC560040 */ sw $s6, 0x40($v0)
/* 0031C8 80027DC8 AC460044 */ sw $a2, 0x44($v0)
/* 0031CC 80027DCC ADA30000 */ sw $v1, ($t5)
/* 0031D0 80027DD0 AC510048 */ sw $s1, 0x48($v0)
/* 0031D4 80027DD4 AC40004C */ sw $zero, 0x4c($v0)
/* 0031D8 80027DD8 2B220028 */ slti $v0, $t9, 0x28
/* 0031DC 80027DDC 1440FFC5 */ bnez $v0, .L80027CF4
/* 0031E0 80027DE0 25CE0F00 */ addiu $t6, $t6, 0xf00
/* 0031E4 80027DE4 8FBE0028 */ lw $fp, 0x28($sp)
/* 0031E8 80027DE8 8FB70024 */ lw $s7, 0x24($sp)
/* 0031EC 80027DEC 8FB60020 */ lw $s6, 0x20($sp)
/* 0031F0 80027DF0 8FB5001C */ lw $s5, 0x1c($sp)
/* 0031F4 80027DF4 8FB40018 */ lw $s4, 0x18($sp)
/* 0031F8 80027DF8 8FB30014 */ lw $s3, 0x14($sp)
/* 0031FC 80027DFC 8FB20010 */ lw $s2, 0x10($sp)
/* 003200 80027E00 8FB1000C */ lw $s1, 0xc($sp)
/* 003204 80027E04 8FB00008 */ lw $s0, 8($sp)
/* 003208 80027E08 03E00008 */ jr $ra
/* 00320C 80027E0C 27BD0030 */ addiu $sp, $sp, 0x30