papermario/ver/ique/asm/nonmatchings/C50A0/draw_image_with_clipping.s

568 lines
30 KiB
ArmAsm

.set noat /* allow manual use of $at */
.set noreorder /* don't insert nops after branches */
/* Generated by spimdisasm 1.11.1 */
glabel draw_image_with_clipping
/* C4304 8012D424 27BDFF80 */ addiu $sp, $sp, -0x80
/* C4308 8012D428 AFA7008C */ sw $a3, 0x8C($sp)
/* C430C 8012D42C 8FA70094 */ lw $a3, 0x94($sp)
/* C4310 8012D430 AFA60088 */ sw $a2, 0x88($sp)
/* C4314 8012D434 8FA60098 */ lw $a2, 0x98($sp)
/* C4318 8012D438 8FAC009C */ lw $t4, 0x9C($sp)
/* C431C 8012D43C 8FA900A0 */ lw $t1, 0xA0($sp)
/* C4320 8012D440 8FAB00A4 */ lw $t3, 0xA4($sp)
/* C4324 8012D444 8FA800A8 */ lw $t0, 0xA8($sp)
/* C4328 8012D448 AFBE0078 */ sw $fp, 0x78($sp)
/* C432C 8012D44C 8FBE0090 */ lw $fp, 0x90($sp)
/* C4330 8012D450 AFB70074 */ sw $s7, 0x74($sp)
/* C4334 8012D454 AFB60070 */ sw $s6, 0x70($sp)
/* C4338 8012D458 AFB5006C */ sw $s5, 0x6C($sp)
/* C433C 8012D45C AFB40068 */ sw $s4, 0x68($sp)
/* C4340 8012D460 AFB30064 */ sw $s3, 0x64($sp)
/* C4344 8012D464 AFB20060 */ sw $s2, 0x60($sp)
/* C4348 8012D468 AFB1005C */ sw $s1, 0x5C($sp)
/* C434C 8012D46C AFB00058 */ sw $s0, 0x58($sp)
/* C4350 8012D470 AFA40080 */ sw $a0, 0x80($sp)
/* C4354 8012D474 AFA50084 */ sw $a1, 0x84($sp)
/* C4358 8012D478 00E0C02D */ daddu $t8, $a3, $zero
/* C435C 8012D47C 00071C00 */ sll $v1, $a3, 16
/* C4360 8012D480 00031C03 */ sra $v1, $v1, 16
/* C4364 8012D484 A7AC0018 */ sh $t4, 0x18($sp)
/* C4368 8012D488 3185FFFF */ andi $a1, $t4, 0xFFFF
/* C436C 8012D48C A7AB001C */ sh $t3, 0x1C($sp)
/* C4370 8012D490 3162FFFF */ andi $v0, $t3, 0xFFFF
/* C4374 8012D494 00A21021 */ addu $v0, $a1, $v0
/* C4378 8012D498 0062182A */ slt $v1, $v1, $v0
/* C437C 8012D49C A7A60016 */ sh $a2, 0x16($sp)
/* C4380 8012D4A0 A7A9001A */ sh $t1, 0x1A($sp)
/* C4384 8012D4A4 10600017 */ beqz $v1, .LIQUE_8012D504
/* C4388 8012D4A8 A7A8001E */ sh $t0, 0x1E($sp)
/* C438C 8012D4AC 00061C00 */ sll $v1, $a2, 16
/* C4390 8012D4B0 00031C03 */ sra $v1, $v1, 16
/* C4394 8012D4B4 3124FFFF */ andi $a0, $t1, 0xFFFF
/* C4398 8012D4B8 3102FFFF */ andi $v0, $t0, 0xFFFF
/* C439C 8012D4BC 00821021 */ addu $v0, $a0, $v0
/* C43A0 8012D4C0 0062182A */ slt $v1, $v1, $v0
/* C43A4 8012D4C4 106001E7 */ beqz $v1, .LIQUE_8012DC64
/* C43A8 8012D4C8 0000102D */ daddu $v0, $zero, $zero
/* C43AC 8012D4CC 8FB50084 */ lw $s5, 0x84($sp)
/* C43B0 8012D4D0 00F51021 */ addu $v0, $a3, $s5
/* C43B4 8012D4D4 00021400 */ sll $v0, $v0, 16
/* C43B8 8012D4D8 00021403 */ sra $v0, $v0, 16
/* C43BC 8012D4DC 00A2102A */ slt $v0, $a1, $v0
/* C43C0 8012D4E0 104001E0 */ beqz $v0, .LIQUE_8012DC64
/* C43C4 8012D4E4 0000102D */ daddu $v0, $zero, $zero
/* C43C8 8012D4E8 8FB60088 */ lw $s6, 0x88($sp)
/* C43CC 8012D4EC 00D61021 */ addu $v0, $a2, $s6
/* C43D0 8012D4F0 00021400 */ sll $v0, $v0, 16
/* C43D4 8012D4F4 00021403 */ sra $v0, $v0, 16
/* C43D8 8012D4F8 0082102A */ slt $v0, $a0, $v0
/* C43DC 8012D4FC 14400003 */ bnez $v0, .LIQUE_8012D50C
/* C43E0 8012D500 0080702D */ daddu $t6, $a0, $zero
.LIQUE_8012D504:
/* C43E4 8012D504 0804B719 */ j .LIQUE_8012DC64
/* C43E8 8012D508 0000102D */ daddu $v0, $zero, $zero
.LIQUE_8012D50C:
/* C43EC 8012D50C 01284821 */ addu $t1, $t1, $t0
/* C43F0 8012D510 00A0502D */ daddu $t2, $a1, $zero
/* C43F4 8012D514 018B6021 */ addu $t4, $t4, $t3
/* C43F8 8012D518 8FB50088 */ lw $s5, 0x88($sp)
/* C43FC 8012D51C 8FB60088 */ lw $s6, 0x88($sp)
/* C4400 8012D520 3C08800A */ lui $t0, %hi(gMainGfxPos)
/* C4404 8012D524 25089244 */ addiu $t0, $t0, %lo(gMainGfxPos)
/* C4408 8012D528 A3A00020 */ sb $zero, 0x20($sp)
/* C440C 8012D52C AFA90024 */ sw $t1, 0x24($sp)
/* C4410 8012D530 AFAC0034 */ sw $t4, 0x34($sp)
/* C4414 8012D534 A7A00002 */ sh $zero, 0x2($sp)
/* C4418 8012D538 A7A6000A */ sh $a2, 0xA($sp)
/* C441C 8012D53C 26B5FFFF */ addiu $s5, $s5, -0x1
/* C4420 8012D540 AFB50028 */ sw $s5, 0x28($sp)
/* C4424 8012D544 8FB50084 */ lw $s5, 0x84($sp)
/* C4428 8012D548 02C6B021 */ addu $s6, $s6, $a2
/* C442C 8012D54C AFB6002C */ sw $s6, 0x2C($sp)
/* C4430 8012D550 8FB60084 */ lw $s6, 0x84($sp)
/* C4434 8012D554 26B5FFFF */ addiu $s5, $s5, -0x1
/* C4438 8012D558 02C73821 */ addu $a3, $s6, $a3
/* C443C 8012D55C AFB50038 */ sw $s5, 0x38($sp)
/* C4440 8012D560 AFA7003C */ sw $a3, 0x3C($sp)
.LIQUE_8012D564:
/* C4444 8012D564 97A30002 */ lhu $v1, 0x2($sp)
/* C4448 8012D568 97A2000A */ lhu $v0, 0xA($sp)
/* C444C 8012D56C A7A00056 */ sh $zero, 0x56($sp)
/* C4450 8012D570 2463001F */ addiu $v1, $v1, 0x1F
/* C4454 8012D574 24420020 */ addiu $v0, $v0, 0x20
/* C4458 8012D578 A7A2000E */ sh $v0, 0xE($sp)
/* C445C 8012D57C 00021400 */ sll $v0, $v0, 16
/* C4460 8012D580 00021403 */ sra $v0, $v0, 16
/* C4464 8012D584 01C2102A */ slt $v0, $t6, $v0
/* C4468 8012D588 1440000E */ bnez $v0, .LIQUE_8012D5C4
/* C446C 8012D58C A7A30006 */ sh $v1, 0x6($sp)
.LIQUE_8012D590:
/* C4470 8012D590 97A40002 */ lhu $a0, 0x2($sp)
/* C4474 8012D594 97A2000E */ lhu $v0, 0xE($sp)
/* C4478 8012D598 24830020 */ addiu $v1, $a0, 0x20
/* C447C 8012D59C A7A2000A */ sh $v0, 0xA($sp)
/* C4480 8012D5A0 24420020 */ addiu $v0, $v0, 0x20
/* C4484 8012D5A4 A7A2000E */ sh $v0, 0xE($sp)
/* C4488 8012D5A8 00021400 */ sll $v0, $v0, 16
/* C448C 8012D5AC 00021403 */ sra $v0, $v0, 16
/* C4490 8012D5B0 004E102A */ slt $v0, $v0, $t6
/* C4494 8012D5B4 1440FFF6 */ bnez $v0, .LIQUE_8012D590
/* C4498 8012D5B8 A7A30002 */ sh $v1, 0x2($sp)
/* C449C 8012D5BC 2482003F */ addiu $v0, $a0, 0x3F
/* C44A0 8012D5C0 A7A20006 */ sh $v0, 0x6($sp)
.LIQUE_8012D5C4:
/* C44A4 8012D5C4 87A2000A */ lh $v0, 0xA($sp)
/* C44A8 8012D5C8 004E102A */ slt $v0, $v0, $t6
/* C44AC 8012D5CC 1040000A */ beqz $v0, .LIQUE_8012D5F8
/* C44B0 8012D5D0 00000000 */ nop
/* C44B4 8012D5D4 97B50016 */ lhu $s5, 0x16($sp)
/* C44B8 8012D5D8 97B6001A */ lhu $s6, 0x1A($sp)
/* C44BC 8012D5DC 00151400 */ sll $v0, $s5, 16
/* C44C0 8012D5E0 00021403 */ sra $v0, $v0, 16
/* C44C4 8012D5E4 004E1023 */ subu $v0, $v0, $t6
/* C44C8 8012D5E8 04420001 */ bltzl $v0, .LIQUE_8012D5F0
/* C44CC 8012D5EC 00021023 */ negu $v0, $v0
.LIQUE_8012D5F0:
/* C44D0 8012D5F0 A7A20056 */ sh $v0, 0x56($sp)
/* C44D4 8012D5F4 A7B6000A */ sh $s6, 0xA($sp)
.LIQUE_8012D5F8:
/* C44D8 8012D5F8 97A2001E */ lhu $v0, 0x1E($sp)
/* C44DC 8012D5FC 87A3000E */ lh $v1, 0xE($sp)
/* C44E0 8012D600 01C21021 */ addu $v0, $t6, $v0
/* C44E4 8012D604 0062182A */ slt $v1, $v1, $v0
/* C44E8 8012D608 14600009 */ bnez $v1, .LIQUE_8012D630
/* C44EC 8012D60C 24150001 */ addiu $s5, $zero, 0x1
/* C44F0 8012D610 8FB60024 */ lw $s6, 0x24($sp)
/* C44F4 8012D614 A3B50020 */ sb $s5, 0x20($sp)
/* C44F8 8012D618 97B50016 */ lhu $s5, 0x16($sp)
/* C44FC 8012D61C 02D51023 */ subu $v0, $s6, $s5
/* C4500 8012D620 97B60026 */ lhu $s6, 0x26($sp)
/* C4504 8012D624 2442FFFF */ addiu $v0, $v0, -0x1
/* C4508 8012D628 A7A20006 */ sh $v0, 0x6($sp)
/* C450C 8012D62C A7B6000E */ sh $s6, 0xE($sp)
.LIQUE_8012D630:
/* C4510 8012D630 97A20006 */ lhu $v0, 0x6($sp)
/* C4514 8012D634 8FB50088 */ lw $s5, 0x88($sp)
/* C4518 8012D638 00021400 */ sll $v0, $v0, 16
/* C451C 8012D63C 00021403 */ sra $v0, $v0, 16
/* C4520 8012D640 24420001 */ addiu $v0, $v0, 0x1
/* C4524 8012D644 0055102B */ sltu $v0, $v0, $s5
/* C4528 8012D648 14400007 */ bnez $v0, .LIQUE_8012D668
/* C452C 8012D64C 0000682D */ daddu $t5, $zero, $zero
/* C4530 8012D650 24160001 */ addiu $s6, $zero, 0x1
/* C4534 8012D654 97B5002A */ lhu $s5, 0x2A($sp)
/* C4538 8012D658 A3B60020 */ sb $s6, 0x20($sp)
/* C453C 8012D65C 97B6002E */ lhu $s6, 0x2E($sp)
/* C4540 8012D660 A7B50006 */ sh $s5, 0x6($sp)
/* C4544 8012D664 A7B6000E */ sh $s6, 0xE($sp)
.LIQUE_8012D668:
/* C4548 8012D668 3C14F508 */ lui $s4, (0xF5080000 >> 16)
/* C454C 8012D66C 3C0C0701 */ lui $t4, (0x7014060 >> 16)
/* C4550 8012D670 358C4060 */ ori $t4, $t4, (0x7014060 & 0xFFFF)
/* C4554 8012D674 3C13E600 */ lui $s3, (0xE6000000 >> 16)
/* C4558 8012D678 3C12F400 */ lui $s2, (0xF4000000 >> 16)
/* C455C 8012D67C 3C110700 */ lui $s1, (0x7000000 >> 16)
/* C4560 8012D680 3C10E700 */ lui $s0, (0xE7000000 >> 16)
/* C4564 8012D684 3C0B0001 */ lui $t3, (0x14060 >> 16)
/* C4568 8012D688 356B4060 */ ori $t3, $t3, (0x14060 & 0xFFFF)
/* C456C 8012D68C 3C19F200 */ lui $t9, (0xF2000000 >> 16)
/* C4570 8012D690 8FB5008C */ lw $s5, 0x8C($sp)
/* C4574 8012D694 8FB60038 */ lw $s6, 0x38($sp)
/* C4578 8012D698 3C17F510 */ lui $s7, (0xF5100000 >> 16)
/* C457C 8012D69C A7A00000 */ sh $zero, 0x0($sp)
/* C4580 8012D6A0 A7B80008 */ sh $t8, 0x8($sp)
/* C4584 8012D6A4 32A20007 */ andi $v0, $s5, 0x7
/* C4588 8012D6A8 00024D40 */ sll $t1, $v0, 21
/* C458C 8012D6AC 32D60FFF */ andi $s6, $s6, 0xFFF
/* C4590 8012D6B0 3C15FD08 */ lui $s5, (0xFD080000 >> 16)
/* C4594 8012D6B4 02D51025 */ or $v0, $s6, $s5
/* C4598 8012D6B8 01221025 */ or $v0, $t1, $v0
/* C459C 8012D6BC AFB60048 */ sw $s6, 0x48($sp)
/* C45A0 8012D6C0 AFA20040 */ sw $v0, 0x40($sp)
.LIQUE_8012D6C4:
/* C45A4 8012D6C4 0000782D */ daddu $t7, $zero, $zero
/* C45A8 8012D6C8 97A30000 */ lhu $v1, 0x0($sp)
/* C45AC 8012D6CC 97A20008 */ lhu $v0, 0x8($sp)
/* C45B0 8012D6D0 2463003F */ addiu $v1, $v1, 0x3F
/* C45B4 8012D6D4 24420040 */ addiu $v0, $v0, 0x40
/* C45B8 8012D6D8 A7A2000C */ sh $v0, 0xC($sp)
/* C45BC 8012D6DC 00021400 */ sll $v0, $v0, 16
/* C45C0 8012D6E0 00021403 */ sra $v0, $v0, 16
/* C45C4 8012D6E4 0142102A */ slt $v0, $t2, $v0
/* C45C8 8012D6E8 1440000E */ bnez $v0, .LIQUE_8012D724
/* C45CC 8012D6EC A7A30004 */ sh $v1, 0x4($sp)
.LIQUE_8012D6F0:
/* C45D0 8012D6F0 97A40000 */ lhu $a0, 0x0($sp)
/* C45D4 8012D6F4 97A2000C */ lhu $v0, 0xC($sp)
/* C45D8 8012D6F8 24830040 */ addiu $v1, $a0, 0x40
/* C45DC 8012D6FC A7A20008 */ sh $v0, 0x8($sp)
/* C45E0 8012D700 24420040 */ addiu $v0, $v0, 0x40
/* C45E4 8012D704 A7A2000C */ sh $v0, 0xC($sp)
/* C45E8 8012D708 00021400 */ sll $v0, $v0, 16
/* C45EC 8012D70C 00021403 */ sra $v0, $v0, 16
/* C45F0 8012D710 004A102A */ slt $v0, $v0, $t2
/* C45F4 8012D714 1440FFF6 */ bnez $v0, .LIQUE_8012D6F0
/* C45F8 8012D718 A7A30000 */ sh $v1, 0x0($sp)
/* C45FC 8012D71C 2482007F */ addiu $v0, $a0, 0x7F
/* C4600 8012D720 A7A20004 */ sh $v0, 0x4($sp)
.LIQUE_8012D724:
/* C4604 8012D724 87A20008 */ lh $v0, 0x8($sp)
/* C4608 8012D728 004A102A */ slt $v0, $v0, $t2
/* C460C 8012D72C 10400008 */ beqz $v0, .LIQUE_8012D750
/* C4610 8012D730 00181400 */ sll $v0, $t8, 16
/* C4614 8012D734 00021403 */ sra $v0, $v0, 16
/* C4618 8012D738 004A1023 */ subu $v0, $v0, $t2
/* C461C 8012D73C 97B60018 */ lhu $s6, 0x18($sp)
/* C4620 8012D740 04410002 */ bgez $v0, .LIQUE_8012D74C
/* C4624 8012D744 0040782D */ daddu $t7, $v0, $zero
/* C4628 8012D748 000F7823 */ negu $t7, $t7
.LIQUE_8012D74C:
/* C462C 8012D74C A7B60008 */ sh $s6, 0x8($sp)
.LIQUE_8012D750:
/* C4630 8012D750 97A2001C */ lhu $v0, 0x1C($sp)
/* C4634 8012D754 87A3000C */ lh $v1, 0xC($sp)
/* C4638 8012D758 01421021 */ addu $v0, $t2, $v0
/* C463C 8012D75C 0062182A */ slt $v1, $v1, $v0
/* C4640 8012D760 14600008 */ bnez $v1, .LIQUE_8012D784
/* C4644 8012D764 00000000 */ nop
/* C4648 8012D768 240D0001 */ addiu $t5, $zero, 0x1
/* C464C 8012D76C 8FB50034 */ lw $s5, 0x34($sp)
/* C4650 8012D770 97B60036 */ lhu $s6, 0x36($sp)
/* C4654 8012D774 02B81023 */ subu $v0, $s5, $t8
/* C4658 8012D778 2442FFFF */ addiu $v0, $v0, -0x1
/* C465C 8012D77C A7A20004 */ sh $v0, 0x4($sp)
/* C4660 8012D780 A7B6000C */ sh $s6, 0xC($sp)
.LIQUE_8012D784:
/* C4664 8012D784 97A20004 */ lhu $v0, 0x4($sp)
/* C4668 8012D788 8FB50084 */ lw $s5, 0x84($sp)
/* C466C 8012D78C 00021400 */ sll $v0, $v0, 16
/* C4670 8012D790 00021403 */ sra $v0, $v0, 16
/* C4674 8012D794 24420001 */ addiu $v0, $v0, 0x1
/* C4678 8012D798 0055102B */ sltu $v0, $v0, $s5
/* C467C 8012D79C 14400006 */ bnez $v0, .LIQUE_8012D7B8
/* C4680 8012D7A0 00000000 */ nop
/* C4684 8012D7A4 240D0001 */ addiu $t5, $zero, 0x1
/* C4688 8012D7A8 97B6003A */ lhu $s6, 0x3A($sp)
/* C468C 8012D7AC 97B5003E */ lhu $s5, 0x3E($sp)
/* C4690 8012D7B0 A7B60004 */ sh $s6, 0x4($sp)
/* C4694 8012D7B4 A7B5000C */ sh $s5, 0xC($sp)
.LIQUE_8012D7B8:
/* C4698 8012D7B8 57C0004D */ bnel $fp, $zero, .LIQUE_8012D8F0
/* C469C 8012D7BC 24020002 */ addiu $v0, $zero, 0x2
/* C46A0 8012D7C0 8D050000 */ lw $a1, 0x0($t0)
/* C46A4 8012D7C4 00A0182D */ daddu $v1, $a1, $zero
/* C46A8 8012D7C8 24A50008 */ addiu $a1, $a1, 0x8
/* C46AC 8012D7CC AD050000 */ sw $a1, 0x0($t0)
/* C46B0 8012D7D0 8FB60084 */ lw $s6, 0x84($sp)
/* C46B4 8012D7D4 3C15FD08 */ lui $s5, (0xFD080000 >> 16)
/* C46B8 8012D7D8 00161042 */ srl $v0, $s6, 1
/* C46BC 8012D7DC 2442FFFF */ addiu $v0, $v0, -0x1
/* C46C0 8012D7E0 30420FFF */ andi $v0, $v0, 0xFFF
/* C46C4 8012D7E4 00551025 */ or $v0, $v0, $s5
/* C46C8 8012D7E8 01221025 */ or $v0, $t1, $v0
/* C46CC 8012D7EC AC620000 */ sw $v0, 0x0($v1)
/* C46D0 8012D7F0 8FB60080 */ lw $s6, 0x80($sp)
/* C46D4 8012D7F4 AC760004 */ sw $s6, 0x4($v1)
/* C46D8 8012D7F8 97A20004 */ lhu $v0, 0x4($sp)
/* C46DC 8012D7FC 87A40000 */ lh $a0, 0x0($sp)
/* C46E0 8012D800 24A30008 */ addiu $v1, $a1, 0x8
/* C46E4 8012D804 AD030000 */ sw $v1, 0x0($t0)
/* C46E8 8012D808 ACAC0004 */ sw $t4, 0x4($a1)
/* C46EC 8012D80C ACB30008 */ sw $s3, 0x8($a1)
/* C46F0 8012D810 ACA0000C */ sw $zero, 0xC($a1)
/* C46F4 8012D814 00021400 */ sll $v0, $v0, 16
/* C46F8 8012D818 00021403 */ sra $v0, $v0, 16
/* C46FC 8012D81C 00441023 */ subu $v0, $v0, $a0
/* C4700 8012D820 24420001 */ addiu $v0, $v0, 0x1
/* C4704 8012D824 00021043 */ sra $v0, $v0, 1
/* C4708 8012D828 24420007 */ addiu $v0, $v0, 0x7
/* C470C 8012D82C 000210C3 */ sra $v0, $v0, 3
/* C4710 8012D830 304201FF */ andi $v0, $v0, 0x1FF
/* C4714 8012D834 00021240 */ sll $v0, $v0, 9
/* C4718 8012D838 00541025 */ or $v0, $v0, $s4
/* C471C 8012D83C 01221025 */ or $v0, $t1, $v0
/* C4720 8012D840 ACA20000 */ sw $v0, 0x0($a1)
/* C4724 8012D844 87A30000 */ lh $v1, 0x0($sp)
/* C4728 8012D848 24A20010 */ addiu $v0, $a1, 0x10
/* C472C 8012D84C AD020000 */ sw $v0, 0x0($t0)
/* C4730 8012D850 97A20002 */ lhu $v0, 0x2($sp)
/* C4734 8012D854 00031840 */ sll $v1, $v1, 1
/* C4738 8012D858 30630FFF */ andi $v1, $v1, 0xFFF
/* C473C 8012D85C 00031B00 */ sll $v1, $v1, 12
/* C4740 8012D860 00021080 */ sll $v0, $v0, 2
/* C4744 8012D864 30420FFC */ andi $v0, $v0, 0xFFC
/* C4748 8012D868 00521025 */ or $v0, $v0, $s2
/* C474C 8012D86C 00621825 */ or $v1, $v1, $v0
/* C4750 8012D870 ACA30010 */ sw $v1, 0x10($a1)
/* C4754 8012D874 97A30004 */ lhu $v1, 0x4($sp)
/* C4758 8012D878 97A40006 */ lhu $a0, 0x6($sp)
/* C475C 8012D87C 24A20018 */ addiu $v0, $a1, 0x18
/* C4760 8012D880 AD020000 */ sw $v0, 0x0($t0)
/* C4764 8012D884 ACB00018 */ sw $s0, 0x18($a1)
/* C4768 8012D888 ACA0001C */ sw $zero, 0x1C($a1)
/* C476C 8012D88C 00031840 */ sll $v1, $v1, 1
/* C4770 8012D890 30630FFE */ andi $v1, $v1, 0xFFE
/* C4774 8012D894 00031B00 */ sll $v1, $v1, 12
/* C4778 8012D898 00042080 */ sll $a0, $a0, 2
/* C477C 8012D89C 30840FFC */ andi $a0, $a0, 0xFFC
/* C4780 8012D8A0 00912025 */ or $a0, $a0, $s1
/* C4784 8012D8A4 00641825 */ or $v1, $v1, $a0
/* C4788 8012D8A8 ACA30014 */ sw $v1, 0x14($a1)
/* C478C 8012D8AC 97A20004 */ lhu $v0, 0x4($sp)
/* C4790 8012D8B0 87A40000 */ lh $a0, 0x0($sp)
/* C4794 8012D8B4 24A30020 */ addiu $v1, $a1, 0x20
/* C4798 8012D8B8 AD030000 */ sw $v1, 0x0($t0)
/* C479C 8012D8BC 3C03F500 */ lui $v1, (0xF5000000 >> 16)
/* C47A0 8012D8C0 ACAB0024 */ sw $t3, 0x24($a1)
/* C47A4 8012D8C4 00021400 */ sll $v0, $v0, 16
/* C47A8 8012D8C8 00021403 */ sra $v0, $v0, 16
/* C47AC 8012D8CC 00441023 */ subu $v0, $v0, $a0
/* C47B0 8012D8D0 24420001 */ addiu $v0, $v0, 0x1
/* C47B4 8012D8D4 00021043 */ sra $v0, $v0, 1
/* C47B8 8012D8D8 24420007 */ addiu $v0, $v0, 0x7
/* C47BC 8012D8DC 000210C3 */ sra $v0, $v0, 3
/* C47C0 8012D8E0 304201FF */ andi $v0, $v0, 0x1FF
/* C47C4 8012D8E4 00021240 */ sll $v0, $v0, 9
/* C47C8 8012D8E8 0804B6C6 */ j .LIQUE_8012DB18
/* C47CC 8012D8EC 00431025 */ or $v0, $v0, $v1
.LIQUE_8012D8F0:
/* C47D0 8012D8F0 57C20047 */ bnel $fp, $v0, .LIQUE_8012DA10
/* C47D4 8012D8F4 24020001 */ addiu $v0, $zero, 0x1
/* C47D8 8012D8F8 8D050000 */ lw $a1, 0x0($t0)
/* C47DC 8012D8FC 00A0182D */ daddu $v1, $a1, $zero
/* C47E0 8012D900 24A50008 */ addiu $a1, $a1, 0x8
/* C47E4 8012D904 AD050000 */ sw $a1, 0x0($t0)
/* C47E8 8012D908 8FB50048 */ lw $s5, 0x48($sp)
/* C47EC 8012D90C 3C02FD10 */ lui $v0, (0xFD100000 >> 16)
/* C47F0 8012D910 02A21025 */ or $v0, $s5, $v0
/* C47F4 8012D914 01221025 */ or $v0, $t1, $v0
/* C47F8 8012D918 AC620000 */ sw $v0, 0x0($v1)
/* C47FC 8012D91C 8FB60080 */ lw $s6, 0x80($sp)
/* C4800 8012D920 AC760004 */ sw $s6, 0x4($v1)
/* C4804 8012D924 97A20004 */ lhu $v0, 0x4($sp)
/* C4808 8012D928 87A40000 */ lh $a0, 0x0($sp)
/* C480C 8012D92C 24A30008 */ addiu $v1, $a1, 0x8
/* C4810 8012D930 AD030000 */ sw $v1, 0x0($t0)
/* C4814 8012D934 ACAC0004 */ sw $t4, 0x4($a1)
/* C4818 8012D938 ACB30008 */ sw $s3, 0x8($a1)
/* C481C 8012D93C ACA0000C */ sw $zero, 0xC($a1)
/* C4820 8012D940 00021400 */ sll $v0, $v0, 16
/* C4824 8012D944 00021403 */ sra $v0, $v0, 16
/* C4828 8012D948 00441023 */ subu $v0, $v0, $a0
/* C482C 8012D94C 00021040 */ sll $v0, $v0, 1
/* C4830 8012D950 24420009 */ addiu $v0, $v0, 0x9
/* C4834 8012D954 000210C3 */ sra $v0, $v0, 3
/* C4838 8012D958 304201FF */ andi $v0, $v0, 0x1FF
/* C483C 8012D95C 00021240 */ sll $v0, $v0, 9
/* C4840 8012D960 00571025 */ or $v0, $v0, $s7
/* C4844 8012D964 01221025 */ or $v0, $t1, $v0
/* C4848 8012D968 ACA20000 */ sw $v0, 0x0($a1)
/* C484C 8012D96C 87A30000 */ lh $v1, 0x0($sp)
/* C4850 8012D970 24A20010 */ addiu $v0, $a1, 0x10
/* C4854 8012D974 AD020000 */ sw $v0, 0x0($t0)
/* C4858 8012D978 97A20002 */ lhu $v0, 0x2($sp)
/* C485C 8012D97C 00031880 */ sll $v1, $v1, 2
/* C4860 8012D980 30630FFF */ andi $v1, $v1, 0xFFF
/* C4864 8012D984 00031B00 */ sll $v1, $v1, 12
/* C4868 8012D988 00021080 */ sll $v0, $v0, 2
/* C486C 8012D98C 30420FFC */ andi $v0, $v0, 0xFFC
/* C4870 8012D990 00521025 */ or $v0, $v0, $s2
/* C4874 8012D994 00621825 */ or $v1, $v1, $v0
/* C4878 8012D998 ACA30010 */ sw $v1, 0x10($a1)
/* C487C 8012D99C 97A30004 */ lhu $v1, 0x4($sp)
/* C4880 8012D9A0 97A40006 */ lhu $a0, 0x6($sp)
/* C4884 8012D9A4 24A20018 */ addiu $v0, $a1, 0x18
/* C4888 8012D9A8 AD020000 */ sw $v0, 0x0($t0)
/* C488C 8012D9AC ACB00018 */ sw $s0, 0x18($a1)
/* C4890 8012D9B0 ACA0001C */ sw $zero, 0x1C($a1)
/* C4894 8012D9B4 00031880 */ sll $v1, $v1, 2
/* C4898 8012D9B8 30630FFC */ andi $v1, $v1, 0xFFC
/* C489C 8012D9BC 00031B00 */ sll $v1, $v1, 12
/* C48A0 8012D9C0 00042080 */ sll $a0, $a0, 2
/* C48A4 8012D9C4 30840FFC */ andi $a0, $a0, 0xFFC
/* C48A8 8012D9C8 00912025 */ or $a0, $a0, $s1
/* C48AC 8012D9CC 00641825 */ or $v1, $v1, $a0
/* C48B0 8012D9D0 ACA30014 */ sw $v1, 0x14($a1)
/* C48B4 8012D9D4 97A20004 */ lhu $v0, 0x4($sp)
/* C48B8 8012D9D8 87A40000 */ lh $a0, 0x0($sp)
/* C48BC 8012D9DC 24A30020 */ addiu $v1, $a1, 0x20
/* C48C0 8012D9E0 AD030000 */ sw $v1, 0x0($t0)
/* C48C4 8012D9E4 ACAB0024 */ sw $t3, 0x24($a1)
/* C48C8 8012D9E8 00021400 */ sll $v0, $v0, 16
/* C48CC 8012D9EC 00021403 */ sra $v0, $v0, 16
/* C48D0 8012D9F0 00441023 */ subu $v0, $v0, $a0
/* C48D4 8012D9F4 00021040 */ sll $v0, $v0, 1
/* C48D8 8012D9F8 24420009 */ addiu $v0, $v0, 0x9
/* C48DC 8012D9FC 000210C3 */ sra $v0, $v0, 3
/* C48E0 8012DA00 304201FF */ andi $v0, $v0, 0x1FF
/* C48E4 8012DA04 00021240 */ sll $v0, $v0, 9
/* C48E8 8012DA08 0804B6C6 */ j .LIQUE_8012DB18
/* C48EC 8012DA0C 00571025 */ or $v0, $v0, $s7
.LIQUE_8012DA10:
/* C48F0 8012DA10 17C2005B */ bne $fp, $v0, .LIQUE_8012DB80
/* C48F4 8012DA14 3C070400 */ lui $a3, (0x4000400 >> 16)
/* C48F8 8012DA18 8D050000 */ lw $a1, 0x0($t0)
/* C48FC 8012DA1C 00A0102D */ daddu $v0, $a1, $zero
/* C4900 8012DA20 24A50008 */ addiu $a1, $a1, 0x8
/* C4904 8012DA24 AD050000 */ sw $a1, 0x0($t0)
/* C4908 8012DA28 8FB50040 */ lw $s5, 0x40($sp)
/* C490C 8012DA2C AC550000 */ sw $s5, 0x0($v0)
/* C4910 8012DA30 8FB60080 */ lw $s6, 0x80($sp)
/* C4914 8012DA34 AC560004 */ sw $s6, 0x4($v0)
/* C4918 8012DA38 97A20004 */ lhu $v0, 0x4($sp)
/* C491C 8012DA3C 87A40000 */ lh $a0, 0x0($sp)
/* C4920 8012DA40 24A30008 */ addiu $v1, $a1, 0x8
/* C4924 8012DA44 AD030000 */ sw $v1, 0x0($t0)
/* C4928 8012DA48 ACAC0004 */ sw $t4, 0x4($a1)
/* C492C 8012DA4C ACB30008 */ sw $s3, 0x8($a1)
/* C4930 8012DA50 ACA0000C */ sw $zero, 0xC($a1)
/* C4934 8012DA54 00021400 */ sll $v0, $v0, 16
/* C4938 8012DA58 00021403 */ sra $v0, $v0, 16
/* C493C 8012DA5C 00441023 */ subu $v0, $v0, $a0
/* C4940 8012DA60 24420008 */ addiu $v0, $v0, 0x8
/* C4944 8012DA64 000210C3 */ sra $v0, $v0, 3
/* C4948 8012DA68 304201FF */ andi $v0, $v0, 0x1FF
/* C494C 8012DA6C 00021240 */ sll $v0, $v0, 9
/* C4950 8012DA70 00541025 */ or $v0, $v0, $s4
/* C4954 8012DA74 01221025 */ or $v0, $t1, $v0
/* C4958 8012DA78 ACA20000 */ sw $v0, 0x0($a1)
/* C495C 8012DA7C 87A30000 */ lh $v1, 0x0($sp)
/* C4960 8012DA80 24A20010 */ addiu $v0, $a1, 0x10
/* C4964 8012DA84 AD020000 */ sw $v0, 0x0($t0)
/* C4968 8012DA88 97A20002 */ lhu $v0, 0x2($sp)
/* C496C 8012DA8C 00031880 */ sll $v1, $v1, 2
/* C4970 8012DA90 30630FFF */ andi $v1, $v1, 0xFFF
/* C4974 8012DA94 00031B00 */ sll $v1, $v1, 12
/* C4978 8012DA98 00021080 */ sll $v0, $v0, 2
/* C497C 8012DA9C 30420FFC */ andi $v0, $v0, 0xFFC
/* C4980 8012DAA0 00521025 */ or $v0, $v0, $s2
/* C4984 8012DAA4 00621825 */ or $v1, $v1, $v0
/* C4988 8012DAA8 ACA30010 */ sw $v1, 0x10($a1)
/* C498C 8012DAAC 97A30004 */ lhu $v1, 0x4($sp)
/* C4990 8012DAB0 97A40006 */ lhu $a0, 0x6($sp)
/* C4994 8012DAB4 24A20018 */ addiu $v0, $a1, 0x18
/* C4998 8012DAB8 AD020000 */ sw $v0, 0x0($t0)
/* C499C 8012DABC ACB00018 */ sw $s0, 0x18($a1)
/* C49A0 8012DAC0 ACA0001C */ sw $zero, 0x1C($a1)
/* C49A4 8012DAC4 00031880 */ sll $v1, $v1, 2
/* C49A8 8012DAC8 30630FFC */ andi $v1, $v1, 0xFFC
/* C49AC 8012DACC 00031B00 */ sll $v1, $v1, 12
/* C49B0 8012DAD0 00042080 */ sll $a0, $a0, 2
/* C49B4 8012DAD4 30840FFC */ andi $a0, $a0, 0xFFC
/* C49B8 8012DAD8 00912025 */ or $a0, $a0, $s1
/* C49BC 8012DADC 00641825 */ or $v1, $v1, $a0
/* C49C0 8012DAE0 ACA30014 */ sw $v1, 0x14($a1)
/* C49C4 8012DAE4 97A20004 */ lhu $v0, 0x4($sp)
/* C49C8 8012DAE8 87A40000 */ lh $a0, 0x0($sp)
/* C49CC 8012DAEC 24A30020 */ addiu $v1, $a1, 0x20
/* C49D0 8012DAF0 AD030000 */ sw $v1, 0x0($t0)
/* C49D4 8012DAF4 ACAB0024 */ sw $t3, 0x24($a1)
/* C49D8 8012DAF8 00021400 */ sll $v0, $v0, 16
/* C49DC 8012DAFC 00021403 */ sra $v0, $v0, 16
/* C49E0 8012DB00 00441023 */ subu $v0, $v0, $a0
/* C49E4 8012DB04 24420008 */ addiu $v0, $v0, 0x8
/* C49E8 8012DB08 000210C3 */ sra $v0, $v0, 3
/* C49EC 8012DB0C 304201FF */ andi $v0, $v0, 0x1FF
/* C49F0 8012DB10 00021240 */ sll $v0, $v0, 9
/* C49F4 8012DB14 00541025 */ or $v0, $v0, $s4
.LIQUE_8012DB18:
/* C49F8 8012DB18 01221025 */ or $v0, $t1, $v0
/* C49FC 8012DB1C ACA20020 */ sw $v0, 0x20($a1)
/* C4A00 8012DB20 87A30000 */ lh $v1, 0x0($sp)
/* C4A04 8012DB24 24A20028 */ addiu $v0, $a1, 0x28
/* C4A08 8012DB28 AD020000 */ sw $v0, 0x0($t0)
/* C4A0C 8012DB2C 97A20002 */ lhu $v0, 0x2($sp)
/* C4A10 8012DB30 00031880 */ sll $v1, $v1, 2
/* C4A14 8012DB34 30630FFF */ andi $v1, $v1, 0xFFF
/* C4A18 8012DB38 00031B00 */ sll $v1, $v1, 12
/* C4A1C 8012DB3C 00021080 */ sll $v0, $v0, 2
/* C4A20 8012DB40 30420FFC */ andi $v0, $v0, 0xFFC
/* C4A24 8012DB44 00591025 */ or $v0, $v0, $t9
/* C4A28 8012DB48 00621825 */ or $v1, $v1, $v0
/* C4A2C 8012DB4C ACA30028 */ sw $v1, 0x28($a1)
/* C4A30 8012DB50 97A30004 */ lhu $v1, 0x4($sp)
/* C4A34 8012DB54 24A20030 */ addiu $v0, $a1, 0x30
/* C4A38 8012DB58 AD020000 */ sw $v0, 0x0($t0)
/* C4A3C 8012DB5C 97A20006 */ lhu $v0, 0x6($sp)
/* C4A40 8012DB60 00031880 */ sll $v1, $v1, 2
/* C4A44 8012DB64 30630FFC */ andi $v1, $v1, 0xFFC
/* C4A48 8012DB68 00031B00 */ sll $v1, $v1, 12
/* C4A4C 8012DB6C 00021080 */ sll $v0, $v0, 2
/* C4A50 8012DB70 30420FFC */ andi $v0, $v0, 0xFFC
/* C4A54 8012DB74 00621825 */ or $v1, $v1, $v0
/* C4A58 8012DB78 ACA3002C */ sw $v1, 0x2C($a1)
/* C4A5C 8012DB7C 3C070400 */ lui $a3, (0x4000400 >> 16)
.LIQUE_8012DB80:
/* C4A60 8012DB80 34E70400 */ ori $a3, $a3, (0x4000400 & 0xFFFF)
/* C4A64 8012DB84 3C03E400 */ lui $v1, (0xE4000000 >> 16)
/* C4A68 8012DB88 8D050000 */ lw $a1, 0x0($t0)
/* C4A6C 8012DB8C 87A4000C */ lh $a0, 0xC($sp)
/* C4A70 8012DB90 00A0302D */ daddu $a2, $a1, $zero
/* C4A74 8012DB94 24A50008 */ addiu $a1, $a1, 0x8
/* C4A78 8012DB98 00042080 */ sll $a0, $a0, 2
/* C4A7C 8012DB9C 30840FFF */ andi $a0, $a0, 0xFFF
/* C4A80 8012DBA0 AD050000 */ sw $a1, 0x0($t0)
/* C4A84 8012DBA4 87A2000E */ lh $v0, 0xE($sp)
/* C4A88 8012DBA8 00042300 */ sll $a0, $a0, 12
/* C4A8C 8012DBAC 00021080 */ sll $v0, $v0, 2
/* C4A90 8012DBB0 30420FFF */ andi $v0, $v0, 0xFFF
/* C4A94 8012DBB4 00431025 */ or $v0, $v0, $v1
/* C4A98 8012DBB8 00822025 */ or $a0, $a0, $v0
/* C4A9C 8012DBBC 24A20008 */ addiu $v0, $a1, 0x8
/* C4AA0 8012DBC0 ACC40000 */ sw $a0, 0x0($a2)
/* C4AA4 8012DBC4 AD020000 */ sw $v0, 0x0($t0)
/* C4AA8 8012DBC8 87A30008 */ lh $v1, 0x8($sp)
/* C4AAC 8012DBCC 24A20010 */ addiu $v0, $a1, 0x10
/* C4AB0 8012DBD0 AD020000 */ sw $v0, 0x0($t0)
/* C4AB4 8012DBD4 87A2000A */ lh $v0, 0xA($sp)
/* C4AB8 8012DBD8 00031880 */ sll $v1, $v1, 2
/* C4ABC 8012DBDC 30630FFF */ andi $v1, $v1, 0xFFF
/* C4AC0 8012DBE0 00031B00 */ sll $v1, $v1, 12
/* C4AC4 8012DBE4 00021080 */ sll $v0, $v0, 2
/* C4AC8 8012DBE8 30420FFF */ andi $v0, $v0, 0xFFF
/* C4ACC 8012DBEC 00621825 */ or $v1, $v1, $v0
/* C4AD0 8012DBF0 3C02E100 */ lui $v0, (0xE1000000 >> 16)
/* C4AD4 8012DBF4 ACC30004 */ sw $v1, 0x4($a2)
/* C4AD8 8012DBF8 ACA20000 */ sw $v0, 0x0($a1)
/* C4ADC 8012DBFC 97B50056 */ lhu $s5, 0x56($sp)
/* C4AE0 8012DC00 000F1D40 */ sll $v1, $t7, 21
/* C4AE4 8012DC04 ACA7000C */ sw $a3, 0xC($a1)
/* C4AE8 8012DC08 00151140 */ sll $v0, $s5, 5
/* C4AEC 8012DC0C 3042FFE0 */ andi $v0, $v0, 0xFFE0
/* C4AF0 8012DC10 00621825 */ or $v1, $v1, $v0
/* C4AF4 8012DC14 3C02F100 */ lui $v0, (0xF1000000 >> 16)
/* C4AF8 8012DC18 ACA20008 */ sw $v0, 0x8($a1)
/* C4AFC 8012DC1C 31A200FF */ andi $v0, $t5, 0xFF
/* C4B00 8012DC20 14400007 */ bnez $v0, .LIQUE_8012DC40
/* C4B04 8012DC24 ACA30004 */ sw $v1, 0x4($a1)
/* C4B08 8012DC28 97A20000 */ lhu $v0, 0x0($sp)
/* C4B0C 8012DC2C 97A3000C */ lhu $v1, 0xC($sp)
/* C4B10 8012DC30 24420040 */ addiu $v0, $v0, 0x40
/* C4B14 8012DC34 A7A20000 */ sh $v0, 0x0($sp)
/* C4B18 8012DC38 0804B5B1 */ j .LIQUE_8012D6C4
/* C4B1C 8012DC3C A7A30008 */ sh $v1, 0x8($sp)
.LIQUE_8012DC40:
/* C4B20 8012DC40 93A20020 */ lbu $v0, 0x20($sp)
/* C4B24 8012DC44 14400007 */ bnez $v0, .LIQUE_8012DC64
/* C4B28 8012DC48 24020001 */ addiu $v0, $zero, 0x1
/* C4B2C 8012DC4C 97A20002 */ lhu $v0, 0x2($sp)
/* C4B30 8012DC50 97A3000E */ lhu $v1, 0xE($sp)
/* C4B34 8012DC54 24420020 */ addiu $v0, $v0, 0x20
/* C4B38 8012DC58 A7A20002 */ sh $v0, 0x2($sp)
/* C4B3C 8012DC5C 0804B559 */ j .LIQUE_8012D564
/* C4B40 8012DC60 A7A3000A */ sh $v1, 0xA($sp)
.LIQUE_8012DC64:
/* C4B44 8012DC64 8FBE0078 */ lw $fp, 0x78($sp)
/* C4B48 8012DC68 8FB70074 */ lw $s7, 0x74($sp)
/* C4B4C 8012DC6C 8FB60070 */ lw $s6, 0x70($sp)
/* C4B50 8012DC70 8FB5006C */ lw $s5, 0x6C($sp)
/* C4B54 8012DC74 8FB40068 */ lw $s4, 0x68($sp)
/* C4B58 8012DC78 8FB30064 */ lw $s3, 0x64($sp)
/* C4B5C 8012DC7C 8FB20060 */ lw $s2, 0x60($sp)
/* C4B60 8012DC80 8FB1005C */ lw $s1, 0x5C($sp)
/* C4B64 8012DC84 8FB00058 */ lw $s0, 0x58($sp)
/* C4B68 8012DC88 03E00008 */ jr $ra
/* C4B6C 8012DC8C 27BD0080 */ addiu $sp, $sp, 0x80