.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_800DCB7C /* 07602C 800DCB7C 27BDFF80 */ addiu $sp, $sp, -0x80 /* 076030 800DCB80 AFB40048 */ sw $s4, 0x48($sp) /* 076034 800DCB84 8FB40090 */ lw $s4, 0x90($sp) /* 076038 800DCB88 AFBF004C */ sw $ra, 0x4c($sp) /* 07603C 800DCB8C AFB30044 */ sw $s3, 0x44($sp) /* 076040 800DCB90 AFB20040 */ sw $s2, 0x40($sp) /* 076044 800DCB94 AFB1003C */ sw $s1, 0x3c($sp) /* 076048 800DCB98 AFB00038 */ sw $s0, 0x38($sp) /* 07604C 800DCB9C F7BE0078 */ sdc1 $f30, 0x78($sp) /* 076050 800DCBA0 F7BC0070 */ sdc1 $f28, 0x70($sp) /* 076054 800DCBA4 F7BA0068 */ sdc1 $f26, 0x68($sp) /* 076058 800DCBA8 F7B80060 */ sdc1 $f24, 0x60($sp) /* 07605C 800DCBAC F7B60058 */ sdc1 $f22, 0x58($sp) /* 076060 800DCBB0 F7B40050 */ sdc1 $f20, 0x50($sp) /* 076064 800DCBB4 C4A60000 */ lwc1 $f6, ($a1) /* 076068 800DCBB8 00C0882D */ daddu $s1, $a2, $zero /* 07606C 800DCBBC E7A60028 */ swc1 $f6, 0x28($sp) /* 076070 800DCBC0 C63E0000 */ lwc1 $f30, ($s1) /* 076074 800DCBC4 C4E60000 */ lwc1 $f6, ($a3) /* 076078 800DCBC8 3C128011 */ lui $s2, 0x8011 /* 07607C 800DCBCC 2652C970 */ addiu $s2, $s2, -0x3690 /* 076080 800DCBD0 E7A6002C */ swc1 $f6, 0x2c($sp) /* 076084 800DCBD4 4600F18D */ trunc.w.s $f6, $f30 /* 076088 800DCBD8 E6460000 */ swc1 $f6, ($s2) /* 07608C 800DCBDC C6200000 */ lwc1 $f0, ($s1) /* 076090 800DCBE0 4600018D */ trunc.w.s $f6, $f0 /* 076094 800DCBE4 3C018011 */ lui $at, 0x8011 /* 076098 800DCBE8 E426C94C */ swc1 $f6, -0x36b4($at) /* 07609C 800DCBEC C6200000 */ lwc1 $f0, ($s1) /* 0760A0 800DCBF0 0080982D */ daddu $s3, $a0, $zero /* 0760A4 800DCBF4 4600018D */ trunc.w.s $f6, $f0 /* 0760A8 800DCBF8 3C018011 */ lui $at, 0x8011 /* 0760AC 800DCBFC E426C974 */ swc1 $f6, -0x368c($at) /* 0760B0 800DCC00 C6800000 */ lwc1 $f0, ($s4) /* 0760B4 800DCC04 44806000 */ mtc1 $zero, $f12 /* 0760B8 800DCC08 0C00A6C9 */ jal clamp_angle /* 0760BC 800DCC0C 46000605 */ abs.s $f24, $f0 /* 0760C0 800DCC10 3C0140C9 */ lui $at, 0x40c9 /* 0760C4 800DCC14 34210FD0 */ ori $at, $at, 0xfd0 /* 0760C8 800DCC18 44811000 */ mtc1 $at, $f2 /* 0760CC 800DCC1C 00000000 */ nop /* 0760D0 800DCC20 46020002 */ mul.s $f0, $f0, $f2 /* 0760D4 800DCC24 00000000 */ nop /* 0760D8 800DCC28 3C0143B4 */ lui $at, 0x43b4 /* 0760DC 800DCC2C 44811000 */ mtc1 $at, $f2 /* 0760E0 800DCC30 00000000 */ nop /* 0760E4 800DCC34 46020503 */ div.s $f20, $f0, $f2 /* 0760E8 800DCC38 0C00A85B */ jal sin_rad /* 0760EC 800DCC3C 4600A306 */ mov.s $f12, $f20 /* 0760F0 800DCC40 46000586 */ mov.s $f22, $f0 /* 0760F4 800DCC44 0C00A874 */ jal cos_rad /* 0760F8 800DCC48 4600A306 */ mov.s $f12, $f20 /* 0760FC 800DCC4C 3C014120 */ lui $at, 0x4120 /* 076100 800DCC50 44813000 */ mtc1 $at, $f6 /* 076104 800DCC54 00000000 */ nop /* 076108 800DCC58 4606B102 */ mul.s $f4, $f22, $f6 /* 07610C 800DCC5C 00000000 */ nop /* 076110 800DCC60 0000802D */ daddu $s0, $zero, $zero /* 076114 800DCC64 0260202D */ daddu $a0, $s3, $zero /* 076118 800DCC68 27A50018 */ addiu $a1, $sp, 0x18 /* 07611C 800DCC6C 46003087 */ neg.s $f2, $f6 /* 076120 800DCC70 46020002 */ mul.s $f0, $f0, $f2 /* 076124 800DCC74 00000000 */ nop /* 076128 800DCC78 27A6001C */ addiu $a2, $sp, 0x1c /* 07612C 800DCC7C 27A70020 */ addiu $a3, $sp, 0x20 /* 076130 800DCC80 C7A60028 */ lwc1 $f6, 0x28($sp) /* 076134 800DCC84 3C01C6FF */ lui $at, 0xc6ff /* 076138 800DCC88 3421FE00 */ ori $at, $at, 0xfe00 /* 07613C 800DCC8C 4481D000 */ mtc1 $at, $f26 /* 076140 800DCC90 46043080 */ add.s $f2, $f6, $f4 /* 076144 800DCC94 C7A6002C */ lwc1 $f6, 0x2c($sp) /* 076148 800DCC98 27A20024 */ addiu $v0, $sp, 0x24 /* 07614C 800DCC9C E7BE001C */ swc1 $f30, 0x1c($sp) /* 076150 800DCCA0 E7B80024 */ swc1 $f24, 0x24($sp) /* 076154 800DCCA4 46003000 */ add.s $f0, $f6, $f0 /* 076158 800DCCA8 4600D706 */ mov.s $f28, $f26 /* 07615C 800DCCAC E7A20018 */ swc1 $f2, 0x18($sp) /* 076160 800DCCB0 E7A00020 */ swc1 $f0, 0x20($sp) /* 076164 800DCCB4 0C037140 */ jal func_800DC500 /* 076168 800DCCB8 AFA20010 */ sw $v0, 0x10($sp) /* 07616C 800DCCBC 0440000F */ bltz $v0, .L800DCCFC /* 076170 800DCCC0 E7B80030 */ swc1 $f24, 0x30($sp) /* 076174 800DCCC4 C7A00024 */ lwc1 $f0, 0x24($sp) /* 076178 800DCCC8 4618003E */ c.le.s $f0, $f24 /* 07617C 800DCCCC 00000000 */ nop /* 076180 800DCCD0 4500000A */ bc1f .L800DCCFC /* 076184 800DCCD4 00000000 */ nop /* 076188 800DCCD8 46000606 */ mov.s $f24, $f0 /* 07618C 800DCCDC C7BA001C */ lwc1 $f26, 0x1c($sp) /* 076190 800DCCE0 24100001 */ addiu $s0, $zero, 1 /* 076194 800DCCE4 3C018011 */ lui $at, 0x8011 /* 076198 800DCCE8 AC22C978 */ sw $v0, -0x3688($at) /* 07619C 800DCCEC 3C018011 */ lui $at, 0x8011 /* 0761A0 800DCCF0 AC22C98C */ sw $v0, -0x3674($at) /* 0761A4 800DCCF4 4600D18D */ trunc.w.s $f6, $f26 /* 0761A8 800DCCF8 E6460000 */ swc1 $f6, ($s2) .L800DCCFC: /* 0761AC 800DCCFC 3C014334 */ lui $at, 0x4334 /* 0761B0 800DCD00 44816000 */ mtc1 $at, $f12 /* 0761B4 800DCD04 44803000 */ mtc1 $zero, $f6 /* 0761B8 800DCD08 0C00A6C9 */ jal clamp_angle /* 0761BC 800DCD0C 460C3300 */ add.s $f12, $f6, $f12 /* 0761C0 800DCD10 3C0140C9 */ lui $at, 0x40c9 /* 0761C4 800DCD14 34210FD0 */ ori $at, $at, 0xfd0 /* 0761C8 800DCD18 44811000 */ mtc1 $at, $f2 /* 0761CC 800DCD1C 00000000 */ nop /* 0761D0 800DCD20 46020002 */ mul.s $f0, $f0, $f2 /* 0761D4 800DCD24 00000000 */ nop /* 0761D8 800DCD28 3C0143B4 */ lui $at, 0x43b4 /* 0761DC 800DCD2C 44811000 */ mtc1 $at, $f2 /* 0761E0 800DCD30 00000000 */ nop /* 0761E4 800DCD34 46020503 */ div.s $f20, $f0, $f2 /* 0761E8 800DCD38 0C00A85B */ jal sin_rad /* 0761EC 800DCD3C 4600A306 */ mov.s $f12, $f20 /* 0761F0 800DCD40 46000586 */ mov.s $f22, $f0 /* 0761F4 800DCD44 0C00A874 */ jal cos_rad /* 0761F8 800DCD48 4600A306 */ mov.s $f12, $f20 /* 0761FC 800DCD4C 3C014120 */ lui $at, 0x4120 /* 076200 800DCD50 44813000 */ mtc1 $at, $f6 /* 076204 800DCD54 00000000 */ nop /* 076208 800DCD58 46163102 */ mul.s $f4, $f6, $f22 /* 07620C 800DCD5C 00000000 */ nop /* 076210 800DCD60 46003087 */ neg.s $f2, $f6 /* 076214 800DCD64 46001002 */ mul.s $f0, $f2, $f0 /* 076218 800DCD68 00000000 */ nop /* 07621C 800DCD6C 0260202D */ daddu $a0, $s3, $zero /* 076220 800DCD70 27A50018 */ addiu $a1, $sp, 0x18 /* 076224 800DCD74 C7A60028 */ lwc1 $f6, 0x28($sp) /* 076228 800DCD78 27A6001C */ addiu $a2, $sp, 0x1c /* 07622C 800DCD7C 46043080 */ add.s $f2, $f6, $f4 /* 076230 800DCD80 C7A6002C */ lwc1 $f6, 0x2c($sp) /* 076234 800DCD84 27A70020 */ addiu $a3, $sp, 0x20 /* 076238 800DCD88 46003000 */ add.s $f0, $f6, $f0 /* 07623C 800DCD8C C7A60030 */ lwc1 $f6, 0x30($sp) /* 076240 800DCD90 27A20024 */ addiu $v0, $sp, 0x24 /* 076244 800DCD94 E7BE001C */ swc1 $f30, 0x1c($sp) /* 076248 800DCD98 E7A60024 */ swc1 $f6, 0x24($sp) /* 07624C 800DCD9C E7A20018 */ swc1 $f2, 0x18($sp) /* 076250 800DCDA0 E7A00020 */ swc1 $f0, 0x20($sp) /* 076254 800DCDA4 0C037140 */ jal func_800DC500 /* 076258 800DCDA8 AFA20010 */ sw $v0, 0x10($sp) /* 07625C 800DCDAC 04400010 */ bltz $v0, .L800DCDF0 /* 076260 800DCDB0 00000000 */ nop /* 076264 800DCDB4 C7A00024 */ lwc1 $f0, 0x24($sp) /* 076268 800DCDB8 4618003E */ c.le.s $f0, $f24 /* 07626C 800DCDBC 00000000 */ nop /* 076270 800DCDC0 4500000B */ bc1f .L800DCDF0 /* 076274 800DCDC4 00000000 */ nop /* 076278 800DCDC8 46000606 */ mov.s $f24, $f0 /* 07627C 800DCDCC C7BC001C */ lwc1 $f28, 0x1c($sp) /* 076280 800DCDD0 24100001 */ addiu $s0, $zero, 1 /* 076284 800DCDD4 3C018011 */ lui $at, 0x8011 /* 076288 800DCDD8 AC22C978 */ sw $v0, -0x3688($at) /* 07628C 800DCDDC 3C018011 */ lui $at, 0x8011 /* 076290 800DCDE0 AC22C968 */ sw $v0, -0x3698($at) /* 076294 800DCDE4 4600E18D */ trunc.w.s $f6, $f28 /* 076298 800DCDE8 3C018011 */ lui $at, 0x8011 /* 07629C 800DCDEC E426C94C */ swc1 $f6, -0x36b4($at) .L800DCDF0: /* 0762A0 800DCDF0 12000011 */ beqz $s0, .L800DCE38 /* 0762A4 800DCDF4 0000102D */ daddu $v0, $zero, $zero /* 0762A8 800DCDF8 461CD03C */ c.lt.s $f26, $f28 /* 0762AC 800DCDFC 00000000 */ nop /* 0762B0 800DCE00 45020002 */ bc1fl .L800DCE0C /* 0762B4 800DCE04 E63A0000 */ swc1 $f26, ($s1) /* 0762B8 800DCE08 E63C0000 */ swc1 $f28, ($s1) .L800DCE0C: /* 0762BC 800DCE0C C6200000 */ lwc1 $f0, ($s1) /* 0762C0 800DCE10 3C01C6FF */ lui $at, 0xc6ff /* 0762C4 800DCE14 3421FE00 */ ori $at, $at, 0xfe00 /* 0762C8 800DCE18 44813000 */ mtc1 $at, $f6 /* 0762CC 800DCE1C 00000000 */ nop /* 0762D0 800DCE20 4606003C */ c.lt.s $f0, $f6 /* 0762D4 800DCE24 00000000 */ nop /* 0762D8 800DCE28 45030001 */ bc1tl .L800DCE30 /* 0762DC 800DCE2C E6260000 */ swc1 $f6, ($s1) .L800DCE30: /* 0762E0 800DCE30 E6980000 */ swc1 $f24, ($s4) /* 0762E4 800DCE34 24020001 */ addiu $v0, $zero, 1 .L800DCE38: /* 0762E8 800DCE38 8FBF004C */ lw $ra, 0x4c($sp) /* 0762EC 800DCE3C 8FB40048 */ lw $s4, 0x48($sp) /* 0762F0 800DCE40 8FB30044 */ lw $s3, 0x44($sp) /* 0762F4 800DCE44 8FB20040 */ lw $s2, 0x40($sp) /* 0762F8 800DCE48 8FB1003C */ lw $s1, 0x3c($sp) /* 0762FC 800DCE4C 8FB00038 */ lw $s0, 0x38($sp) /* 076300 800DCE50 D7BE0078 */ ldc1 $f30, 0x78($sp) /* 076304 800DCE54 D7BC0070 */ ldc1 $f28, 0x70($sp) /* 076308 800DCE58 D7BA0068 */ ldc1 $f26, 0x68($sp) /* 07630C 800DCE5C D7B80060 */ ldc1 $f24, 0x60($sp) /* 076310 800DCE60 D7B60058 */ ldc1 $f22, 0x58($sp) /* 076314 800DCE64 D7B40050 */ ldc1 $f20, 0x50($sp) /* 076318 800DCE68 03E00008 */ jr $ra /* 07631C 800DCE6C 27BD0080 */ addiu $sp, $sp, 0x80