.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8003CCB0 /* 180B0 8003CCB0 27BDFF60 */ addiu $sp, $sp, -0xa0 /* 180B4 8003CCB4 AFB60080 */ sw $s6, 0x80($sp) /* 180B8 8003CCB8 0080B02D */ daddu $s6, $a0, $zero /* 180BC 8003CCBC AFB1006C */ sw $s1, 0x6c($sp) /* 180C0 8003CCC0 00A0882D */ daddu $s1, $a1, $zero /* 180C4 8003CCC4 AFB00068 */ sw $s0, 0x68($sp) /* 180C8 8003CCC8 02D18021 */ addu $s0, $s6, $s1 /* 180CC 8003CCCC AFBF0084 */ sw $ra, 0x84($sp) /* 180D0 8003CCD0 AFB5007C */ sw $s5, 0x7c($sp) /* 180D4 8003CCD4 AFB40078 */ sw $s4, 0x78($sp) /* 180D8 8003CCD8 AFB30074 */ sw $s3, 0x74($sp) /* 180DC 8003CCDC AFB20070 */ sw $s2, 0x70($sp) /* 180E0 8003CCE0 F7B80098 */ sdc1 $f24, 0x98($sp) /* 180E4 8003CCE4 F7B60090 */ sdc1 $f22, 0x90($sp) /* 180E8 8003CCE8 F7B40088 */ sdc1 $f20, 0x88($sp) /* 180EC 8003CCEC 82020330 */ lb $v0, 0x330($s0) /* 180F0 8003CCF0 1440000B */ bnez $v0, .L8003CD20 /* 180F4 8003CCF4 24050011 */ addiu $a1, $zero, 0x11 /* 180F8 8003CCF8 24060014 */ addiu $a2, $zero, 0x14 /* 180FC 8003CCFC 240200FF */ addiu $v0, $zero, 0xff /* 18100 8003CD00 AFA00010 */ sw $zero, 0x10($sp) /* 18104 8003CD04 AFA20014 */ sw $v0, 0x14($sp) /* 18108 8003CD08 AFA00018 */ sw $zero, 0x18($sp) /* 1810C 8003CD0C 8EC40024 */ lw $a0, 0x24($s6) /* 18110 8003CD10 0C0B7A25 */ jal func_802DE894 /* 18114 8003CD14 0000382D */ daddu $a3, $zero, $zero /* 18118 8003CD18 24020001 */ addiu $v0, $zero, 1 /* 1811C 8003CD1C A2020330 */ sb $v0, 0x330($s0) .L8003CD20: /* 18120 8003CD20 82030330 */ lb $v1, 0x330($s0) /* 18124 8003CD24 24020001 */ addiu $v0, $zero, 1 /* 18128 8003CD28 14620090 */ bne $v1, $v0, .L8003CF6C /* 1812C 8003CD2C 00511004 */ sllv $v0, $s1, $v0 /* 18130 8003CD30 02C22821 */ addu $a1, $s6, $v0 /* 18134 8003CD34 94A20332 */ lhu $v0, 0x332($a1) /* 18138 8003CD38 24420007 */ addiu $v0, $v0, 7 /* 1813C 8003CD3C 00021C00 */ sll $v1, $v0, 0x10 /* 18140 8003CD40 00032403 */ sra $a0, $v1, 0x10 /* 18144 8003CD44 A4A20332 */ sh $v0, 0x332($a1) /* 18148 8003CD48 28820168 */ slti $v0, $a0, 0x168 /* 1814C 8003CD4C 14400010 */ bnez $v0, .L8003CD90 /* 18150 8003CD50 0000802D */ daddu $s0, $zero, $zero /* 18154 8003CD54 3C02B60B */ lui $v0, 0xb60b /* 18158 8003CD58 344260B7 */ ori $v0, $v0, 0x60b7 /* 1815C 8003CD5C 00820018 */ mult $a0, $v0 /* 18160 8003CD60 00031FC3 */ sra $v1, $v1, 0x1f /* 18164 8003CD64 00004010 */ mfhi $t0 /* 18168 8003CD68 01041021 */ addu $v0, $t0, $a0 /* 1816C 8003CD6C 00021203 */ sra $v0, $v0, 8 /* 18170 8003CD70 00431023 */ subu $v0, $v0, $v1 /* 18174 8003CD74 00021840 */ sll $v1, $v0, 1 /* 18178 8003CD78 00621821 */ addu $v1, $v1, $v0 /* 1817C 8003CD7C 00031100 */ sll $v0, $v1, 4 /* 18180 8003CD80 00431023 */ subu $v0, $v0, $v1 /* 18184 8003CD84 000210C0 */ sll $v0, $v0, 3 /* 18188 8003CD88 00821023 */ subu $v0, $a0, $v0 /* 1818C 8003CD8C A4A20332 */ sh $v0, 0x332($a1) .L8003CD90: /* 18190 8003CD90 00A0902D */ daddu $s2, $a1, $zero /* 18194 8003CD94 3C138000 */ lui $s3, 0x8000 /* 18198 8003CD98 0200882D */ daddu $s1, $s0, $zero /* 1819C 8003CD9C 3C013FF0 */ lui $at, 0x3ff0 /* 181A0 8003CDA0 4481C800 */ mtc1 $at, $f25 /* 181A4 8003CDA4 4480C000 */ mtc1 $zero, $f24 /* 181A8 8003CDA8 3C014054 */ lui $at, 0x4054 /* 181AC 8003CDAC 4481B800 */ mtc1 $at, $f23 /* 181B0 8003CDB0 4480B000 */ mtc1 $zero, $f22 /* 181B4 8003CDB4 3C0141E0 */ lui $at, 0x41e0 /* 181B8 8003CDB8 4481A800 */ mtc1 $at, $f21 /* 181BC 8003CDBC 4480A000 */ mtc1 $zero, $f20 .L8003CDC0: /* 181C0 8003CDC0 96440332 */ lhu $a0, 0x332($s2) /* 181C4 8003CDC4 00912021 */ addu $a0, $a0, $s1 /* 181C8 8003CDC8 00042400 */ sll $a0, $a0, 0x10 /* 181CC 8003CDCC 0C00A4F5 */ jal cosine /* 181D0 8003CDD0 00042403 */ sra $a0, $a0, 0x10 /* 181D4 8003CDD4 46000021 */ cvt.d.s $f0, $f0 /* 181D8 8003CDD8 46380000 */ add.d $f0, $f0, $f24 /* 181DC 8003CDDC 46360002 */ mul.d $f0, $f0, $f22 /* 181E0 8003CDE0 00000000 */ nop /* 181E4 8003CDE4 27A20020 */ addiu $v0, $sp, 0x20 /* 181E8 8003CDE8 4620A03E */ c.le.d $f20, $f0 /* 181EC 8003CDEC 00000000 */ nop /* 181F0 8003CDF0 45010005 */ bc1t .L8003CE08 /* 181F4 8003CDF4 00501021 */ addu $v0, $v0, $s0 /* 181F8 8003CDF8 4620008D */ trunc.w.d $f2, $f0 /* 181FC 8003CDFC 44031000 */ mfc1 $v1, $f2 /* 18200 8003CE00 0800F388 */ j .L8003CE20 /* 18204 8003CE04 A0430000 */ sb $v1, ($v0) .L8003CE08: /* 18208 8003CE08 46340001 */ sub.d $f0, $f0, $f20 /* 1820C 8003CE0C 4620008D */ trunc.w.d $f2, $f0 /* 18210 8003CE10 44031000 */ mfc1 $v1, $f2 /* 18214 8003CE14 00000000 */ nop /* 18218 8003CE18 00731825 */ or $v1, $v1, $s3 /* 1821C 8003CE1C A0430000 */ sb $v1, ($v0) .L8003CE20: /* 18220 8003CE20 96440332 */ lhu $a0, 0x332($s2) /* 18224 8003CE24 00912021 */ addu $a0, $a0, $s1 /* 18228 8003CE28 2484002D */ addiu $a0, $a0, 0x2d /* 1822C 8003CE2C 00042400 */ sll $a0, $a0, 0x10 /* 18230 8003CE30 0C00A4F5 */ jal cosine /* 18234 8003CE34 00042403 */ sra $a0, $a0, 0x10 /* 18238 8003CE38 46000021 */ cvt.d.s $f0, $f0 /* 1823C 8003CE3C 46380000 */ add.d $f0, $f0, $f24 /* 18240 8003CE40 46360002 */ mul.d $f0, $f0, $f22 /* 18244 8003CE44 00000000 */ nop /* 18248 8003CE48 27A20038 */ addiu $v0, $sp, 0x38 /* 1824C 8003CE4C 4620A03E */ c.le.d $f20, $f0 /* 18250 8003CE50 00000000 */ nop /* 18254 8003CE54 45010005 */ bc1t .L8003CE6C /* 18258 8003CE58 00501021 */ addu $v0, $v0, $s0 /* 1825C 8003CE5C 4620008D */ trunc.w.d $f2, $f0 /* 18260 8003CE60 44031000 */ mfc1 $v1, $f2 /* 18264 8003CE64 0800F3A1 */ j .L8003CE84 /* 18268 8003CE68 A0430000 */ sb $v1, ($v0) .L8003CE6C: /* 1826C 8003CE6C 46340001 */ sub.d $f0, $f0, $f20 /* 18270 8003CE70 4620008D */ trunc.w.d $f2, $f0 /* 18274 8003CE74 44031000 */ mfc1 $v1, $f2 /* 18278 8003CE78 00000000 */ nop /* 1827C 8003CE7C 00731825 */ or $v1, $v1, $s3 /* 18280 8003CE80 A0430000 */ sb $v1, ($v0) .L8003CE84: /* 18284 8003CE84 96440332 */ lhu $a0, 0x332($s2) /* 18288 8003CE88 00912021 */ addu $a0, $a0, $s1 /* 1828C 8003CE8C 2484005A */ addiu $a0, $a0, 0x5a /* 18290 8003CE90 00042400 */ sll $a0, $a0, 0x10 /* 18294 8003CE94 0C00A4F5 */ jal cosine /* 18298 8003CE98 00042403 */ sra $a0, $a0, 0x10 /* 1829C 8003CE9C 46000021 */ cvt.d.s $f0, $f0 /* 182A0 8003CEA0 46380000 */ add.d $f0, $f0, $f24 /* 182A4 8003CEA4 46360002 */ mul.d $f0, $f0, $f22 /* 182A8 8003CEA8 00000000 */ nop /* 182AC 8003CEAC 27A20050 */ addiu $v0, $sp, 0x50 /* 182B0 8003CEB0 4620A03E */ c.le.d $f20, $f0 /* 182B4 8003CEB4 00000000 */ nop /* 182B8 8003CEB8 45010005 */ bc1t .L8003CED0 /* 182BC 8003CEBC 00501021 */ addu $v0, $v0, $s0 /* 182C0 8003CEC0 4620008D */ trunc.w.d $f2, $f0 /* 182C4 8003CEC4 44031000 */ mfc1 $v1, $f2 /* 182C8 8003CEC8 0800F3BA */ j .L8003CEE8 /* 182CC 8003CECC A0430000 */ sb $v1, ($v0) .L8003CED0: /* 182D0 8003CED0 46340001 */ sub.d $f0, $f0, $f20 /* 182D4 8003CED4 4620008D */ trunc.w.d $f2, $f0 /* 182D8 8003CED8 44031000 */ mfc1 $v1, $f2 /* 182DC 8003CEDC 00000000 */ nop /* 182E0 8003CEE0 00731825 */ or $v1, $v1, $s3 /* 182E4 8003CEE4 A0430000 */ sb $v1, ($v0) .L8003CEE8: /* 182E8 8003CEE8 26100001 */ addiu $s0, $s0, 1 /* 182EC 8003CEEC 2A020014 */ slti $v0, $s0, 0x14 /* 182F0 8003CEF0 1440FFB3 */ bnez $v0, .L8003CDC0 /* 182F4 8003CEF4 26310019 */ addiu $s1, $s1, 0x19 /* 182F8 8003CEF8 241500FF */ addiu $s5, $zero, 0xff /* 182FC 8003CEFC 0000802D */ daddu $s0, $zero, $zero /* 18300 8003CF00 27B30020 */ addiu $s3, $sp, 0x20 /* 18304 8003CF04 27B20038 */ addiu $s2, $sp, 0x38 /* 18308 8003CF08 27B10050 */ addiu $s1, $sp, 0x50 /* 1830C 8003CF0C 02A0A02D */ daddu $s4, $s5, $zero /* 18310 8003CF10 2405000C */ addiu $a1, $zero, 0xc .L8003CF14: /* 18314 8003CF14 0200302D */ daddu $a2, $s0, $zero /* 18318 8003CF18 02701021 */ addu $v0, $s3, $s0 /* 1831C 8003CF1C 02501821 */ addu $v1, $s2, $s0 /* 18320 8003CF20 02302021 */ addu $a0, $s1, $s0 /* 18324 8003CF24 90470000 */ lbu $a3, ($v0) /* 18328 8003CF28 90620000 */ lbu $v0, ($v1) /* 1832C 8003CF2C 90830000 */ lbu $v1, ($a0) /* 18330 8003CF30 26100001 */ addiu $s0, $s0, 1 /* 18334 8003CF34 AFA00010 */ sw $zero, 0x10($sp) /* 18338 8003CF38 AFB40014 */ sw $s4, 0x14($sp) /* 1833C 8003CF3C AFA00018 */ sw $zero, 0x18($sp) /* 18340 8003CF40 8EC40024 */ lw $a0, 0x24($s6) /* 18344 8003CF44 00073E00 */ sll $a3, $a3, 0x18 /* 18348 8003CF48 00021400 */ sll $v0, $v0, 0x10 /* 1834C 8003CF4C 00E23825 */ or $a3, $a3, $v0 /* 18350 8003CF50 00031A00 */ sll $v1, $v1, 8 /* 18354 8003CF54 00E33825 */ or $a3, $a3, $v1 /* 18358 8003CF58 0C0B7A25 */ jal func_802DE894 /* 1835C 8003CF5C 00F53825 */ or $a3, $a3, $s5 /* 18360 8003CF60 2A020014 */ slti $v0, $s0, 0x14 /* 18364 8003CF64 1440FFEB */ bnez $v0, .L8003CF14 /* 18368 8003CF68 2405000C */ addiu $a1, $zero, 0xc .L8003CF6C: /* 1836C 8003CF6C 8FBF0084 */ lw $ra, 0x84($sp) /* 18370 8003CF70 8FB60080 */ lw $s6, 0x80($sp) /* 18374 8003CF74 8FB5007C */ lw $s5, 0x7c($sp) /* 18378 8003CF78 8FB40078 */ lw $s4, 0x78($sp) /* 1837C 8003CF7C 8FB30074 */ lw $s3, 0x74($sp) /* 18380 8003CF80 8FB20070 */ lw $s2, 0x70($sp) /* 18384 8003CF84 8FB1006C */ lw $s1, 0x6c($sp) /* 18388 8003CF88 8FB00068 */ lw $s0, 0x68($sp) /* 1838C 8003CF8C D7B80098 */ ldc1 $f24, 0x98($sp) /* 18390 8003CF90 D7B60090 */ ldc1 $f22, 0x90($sp) /* 18394 8003CF94 D7B40088 */ ldc1 $f20, 0x88($sp) /* 18398 8003CF98 03E00008 */ jr $ra /* 1839C 8003CF9C 27BD00A0 */ addiu $sp, $sp, 0xa0