papermario/asm/nonmatchings/code_121f0_len_1290/func_80037994.s
2020-09-23 23:16:13 -04:00

153 lines
7.6 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80037994
/* 12D94 80037994 27BDFFF8 */ addiu $sp, $sp, -8
/* 12D98 80037998 0000602D */ daddu $t4, $zero, $zero
/* 12D9C 8003799C 3C02800A */ lui $v0, 0x800a
/* 12DA0 800379A0 2442A66C */ addiu $v0, $v0, -0x5994
/* 12DA4 800379A4 0040402D */ daddu $t0, $v0, $zero
/* 12DA8 800379A8 3C19800A */ lui $t9, 0x800a
/* 12DAC 800379AC 27390978 */ addiu $t9, $t9, 0x978
/* 12DB0 800379B0 3C0DF518 */ lui $t5, 0xf518
/* 12DB4 800379B4 35AD6400 */ ori $t5, $t5, 0x6400
/* 12DB8 800379B8 3C18E441 */ lui $t8, 0xe441
/* 12DBC 800379BC 3C0F000F */ lui $t7, 0xf
/* 12DC0 800379C0 0180582D */ daddu $t3, $t4, $zero
/* 12DC4 800379C4 0180502D */ daddu $t2, $t4, $zero
/* 12DC8 800379C8 3C02DE00 */ lui $v0, 0xde00
/* 12DCC 800379CC AFB00000 */ sw $s0, ($sp)
/* 12DD0 800379D0 8D030000 */ lw $v1, ($t0)
/* 12DD4 800379D4 3C01C2C8 */ lui $at, 0xc2c8
/* 12DD8 800379D8 44810000 */ mtc1 $at, $f0
/* 12DDC 800379DC 0060202D */ daddu $a0, $v1, $zero
/* 12DE0 800379E0 24630008 */ addiu $v1, $v1, 8
/* 12DE4 800379E4 AD030000 */ sw $v1, ($t0)
/* 12DE8 800379E8 AC820000 */ sw $v0, ($a0)
/* 12DEC 800379EC 3C028007 */ lui $v0, 0x8007
/* 12DF0 800379F0 24427A50 */ addiu $v0, $v0, 0x7a50
/* 12DF4 800379F4 AC820004 */ sw $v0, 4($a0)
/* 12DF8 800379F8 24620008 */ addiu $v0, $v1, 8
/* 12DFC 800379FC 46006302 */ mul.s $f12, $f12, $f0
/* 12E00 80037A00 00000000 */ nop
/* 12E04 80037A04 AD020000 */ sw $v0, ($t0)
/* 12E08 80037A08 3C02E700 */ lui $v0, 0xe700
/* 12E0C 80037A0C AC620000 */ sw $v0, ($v1)
/* 12E10 80037A10 AC600004 */ sw $zero, 4($v1)
/* 12E14 80037A14 4600608D */ trunc.w.s $f2, $f12
/* 12E18 80037A18 440E1000 */ mfc1 $t6, $f2
/* 12E1C 80037A1C 00000000 */ nop
/* 12E20 80037A20 25C9000F */ addiu $t1, $t6, 0xf
.L80037A24:
/* 12E24 80037A24 3C04FD18 */ lui $a0, 0xfd18
/* 12E28 80037A28 348400C7 */ ori $a0, $a0, 0xc7
/* 12E2C 80037A2C 3C050731 */ lui $a1, 0x731
/* 12E30 80037A30 34A5C004 */ ori $a1, $a1, 0xc004
/* 12E34 80037A34 3C060031 */ lui $a2, 0x31
/* 12E38 80037A38 34C6C004 */ ori $a2, $a2, 0xc004
/* 12E3C 80037A3C 8D070000 */ lw $a3, ($t0)
/* 12E40 80037A40 8F220000 */ lw $v0, ($t9)
/* 12E44 80037A44 00E0182D */ daddu $v1, $a3, $zero
/* 12E48 80037A48 24E70008 */ addiu $a3, $a3, 8
/* 12E4C 80037A4C 004A1021 */ addu $v0, $v0, $t2
/* 12E50 80037A50 AD070000 */ sw $a3, ($t0)
/* 12E54 80037A54 AC620004 */ sw $v0, 4($v1)
/* 12E58 80037A58 24E20008 */ addiu $v0, $a3, 8
/* 12E5C 80037A5C AC640000 */ sw $a0, ($v1)
/* 12E60 80037A60 AD020000 */ sw $v0, ($t0)
/* 12E64 80037A64 3C020700 */ lui $v0, 0x700
/* 12E68 80037A68 ACE20004 */ sw $v0, 4($a3)
/* 12E6C 80037A6C 24E20010 */ addiu $v0, $a3, 0x10
/* 12E70 80037A70 ACED0000 */ sw $t5, ($a3)
/* 12E74 80037A74 AD020000 */ sw $v0, ($t0)
/* 12E78 80037A78 3C02E600 */ lui $v0, 0xe600
/* 12E7C 80037A7C ACE20008 */ sw $v0, 8($a3)
/* 12E80 80037A80 24E20018 */ addiu $v0, $a3, 0x18
/* 12E84 80037A84 ACE0000C */ sw $zero, 0xc($a3)
/* 12E88 80037A88 AD020000 */ sw $v0, ($t0)
/* 12E8C 80037A8C 3C02F400 */ lui $v0, 0xf400
/* 12E90 80037A90 ACE20010 */ sw $v0, 0x10($a3)
/* 12E94 80037A94 24E20020 */ addiu $v0, $a3, 0x20
/* 12E98 80037A98 ACE50014 */ sw $a1, 0x14($a3)
/* 12E9C 80037A9C AD020000 */ sw $v0, ($t0)
/* 12EA0 80037AA0 3C02E700 */ lui $v0, 0xe700
/* 12EA4 80037AA4 ACE20018 */ sw $v0, 0x18($a3)
/* 12EA8 80037AA8 24E20028 */ addiu $v0, $a3, 0x28
/* 12EAC 80037AAC 24E30030 */ addiu $v1, $a3, 0x30
/* 12EB0 80037AB0 ACE0001C */ sw $zero, 0x1c($a3)
/* 12EB4 80037AB4 AD020000 */ sw $v0, ($t0)
/* 12EB8 80037AB8 3C02F200 */ lui $v0, 0xf200
/* 12EBC 80037ABC ACED0020 */ sw $t5, 0x20($a3)
/* 12EC0 80037AC0 ACE00024 */ sw $zero, 0x24($a3)
/* 12EC4 80037AC4 AD030000 */ sw $v1, ($t0)
/* 12EC8 80037AC8 ACE20028 */ sw $v0, 0x28($a3)
/* 12ECC 80037ACC 24E20038 */ addiu $v0, $a3, 0x38
/* 12ED0 80037AD0 ACE6002C */ sw $a2, 0x2c($a3)
/* 12ED4 80037AD4 AD020000 */ sw $v0, ($t0)
/* 12ED8 80037AD8 25C20011 */ addiu $v0, $t6, 0x11
/* 12EDC 80037ADC 01621021 */ addu $v0, $t3, $v0
/* 12EE0 80037AE0 00021480 */ sll $v0, $v0, 0x12
/* 12EE4 80037AE4 00021403 */ sra $v0, $v0, 0x10
/* 12EE8 80037AE8 18400004 */ blez $v0, .L80037AFC
/* 12EEC 80037AEC 30420FFF */ andi $v0, $v0, 0xfff
/* 12EF0 80037AF0 00581025 */ or $v0, $v0, $t8
/* 12EF4 80037AF4 0800DEC0 */ j .L80037B00
/* 12EF8 80037AF8 ACE20030 */ sw $v0, 0x30($a3)
.L80037AFC:
/* 12EFC 80037AFC ACF80030 */ sw $t8, 0x30($a3)
.L80037B00:
/* 12F00 80037B00 00091480 */ sll $v0, $t1, 0x12
/* 12F04 80037B04 00021403 */ sra $v0, $v0, 0x10
/* 12F08 80037B08 18400004 */ blez $v0, .L80037B1C
/* 12F0C 80037B0C 30420FFF */ andi $v0, $v0, 0xfff
/* 12F10 80037B10 004F1025 */ or $v0, $v0, $t7
/* 12F14 80037B14 0800DEC8 */ j .L80037B20
/* 12F18 80037B18 AC620004 */ sw $v0, 4($v1)
.L80037B1C:
/* 12F1C 80037B1C AC6F0004 */ sw $t7, 4($v1)
.L80037B20:
/* 12F20 80037B20 8D030000 */ lw $v1, ($t0)
/* 12F24 80037B24 24620008 */ addiu $v0, $v1, 8
/* 12F28 80037B28 AD020000 */ sw $v0, ($t0)
/* 12F2C 80037B2C 3C02E100 */ lui $v0, 0xe100
/* 12F30 80037B30 AC620000 */ sw $v0, ($v1)
/* 12F34 80037B34 00091080 */ sll $v0, $t1, 2
/* 12F38 80037B38 04430008 */ bgezl $v0, .L80037B5C
/* 12F3C 80037B3C AC600004 */ sw $zero, 4($v1)
/* 12F40 80037B40 00091480 */ sll $v0, $t1, 0x12
/* 12F44 80037B44 00021343 */ sra $v0, $v0, 0xd
/* 12F48 80037B48 5C400001 */ bgtzl $v0, .L80037B50
/* 12F4C 80037B4C 0000102D */ daddu $v0, $zero, $zero
.L80037B50:
/* 12F50 80037B50 00021023 */ negu $v0, $v0
/* 12F54 80037B54 3042FFFF */ andi $v0, $v0, 0xffff
/* 12F58 80037B58 AC620004 */ sw $v0, 4($v1)
.L80037B5C:
/* 12F5C 80037B5C 3C040400 */ lui $a0, 0x400
/* 12F60 80037B60 34840400 */ ori $a0, $a0, 0x400
/* 12F64 80037B64 25290002 */ addiu $t1, $t1, 2
/* 12F68 80037B68 256B0002 */ addiu $t3, $t3, 2
/* 12F6C 80037B6C 254A0640 */ addiu $t2, $t2, 0x640
/* 12F70 80037B70 8D020000 */ lw $v0, ($t0)
/* 12F74 80037B74 258C0001 */ addiu $t4, $t4, 1
/* 12F78 80037B78 0040182D */ daddu $v1, $v0, $zero
/* 12F7C 80037B7C 24420008 */ addiu $v0, $v0, 8
/* 12F80 80037B80 AD020000 */ sw $v0, ($t0)
/* 12F84 80037B84 3C02F100 */ lui $v0, 0xf100
/* 12F88 80037B88 AC620000 */ sw $v0, ($v1)
/* 12F8C 80037B8C 29820038 */ slti $v0, $t4, 0x38
/* 12F90 80037B90 1440FFA4 */ bnez $v0, .L80037A24
/* 12F94 80037B94 AC640004 */ sw $a0, 4($v1)
/* 12F98 80037B98 3C03800A */ lui $v1, 0x800a
/* 12F9C 80037B9C 2463A66C */ addiu $v1, $v1, -0x5994
/* 12FA0 80037BA0 8C620000 */ lw $v0, ($v1)
/* 12FA4 80037BA4 0040202D */ daddu $a0, $v0, $zero
/* 12FA8 80037BA8 24420008 */ addiu $v0, $v0, 8
/* 12FAC 80037BAC AC620000 */ sw $v0, ($v1)
/* 12FB0 80037BB0 3C02E700 */ lui $v0, 0xe700
/* 12FB4 80037BB4 AC820000 */ sw $v0, ($a0)
/* 12FB8 80037BB8 AC800004 */ sw $zero, 4($a0)
/* 12FBC 80037BBC 8FB00000 */ lw $s0, ($sp)
/* 12FC0 80037BC0 03E00008 */ jr $ra
/* 12FC4 80037BC4 27BD0008 */ addiu $sp, $sp, 8