mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
403 lines
21 KiB
ArmAsm
403 lines
21 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
glabel func_E0090444
|
|
/* 38FD44 E0090444 27BDFF40 */ addiu $sp, $sp, -0xc0
|
|
/* 38FD48 E0090448 0080482D */ daddu $t1, $a0, $zero
|
|
/* 38FD4C E009044C AFBF00AC */ sw $ra, 0xac($sp)
|
|
/* 38FD50 E0090450 AFB400A8 */ sw $s4, 0xa8($sp)
|
|
/* 38FD54 E0090454 AFB300A4 */ sw $s3, 0xa4($sp)
|
|
/* 38FD58 E0090458 AFB200A0 */ sw $s2, 0xa0($sp)
|
|
/* 38FD5C E009045C AFB1009C */ sw $s1, 0x9c($sp)
|
|
/* 38FD60 E0090460 AFB00098 */ sw $s0, 0x98($sp)
|
|
/* 38FD64 E0090464 F7B600B8 */ sdc1 $f22, 0xb8($sp)
|
|
/* 38FD68 E0090468 F7B400B0 */ sdc1 $f20, 0xb0($sp)
|
|
/* 38FD6C E009046C 8D33000C */ lw $s3, 0xc($t1)
|
|
/* 38FD70 E0090470 8E670000 */ lw $a3, ($s3)
|
|
/* 38FD74 E0090474 8E620024 */ lw $v0, 0x24($s3)
|
|
/* 38FD78 E0090478 8E63001C */ lw $v1, 0x1c($s3)
|
|
/* 38FD7C E009047C 10400163 */ beqz $v0, .LE0090A0C
|
|
/* 38FD80 E0090480 3C04DB06 */ lui $a0, 0xdb06
|
|
/* 38FD84 E0090484 34840024 */ ori $a0, $a0, 0x24
|
|
/* 38FD88 E0090488 3C05E200 */ lui $a1, 0xe200
|
|
/* 38FD8C E009048C 34A51D00 */ ori $a1, $a1, 0x1d00
|
|
/* 38FD90 E0090490 3C14800A */ lui $s4, %hi(D_8009A66C)
|
|
/* 38FD94 E0090494 2694A66C */ addiu $s4, $s4, %lo(D_8009A66C)
|
|
/* 38FD98 E0090498 240200C8 */ addiu $v0, $zero, 0xc8
|
|
/* 38FD9C E009049C 8E880000 */ lw $t0, ($s4)
|
|
/* 38FDA0 E00904A0 00433023 */ subu $a2, $v0, $v1
|
|
/* 38FDA4 E00904A4 0100182D */ daddu $v1, $t0, $zero
|
|
/* 38FDA8 E00904A8 25080008 */ addiu $t0, $t0, 8
|
|
/* 38FDAC E00904AC AE880000 */ sw $t0, ($s4)
|
|
/* 38FDB0 E00904B0 C6760028 */ lwc1 $f22, 0x28($s3)
|
|
/* 38FDB4 E00904B4 3C02E700 */ lui $v0, 0xe700
|
|
/* 38FDB8 E00904B8 AC620000 */ sw $v0, ($v1)
|
|
/* 38FDBC E00904BC AC600004 */ sw $zero, 4($v1)
|
|
/* 38FDC0 E00904C0 AD040000 */ sw $a0, ($t0)
|
|
/* 38FDC4 E00904C4 8D230010 */ lw $v1, 0x10($t1)
|
|
/* 38FDC8 E00904C8 25020008 */ addiu $v0, $t0, 8
|
|
/* 38FDCC E00904CC AE820000 */ sw $v0, ($s4)
|
|
/* 38FDD0 E00904D0 8C63001C */ lw $v1, 0x1c($v1)
|
|
/* 38FDD4 E00904D4 25020010 */ addiu $v0, $t0, 0x10
|
|
/* 38FDD8 E00904D8 AE820000 */ sw $v0, ($s4)
|
|
/* 38FDDC E00904DC 24020004 */ addiu $v0, $zero, 4
|
|
/* 38FDE0 E00904E0 AD02000C */ sw $v0, 0xc($t0)
|
|
/* 38FDE4 E00904E4 3C028000 */ lui $v0, 0x8000
|
|
/* 38FDE8 E00904E8 AD050008 */ sw $a1, 8($t0)
|
|
/* 38FDEC E00904EC 00621821 */ addu $v1, $v1, $v0
|
|
/* 38FDF0 E00904F0 04C10002 */ bgez $a2, .LE00904FC
|
|
/* 38FDF4 E00904F4 AD030004 */ sw $v1, 4($t0)
|
|
/* 38FDF8 E00904F8 0000302D */ daddu $a2, $zero, $zero
|
|
.LE00904FC:
|
|
/* 38FDFC E00904FC 25020018 */ addiu $v0, $t0, 0x18
|
|
/* 38FE00 E0090500 AE820000 */ sw $v0, ($s4)
|
|
/* 38FE04 E0090504 3C02EE00 */ lui $v0, 0xee00
|
|
/* 38FE08 E0090508 AD020010 */ sw $v0, 0x10($t0)
|
|
/* 38FE0C E009050C 00061400 */ sll $v0, $a2, 0x10
|
|
/* 38FE10 E0090510 AD020014 */ sw $v0, 0x14($t0)
|
|
/* 38FE14 E0090514 28E20005 */ slti $v0, $a3, 5
|
|
/* 38FE18 E0090518 1040006F */ beqz $v0, .LE00906D8
|
|
/* 38FE1C E009051C 3C120001 */ lui $s2, 1
|
|
/* 38FE20 E0090520 27A40018 */ addiu $a0, $sp, 0x18
|
|
/* 38FE24 E0090524 8E650008 */ lw $a1, 8($s3)
|
|
/* 38FE28 E0090528 8E66000C */ lw $a2, 0xc($s3)
|
|
/* 38FE2C E009052C 8E670010 */ lw $a3, 0x10($s3)
|
|
/* 38FE30 E0090530 0C080108 */ jal func_E0200420
|
|
/* 38FE34 E0090534 36521630 */ ori $s2, $s2, 0x1630
|
|
/* 38FE38 E0090538 27B00058 */ addiu $s0, $sp, 0x58
|
|
/* 38FE3C E009053C 3C013F80 */ lui $at, 0x3f80
|
|
/* 38FE40 E0090540 4481A000 */ mtc1 $at, $f20
|
|
/* 38FE44 E0090544 3C038007 */ lui $v1, %hi(gCurrentCameraID)
|
|
/* 38FE48 E0090548 8C637410 */ lw $v1, %lo(gCurrentCameraID)($v1)
|
|
/* 38FE4C E009054C 44800000 */ mtc1 $zero, $f0
|
|
/* 38FE50 E0090550 00031080 */ sll $v0, $v1, 2
|
|
/* 38FE54 E0090554 00431021 */ addu $v0, $v0, $v1
|
|
/* 38FE58 E0090558 00021080 */ sll $v0, $v0, 2
|
|
/* 38FE5C E009055C 00431023 */ subu $v0, $v0, $v1
|
|
/* 38FE60 E0090560 000218C0 */ sll $v1, $v0, 3
|
|
/* 38FE64 E0090564 00431021 */ addu $v0, $v0, $v1
|
|
/* 38FE68 E0090568 000210C0 */ sll $v0, $v0, 3
|
|
/* 38FE6C E009056C 44060000 */ mfc1 $a2, $f0
|
|
/* 38FE70 E0090570 3C01800B */ lui $at, %hi(D_800B1DEC)
|
|
/* 38FE74 E0090574 00220821 */ addu $at, $at, $v0
|
|
/* 38FE78 E0090578 C4201DEC */ lwc1 $f0, %lo(D_800B1DEC)($at)
|
|
/* 38FE7C E009057C 4407A000 */ mfc1 $a3, $f20
|
|
/* 38FE80 E0090580 46000007 */ neg.s $f0, $f0
|
|
/* 38FE84 E0090584 44050000 */ mfc1 $a1, $f0
|
|
/* 38FE88 E0090588 0200202D */ daddu $a0, $s0, $zero
|
|
/* 38FE8C E009058C 0C080104 */ jal func_E0200410
|
|
/* 38FE90 E0090590 AFA60010 */ sw $a2, 0x10($sp)
|
|
/* 38FE94 E0090594 0200202D */ daddu $a0, $s0, $zero
|
|
/* 38FE98 E0090598 27A50018 */ addiu $a1, $sp, 0x18
|
|
/* 38FE9C E009059C 0C080114 */ jal func_E0200450
|
|
/* 38FEA0 E00905A0 00A0302D */ daddu $a2, $a1, $zero
|
|
/* 38FEA4 E00905A4 0200202D */ daddu $a0, $s0, $zero
|
|
/* 38FEA8 E00905A8 4405B000 */ mfc1 $a1, $f22
|
|
/* 38FEAC E00905AC 4407A000 */ mfc1 $a3, $f20
|
|
/* 38FEB0 E00905B0 0C080110 */ jal func_E0200440
|
|
/* 38FEB4 E00905B4 00A0302D */ daddu $a2, $a1, $zero
|
|
/* 38FEB8 E00905B8 0200202D */ daddu $a0, $s0, $zero
|
|
/* 38FEBC E00905BC 27A50018 */ addiu $a1, $sp, 0x18
|
|
/* 38FEC0 E00905C0 0C080114 */ jal func_E0200450
|
|
/* 38FEC4 E00905C4 00A0302D */ daddu $a2, $a1, $zero
|
|
/* 38FEC8 E00905C8 27A40018 */ addiu $a0, $sp, 0x18
|
|
/* 38FECC E00905CC 3C108007 */ lui $s0, %hi(D_800741F0)
|
|
/* 38FED0 E00905D0 261041F0 */ addiu $s0, $s0, %lo(D_800741F0)
|
|
/* 38FED4 E00905D4 3C11800A */ lui $s1, %hi(D_8009A674)
|
|
/* 38FED8 E00905D8 2631A674 */ addiu $s1, $s1, %lo(D_8009A674)
|
|
/* 38FEDC E00905DC 96050000 */ lhu $a1, ($s0)
|
|
/* 38FEE0 E00905E0 8E220000 */ lw $v0, ($s1)
|
|
/* 38FEE4 E00905E4 00052980 */ sll $a1, $a1, 6
|
|
/* 38FEE8 E00905E8 00B22821 */ addu $a1, $a1, $s2
|
|
/* 38FEEC E00905EC 0C080118 */ jal func_E0200460
|
|
/* 38FEF0 E00905F0 00452821 */ addu $a1, $v0, $a1
|
|
/* 38FEF4 E00905F4 3C03DA38 */ lui $v1, 0xda38
|
|
/* 38FEF8 E00905F8 34630002 */ ori $v1, $v1, 2
|
|
/* 38FEFC E00905FC 3C06D838 */ lui $a2, 0xd838
|
|
/* 38FF00 E0090600 34C60002 */ ori $a2, $a2, 2
|
|
/* 38FF04 E0090604 8E840000 */ lw $a0, ($s4)
|
|
/* 38FF08 E0090608 96020000 */ lhu $v0, ($s0)
|
|
/* 38FF0C E009060C 0080282D */ daddu $a1, $a0, $zero
|
|
/* 38FF10 E0090610 24840008 */ addiu $a0, $a0, 8
|
|
/* 38FF14 E0090614 AE840000 */ sw $a0, ($s4)
|
|
/* 38FF18 E0090618 ACA30000 */ sw $v1, ($a1)
|
|
/* 38FF1C E009061C 24430001 */ addiu $v1, $v0, 1
|
|
/* 38FF20 E0090620 3042FFFF */ andi $v0, $v0, 0xffff
|
|
/* 38FF24 E0090624 00021180 */ sll $v0, $v0, 6
|
|
/* 38FF28 E0090628 A6030000 */ sh $v1, ($s0)
|
|
/* 38FF2C E009062C 8E230000 */ lw $v1, ($s1)
|
|
/* 38FF30 E0090630 00521021 */ addu $v0, $v0, $s2
|
|
/* 38FF34 E0090634 00621821 */ addu $v1, $v1, $v0
|
|
/* 38FF38 E0090638 24820008 */ addiu $v0, $a0, 8
|
|
/* 38FF3C E009063C ACA30004 */ sw $v1, 4($a1)
|
|
/* 38FF40 E0090640 AE820000 */ sw $v0, ($s4)
|
|
/* 38FF44 E0090644 3C02FA00 */ lui $v0, 0xfa00
|
|
/* 38FF48 E0090648 3C05DE00 */ lui $a1, 0xde00
|
|
/* 38FF4C E009064C AC820000 */ sw $v0, ($a0)
|
|
/* 38FF50 E0090650 92630017 */ lbu $v1, 0x17($s3)
|
|
/* 38FF54 E0090654 3C020900 */ lui $v0, 0x900
|
|
/* 38FF58 E0090658 244215A8 */ addiu $v0, $v0, 0x15a8
|
|
/* 38FF5C E009065C AC82000C */ sw $v0, 0xc($a0)
|
|
/* 38FF60 E0090660 2402FF00 */ addiu $v0, $zero, -0x100
|
|
/* 38FF64 E0090664 AC850008 */ sw $a1, 8($a0)
|
|
/* 38FF68 E0090668 AC850010 */ sw $a1, 0x10($a0)
|
|
/* 38FF6C E009066C 00621825 */ or $v1, $v1, $v0
|
|
/* 38FF70 E0090670 AC830004 */ sw $v1, 4($a0)
|
|
/* 38FF74 E0090674 8E620004 */ lw $v0, 4($s3)
|
|
/* 38FF78 E0090678 24830010 */ addiu $v1, $a0, 0x10
|
|
/* 38FF7C E009067C AE830000 */ sw $v1, ($s4)
|
|
/* 38FF80 E0090680 00021080 */ sll $v0, $v0, 2
|
|
/* 38FF84 E0090684 3C03E009 */ lui $v1, %hi(D_E0090A40)
|
|
/* 38FF88 E0090688 00621821 */ addu $v1, $v1, $v0
|
|
/* 38FF8C E009068C 8C630A40 */ lw $v1, %lo(D_E0090A40)($v1)
|
|
/* 38FF90 E0090690 24820018 */ addiu $v0, $a0, 0x18
|
|
/* 38FF94 E0090694 AE820000 */ sw $v0, ($s4)
|
|
/* 38FF98 E0090698 AC850018 */ sw $a1, 0x18($a0)
|
|
/* 38FF9C E009069C AC830014 */ sw $v1, 0x14($a0)
|
|
/* 38FFA0 E00906A0 8E620004 */ lw $v0, 4($s3)
|
|
/* 38FFA4 E00906A4 24830020 */ addiu $v1, $a0, 0x20
|
|
/* 38FFA8 E00906A8 AE830000 */ sw $v1, ($s4)
|
|
/* 38FFAC E00906AC 00021080 */ sll $v0, $v0, 2
|
|
/* 38FFB0 E00906B0 3C03E009 */ lui $v1, %hi(D_E0090A54)
|
|
/* 38FFB4 E00906B4 00621821 */ addu $v1, $v1, $v0
|
|
/* 38FFB8 E00906B8 8C630A54 */ lw $v1, %lo(D_E0090A54)($v1)
|
|
/* 38FFBC E00906BC 24820028 */ addiu $v0, $a0, 0x28
|
|
/* 38FFC0 E00906C0 AE820000 */ sw $v0, ($s4)
|
|
/* 38FFC4 E00906C4 24020040 */ addiu $v0, $zero, 0x40
|
|
/* 38FFC8 E00906C8 AC860020 */ sw $a2, 0x20($a0)
|
|
/* 38FFCC E00906CC AC820024 */ sw $v0, 0x24($a0)
|
|
/* 38FFD0 E00906D0 08024270 */ j .LE00909C0
|
|
/* 38FFD4 E00906D4 AC83001C */ sw $v1, 0x1c($a0)
|
|
.LE00906D8:
|
|
/* 38FFD8 E00906D8 24E7FFFB */ addiu $a3, $a3, -5
|
|
/* 38FFDC E00906DC 25020020 */ addiu $v0, $t0, 0x20
|
|
/* 38FFE0 E00906E0 AE820000 */ sw $v0, ($s4)
|
|
/* 38FFE4 E00906E4 3C02FA00 */ lui $v0, 0xfa00
|
|
/* 38FFE8 E00906E8 AD020018 */ sw $v0, 0x18($t0)
|
|
/* 38FFEC E00906EC 3C02E009 */ lui $v0, %hi(D_E0090A78)
|
|
/* 38FFF0 E00906F0 24420A78 */ addiu $v0, $v0, %lo(D_E0090A78)
|
|
/* 38FFF4 E00906F4 00072040 */ sll $a0, $a3, 1
|
|
/* 38FFF8 E00906F8 00872021 */ addu $a0, $a0, $a3
|
|
/* 38FFFC E00906FC 00042040 */ sll $a0, $a0, 1
|
|
/* 390000 E0090700 00822021 */ addu $a0, $a0, $v0
|
|
/* 390004 E0090704 90820000 */ lbu $v0, ($a0)
|
|
/* 390008 E0090708 90850001 */ lbu $a1, 1($a0)
|
|
/* 39000C E009070C 90860002 */ lbu $a2, 2($a0)
|
|
/* 390010 E0090710 92670017 */ lbu $a3, 0x17($s3)
|
|
/* 390014 E0090714 25030028 */ addiu $v1, $t0, 0x28
|
|
/* 390018 E0090718 AE830000 */ sw $v1, ($s4)
|
|
/* 39001C E009071C 3C03FB00 */ lui $v1, 0xfb00
|
|
/* 390020 E0090720 AD030020 */ sw $v1, 0x20($t0)
|
|
/* 390024 E0090724 00021600 */ sll $v0, $v0, 0x18
|
|
/* 390028 E0090728 00052C00 */ sll $a1, $a1, 0x10
|
|
/* 39002C E009072C 00451025 */ or $v0, $v0, $a1
|
|
/* 390030 E0090730 00063200 */ sll $a2, $a2, 8
|
|
/* 390034 E0090734 00461025 */ or $v0, $v0, $a2
|
|
/* 390038 E0090738 00471025 */ or $v0, $v0, $a3
|
|
/* 39003C E009073C 3C06DE00 */ lui $a2, 0xde00
|
|
/* 390040 E0090740 AD02001C */ sw $v0, 0x1c($t0)
|
|
/* 390044 E0090744 90830003 */ lbu $v1, 3($a0)
|
|
/* 390048 E0090748 90850004 */ lbu $a1, 4($a0)
|
|
/* 39004C E009074C 90840005 */ lbu $a0, 5($a0)
|
|
/* 390050 E0090750 3C020900 */ lui $v0, 0x900
|
|
/* 390054 E0090754 24421500 */ addiu $v0, $v0, 0x1500
|
|
/* 390058 E0090758 AD060028 */ sw $a2, 0x28($t0)
|
|
/* 39005C E009075C AD02002C */ sw $v0, 0x2c($t0)
|
|
/* 390060 E0090760 AD060030 */ sw $a2, 0x30($t0)
|
|
/* 390064 E0090764 00031E00 */ sll $v1, $v1, 0x18
|
|
/* 390068 E0090768 00052C00 */ sll $a1, $a1, 0x10
|
|
/* 39006C E009076C 00651825 */ or $v1, $v1, $a1
|
|
/* 390070 E0090770 00042200 */ sll $a0, $a0, 8
|
|
/* 390074 E0090774 00641825 */ or $v1, $v1, $a0
|
|
/* 390078 E0090778 AD030024 */ sw $v1, 0x24($t0)
|
|
/* 39007C E009077C 8E620004 */ lw $v0, 4($s3)
|
|
/* 390080 E0090780 3C014300 */ lui $at, 0x4300
|
|
/* 390084 E0090784 44811000 */ mtc1 $at, $f2
|
|
/* 390088 E0090788 00021080 */ sll $v0, $v0, 2
|
|
/* 39008C E009078C 3C01E009 */ lui $at, %hi(D_E0090A40)
|
|
/* 390090 E0090790 00220821 */ addu $at, $at, $v0
|
|
/* 390094 E0090794 8C220A40 */ lw $v0, %lo(D_E0090A40)($at)
|
|
/* 390098 E0090798 25030038 */ addiu $v1, $t0, 0x38
|
|
/* 39009C E009079C AD020034 */ sw $v0, 0x34($t0)
|
|
/* 3900A0 E00907A0 C6600008 */ lwc1 $f0, 8($s3)
|
|
/* 3900A4 E00907A4 46020000 */ add.s $f0, $f0, $f2
|
|
/* 3900A8 E00907A8 3C014080 */ lui $at, 0x4080
|
|
/* 3900AC E00907AC 44811000 */ mtc1 $at, $f2
|
|
/* 3900B0 E00907B0 25020030 */ addiu $v0, $t0, 0x30
|
|
/* 3900B4 E00907B4 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 3900B8 E00907B8 00000000 */ nop
|
|
/* 3900BC E00907BC AE820000 */ sw $v0, ($s4)
|
|
/* 3900C0 E00907C0 25020040 */ addiu $v0, $t0, 0x40
|
|
/* 3900C4 E00907C4 AE830000 */ sw $v1, ($s4)
|
|
/* 3900C8 E00907C8 AE820000 */ sw $v0, ($s4)
|
|
/* 3900CC E00907CC 4600010D */ trunc.w.s $f4, $f0
|
|
/* 3900D0 E00907D0 44022000 */ mfc1 $v0, $f4
|
|
/* 3900D4 E00907D4 00000000 */ nop
|
|
/* 3900D8 E00907D8 00021400 */ sll $v0, $v0, 0x10
|
|
/* 3900DC E00907DC 00021403 */ sra $v0, $v0, 0x10
|
|
/* 3900E0 E00907E0 18400006 */ blez $v0, .LE00907FC
|
|
/* 3900E4 E00907E4 0060202D */ daddu $a0, $v1, $zero
|
|
/* 3900E8 E00907E8 30420FFF */ andi $v0, $v0, 0xfff
|
|
/* 3900EC E00907EC 00021300 */ sll $v0, $v0, 0xc
|
|
/* 3900F0 E00907F0 3C03E400 */ lui $v1, 0xe400
|
|
/* 3900F4 E00907F4 08024200 */ j .LE0090800
|
|
/* 3900F8 E00907F8 00431025 */ or $v0, $v0, $v1
|
|
.LE00907FC:
|
|
/* 3900FC E00907FC 3C02E400 */ lui $v0, 0xe400
|
|
.LE0090800:
|
|
/* 390100 E0090800 C660000C */ lwc1 $f0, 0xc($s3)
|
|
/* 390104 E0090804 3C014280 */ lui $at, 0x4280
|
|
/* 390108 E0090808 44811000 */ mtc1 $at, $f2
|
|
/* 39010C E009080C 00000000 */ nop
|
|
/* 390110 E0090810 46020000 */ add.s $f0, $f0, $f2
|
|
/* 390114 E0090814 3C014080 */ lui $at, 0x4080
|
|
/* 390118 E0090818 44811000 */ mtc1 $at, $f2
|
|
/* 39011C E009081C 00000000 */ nop
|
|
/* 390120 E0090820 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 390124 E0090824 00000000 */ nop
|
|
/* 390128 E0090828 0040182D */ daddu $v1, $v0, $zero
|
|
/* 39012C E009082C 4600010D */ trunc.w.s $f4, $f0
|
|
/* 390130 E0090830 44022000 */ mfc1 $v0, $f4
|
|
/* 390134 E0090834 00000000 */ nop
|
|
/* 390138 E0090838 00021400 */ sll $v0, $v0, 0x10
|
|
/* 39013C E009083C 00021403 */ sra $v0, $v0, 0x10
|
|
/* 390140 E0090840 18400002 */ blez $v0, .LE009084C
|
|
/* 390144 E0090844 30420FFF */ andi $v0, $v0, 0xfff
|
|
/* 390148 E0090848 00621825 */ or $v1, $v1, $v0
|
|
.LE009084C:
|
|
/* 39014C E009084C AC830000 */ sw $v1, ($a0)
|
|
/* 390150 E0090850 C6600008 */ lwc1 $f0, 8($s3)
|
|
/* 390154 E0090854 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 390158 E0090858 00000000 */ nop
|
|
/* 39015C E009085C 4600010D */ trunc.w.s $f4, $f0
|
|
/* 390160 E0090860 44022000 */ mfc1 $v0, $f4
|
|
/* 390164 E0090864 00000000 */ nop
|
|
/* 390168 E0090868 00021400 */ sll $v0, $v0, 0x10
|
|
/* 39016C E009086C 00021403 */ sra $v0, $v0, 0x10
|
|
/* 390170 E0090870 18400004 */ blez $v0, .LE0090884
|
|
/* 390174 E0090874 24860004 */ addiu $a2, $a0, 4
|
|
/* 390178 E0090878 30420FFF */ andi $v0, $v0, 0xfff
|
|
/* 39017C E009087C 08024222 */ j .LE0090888
|
|
/* 390180 E0090880 00021300 */ sll $v0, $v0, 0xc
|
|
.LE0090884:
|
|
/* 390184 E0090884 0000102D */ daddu $v0, $zero, $zero
|
|
.LE0090888:
|
|
/* 390188 E0090888 C660000C */ lwc1 $f0, 0xc($s3)
|
|
/* 39018C E009088C 3C014080 */ lui $at, 0x4080
|
|
/* 390190 E0090890 44811000 */ mtc1 $at, $f2
|
|
/* 390194 E0090894 00000000 */ nop
|
|
/* 390198 E0090898 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 39019C E009089C 00000000 */ nop
|
|
/* 3901A0 E00908A0 0040202D */ daddu $a0, $v0, $zero
|
|
/* 3901A4 E00908A4 4600010D */ trunc.w.s $f4, $f0
|
|
/* 3901A8 E00908A8 44022000 */ mfc1 $v0, $f4
|
|
/* 3901AC E00908AC 00000000 */ nop
|
|
/* 3901B0 E00908B0 00021400 */ sll $v0, $v0, 0x10
|
|
/* 3901B4 E00908B4 00021403 */ sra $v0, $v0, 0x10
|
|
/* 3901B8 E00908B8 18400002 */ blez $v0, .LE00908C4
|
|
/* 3901BC E00908BC 30420FFF */ andi $v0, $v0, 0xfff
|
|
/* 3901C0 E00908C0 00822025 */ or $a0, $a0, $v0
|
|
.LE00908C4:
|
|
/* 3901C4 E00908C4 3C05800A */ lui $a1, %hi(D_8009A66C)
|
|
/* 3901C8 E00908C8 24A5A66C */ addiu $a1, $a1, %lo(D_8009A66C)
|
|
/* 3901CC E00908CC 8CA30000 */ lw $v1, ($a1)
|
|
/* 3901D0 E00908D0 3C02E100 */ lui $v0, 0xe100
|
|
/* 3901D4 E00908D4 ACC40000 */ sw $a0, ($a2)
|
|
/* 3901D8 E00908D8 0060202D */ daddu $a0, $v1, $zero
|
|
/* 3901DC E00908DC AC820000 */ sw $v0, ($a0)
|
|
/* 3901E0 E00908E0 C6600008 */ lwc1 $f0, 8($s3)
|
|
/* 3901E4 E00908E4 46020002 */ mul.s $f0, $f0, $f2
|
|
/* 3901E8 E00908E8 00000000 */ nop
|
|
/* 3901EC E00908EC 24630008 */ addiu $v1, $v1, 8
|
|
/* 3901F0 E00908F0 24860004 */ addiu $a2, $a0, 4
|
|
/* 3901F4 E00908F4 4600010D */ trunc.w.s $f4, $f0
|
|
/* 3901F8 E00908F8 44022000 */ mfc1 $v0, $f4
|
|
/* 3901FC E00908FC 00000000 */ nop
|
|
/* 390200 E0090900 00021400 */ sll $v0, $v0, 0x10
|
|
/* 390204 E0090904 00021403 */ sra $v0, $v0, 0x10
|
|
/* 390208 E0090908 04410007 */ bgez $v0, .LE0090928
|
|
/* 39020C E009090C ACA30000 */ sw $v1, ($a1)
|
|
/* 390210 E0090910 00021080 */ sll $v0, $v0, 2
|
|
/* 390214 E0090914 5C400001 */ bgtzl $v0, .LE009091C
|
|
/* 390218 E0090918 0000102D */ daddu $v0, $zero, $zero
|
|
.LE009091C:
|
|
/* 39021C E009091C 00021023 */ negu $v0, $v0
|
|
/* 390220 E0090920 0802424B */ j .LE009092C
|
|
/* 390224 E0090924 00022400 */ sll $a0, $v0, 0x10
|
|
.LE0090928:
|
|
/* 390228 E0090928 0000202D */ daddu $a0, $zero, $zero
|
|
.LE009092C:
|
|
/* 39022C E009092C C660000C */ lwc1 $f0, 0xc($s3)
|
|
/* 390230 E0090930 3C014080 */ lui $at, 0x4080
|
|
/* 390234 E0090934 44811000 */ mtc1 $at, $f2
|
|
/* 390238 E0090938 00000000 */ nop
|
|
/* 39023C E009093C 46020082 */ mul.s $f2, $f0, $f2
|
|
/* 390240 E0090940 00000000 */ nop
|
|
/* 390244 E0090944 44800000 */ mtc1 $zero, $f0
|
|
/* 390248 E0090948 00000000 */ nop
|
|
/* 39024C E009094C 4600103C */ c.lt.s $f2, $f0
|
|
/* 390250 E0090950 00000000 */ nop
|
|
/* 390254 E0090954 4500000E */ bc1f .LE0090990
|
|
/* 390258 E0090958 34830400 */ ori $v1, $a0, 0x400
|
|
/* 39025C E009095C 4600110D */ trunc.w.s $f4, $f2
|
|
/* 390260 E0090960 44022000 */ mfc1 $v0, $f4
|
|
/* 390264 E0090964 00000000 */ nop
|
|
/* 390268 E0090968 00021400 */ sll $v0, $v0, 0x10
|
|
/* 39026C E009096C 000211C3 */ sra $v0, $v0, 7
|
|
/* 390270 E0090970 00021023 */ negu $v0, $v0
|
|
/* 390274 E0090974 000219C3 */ sra $v1, $v0, 7
|
|
/* 390278 E0090978 04620001 */ bltzl $v1, .LE0090980
|
|
/* 39027C E009097C 0000182D */ daddu $v1, $zero, $zero
|
|
.LE0090980:
|
|
/* 390280 E0090980 24020400 */ addiu $v0, $zero, 0x400
|
|
/* 390284 E0090984 00431023 */ subu $v0, $v0, $v1
|
|
/* 390288 E0090988 3042FFFF */ andi $v0, $v0, 0xffff
|
|
/* 39028C E009098C 00821825 */ or $v1, $a0, $v0
|
|
.LE0090990:
|
|
/* 390290 E0090990 3C050200 */ lui $a1, 0x200
|
|
/* 390294 E0090994 3C04800A */ lui $a0, %hi(D_8009A66C)
|
|
/* 390298 E0090998 2484A66C */ addiu $a0, $a0, %lo(D_8009A66C)
|
|
/* 39029C E009099C 8C820000 */ lw $v0, ($a0)
|
|
/* 3902A0 E00909A0 34A5FE00 */ ori $a1, $a1, 0xfe00
|
|
/* 3902A4 E00909A4 ACC30000 */ sw $v1, ($a2)
|
|
/* 3902A8 E00909A8 0040182D */ daddu $v1, $v0, $zero
|
|
/* 3902AC E00909AC 24420008 */ addiu $v0, $v0, 8
|
|
/* 3902B0 E00909B0 AC820000 */ sw $v0, ($a0)
|
|
/* 3902B4 E00909B4 3C02F100 */ lui $v0, 0xf100
|
|
/* 3902B8 E00909B8 AC620000 */ sw $v0, ($v1)
|
|
/* 3902BC E00909BC AC650004 */ sw $a1, 4($v1)
|
|
.LE00909C0:
|
|
/* 3902C0 E00909C0 3C06E200 */ lui $a2, 0xe200
|
|
/* 3902C4 E00909C4 3C04800A */ lui $a0, %hi(D_8009A66C)
|
|
/* 3902C8 E00909C8 2484A66C */ addiu $a0, $a0, %lo(D_8009A66C)
|
|
/* 3902CC E00909CC 34C61D00 */ ori $a2, $a2, 0x1d00
|
|
/* 3902D0 E00909D0 8C820000 */ lw $v0, ($a0)
|
|
/* 3902D4 E00909D4 3C05E700 */ lui $a1, 0xe700
|
|
/* 3902D8 E00909D8 0040182D */ daddu $v1, $v0, $zero
|
|
/* 3902DC E00909DC 24420008 */ addiu $v0, $v0, 8
|
|
/* 3902E0 E00909E0 AC820000 */ sw $v0, ($a0)
|
|
/* 3902E4 E00909E4 AC650000 */ sw $a1, ($v1)
|
|
/* 3902E8 E00909E8 AC600004 */ sw $zero, 4($v1)
|
|
/* 3902EC E00909EC 24430008 */ addiu $v1, $v0, 8
|
|
/* 3902F0 E00909F0 AC830000 */ sw $v1, ($a0)
|
|
/* 3902F4 E00909F4 24430010 */ addiu $v1, $v0, 0x10
|
|
/* 3902F8 E00909F8 AC460000 */ sw $a2, ($v0)
|
|
/* 3902FC E00909FC AC400004 */ sw $zero, 4($v0)
|
|
/* 390300 E0090A00 AC830000 */ sw $v1, ($a0)
|
|
/* 390304 E0090A04 AC450008 */ sw $a1, 8($v0)
|
|
/* 390308 E0090A08 AC40000C */ sw $zero, 0xc($v0)
|
|
.LE0090A0C:
|
|
/* 39030C E0090A0C 8FBF00AC */ lw $ra, 0xac($sp)
|
|
/* 390310 E0090A10 8FB400A8 */ lw $s4, 0xa8($sp)
|
|
/* 390314 E0090A14 8FB300A4 */ lw $s3, 0xa4($sp)
|
|
/* 390318 E0090A18 8FB200A0 */ lw $s2, 0xa0($sp)
|
|
/* 39031C E0090A1C 8FB1009C */ lw $s1, 0x9c($sp)
|
|
/* 390320 E0090A20 8FB00098 */ lw $s0, 0x98($sp)
|
|
/* 390324 E0090A24 D7B600B8 */ ldc1 $f22, 0xb8($sp)
|
|
/* 390328 E0090A28 D7B400B0 */ ldc1 $f20, 0xb0($sp)
|
|
/* 39032C E0090A2C 03E00008 */ jr $ra
|
|
/* 390330 E0090A30 27BD00C0 */ addiu $sp, $sp, 0xc0
|
|
/* 390334 E0090A34 00000000 */ nop
|
|
/* 390338 E0090A38 00000000 */ nop
|
|
/* 39033C E0090A3C 00000000 */ nop
|