papermario/ver/us/asm/os/lookathil/guLookAtHiliteF.s
JoshDuMan bd56f6060f
Decomp Some Libultra (#588)
* Work on KMC Libultra

* libultra decomp

* fix
2021-12-29 15:14:20 -05:00

655 lines
31 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
dlabel D_80099B70
.double -1.0
dlabel D_80099B78
.double 1.0
dlabel D_80099B80
.double 0.1
dlabel D_80099B88
.double 1.0
dlabel D_80099B90
.double 0.1, 0.0
.section .text
glabel guLookAtHiliteF
/* 3DCC0 800628C0 27BDFF88 */ addiu $sp, $sp, -0x78
/* 3DCC4 800628C4 F7BE0070 */ sdc1 $f30, 0x70($sp)
/* 3DCC8 800628C8 C7BE009C */ lwc1 $f30, 0x9c($sp)
/* 3DCCC 800628CC AFB50034 */ sw $s5, 0x34($sp)
/* 3DCD0 800628D0 8FB500A0 */ lw $s5, 0xa0($sp)
/* 3DCD4 800628D4 F7BC0068 */ sdc1 $f28, 0x68($sp)
/* 3DCD8 800628D8 C7BC00A4 */ lwc1 $f28, 0xa4($sp)
/* 3DCDC 800628DC F7B40048 */ sdc1 $f20, 0x48($sp)
/* 3DCE0 800628E0 C7B40090 */ lwc1 $f20, 0x90($sp)
/* 3DCE4 800628E4 F7B60050 */ sdc1 $f22, 0x50($sp)
/* 3DCE8 800628E8 C7B60094 */ lwc1 $f22, 0x94($sp)
/* 3DCEC 800628EC F7B80058 */ sdc1 $f24, 0x58($sp)
/* 3DCF0 800628F0 C7B80098 */ lwc1 $f24, 0x98($sp)
/* 3DCF4 800628F4 AFB10024 */ sw $s1, 0x24($sp)
/* 3DCF8 800628F8 00808821 */ addu $s1, $a0, $zero
/* 3DCFC 800628FC AFB00020 */ sw $s0, 0x20($sp)
/* 3DD00 80062900 00A08021 */ addu $s0, $a1, $zero
/* 3DD04 80062904 AFBF0044 */ sw $ra, 0x44($sp)
/* 3DD08 80062908 AFBE0040 */ sw $fp, 0x40($sp)
/* 3DD0C 8006290C AFB7003C */ sw $s7, 0x3c($sp)
/* 3DD10 80062910 AFB60038 */ sw $s6, 0x38($sp)
/* 3DD14 80062914 AFB40030 */ sw $s4, 0x30($sp)
/* 3DD18 80062918 AFB3002C */ sw $s3, 0x2c($sp)
/* 3DD1C 8006291C AFB20028 */ sw $s2, 0x28($sp)
/* 3DD20 80062920 F7BA0060 */ sdc1 $f26, 0x60($sp)
/* 3DD24 80062924 AFA60014 */ sw $a2, 0x14($sp)
/* 3DD28 80062928 0C019D28 */ jal guMtxIdentF
/* 3DD2C 8006292C AFA7001C */ sw $a3, 0x1c($sp)
/* 3DD30 80062930 C7B00088 */ lwc1 $f16, 0x88($sp)
/* 3DD34 80062934 4610B401 */ sub.s $f16, $f22, $f16
/* 3DD38 80062938 C7AE001C */ lwc1 $f14, 0x1c($sp)
/* 3DD3C 8006293C 44178000 */ mfc1 $s7, $f16
/* 3DD40 80062940 460EA501 */ sub.s $f20, $f20, $f14
/* 3DD44 80062944 44977000 */ mtc1 $s7, $f14
/* 3DD48 80062948 00000000 */ nop
/* 3DD4C 8006294C 460E8102 */ mul.s $f4, $f16, $f14
/* 3DD50 80062950 C7B0008C */ lwc1 $f16, 0x8c($sp)
/* 3DD54 80062954 4610C401 */ sub.s $f16, $f24, $f16
/* 3DD58 80062958 4614A002 */ mul.s $f0, $f20, $f20
/* 3DD5C 8006295C 44168000 */ mfc1 $s6, $f16
/* 3DD60 80062960 00000000 */ nop
/* 3DD64 80062964 44967000 */ mtc1 $s6, $f14
/* 3DD68 80062968 00000000 */ nop
/* 3DD6C 8006296C 460E8082 */ mul.s $f2, $f16, $f14
/* 3DD70 80062970 46040000 */ add.s $f0, $f0, $f4
/* 3DD74 80062974 46020300 */ add.s $f12, $f0, $f2
/* 3DD78 80062978 46006084 */ sqrt.s $f2, $f12
/* 3DD7C 8006297C 46021032 */ c.eq.s $f2, $f2
/* 3DD80 80062980 441EA000 */ mfc1 $fp, $f20
/* 3DD84 80062984 45010004 */ bc1t .L80062998
/* 3DD88 80062988 00000000 */ nop
/* 3DD8C 8006298C 0C0187BC */ jal sqrtf
/* 3DD90 80062990 00000000 */ nop
/* 3DD94 80062994 46000086 */ mov.s $f2, $f0
.L80062998:
/* 3DD98 80062998 3C01800A */ lui $at, %hi(D_80099B70)
/* 3DD9C 8006299C D4209B70 */ ldc1 $f0, %lo(D_80099B70)($at)
/* 3DDA0 800629A0 460010A1 */ cvt.d.s $f2, $f2
/* 3DDA4 800629A4 46220003 */ div.d $f0, $f0, $f2
/* 3DDA8 800629A8 449E8000 */ mtc1 $fp, $f16
/* 3DDAC 800629AC 46200020 */ cvt.s.d $f0, $f0
/* 3DDB0 800629B0 46008402 */ mul.s $f16, $f16, $f0
/* 3DDB4 800629B4 441E8000 */ mfc1 $fp, $f16
/* 3DDB8 800629B8 44978000 */ mtc1 $s7, $f16
/* 3DDBC 800629BC 00000000 */ nop
/* 3DDC0 800629C0 46008402 */ mul.s $f16, $f16, $f0
/* 3DDC4 800629C4 44967000 */ mtc1 $s6, $f14
/* 3DDC8 800629C8 00000000 */ nop
/* 3DDCC 800629CC 46007382 */ mul.s $f14, $f14, $f0
/* 3DDD0 800629D0 44178000 */ mfc1 $s7, $f16
/* 3DDD4 800629D4 44958000 */ mtc1 $s5, $f16
/* 3DDD8 800629D8 00000000 */ nop
/* 3DDDC 800629DC 460E8102 */ mul.s $f4, $f16, $f14
/* 3DDE0 800629E0 44167000 */ mfc1 $s6, $f14
/* 3DDE4 800629E4 44977000 */ mtc1 $s7, $f14
/* 3DDE8 800629E8 00000000 */ nop
/* 3DDEC 800629EC 460EE002 */ mul.s $f0, $f28, $f14
/* 3DDF0 800629F0 449E8000 */ mtc1 $fp, $f16
/* 3DDF4 800629F4 00000000 */ nop
/* 3DDF8 800629F8 4610E202 */ mul.s $f8, $f28, $f16
/* 3DDFC 800629FC 44967000 */ mtc1 $s6, $f14
/* 3DE00 80062A00 00000000 */ nop
/* 3DE04 80062A04 460EF082 */ mul.s $f2, $f30, $f14
/* 3DE08 80062A08 44978000 */ mtc1 $s7, $f16
/* 3DE0C 80062A0C 00000000 */ nop
/* 3DE10 80062A10 4610F282 */ mul.s $f10, $f30, $f16
/* 3DE14 80062A14 44957000 */ mtc1 $s5, $f14
/* 3DE18 80062A18 449E8000 */ mtc1 $fp, $f16
/* 3DE1C 80062A1C 00000000 */ nop
/* 3DE20 80062A20 46107182 */ mul.s $f6, $f14, $f16
/* 3DE24 80062A24 46002101 */ sub.s $f4, $f4, $f0
/* 3DE28 80062A28 46042002 */ mul.s $f0, $f4, $f4
/* 3DE2C 80062A2C 46024201 */ sub.s $f8, $f8, $f2
/* 3DE30 80062A30 44122000 */ mfc1 $s2, $f4
/* 3DE34 80062A34 46084102 */ mul.s $f4, $f8, $f8
/* 3DE38 80062A38 46065281 */ sub.s $f10, $f10, $f6
/* 3DE3C 80062A3C 460A5082 */ mul.s $f2, $f10, $f10
/* 3DE40 80062A40 46040000 */ add.s $f0, $f0, $f4
/* 3DE44 80062A44 46020300 */ add.s $f12, $f0, $f2
/* 3DE48 80062A48 46006004 */ sqrt.s $f0, $f12
/* 3DE4C 80062A4C 46000032 */ c.eq.s $f0, $f0
/* 3DE50 80062A50 44134000 */ mfc1 $s3, $f8
/* 3DE54 80062A54 44145000 */ mfc1 $s4, $f10
/* 3DE58 80062A58 45010003 */ bc1t .L80062A68
/* 3DE5C 80062A5C 00000000 */ nop
/* 3DE60 80062A60 0C0187BC */ jal sqrtf
/* 3DE64 80062A64 00000000 */ nop
.L80062A68:
/* 3DE68 80062A68 3C01800A */ lui $at, %hi(D_80099B78)
/* 3DE6C 80062A6C D43A9B78 */ ldc1 $f26, %lo(D_80099B78)($at)
/* 3DE70 80062A70 46000021 */ cvt.d.s $f0, $f0
/* 3DE74 80062A74 4620D003 */ div.d $f0, $f26, $f0
/* 3DE78 80062A78 44927000 */ mtc1 $s2, $f14
/* 3DE7C 80062A7C 46200020 */ cvt.s.d $f0, $f0
/* 3DE80 80062A80 46007382 */ mul.s $f14, $f14, $f0
/* 3DE84 80062A84 44127000 */ mfc1 $s2, $f14
/* 3DE88 80062A88 44937000 */ mtc1 $s3, $f14
/* 3DE8C 80062A8C 00000000 */ nop
/* 3DE90 80062A90 46007382 */ mul.s $f14, $f14, $f0
/* 3DE94 80062A94 44948000 */ mtc1 $s4, $f16
/* 3DE98 80062A98 00000000 */ nop
/* 3DE9C 80062A9C 46008402 */ mul.s $f16, $f16, $f0
/* 3DEA0 80062AA0 44137000 */ mfc1 $s3, $f14
/* 3DEA4 80062AA4 44977000 */ mtc1 $s7, $f14
/* 3DEA8 80062AA8 00000000 */ nop
/* 3DEAC 80062AAC 46107102 */ mul.s $f4, $f14, $f16
/* 3DEB0 80062AB0 44148000 */ mfc1 $s4, $f16
/* 3DEB4 80062AB4 44968000 */ mtc1 $s6, $f16
/* 3DEB8 80062AB8 44937000 */ mtc1 $s3, $f14
/* 3DEBC 80062ABC 00000000 */ nop
/* 3DEC0 80062AC0 460E8002 */ mul.s $f0, $f16, $f14
/* 3DEC4 80062AC4 44927000 */ mtc1 $s2, $f14
/* 3DEC8 80062AC8 00000000 */ nop
/* 3DECC 80062ACC 460E8202 */ mul.s $f8, $f16, $f14
/* 3DED0 80062AD0 449E8000 */ mtc1 $fp, $f16
/* 3DED4 80062AD4 44947000 */ mtc1 $s4, $f14
/* 3DED8 80062AD8 00000000 */ nop
/* 3DEDC 80062ADC 460E8082 */ mul.s $f2, $f16, $f14
/* 3DEE0 80062AE0 44937000 */ mtc1 $s3, $f14
/* 3DEE4 80062AE4 00000000 */ nop
/* 3DEE8 80062AE8 460E8282 */ mul.s $f10, $f16, $f14
/* 3DEEC 80062AEC 44978000 */ mtc1 $s7, $f16
/* 3DEF0 80062AF0 44927000 */ mtc1 $s2, $f14
/* 3DEF4 80062AF4 00000000 */ nop
/* 3DEF8 80062AF8 460E8182 */ mul.s $f6, $f16, $f14
/* 3DEFC 80062AFC 46002781 */ sub.s $f30, $f4, $f0
/* 3DF00 80062B00 461EF002 */ mul.s $f0, $f30, $f30
/* 3DF04 80062B04 46024201 */ sub.s $f8, $f8, $f2
/* 3DF08 80062B08 46084102 */ mul.s $f4, $f8, $f8
/* 3DF0C 80062B0C 46065701 */ sub.s $f28, $f10, $f6
/* 3DF10 80062B10 461CE082 */ mul.s $f2, $f28, $f28
/* 3DF14 80062B14 46040000 */ add.s $f0, $f0, $f4
/* 3DF18 80062B18 46020300 */ add.s $f12, $f0, $f2
/* 3DF1C 80062B1C 46006184 */ sqrt.s $f6, $f12
/* 3DF20 80062B20 46063032 */ c.eq.s $f6, $f6
/* 3DF24 80062B24 44154000 */ mfc1 $s5, $f8
/* 3DF28 80062B28 45010004 */ bc1t .L80062B3C
/* 3DF2C 80062B2C 00000000 */ nop
/* 3DF30 80062B30 0C0187BC */ jal sqrtf
/* 3DF34 80062B34 00000000 */ nop
/* 3DF38 80062B38 46000186 */ mov.s $f6, $f0
.L80062B3C:
/* 3DF3C 80062B3C C7B000A8 */ lwc1 $f16, 0xa8($sp)
/* 3DF40 80062B40 C7AE00A8 */ lwc1 $f14, 0xa8($sp)
/* 3DF44 80062B44 460E8002 */ mul.s $f0, $f16, $f14
/* 3DF48 80062B48 C7B000AC */ lwc1 $f16, 0xac($sp)
/* 3DF4C 80062B4C C7AE00AC */ lwc1 $f14, 0xac($sp)
/* 3DF50 80062B50 460E8082 */ mul.s $f2, $f16, $f14
/* 3DF54 80062B54 C7B000B0 */ lwc1 $f16, 0xb0($sp)
/* 3DF58 80062B58 C7AE00B0 */ lwc1 $f14, 0xb0($sp)
/* 3DF5C 80062B5C 460E8102 */ mul.s $f4, $f16, $f14
/* 3DF60 80062B60 46020000 */ add.s $f0, $f0, $f2
/* 3DF64 80062B64 46040300 */ add.s $f12, $f0, $f4
/* 3DF68 80062B68 46006084 */ sqrt.s $f2, $f12
/* 3DF6C 80062B6C 46003021 */ cvt.d.s $f0, $f6
/* 3DF70 80062B70 4620D003 */ div.d $f0, $f26, $f0
/* 3DF74 80062B74 46200020 */ cvt.s.d $f0, $f0
/* 3DF78 80062B78 4600F782 */ mul.s $f30, $f30, $f0
/* 3DF7C 80062B7C 44958000 */ mtc1 $s5, $f16
/* 3DF80 80062B80 00000000 */ nop
/* 3DF84 80062B84 46008402 */ mul.s $f16, $f16, $f0
/* 3DF88 80062B88 46021032 */ c.eq.s $f2, $f2
/* 3DF8C 80062B8C 44158000 */ mfc1 $s5, $f16
/* 3DF90 80062B90 00000000 */ nop
/* 3DF94 80062B94 45010004 */ bc1t .L80062BA8
/* 3DF98 80062B98 4600E702 */ mul.s $f28, $f28, $f0
/* 3DF9C 80062B9C 0C0187BC */ jal sqrtf
/* 3DFA0 80062BA0 00000000 */ nop
/* 3DFA4 80062BA4 46000086 */ mov.s $f2, $f0
.L80062BA8:
/* 3DFA8 80062BA8 46001021 */ cvt.d.s $f0, $f2
/* 3DFAC 80062BAC 4620D003 */ div.d $f0, $f26, $f0
/* 3DFB0 80062BB0 C7AE00A8 */ lwc1 $f14, 0xa8($sp)
/* 3DFB4 80062BB4 46200020 */ cvt.s.d $f0, $f0
/* 3DFB8 80062BB8 46007382 */ mul.s $f14, $f14, $f0
/* 3DFBC 80062BBC C7B000AC */ lwc1 $f16, 0xac($sp)
/* 3DFC0 80062BC0 46008402 */ mul.s $f16, $f16, $f0
/* 3DFC4 80062BC4 E7AE00A8 */ swc1 $f14, 0xa8($sp)
/* 3DFC8 80062BC8 C7AE00B0 */ lwc1 $f14, 0xb0($sp)
/* 3DFCC 80062BCC 46007382 */ mul.s $f14, $f14, $f0
/* 3DFD0 80062BD0 E7B000AC */ swc1 $f16, 0xac($sp)
/* 3DFD4 80062BD4 C7B000A8 */ lwc1 $f16, 0xa8($sp)
/* 3DFD8 80062BD8 E7AE00B0 */ swc1 $f14, 0xb0($sp)
/* 3DFDC 80062BDC 449E7000 */ mtc1 $fp, $f14
/* 3DFE0 80062BE0 00000000 */ nop
/* 3DFE4 80062BE4 460E8600 */ add.s $f24, $f16, $f14
/* 3DFE8 80062BE8 C7B000AC */ lwc1 $f16, 0xac($sp)
/* 3DFEC 80062BEC 4618C002 */ mul.s $f0, $f24, $f24
/* 3DFF0 80062BF0 44977000 */ mtc1 $s7, $f14
/* 3DFF4 80062BF4 00000000 */ nop
/* 3DFF8 80062BF8 460E8500 */ add.s $f20, $f16, $f14
/* 3DFFC 80062BFC C7B000B0 */ lwc1 $f16, 0xb0($sp)
/* 3E000 80062C00 4614A102 */ mul.s $f4, $f20, $f20
/* 3E004 80062C04 44967000 */ mtc1 $s6, $f14
/* 3E008 80062C08 00000000 */ nop
/* 3E00C 80062C0C 460E8580 */ add.s $f22, $f16, $f14
/* 3E010 80062C10 4616B082 */ mul.s $f2, $f22, $f22
/* 3E014 80062C14 46040000 */ add.s $f0, $f0, $f4
/* 3E018 80062C18 46020300 */ add.s $f12, $f0, $f2
/* 3E01C 80062C1C 46006084 */ sqrt.s $f2, $f12
/* 3E020 80062C20 46021032 */ c.eq.s $f2, $f2
/* 3E024 80062C24 00000000 */ nop
/* 3E028 80062C28 45010004 */ bc1t .L80062C3C
/* 3E02C 80062C2C 00000000 */ nop
/* 3E030 80062C30 0C0187BC */ jal sqrtf
/* 3E034 80062C34 00000000 */ nop
/* 3E038 80062C38 46000086 */ mov.s $f2, $f0
.L80062C3C:
/* 3E03C 80062C3C 3C01800A */ lui $at, %hi(D_80099B80)
/* 3E040 80062C40 D4209B80 */ ldc1 $f0, %lo(D_80099B80)($at)
/* 3E044 80062C44 460010A1 */ cvt.d.s $f2, $f2
/* 3E048 80062C48 4622003C */ c.lt.d $f0, $f2
/* 3E04C 80062C4C 00000000 */ nop
/* 3E050 80062C50 45000035 */ bc1f .L80062D28
/* 3E054 80062C54 00000000 */ nop
/* 3E058 80062C58 4622D003 */ div.d $f0, $f26, $f2
/* 3E05C 80062C5C 46200020 */ cvt.s.d $f0, $f0
/* 3E060 80062C60 4600C602 */ mul.s $f24, $f24, $f0
/* 3E064 80062C64 00000000 */ nop
/* 3E068 80062C68 4600A502 */ mul.s $f20, $f20, $f0
/* 3E06C 80062C6C 00000000 */ nop
/* 3E070 80062C70 4600B582 */ mul.s $f22, $f22, $f0
/* 3E074 80062C74 44928000 */ mtc1 $s2, $f16
/* 3E078 80062C78 00000000 */ nop
/* 3E07C 80062C7C 4610C002 */ mul.s $f0, $f24, $f16
/* 3E080 80062C80 44937000 */ mtc1 $s3, $f14
/* 3E084 80062C84 00000000 */ nop
/* 3E088 80062C88 460EA102 */ mul.s $f4, $f20, $f14
/* 3E08C 80062C8C 00000000 */ nop
/* 3E090 80062C90 461EC082 */ mul.s $f2, $f24, $f30
/* 3E094 80062C94 44948000 */ mtc1 $s4, $f16
/* 3E098 80062C98 00000000 */ nop
/* 3E09C 80062C9C 4610B182 */ mul.s $f6, $f22, $f16
/* 3E0A0 80062CA0 44957000 */ mtc1 $s5, $f14
/* 3E0A4 80062CA4 00000000 */ nop
/* 3E0A8 80062CA8 460EA202 */ mul.s $f8, $f20, $f14
/* 3E0AC 80062CAC 46040000 */ add.s $f0, $f0, $f4
/* 3E0B0 80062CB0 461CB282 */ mul.s $f10, $f22, $f28
/* 3E0B4 80062CB4 46060000 */ add.s $f0, $f0, $f6
/* 3E0B8 80062CB8 C7A400C0 */ lwc1 $f4, 0xc0($sp)
/* 3E0BC 80062CBC 46802120 */ cvt.s.w $f4, $f4
/* 3E0C0 80062CC0 46081080 */ add.s $f2, $f2, $f8
/* 3E0C4 80062CC4 46040002 */ mul.s $f0, $f0, $f4
/* 3E0C8 80062CC8 460A1080 */ add.s $f2, $f2, $f10
/* 3E0CC 80062CCC C7A400C4 */ lwc1 $f4, 0xc4($sp)
/* 3E0D0 80062CD0 46802120 */ cvt.s.w $f4, $f4
/* 3E0D4 80062CD4 46041082 */ mul.s $f2, $f2, $f4
/* 3E0D8 80062CD8 46000000 */ add.s $f0, $f0, $f0
/* 3E0DC 80062CDC 8FA300C0 */ lw $v1, 0xc0($sp)
/* 3E0E0 80062CE0 46021080 */ add.s $f2, $f2, $f2
/* 3E0E4 80062CE4 00031080 */ sll $v0, $v1, 2
/* 3E0E8 80062CE8 8FA300C4 */ lw $v1, 0xc4($sp)
/* 3E0EC 80062CEC 44822000 */ mtc1 $v0, $f4
/* 3E0F0 80062CF0 00000000 */ nop
/* 3E0F4 80062CF4 46802120 */ cvt.s.w $f4, $f4
/* 3E0F8 80062CF8 46002100 */ add.s $f4, $f4, $f0
/* 3E0FC 80062CFC 00031080 */ sll $v0, $v1, 2
/* 3E100 80062D00 8FA30014 */ lw $v1, 0x14($sp)
/* 3E104 80062D04 44820000 */ mtc1 $v0, $f0
/* 3E108 80062D08 00000000 */ nop
/* 3E10C 80062D0C 46800020 */ cvt.s.w $f0, $f0
/* 3E110 80062D10 46020000 */ add.s $f0, $f0, $f2
/* 3E114 80062D14 4600208D */ trunc.w.s $f2, $f4
/* 3E118 80062D18 E4620000 */ swc1 $f2, ($v1)
/* 3E11C 80062D1C 4600008D */ trunc.w.s $f2, $f0
/* 3E120 80062D20 08018B52 */ j .L80062D48
/* 3E124 80062D24 E4620004 */ swc1 $f2, 4($v1)
.L80062D28:
/* 3E128 80062D28 8FA300C0 */ lw $v1, 0xc0($sp)
/* 3E12C 80062D2C 00031040 */ sll $v0, $v1, 1
/* 3E130 80062D30 8FA30014 */ lw $v1, 0x14($sp)
/* 3E134 80062D34 AC620000 */ sw $v0, ($v1)
/* 3E138 80062D38 8FA300C4 */ lw $v1, 0xc4($sp)
/* 3E13C 80062D3C 00031040 */ sll $v0, $v1, 1
/* 3E140 80062D40 8FA30014 */ lw $v1, 0x14($sp)
/* 3E144 80062D44 AC620004 */ sw $v0, 4($v1)
.L80062D48:
/* 3E148 80062D48 C7AE00B4 */ lwc1 $f14, 0xb4($sp)
/* 3E14C 80062D4C C7B000B4 */ lwc1 $f16, 0xb4($sp)
/* 3E150 80062D50 46107002 */ mul.s $f0, $f14, $f16
/* 3E154 80062D54 C7AE00B8 */ lwc1 $f14, 0xb8($sp)
/* 3E158 80062D58 C7B000B8 */ lwc1 $f16, 0xb8($sp)
/* 3E15C 80062D5C 46107082 */ mul.s $f2, $f14, $f16
/* 3E160 80062D60 C7AE00BC */ lwc1 $f14, 0xbc($sp)
/* 3E164 80062D64 C7B000BC */ lwc1 $f16, 0xbc($sp)
/* 3E168 80062D68 46107102 */ mul.s $f4, $f14, $f16
/* 3E16C 80062D6C 46020000 */ add.s $f0, $f0, $f2
/* 3E170 80062D70 46040300 */ add.s $f12, $f0, $f4
/* 3E174 80062D74 46006004 */ sqrt.s $f0, $f12
/* 3E178 80062D78 46000032 */ c.eq.s $f0, $f0
/* 3E17C 80062D7C 00000000 */ nop
/* 3E180 80062D80 45010003 */ bc1t .L80062D90
/* 3E184 80062D84 00000000 */ nop
/* 3E188 80062D88 0C0187BC */ jal sqrtf
/* 3E18C 80062D8C 00000000 */ nop
.L80062D90:
/* 3E190 80062D90 3C01800A */ lui $at, %hi(D_80099B88)
/* 3E194 80062D94 D43A9B88 */ ldc1 $f26, %lo(D_80099B88)($at)
/* 3E198 80062D98 46000021 */ cvt.d.s $f0, $f0
/* 3E19C 80062D9C 4620D003 */ div.d $f0, $f26, $f0
/* 3E1A0 80062DA0 C7AE00B4 */ lwc1 $f14, 0xb4($sp)
/* 3E1A4 80062DA4 46200020 */ cvt.s.d $f0, $f0
/* 3E1A8 80062DA8 46007382 */ mul.s $f14, $f14, $f0
/* 3E1AC 80062DAC C7B000B8 */ lwc1 $f16, 0xb8($sp)
/* 3E1B0 80062DB0 46008402 */ mul.s $f16, $f16, $f0
/* 3E1B4 80062DB4 E7AE00B4 */ swc1 $f14, 0xb4($sp)
/* 3E1B8 80062DB8 C7AE00BC */ lwc1 $f14, 0xbc($sp)
/* 3E1BC 80062DBC 46007382 */ mul.s $f14, $f14, $f0
/* 3E1C0 80062DC0 E7B000B8 */ swc1 $f16, 0xb8($sp)
/* 3E1C4 80062DC4 C7B000B4 */ lwc1 $f16, 0xb4($sp)
/* 3E1C8 80062DC8 E7AE00BC */ swc1 $f14, 0xbc($sp)
/* 3E1CC 80062DCC 449E7000 */ mtc1 $fp, $f14
/* 3E1D0 80062DD0 00000000 */ nop
/* 3E1D4 80062DD4 460E8600 */ add.s $f24, $f16, $f14
/* 3E1D8 80062DD8 C7B000B8 */ lwc1 $f16, 0xb8($sp)
/* 3E1DC 80062DDC 4618C002 */ mul.s $f0, $f24, $f24
/* 3E1E0 80062DE0 44977000 */ mtc1 $s7, $f14
/* 3E1E4 80062DE4 00000000 */ nop
/* 3E1E8 80062DE8 460E8500 */ add.s $f20, $f16, $f14
/* 3E1EC 80062DEC C7B000BC */ lwc1 $f16, 0xbc($sp)
/* 3E1F0 80062DF0 4614A102 */ mul.s $f4, $f20, $f20
/* 3E1F4 80062DF4 44967000 */ mtc1 $s6, $f14
/* 3E1F8 80062DF8 00000000 */ nop
/* 3E1FC 80062DFC 460E8580 */ add.s $f22, $f16, $f14
/* 3E200 80062E00 4616B082 */ mul.s $f2, $f22, $f22
/* 3E204 80062E04 46040000 */ add.s $f0, $f0, $f4
/* 3E208 80062E08 46020300 */ add.s $f12, $f0, $f2
/* 3E20C 80062E0C 46006084 */ sqrt.s $f2, $f12
/* 3E210 80062E10 46021032 */ c.eq.s $f2, $f2
/* 3E214 80062E14 00000000 */ nop
/* 3E218 80062E18 45010004 */ bc1t .L80062E2C
/* 3E21C 80062E1C 00000000 */ nop
/* 3E220 80062E20 0C0187BC */ jal sqrtf
/* 3E224 80062E24 00000000 */ nop
/* 3E228 80062E28 46000086 */ mov.s $f2, $f0
.L80062E2C:
/* 3E22C 80062E2C 3C01800A */ lui $at, %hi(D_80099B90)
/* 3E230 80062E30 D4209B90 */ ldc1 $f0, %lo(D_80099B90)($at)
/* 3E234 80062E34 460010A1 */ cvt.d.s $f2, $f2
/* 3E238 80062E38 4622003C */ c.lt.d $f0, $f2
/* 3E23C 80062E3C 00000000 */ nop
/* 3E240 80062E40 45000035 */ bc1f .L80062F18
/* 3E244 80062E44 00000000 */ nop
/* 3E248 80062E48 4622D003 */ div.d $f0, $f26, $f2
/* 3E24C 80062E4C 46200020 */ cvt.s.d $f0, $f0
/* 3E250 80062E50 4600C602 */ mul.s $f24, $f24, $f0
/* 3E254 80062E54 00000000 */ nop
/* 3E258 80062E58 4600A502 */ mul.s $f20, $f20, $f0
/* 3E25C 80062E5C 00000000 */ nop
/* 3E260 80062E60 4600B582 */ mul.s $f22, $f22, $f0
/* 3E264 80062E64 44928000 */ mtc1 $s2, $f16
/* 3E268 80062E68 00000000 */ nop
/* 3E26C 80062E6C 4610C002 */ mul.s $f0, $f24, $f16
/* 3E270 80062E70 44937000 */ mtc1 $s3, $f14
/* 3E274 80062E74 00000000 */ nop
/* 3E278 80062E78 460EA102 */ mul.s $f4, $f20, $f14
/* 3E27C 80062E7C 00000000 */ nop
/* 3E280 80062E80 461EC082 */ mul.s $f2, $f24, $f30
/* 3E284 80062E84 44948000 */ mtc1 $s4, $f16
/* 3E288 80062E88 00000000 */ nop
/* 3E28C 80062E8C 4610B182 */ mul.s $f6, $f22, $f16
/* 3E290 80062E90 44957000 */ mtc1 $s5, $f14
/* 3E294 80062E94 00000000 */ nop
/* 3E298 80062E98 460EA202 */ mul.s $f8, $f20, $f14
/* 3E29C 80062E9C 46040000 */ add.s $f0, $f0, $f4
/* 3E2A0 80062EA0 461CB282 */ mul.s $f10, $f22, $f28
/* 3E2A4 80062EA4 46060000 */ add.s $f0, $f0, $f6
/* 3E2A8 80062EA8 C7A400C0 */ lwc1 $f4, 0xc0($sp)
/* 3E2AC 80062EAC 46802120 */ cvt.s.w $f4, $f4
/* 3E2B0 80062EB0 46081080 */ add.s $f2, $f2, $f8
/* 3E2B4 80062EB4 46040002 */ mul.s $f0, $f0, $f4
/* 3E2B8 80062EB8 460A1080 */ add.s $f2, $f2, $f10
/* 3E2BC 80062EBC C7A400C4 */ lwc1 $f4, 0xc4($sp)
/* 3E2C0 80062EC0 46802120 */ cvt.s.w $f4, $f4
/* 3E2C4 80062EC4 46041082 */ mul.s $f2, $f2, $f4
/* 3E2C8 80062EC8 46000000 */ add.s $f0, $f0, $f0
/* 3E2CC 80062ECC 8FA300C0 */ lw $v1, 0xc0($sp)
/* 3E2D0 80062ED0 46021080 */ add.s $f2, $f2, $f2
/* 3E2D4 80062ED4 00031080 */ sll $v0, $v1, 2
/* 3E2D8 80062ED8 8FA300C4 */ lw $v1, 0xc4($sp)
/* 3E2DC 80062EDC 44822000 */ mtc1 $v0, $f4
/* 3E2E0 80062EE0 00000000 */ nop
/* 3E2E4 80062EE4 46802120 */ cvt.s.w $f4, $f4
/* 3E2E8 80062EE8 46002100 */ add.s $f4, $f4, $f0
/* 3E2EC 80062EEC 00031080 */ sll $v0, $v1, 2
/* 3E2F0 80062EF0 8FA30014 */ lw $v1, 0x14($sp)
/* 3E2F4 80062EF4 44820000 */ mtc1 $v0, $f0
/* 3E2F8 80062EF8 00000000 */ nop
/* 3E2FC 80062EFC 46800020 */ cvt.s.w $f0, $f0
/* 3E300 80062F00 46020000 */ add.s $f0, $f0, $f2
/* 3E304 80062F04 4600208D */ trunc.w.s $f2, $f4
/* 3E308 80062F08 E4620008 */ swc1 $f2, 8($v1)
/* 3E30C 80062F0C 4600008D */ trunc.w.s $f2, $f0
/* 3E310 80062F10 08018BCE */ j .L80062F38
/* 3E314 80062F14 E462000C */ swc1 $f2, 0xc($v1)
.L80062F18:
/* 3E318 80062F18 8FA300C0 */ lw $v1, 0xc0($sp)
/* 3E31C 80062F1C 00031040 */ sll $v0, $v1, 1
/* 3E320 80062F20 8FA30014 */ lw $v1, 0x14($sp)
/* 3E324 80062F24 AC620008 */ sw $v0, 8($v1)
/* 3E328 80062F28 8FA300C4 */ lw $v1, 0xc4($sp)
/* 3E32C 80062F2C 00031040 */ sll $v0, $v1, 1
/* 3E330 80062F30 8FA30014 */ lw $v1, 0x14($sp)
/* 3E334 80062F34 AC62000C */ sw $v0, 0xc($v1)
.L80062F38:
/* 3E338 80062F38 3C014300 */ lui $at, 0x4300
/* 3E33C 80062F3C 44810000 */ mtc1 $at, $f0
/* 3E340 80062F40 44927000 */ mtc1 $s2, $f14
/* 3E344 80062F44 00000000 */ nop
/* 3E348 80062F48 46007082 */ mul.s $f2, $f14, $f0
/* 3E34C 80062F4C 3C0142FE */ lui $at, 0x42fe
/* 3E350 80062F50 44810000 */ mtc1 $at, $f0
/* 3E354 80062F54 00000000 */ nop
/* 3E358 80062F58 4600103C */ c.lt.s $f2, $f0
/* 3E35C 80062F5C 00000000 */ nop
/* 3E360 80062F60 00000000 */ nop
/* 3E364 80062F64 45000003 */ bc1f .L80062F74
/* 3E368 80062F68 2402007F */ addiu $v0, $zero, 0x7f
/* 3E36C 80062F6C 4600100D */ trunc.w.s $f0, $f2
/* 3E370 80062F70 44020000 */ mfc1 $v0, $f0
.L80062F74:
/* 3E374 80062F74 3C014300 */ lui $at, 0x4300
/* 3E378 80062F78 44810000 */ mtc1 $at, $f0
/* 3E37C 80062F7C 44938000 */ mtc1 $s3, $f16
/* 3E380 80062F80 00000000 */ nop
/* 3E384 80062F84 46008082 */ mul.s $f2, $f16, $f0
/* 3E388 80062F88 3C0142FE */ lui $at, 0x42fe
/* 3E38C 80062F8C 44810000 */ mtc1 $at, $f0
/* 3E390 80062F90 00000000 */ nop
/* 3E394 80062F94 4600103C */ c.lt.s $f2, $f0
/* 3E398 80062F98 00000000 */ nop
/* 3E39C 80062F9C 00000000 */ nop
/* 3E3A0 80062FA0 45000005 */ bc1f .L80062FB8
/* 3E3A4 80062FA4 A2020008 */ sb $v0, 8($s0)
/* 3E3A8 80062FA8 4600100D */ trunc.w.s $f0, $f2
/* 3E3AC 80062FAC 44020000 */ mfc1 $v0, $f0
/* 3E3B0 80062FB0 08018BEF */ j .L80062FBC
/* 3E3B4 80062FB4 00000000 */ nop
.L80062FB8:
/* 3E3B8 80062FB8 2402007F */ addiu $v0, $zero, 0x7f
.L80062FBC:
/* 3E3BC 80062FBC 3C014300 */ lui $at, 0x4300
/* 3E3C0 80062FC0 44810000 */ mtc1 $at, $f0
/* 3E3C4 80062FC4 44947000 */ mtc1 $s4, $f14
/* 3E3C8 80062FC8 00000000 */ nop
/* 3E3CC 80062FCC 46007082 */ mul.s $f2, $f14, $f0
/* 3E3D0 80062FD0 3C0142FE */ lui $at, 0x42fe
/* 3E3D4 80062FD4 44810000 */ mtc1 $at, $f0
/* 3E3D8 80062FD8 00000000 */ nop
/* 3E3DC 80062FDC 4600103C */ c.lt.s $f2, $f0
/* 3E3E0 80062FE0 00000000 */ nop
/* 3E3E4 80062FE4 00000000 */ nop
/* 3E3E8 80062FE8 45000005 */ bc1f .L80063000
/* 3E3EC 80062FEC A2020009 */ sb $v0, 9($s0)
/* 3E3F0 80062FF0 4600100D */ trunc.w.s $f0, $f2
/* 3E3F4 80062FF4 44020000 */ mfc1 $v0, $f0
/* 3E3F8 80062FF8 08018C01 */ j .L80063004
/* 3E3FC 80062FFC 00000000 */ nop
.L80063000:
/* 3E400 80063000 2402007F */ addiu $v0, $zero, 0x7f
.L80063004:
/* 3E404 80063004 3C014300 */ lui $at, 0x4300
/* 3E408 80063008 44810000 */ mtc1 $at, $f0
/* 3E40C 8006300C 00000000 */ nop
/* 3E410 80063010 4600F082 */ mul.s $f2, $f30, $f0
/* 3E414 80063014 3C0142FE */ lui $at, 0x42fe
/* 3E418 80063018 44810000 */ mtc1 $at, $f0
/* 3E41C 8006301C 00000000 */ nop
/* 3E420 80063020 4600103C */ c.lt.s $f2, $f0
/* 3E424 80063024 00000000 */ nop
/* 3E428 80063028 00000000 */ nop
/* 3E42C 8006302C 45000005 */ bc1f .L80063044
/* 3E430 80063030 A202000A */ sb $v0, 0xa($s0)
/* 3E434 80063034 4600100D */ trunc.w.s $f0, $f2
/* 3E438 80063038 44020000 */ mfc1 $v0, $f0
/* 3E43C 8006303C 08018C12 */ j .L80063048
/* 3E440 80063040 00000000 */ nop
.L80063044:
/* 3E444 80063044 2402007F */ addiu $v0, $zero, 0x7f
.L80063048:
/* 3E448 80063048 3C014300 */ lui $at, 0x4300
/* 3E44C 8006304C 44810000 */ mtc1 $at, $f0
/* 3E450 80063050 44958000 */ mtc1 $s5, $f16
/* 3E454 80063054 00000000 */ nop
/* 3E458 80063058 46008082 */ mul.s $f2, $f16, $f0
/* 3E45C 8006305C 3C0142FE */ lui $at, 0x42fe
/* 3E460 80063060 44810000 */ mtc1 $at, $f0
/* 3E464 80063064 00000000 */ nop
/* 3E468 80063068 4600103C */ c.lt.s $f2, $f0
/* 3E46C 8006306C 00000000 */ nop
/* 3E470 80063070 00000000 */ nop
/* 3E474 80063074 45000005 */ bc1f .L8006308C
/* 3E478 80063078 A2020018 */ sb $v0, 0x18($s0)
/* 3E47C 8006307C 4600100D */ trunc.w.s $f0, $f2
/* 3E480 80063080 44020000 */ mfc1 $v0, $f0
/* 3E484 80063084 08018C24 */ j .L80063090
/* 3E488 80063088 00000000 */ nop
.L8006308C:
/* 3E48C 8006308C 2402007F */ addiu $v0, $zero, 0x7f
.L80063090:
/* 3E490 80063090 3C014300 */ lui $at, 0x4300
/* 3E494 80063094 44810000 */ mtc1 $at, $f0
/* 3E498 80063098 00000000 */ nop
/* 3E49C 8006309C 4600E082 */ mul.s $f2, $f28, $f0
/* 3E4A0 800630A0 3C0142FE */ lui $at, 0x42fe
/* 3E4A4 800630A4 44810000 */ mtc1 $at, $f0
/* 3E4A8 800630A8 00000000 */ nop
/* 3E4AC 800630AC 4600103C */ c.lt.s $f2, $f0
/* 3E4B0 800630B0 00000000 */ nop
/* 3E4B4 800630B4 00000000 */ nop
/* 3E4B8 800630B8 45000006 */ bc1f .L800630D4
/* 3E4BC 800630BC A2020019 */ sb $v0, 0x19($s0)
/* 3E4C0 800630C0 4600100D */ trunc.w.s $f0, $f2
/* 3E4C4 800630C4 44020000 */ mfc1 $v0, $f0
/* 3E4C8 800630C8 00000000 */ nop
/* 3E4CC 800630CC 08018C37 */ j .L800630DC
/* 3E4D0 800630D0 A202001A */ sb $v0, 0x1a($s0)
.L800630D4:
/* 3E4D4 800630D4 2402007F */ addiu $v0, $zero, 0x7f
/* 3E4D8 800630D8 A202001A */ sb $v0, 0x1a($s0)
.L800630DC:
/* 3E4DC 800630DC C7AE001C */ lwc1 $f14, 0x1c($sp)
/* 3E4E0 800630E0 44928000 */ mtc1 $s2, $f16
/* 3E4E4 800630E4 00000000 */ nop
/* 3E4E8 800630E8 46107102 */ mul.s $f4, $f14, $f16
/* 3E4EC 800630EC C7AE0088 */ lwc1 $f14, 0x88($sp)
/* 3E4F0 800630F0 44938000 */ mtc1 $s3, $f16
/* 3E4F4 800630F4 00000000 */ nop
/* 3E4F8 800630F8 46107182 */ mul.s $f6, $f14, $f16
/* 3E4FC 800630FC C7AE008C */ lwc1 $f14, 0x8c($sp)
/* 3E500 80063100 44948000 */ mtc1 $s4, $f16
/* 3E504 80063104 00000000 */ nop
/* 3E508 80063108 46107202 */ mul.s $f8, $f14, $f16
/* 3E50C 8006310C C7AE001C */ lwc1 $f14, 0x1c($sp)
/* 3E510 80063110 A2000000 */ sb $zero, ($s0)
/* 3E514 80063114 A2000001 */ sb $zero, 1($s0)
/* 3E518 80063118 C7B00088 */ lwc1 $f16, 0x88($sp)
/* 3E51C 8006311C 461E7082 */ mul.s $f2, $f14, $f30
/* 3E520 80063120 44957000 */ mtc1 $s5, $f14
/* 3E524 80063124 A2000002 */ sb $zero, 2($s0)
/* 3E528 80063128 A2000003 */ sb $zero, 3($s0)
/* 3E52C 8006312C A2000004 */ sb $zero, 4($s0)
/* 3E530 80063130 A2000005 */ sb $zero, 5($s0)
/* 3E534 80063134 A2000006 */ sb $zero, 6($s0)
/* 3E538 80063138 A2000007 */ sb $zero, 7($s0)
/* 3E53C 8006313C 460E8282 */ mul.s $f10, $f16, $f14
/* 3E540 80063140 C7B0008C */ lwc1 $f16, 0x8c($sp)
/* 3E544 80063144 24020080 */ addiu $v0, $zero, 0x80
/* 3E548 80063148 A2000010 */ sb $zero, 0x10($s0)
/* 3E54C 8006314C A2020011 */ sb $v0, 0x11($s0)
/* 3E550 80063150 A2000012 */ sb $zero, 0x12($s0)
/* 3E554 80063154 461C8302 */ mul.s $f12, $f16, $f28
/* 3E558 80063158 A2000013 */ sb $zero, 0x13($s0)
/* 3E55C 8006315C A2000014 */ sb $zero, 0x14($s0)
/* 3E560 80063160 C7AE001C */ lwc1 $f14, 0x1c($sp)
/* 3E564 80063164 449E8000 */ mtc1 $fp, $f16
/* 3E568 80063168 46062100 */ add.s $f4, $f4, $f6
/* 3E56C 8006316C 46107002 */ mul.s $f0, $f14, $f16
/* 3E570 80063170 A2020015 */ sb $v0, 0x15($s0)
/* 3E574 80063174 A2000016 */ sb $zero, 0x16($s0)
/* 3E578 80063178 A2000017 */ sb $zero, 0x17($s0)
/* 3E57C 8006317C AE320000 */ sw $s2, ($s1)
/* 3E580 80063180 C7AE0088 */ lwc1 $f14, 0x88($sp)
/* 3E584 80063184 44978000 */ mtc1 $s7, $f16
/* 3E588 80063188 46082100 */ add.s $f4, $f4, $f8
/* 3E58C 8006318C 46107202 */ mul.s $f8, $f14, $f16
/* 3E590 80063190 AE330010 */ sw $s3, 0x10($s1)
/* 3E594 80063194 AE340020 */ sw $s4, 0x20($s1)
/* 3E598 80063198 E63E0004 */ swc1 $f30, 4($s1)
/* 3E59C 8006319C C7AE008C */ lwc1 $f14, 0x8c($sp)
/* 3E5A0 800631A0 460A1080 */ add.s $f2, $f2, $f10
/* 3E5A4 800631A4 44968000 */ mtc1 $s6, $f16
/* 3E5A8 800631A8 3C013F80 */ lui $at, 0x3f80
/* 3E5AC 800631AC 44815000 */ mtc1 $at, $f10
/* 3E5B0 800631B0 46002107 */ neg.s $f4, $f4
/* 3E5B4 800631B4 46107182 */ mul.s $f6, $f14, $f16
/* 3E5B8 800631B8 460C1080 */ add.s $f2, $f2, $f12
/* 3E5BC 800631BC AE350014 */ sw $s5, 0x14($s1)
/* 3E5C0 800631C0 E63C0024 */ swc1 $f28, 0x24($s1)
/* 3E5C4 800631C4 AE3E0008 */ sw $fp, 8($s1)
/* 3E5C8 800631C8 46080000 */ add.s $f0, $f0, $f8
/* 3E5CC 800631CC AE370018 */ sw $s7, 0x18($s1)
/* 3E5D0 800631D0 AE360028 */ sw $s6, 0x28($s1)
/* 3E5D4 800631D4 AE20000C */ sw $zero, 0xc($s1)
/* 3E5D8 800631D8 46060000 */ add.s $f0, $f0, $f6
/* 3E5DC 800631DC AE20001C */ sw $zero, 0x1c($s1)
/* 3E5E0 800631E0 AE20002C */ sw $zero, 0x2c($s1)
/* 3E5E4 800631E4 E62A003C */ swc1 $f10, 0x3c($s1)
/* 3E5E8 800631E8 46001087 */ neg.s $f2, $f2
/* 3E5EC 800631EC E6240030 */ swc1 $f4, 0x30($s1)
/* 3E5F0 800631F0 46000007 */ neg.s $f0, $f0
/* 3E5F4 800631F4 E6220034 */ swc1 $f2, 0x34($s1)
/* 3E5F8 800631F8 E6200038 */ swc1 $f0, 0x38($s1)
/* 3E5FC 800631FC 8FBF0044 */ lw $ra, 0x44($sp)
/* 3E600 80063200 8FBE0040 */ lw $fp, 0x40($sp)
/* 3E604 80063204 8FB7003C */ lw $s7, 0x3c($sp)
/* 3E608 80063208 8FB60038 */ lw $s6, 0x38($sp)
/* 3E60C 8006320C 8FB50034 */ lw $s5, 0x34($sp)
/* 3E610 80063210 8FB40030 */ lw $s4, 0x30($sp)
/* 3E614 80063214 8FB3002C */ lw $s3, 0x2c($sp)
/* 3E618 80063218 8FB20028 */ lw $s2, 0x28($sp)
/* 3E61C 8006321C 8FB10024 */ lw $s1, 0x24($sp)
/* 3E620 80063220 8FB00020 */ lw $s0, 0x20($sp)
/* 3E624 80063224 D7BE0070 */ ldc1 $f30, 0x70($sp)
/* 3E628 80063228 D7BC0068 */ ldc1 $f28, 0x68($sp)
/* 3E62C 8006322C D7BA0060 */ ldc1 $f26, 0x60($sp)
/* 3E630 80063230 D7B80058 */ ldc1 $f24, 0x58($sp)
/* 3E634 80063234 D7B60050 */ ldc1 $f22, 0x50($sp)
/* 3E638 80063238 D7B40048 */ ldc1 $f20, 0x48($sp)
/* 3E63C 8006323C 03E00008 */ jr $ra
/* 3E640 80063240 27BD0078 */ addiu $sp, $sp, 0x78