.set noat # allow manual use of $at .set noreorder # don't insert nops after branches glabel func_8024B9A0 /* 17A280 8024B9A0 27BDFFB0 */ addiu $sp, $sp, -0x50 /* 17A284 8024B9A4 AFB00018 */ sw $s0, 0x18($sp) /* 17A288 8024B9A8 3C10800B */ lui $s0, 0x800b /* 17A28C 8024B9AC 261022D8 */ addiu $s0, $s0, 0x22d8 /* 17A290 8024B9B0 AFBF001C */ sw $ra, 0x1c($sp) /* 17A294 8024B9B4 F7BE0048 */ sdc1 $f30, 0x48($sp) /* 17A298 8024B9B8 F7BC0040 */ sdc1 $f28, 0x40($sp) /* 17A29C 8024B9BC F7BA0038 */ sdc1 $f26, 0x38($sp) /* 17A2A0 8024B9C0 F7B80030 */ sdc1 $f24, 0x30($sp) /* 17A2A4 8024B9C4 F7B60028 */ sdc1 $f22, 0x28($sp) /* 17A2A8 8024B9C8 F7B40020 */ sdc1 $f20, 0x20($sp) /* 17A2AC 8024B9CC 10A00046 */ beqz $a1, .L8024BAE8 /* 17A2B0 8024B9D0 24030008 */ addiu $v1, $zero, 8 /* 17A2B4 8024B9D4 3C014270 */ lui $at, 0x4270 /* 17A2B8 8024B9D8 44811000 */ mtc1 $at, $f2 /* 17A2BC 8024B9DC 3C04802A */ lui $a0, 0x802a /* 17A2C0 8024B9E0 2484F270 */ addiu $a0, $a0, -0xd90 /* 17A2C4 8024B9E4 AC800000 */ sw $zero, ($a0) /* 17A2C8 8024B9E8 3C02802A */ lui $v0, 0x802a /* 17A2CC 8024B9EC 8042F2A4 */ lb $v0, -0xd5c($v0) /* 17A2D0 8024B9F0 3C01802A */ lui $at, 0x802a /* 17A2D4 8024B9F4 AC20F278 */ sw $zero, -0xd88($at) /* 17A2D8 8024B9F8 3C01802A */ lui $at, 0x802a /* 17A2DC 8024B9FC A420F282 */ sh $zero, -0xd7e($at) /* 17A2E0 8024BA00 3C01802A */ lui $at, 0x802a /* 17A2E4 8024BA04 A423F284 */ sh $v1, -0xd7c($at) /* 17A2E8 8024BA08 3C01802A */ lui $at, 0x802a /* 17A2EC 8024BA0C A420F286 */ sh $zero, -0xd7a($at) /* 17A2F0 8024BA10 3C01802A */ lui $at, 0x802a /* 17A2F4 8024BA14 E422F274 */ swc1 $f2, -0xd8c($at) /* 17A2F8 8024BA18 1040000B */ beqz $v0, .L8024BA48 /* 17A2FC 8024BA1C 00000000 */ nop /* 17A300 8024BA20 C4800000 */ lwc1 $f0, ($a0) /* 17A304 8024BA24 3C02802A */ lui $v0, 0x802a /* 17A308 8024BA28 9442F280 */ lhu $v0, -0xd80($v0) /* 17A30C 8024BA2C E6020058 */ swc1 $f2, 0x58($s0) /* 17A310 8024BA30 A6000026 */ sh $zero, 0x26($s0) /* 17A314 8024BA34 A6000024 */ sh $zero, 0x24($s0) /* 17A318 8024BA38 A6030022 */ sh $v1, 0x22($s0) /* 17A31C 8024BA3C E6000054 */ swc1 $f0, 0x54($s0) /* 17A320 8024BA40 E600005C */ swc1 $f0, 0x5c($s0) /* 17A324 8024BA44 A602001E */ sh $v0, 0x1e($s0) .L8024BA48: /* 17A328 8024BA48 8602001E */ lh $v0, 0x1e($s0) /* 17A32C 8024BA4C 86040026 */ lh $a0, 0x26($s0) /* 17A330 8024BA50 86030024 */ lh $v1, 0x24($s0) /* 17A334 8024BA54 44820000 */ mtc1 $v0, $f0 /* 17A338 8024BA58 00000000 */ nop /* 17A33C 8024BA5C 46800020 */ cvt.s.w $f0, $f0 /* 17A340 8024BA60 86020022 */ lh $v0, 0x22($s0) /* 17A344 8024BA64 3C01802A */ lui $at, 0x802a /* 17A348 8024BA68 E420F28C */ swc1 $f0, -0xd74($at) /* 17A34C 8024BA6C 44820000 */ mtc1 $v0, $f0 /* 17A350 8024BA70 00000000 */ nop /* 17A354 8024BA74 46800020 */ cvt.s.w $f0, $f0 /* 17A358 8024BA78 3C01802A */ lui $at, 0x802a /* 17A35C 8024BA7C E420F294 */ swc1 $f0, -0xd6c($at) /* 17A360 8024BA80 44830000 */ mtc1 $v1, $f0 /* 17A364 8024BA84 00000000 */ nop /* 17A368 8024BA88 46800020 */ cvt.s.w $f0, $f0 /* 17A36C 8024BA8C 3C01802A */ lui $at, 0x802a /* 17A370 8024BA90 E420F290 */ swc1 $f0, -0xd70($at) /* 17A374 8024BA94 04820001 */ bltzl $a0, .L8024BA9C /* 17A378 8024BA98 248400FF */ addiu $a0, $a0, 0xff .L8024BA9C: /* 17A37C 8024BA9C 00041203 */ sra $v0, $a0, 8 /* 17A380 8024BAA0 C6020054 */ lwc1 $f2, 0x54($s0) /* 17A384 8024BAA4 C6040058 */ lwc1 $f4, 0x58($s0) /* 17A388 8024BAA8 C606005C */ lwc1 $f6, 0x5c($s0) /* 17A38C 8024BAAC 3C03802A */ lui $v1, 0x802a /* 17A390 8024BAB0 9463F29E */ lhu $v1, -0xd62($v1) /* 17A394 8024BAB4 44820000 */ mtc1 $v0, $f0 /* 17A398 8024BAB8 00000000 */ nop /* 17A39C 8024BABC 46800020 */ cvt.s.w $f0, $f0 /* 17A3A0 8024BAC0 3C01802A */ lui $at, 0x802a /* 17A3A4 8024BAC4 E420F298 */ swc1 $f0, -0xd68($at) /* 17A3A8 8024BAC8 3C01802A */ lui $at, 0x802a /* 17A3AC 8024BACC E422F2A8 */ swc1 $f2, -0xd58($at) /* 17A3B0 8024BAD0 3C01802A */ lui $at, 0x802a /* 17A3B4 8024BAD4 E424F2AC */ swc1 $f4, -0xd54($at) /* 17A3B8 8024BAD8 3C01802A */ lui $at, 0x802a /* 17A3BC 8024BADC E426F2B0 */ swc1 $f6, -0xd50($at) /* 17A3C0 8024BAE0 3C01802A */ lui $at, 0x802a /* 17A3C4 8024BAE4 A423F2A0 */ sh $v1, -0xd60($at) .L8024BAE8: /* 17A3C8 8024BAE8 3C01802A */ lui $at, 0x802a /* 17A3CC 8024BAEC C43CF274 */ lwc1 $f28, -0xd8c($at) /* 17A3D0 8024BAF0 3C01802A */ lui $at, 0x802a /* 17A3D4 8024BAF4 C43AF270 */ lwc1 $f26, -0xd90($at) /* 17A3D8 8024BAF8 3C02802A */ lui $v0, 0x802a /* 17A3DC 8024BAFC 8042F2A5 */ lb $v0, -0xd5b($v0) /* 17A3E0 8024BB00 3C01802A */ lui $at, 0x802a /* 17A3E4 8024BB04 C43EF278 */ lwc1 $f30, -0xd88($at) /* 17A3E8 8024BB08 14400022 */ bnez $v0, .L8024BB94 /* 17A3EC 8024BB0C E7BC0010 */ swc1 $f28, 0x10($sp) /* 17A3F0 8024BB10 3C02802A */ lui $v0, 0x802a /* 17A3F4 8024BB14 8442F29E */ lh $v0, -0xd62($v0) /* 17A3F8 8024BB18 3C03802A */ lui $v1, 0x802a /* 17A3FC 8024BB1C 8463F2A0 */ lh $v1, -0xd60($v1) /* 17A400 8024BB20 3C013F80 */ lui $at, 0x3f80 /* 17A404 8024BB24 4481C000 */ mtc1 $at, $f24 /* 17A408 8024BB28 44822000 */ mtc1 $v0, $f4 /* 17A40C 8024BB2C 00000000 */ nop /* 17A410 8024BB30 46802120 */ cvt.s.w $f4, $f4 /* 17A414 8024BB34 44830000 */ mtc1 $v1, $f0 /* 17A418 8024BB38 00000000 */ nop /* 17A41C 8024BB3C 46800020 */ cvt.s.w $f0, $f0 /* 17A420 8024BB40 46002103 */ div.s $f4, $f4, $f0 /* 17A424 8024BB44 4604C301 */ sub.s $f12, $f24, $f4 /* 17A428 8024BB48 3C014049 */ lui $at, 0x4049 /* 17A42C 8024BB4C 34210FD0 */ ori $at, $at, 0xfd0 /* 17A430 8024BB50 4481B000 */ mtc1 $at, $f22 /* 17A434 8024BB54 00000000 */ nop /* 17A438 8024BB58 46166302 */ mul.s $f12, $f12, $f22 /* 17A43C 8024BB5C 00000000 */ nop /* 17A440 8024BB60 3C013F00 */ lui $at, 0x3f00 /* 17A444 8024BB64 4481A000 */ mtc1 $at, $f20 /* 17A448 8024BB68 00000000 */ nop /* 17A44C 8024BB6C 46146302 */ mul.s $f12, $f12, $f20 /* 17A450 8024BB70 0C00A85B */ jal sin_rad /* 17A454 8024BB74 00000000 */ nop /* 17A458 8024BB78 46160002 */ mul.s $f0, $f0, $f22 /* 17A45C 8024BB7C 00000000 */ nop /* 17A460 8024BB80 46140302 */ mul.s $f12, $f0, $f20 /* 17A464 8024BB84 0C00A85B */ jal sin_rad /* 17A468 8024BB88 00000000 */ nop /* 17A46C 8024BB8C 08092EF0 */ j .L8024BBC0 /* 17A470 8024BB90 4600C101 */ sub.s $f4, $f24, $f0 .L8024BB94: /* 17A474 8024BB94 3C02802A */ lui $v0, 0x802a /* 17A478 8024BB98 8442F29E */ lh $v0, -0xd62($v0) /* 17A47C 8024BB9C 3C03802A */ lui $v1, 0x802a /* 17A480 8024BBA0 8463F2A0 */ lh $v1, -0xd60($v1) /* 17A484 8024BBA4 44822000 */ mtc1 $v0, $f4 /* 17A488 8024BBA8 00000000 */ nop /* 17A48C 8024BBAC 46802120 */ cvt.s.w $f4, $f4 /* 17A490 8024BBB0 44830000 */ mtc1 $v1, $f0 /* 17A494 8024BBB4 00000000 */ nop /* 17A498 8024BBB8 46800020 */ cvt.s.w $f0, $f0 /* 17A49C 8024BBBC 46002103 */ div.s $f4, $f4, $f0 .L8024BBC0: /* 17A4A0 8024BBC0 3C01802A */ lui $at, 0x802a /* 17A4A4 8024BBC4 C434F2A8 */ lwc1 $f20, -0xd58($at) /* 17A4A8 8024BBC8 4604A502 */ mul.s $f20, $f20, $f4 /* 17A4AC 8024BBCC 00000000 */ nop /* 17A4B0 8024BBD0 3C01802A */ lui $at, 0x802a /* 17A4B4 8024BBD4 C432F2AC */ lwc1 $f18, -0xd54($at) /* 17A4B8 8024BBD8 46049482 */ mul.s $f18, $f18, $f4 /* 17A4BC 8024BBDC 00000000 */ nop /* 17A4C0 8024BBE0 3C01802A */ lui $at, 0x802a /* 17A4C4 8024BBE4 C430F2B0 */ lwc1 $f16, -0xd50($at) /* 17A4C8 8024BBE8 46048402 */ mul.s $f16, $f16, $f4 /* 17A4CC 8024BBEC 00000000 */ nop /* 17A4D0 8024BBF0 3C01802A */ lui $at, 0x802a /* 17A4D4 8024BBF4 C426F298 */ lwc1 $f6, -0xd68($at) /* 17A4D8 8024BBF8 46043182 */ mul.s $f6, $f6, $f4 /* 17A4DC 8024BBFC 00000000 */ nop /* 17A4E0 8024BC00 3C01802A */ lui $at, 0x802a /* 17A4E4 8024BC04 C42CF28C */ lwc1 $f12, -0xd74($at) /* 17A4E8 8024BC08 46046302 */ mul.s $f12, $f12, $f4 /* 17A4EC 8024BC0C 00000000 */ nop /* 17A4F0 8024BC10 3C01802A */ lui $at, 0x802a /* 17A4F4 8024BC14 C428F290 */ lwc1 $f8, -0xd70($at) /* 17A4F8 8024BC18 46044202 */ mul.s $f8, $f8, $f4 /* 17A4FC 8024BC1C 00000000 */ nop /* 17A500 8024BC20 3C013F80 */ lui $at, 0x3f80 /* 17A504 8024BC24 44811000 */ mtc1 $at, $f2 /* 17A508 8024BC28 00000000 */ nop /* 17A50C 8024BC2C 46041081 */ sub.s $f2, $f2, $f4 /* 17A510 8024BC30 4602D682 */ mul.s $f26, $f26, $f2 /* 17A514 8024BC34 00000000 */ nop /* 17A518 8024BC38 C7BC0010 */ lwc1 $f28, 0x10($sp) /* 17A51C 8024BC3C 4602E602 */ mul.s $f24, $f28, $f2 /* 17A520 8024BC40 00000000 */ nop /* 17A524 8024BC44 3C02802A */ lui $v0, 0x802a /* 17A528 8024BC48 8442F286 */ lh $v0, -0xd7a($v0) /* 17A52C 8024BC4C 44820000 */ mtc1 $v0, $f0 /* 17A530 8024BC50 00000000 */ nop /* 17A534 8024BC54 46800020 */ cvt.s.w $f0, $f0 /* 17A538 8024BC58 46020002 */ mul.s $f0, $f0, $f2 /* 17A53C 8024BC5C 00000000 */ nop /* 17A540 8024BC60 4602F582 */ mul.s $f22, $f30, $f2 /* 17A544 8024BC64 00000000 */ nop /* 17A548 8024BC68 3C02802A */ lui $v0, 0x802a /* 17A54C 8024BC6C 8442F280 */ lh $v0, -0xd80($v0) /* 17A550 8024BC70 44827000 */ mtc1 $v0, $f14 /* 17A554 8024BC74 00000000 */ nop /* 17A558 8024BC78 468073A0 */ cvt.s.w $f14, $f14 /* 17A55C 8024BC7C 46027382 */ mul.s $f14, $f14, $f2 /* 17A560 8024BC80 00000000 */ nop /* 17A564 8024BC84 3C02802A */ lui $v0, 0x802a /* 17A568 8024BC88 8442F282 */ lh $v0, -0xd7e($v0) /* 17A56C 8024BC8C 44825000 */ mtc1 $v0, $f10 /* 17A570 8024BC90 00000000 */ nop /* 17A574 8024BC94 468052A0 */ cvt.s.w $f10, $f10 /* 17A578 8024BC98 46025282 */ mul.s $f10, $f10, $f2 /* 17A57C 8024BC9C 00000000 */ nop /* 17A580 8024BCA0 46003180 */ add.s $f6, $f6, $f0 /* 17A584 8024BCA4 3C014380 */ lui $at, 0x4380 /* 17A588 8024BCA8 44810000 */ mtc1 $at, $f0 /* 17A58C 8024BCAC 00000000 */ nop /* 17A590 8024BCB0 46003182 */ mul.s $f6, $f6, $f0 /* 17A594 8024BCB4 00000000 */ nop /* 17A598 8024BCB8 3C01802A */ lui $at, 0x802a /* 17A59C 8024BCBC C420F294 */ lwc1 $f0, -0xd6c($at) /* 17A5A0 8024BCC0 46040002 */ mul.s $f0, $f0, $f4 /* 17A5A4 8024BCC4 00000000 */ nop /* 17A5A8 8024BCC8 461AA500 */ add.s $f20, $f20, $f26 /* 17A5AC 8024BCCC 46189480 */ add.s $f18, $f18, $f24 /* 17A5B0 8024BCD0 46168400 */ add.s $f16, $f16, $f22 /* 17A5B4 8024BCD4 460E6300 */ add.s $f12, $f12, $f14 /* 17A5B8 8024BCD8 3C04802A */ lui $a0, 0x802a /* 17A5BC 8024BCDC 2484F29E */ addiu $a0, $a0, -0xd62 /* 17A5C0 8024BCE0 3C02802A */ lui $v0, 0x802a /* 17A5C4 8024BCE4 8442F284 */ lh $v0, -0xd7c($v0) /* 17A5C8 8024BCE8 460A4200 */ add.s $f8, $f8, $f10 /* 17A5CC 8024BCEC E6140054 */ swc1 $f20, 0x54($s0) /* 17A5D0 8024BCF0 44822000 */ mtc1 $v0, $f4 /* 17A5D4 8024BCF4 00000000 */ nop /* 17A5D8 8024BCF8 46802120 */ cvt.s.w $f4, $f4 /* 17A5DC 8024BCFC 46022102 */ mul.s $f4, $f4, $f2 /* 17A5E0 8024BD00 00000000 */ nop /* 17A5E4 8024BD04 E6120058 */ swc1 $f18, 0x58($s0) /* 17A5E8 8024BD08 E610005C */ swc1 $f16, 0x5c($s0) /* 17A5EC 8024BD0C 4600670D */ trunc.w.s $f28, $f12 /* 17A5F0 8024BD10 4402E000 */ mfc1 $v0, $f28 /* 17A5F4 8024BD14 00000000 */ nop /* 17A5F8 8024BD18 A602001E */ sh $v0, 0x1e($s0) /* 17A5FC 8024BD1C 46040000 */ add.s $f0, $f0, $f4 /* 17A600 8024BD20 4600470D */ trunc.w.s $f28, $f8 /* 17A604 8024BD24 4402E000 */ mfc1 $v0, $f28 /* 17A608 8024BD28 00000000 */ nop /* 17A60C 8024BD2C A6020024 */ sh $v0, 0x24($s0) /* 17A610 8024BD30 4600070D */ trunc.w.s $f28, $f0 /* 17A614 8024BD34 4402E000 */ mfc1 $v0, $f28 /* 17A618 8024BD38 00000000 */ nop /* 17A61C 8024BD3C A6020022 */ sh $v0, 0x22($s0) /* 17A620 8024BD40 4600370D */ trunc.w.s $f28, $f6 /* 17A624 8024BD44 4402E000 */ mfc1 $v0, $f28 /* 17A628 8024BD48 00000000 */ nop /* 17A62C 8024BD4C A6020026 */ sh $v0, 0x26($s0) /* 17A630 8024BD50 84820000 */ lh $v0, ($a0) /* 17A634 8024BD54 94830000 */ lhu $v1, ($a0) /* 17A638 8024BD58 14400006 */ bnez $v0, .L8024BD74 /* 17A63C 8024BD5C 2462FFFF */ addiu $v0, $v1, -1 /* 17A640 8024BD60 24020001 */ addiu $v0, $zero, 1 /* 17A644 8024BD64 3C01802A */ lui $at, 0x802a /* 17A648 8024BD68 A022F29C */ sb $v0, -0xd64($at) /* 17A64C 8024BD6C 08092F5E */ j .L8024BD78 /* 17A650 8024BD70 00000000 */ nop .L8024BD74: /* 17A654 8024BD74 A4820000 */ sh $v0, ($a0) .L8024BD78: /* 17A658 8024BD78 8FBF001C */ lw $ra, 0x1c($sp) /* 17A65C 8024BD7C 8FB00018 */ lw $s0, 0x18($sp) /* 17A660 8024BD80 D7BE0048 */ ldc1 $f30, 0x48($sp) /* 17A664 8024BD84 D7BC0040 */ ldc1 $f28, 0x40($sp) /* 17A668 8024BD88 D7BA0038 */ ldc1 $f26, 0x38($sp) /* 17A66C 8024BD8C D7B80030 */ ldc1 $f24, 0x30($sp) /* 17A670 8024BD90 D7B60028 */ ldc1 $f22, 0x28($sp) /* 17A674 8024BD94 D7B40020 */ ldc1 $f20, 0x20($sp) /* 17A678 8024BD98 0000102D */ daddu $v0, $zero, $zero /* 17A67C 8024BD9C 03E00008 */ jr $ra /* 17A680 8024BDA0 27BD0050 */ addiu $sp, $sp, 0x50