#include #include "constants.h" #include "game/data/data_000000.h" #include "game/data/data_0083d0.h" #include "game/data/data_00e460.h" #include "game/data/data_0160b0.h" #include "game/data/data_01a3a0.h" #include "game/data/data_020df0.h" #include "game/data/data_02da90.h" #include "gvars/gvars.h" #include "lib/lib_04320.h" #include "lib/lib_4a360.h" #include "types.h" GLOBAL_ASM( glabel func00004320 /* 4320: 27bdffb8 */ addiu $sp,$sp,-72 /* 4324: afbf0044 */ sw $ra,0x44($sp) /* 4328: f7be0038 */ sdc1 $f30,0x38($sp) /* 432c: f7bc0030 */ sdc1 $f28,0x30($sp) /* 4330: f7ba0028 */ sdc1 $f26,0x28($sp) /* 4334: f7b80020 */ sdc1 $f24,0x20($sp) /* 4338: f7b60018 */ sdc1 $f22,0x18($sp) /* 433c: f7b40010 */ sdc1 $f20,0x10($sp) /* 4340: afa60050 */ sw $a2,0x50($sp) /* 4344: afa70054 */ sw $a3,0x54($sp) /* 4348: afa40048 */ sw $a0,0x48($sp) /* 434c: 0c012918 */ jal func0004a460 /* 4350: afa5004c */ sw $a1,0x4c($sp) /* 4354: c7a4005c */ lwc1 $f4,0x5c($sp) /* 4358: c7a60050 */ lwc1 $f6,0x50($sp) /* 435c: c7a80060 */ lwc1 $f8,0x60($sp) /* 4360: c7aa0054 */ lwc1 $f10,0x54($sp) /* 4364: 46062001 */ sub.s $f0,$f4,$f6 /* 4368: c7a60058 */ lwc1 $f6,0x58($sp) /* 436c: c7a40064 */ lwc1 $f4,0x64($sp) /* 4370: 460a4581 */ sub.s $f22,$f8,$f10 /* 4374: 46000202 */ mul.s $f8,$f0,$f0 /* 4378: 46000506 */ mov.s $f20,$f0 /* 437c: 46062601 */ sub.s $f24,$f4,$f6 /* 4380: 4616b282 */ mul.s $f10,$f22,$f22 /* 4384: 460a4100 */ add.s $f4,$f8,$f10 /* 4388: 4618c182 */ mul.s $f6,$f24,$f24 /* 438c: 0c012974 */ jal sqrtf /* 4390: 46062300 */ add.s $f12,$f4,$f6 /* 4394: 3c01bf80 */ lui $at,0xbf80 /* 4398: 44814000 */ mtc1 $at,$f8 /* 439c: c7aa006c */ lwc1 $f10,0x6c($sp) /* 43a0: c7a60070 */ lwc1 $f6,0x70($sp) /* 43a4: 46004083 */ div.s $f2,$f8,$f0 /* 43a8: 4602a502 */ mul.s $f20,$f20,$f2 /* 43ac: 00000000 */ sll $zero,$zero,0x0 /* 43b0: 4602b582 */ mul.s $f22,$f22,$f2 /* 43b4: 00000000 */ sll $zero,$zero,0x0 /* 43b8: 4602c602 */ mul.s $f24,$f24,$f2 /* 43bc: 00000000 */ sll $zero,$zero,0x0 /* 43c0: 46185102 */ mul.s $f4,$f10,$f24 /* 43c4: 00000000 */ sll $zero,$zero,0x0 /* 43c8: 46163202 */ mul.s $f8,$f6,$f22 /* 43cc: 46082681 */ sub.s $f26,$f4,$f8 /* 43d0: 46143102 */ mul.s $f4,$f6,$f20 /* 43d4: c7a80068 */ lwc1 $f8,0x68($sp) /* 43d8: 46184182 */ mul.s $f6,$f8,$f24 /* 43dc: 46062701 */ sub.s $f28,$f4,$f6 /* 43e0: 46164102 */ mul.s $f4,$f8,$f22 /* 43e4: 00000000 */ sll $zero,$zero,0x0 /* 43e8: 46145182 */ mul.s $f6,$f10,$f20 /* 43ec: 46062781 */ sub.s $f30,$f4,$f6 /* 43f0: 461ad202 */ mul.s $f8,$f26,$f26 /* 43f4: 00000000 */ sll $zero,$zero,0x0 /* 43f8: 461ce282 */ mul.s $f10,$f28,$f28 /* 43fc: 460a4100 */ add.s $f4,$f8,$f10 /* 4400: 461ef182 */ mul.s $f6,$f30,$f30 /* 4404: 0c012974 */ jal sqrtf /* 4408: 46062300 */ add.s $f12,$f4,$f6 /* 440c: 3c013f80 */ lui $at,0x3f80 /* 4410: 44814000 */ mtc1 $at,$f8 /* 4414: 00000000 */ sll $zero,$zero,0x0 /* 4418: 46004083 */ div.s $f2,$f8,$f0 /* 441c: 4602d682 */ mul.s $f26,$f26,$f2 /* 4420: 00000000 */ sll $zero,$zero,0x0 /* 4424: 4602e702 */ mul.s $f28,$f28,$f2 /* 4428: 00000000 */ sll $zero,$zero,0x0 /* 442c: 4602f782 */ mul.s $f30,$f30,$f2 /* 4430: 00000000 */ sll $zero,$zero,0x0 /* 4434: 461eb282 */ mul.s $f10,$f22,$f30 /* 4438: 00000000 */ sll $zero,$zero,0x0 /* 443c: 461cc102 */ mul.s $f4,$f24,$f28 /* 4440: 00000000 */ sll $zero,$zero,0x0 /* 4444: 461ac182 */ mul.s $f6,$f24,$f26 /* 4448: 00000000 */ sll $zero,$zero,0x0 /* 444c: 461ea202 */ mul.s $f8,$f20,$f30 /* 4450: 46045381 */ sub.s $f14,$f10,$f4 /* 4454: 461ca282 */ mul.s $f10,$f20,$f28 /* 4458: 00000000 */ sll $zero,$zero,0x0 /* 445c: 461ab102 */ mul.s $f4,$f22,$f26 /* 4460: e7ae0068 */ swc1 $f14,0x68($sp) /* 4464: 46083401 */ sub.s $f16,$f6,$f8 /* 4468: 460e7182 */ mul.s $f6,$f14,$f14 /* 446c: 00000000 */ sll $zero,$zero,0x0 /* 4470: 46108202 */ mul.s $f8,$f16,$f16 /* 4474: e7b0006c */ swc1 $f16,0x6c($sp) /* 4478: 46045481 */ sub.s $f18,$f10,$f4 /* 447c: 46129102 */ mul.s $f4,$f18,$f18 /* 4480: 46083280 */ add.s $f10,$f6,$f8 /* 4484: e7b20070 */ swc1 $f18,0x70($sp) /* 4488: 0c012974 */ jal sqrtf /* 448c: 46045300 */ add.s $f12,$f10,$f4 /* 4490: 3c0142fe */ lui $at,0x42fe /* 4494: 44816000 */ mtc1 $at,$f12 /* 4498: 3c014300 */ lui $at,0x4300 /* 449c: 44818000 */ mtc1 $at,$f16 /* 44a0: 3c013f80 */ lui $at,0x3f80 /* 44a4: 44813000 */ mtc1 $at,$f6 /* 44a8: c7a80068 */ lwc1 $f8,0x68($sp) /* 44ac: c7a4006c */ lwc1 $f4,0x6c($sp) /* 44b0: 46003083 */ div.s $f2,$f6,$f0 /* 44b4: 8fa40048 */ lw $a0,0x48($sp) /* 44b8: 8fa5004c */ lw $a1,0x4c($sp) /* 44bc: 24020080 */ addiu $v0,$zero,0x80 /* 44c0: 46024282 */ mul.s $f10,$f8,$f2 /* 44c4: c7a80070 */ lwc1 $f8,0x70($sp) /* 44c8: 46022182 */ mul.s $f6,$f4,$f2 /* 44cc: e7aa0068 */ swc1 $f10,0x68($sp) /* 44d0: 46024282 */ mul.s $f10,$f8,$f2 /* 44d4: e7a6006c */ swc1 $f6,0x6c($sp) /* 44d8: 4610d382 */ mul.s $f14,$f26,$f16 /* 44dc: e7aa0070 */ swc1 $f10,0x70($sp) /* 44e0: 4610e082 */ mul.s $f2,$f28,$f16 /* 44e4: 460c703c */ c.lt.s $f14,$f12 /* 44e8: 00000000 */ sll $zero,$zero,0x0 /* 44ec: 45020004 */ bc1fl .L00004500 /* 44f0: 46006006 */ mov.s $f0,$f12 /* 44f4: 10000002 */ beqz $zero,.L00004500 /* 44f8: 46007006 */ mov.s $f0,$f14 /* 44fc: 46006006 */ mov.s $f0,$f12 .L00004500: /* 4500: 4600010d */ trunc.w.s $f4,$f0 /* 4504: 460c103c */ c.lt.s $f2,$f12 /* 4508: 44182000 */ mfc1 $t8,$f4 /* 450c: 45000003 */ bc1f .L0000451c /* 4510: a0b80008 */ sb $t8,0x8($a1) /* 4514: 10000002 */ beqz $zero,.L00004520 /* 4518: 46001006 */ mov.s $f0,$f2 .L0000451c: /* 451c: 46006006 */ mov.s $f0,$f12 .L00004520: /* 4520: 4610f082 */ mul.s $f2,$f30,$f16 /* 4524: 4600018d */ trunc.w.s $f6,$f0 /* 4528: 460c103c */ c.lt.s $f2,$f12 /* 452c: 44093000 */ mfc1 $t1,$f6 /* 4530: 45000003 */ bc1f .L00004540 /* 4534: a0a90009 */ sb $t1,0x9($a1) /* 4538: 10000002 */ beqz $zero,.L00004544 /* 453c: 46001006 */ mov.s $f0,$f2 .L00004540: /* 4540: 46006006 */ mov.s $f0,$f12 .L00004544: /* 4544: 4600020d */ trunc.w.s $f8,$f0 /* 4548: 440c4000 */ mfc1 $t4,$f8 /* 454c: 00000000 */ sll $zero,$zero,0x0 /* 4550: a0ac000a */ sb $t4,0xa($a1) /* 4554: c7aa0068 */ lwc1 $f10,0x68($sp) /* 4558: 46105082 */ mul.s $f2,$f10,$f16 /* 455c: 460c103c */ c.lt.s $f2,$f12 /* 4560: 00000000 */ sll $zero,$zero,0x0 /* 4564: 45020004 */ bc1fl .L00004578 /* 4568: 46006006 */ mov.s $f0,$f12 /* 456c: 10000002 */ beqz $zero,.L00004578 /* 4570: 46001006 */ mov.s $f0,$f2 /* 4574: 46006006 */ mov.s $f0,$f12 .L00004578: /* 4578: 4600010d */ trunc.w.s $f4,$f0 /* 457c: 440f2000 */ mfc1 $t7,$f4 /* 4580: 00000000 */ sll $zero,$zero,0x0 /* 4584: a0af0018 */ sb $t7,0x18($a1) /* 4588: c7a6006c */ lwc1 $f6,0x6c($sp) /* 458c: 46103082 */ mul.s $f2,$f6,$f16 /* 4590: 460c103c */ c.lt.s $f2,$f12 /* 4594: 00000000 */ sll $zero,$zero,0x0 /* 4598: 45020004 */ bc1fl .L000045ac /* 459c: 46006006 */ mov.s $f0,$f12 /* 45a0: 10000002 */ beqz $zero,.L000045ac /* 45a4: 46001006 */ mov.s $f0,$f2 /* 45a8: 46006006 */ mov.s $f0,$f12 .L000045ac: /* 45ac: 4600020d */ trunc.w.s $f8,$f0 /* 45b0: 44084000 */ mfc1 $t0,$f8 /* 45b4: 00000000 */ sll $zero,$zero,0x0 /* 45b8: a0a80019 */ sb $t0,0x19($a1) /* 45bc: c7aa0070 */ lwc1 $f10,0x70($sp) /* 45c0: 46105082 */ mul.s $f2,$f10,$f16 /* 45c4: 460c103c */ c.lt.s $f2,$f12 /* 45c8: 00000000 */ sll $zero,$zero,0x0 /* 45cc: 45020004 */ bc1fl .L000045e0 /* 45d0: 46006006 */ mov.s $f0,$f12 /* 45d4: 10000002 */ beqz $zero,.L000045e0 /* 45d8: 46001006 */ mov.s $f0,$f2 /* 45dc: 46006006 */ mov.s $f0,$f12 .L000045e0: /* 45e0: 4600010d */ trunc.w.s $f4,$f0 /* 45e4: a0a00000 */ sb $zero,0x0($a1) /* 45e8: a0a00001 */ sb $zero,0x1($a1) /* 45ec: a0a00002 */ sb $zero,0x2($a1) /* 45f0: 440b2000 */ mfc1 $t3,$f4 /* 45f4: a0a00003 */ sb $zero,0x3($a1) /* 45f8: a0a00004 */ sb $zero,0x4($a1) /* 45fc: a0a00005 */ sb $zero,0x5($a1) /* 4600: a0a00006 */ sb $zero,0x6($a1) /* 4604: a0a00007 */ sb $zero,0x7($a1) /* 4608: a0a00010 */ sb $zero,0x10($a1) /* 460c: a0a20011 */ sb $v0,0x11($a1) /* 4610: a0a00012 */ sb $zero,0x12($a1) /* 4614: a0a00013 */ sb $zero,0x13($a1) /* 4618: a0a00014 */ sb $zero,0x14($a1) /* 461c: a0a20015 */ sb $v0,0x15($a1) /* 4620: a0a00016 */ sb $zero,0x16($a1) /* 4624: a0a00017 */ sb $zero,0x17($a1) /* 4628: a0ab001a */ sb $t3,0x1a($a1) /* 462c: e49a0000 */ swc1 $f26,0x0($a0) /* 4630: c7b20050 */ lwc1 $f18,0x50($sp) /* 4634: c7b00054 */ lwc1 $f16,0x54($sp) /* 4638: c7ae0058 */ lwc1 $f14,0x58($sp) /* 463c: 461a9182 */ mul.s $f6,$f18,$f26 /* 4640: c7a00068 */ lwc1 $f0,0x68($sp) /* 4644: c7ac006c */ lwc1 $f12,0x6c($sp) /* 4648: 461c8202 */ mul.s $f8,$f16,$f28 /* 464c: c7a20070 */ lwc1 $f2,0x70($sp) /* 4650: e49c0010 */ swc1 $f28,0x10($a0) /* 4654: 461e7102 */ mul.s $f4,$f14,$f30 /* 4658: e49e0020 */ swc1 $f30,0x20($a0) /* 465c: e4940008 */ swc1 $f20,0x8($a0) /* 4660: e4960018 */ swc1 $f22,0x18($a0) /* 4664: e4980028 */ swc1 $f24,0x28($a0) /* 4668: 46083280 */ add.s $f10,$f6,$f8 /* 466c: e4800004 */ swc1 $f0,0x4($a0) /* 4670: e48c0014 */ swc1 $f12,0x14($a0) /* 4674: e4820024 */ swc1 $f2,0x24($a0) /* 4678: 46045180 */ add.s $f6,$f10,$f4 /* 467c: 46009282 */ mul.s $f10,$f18,$f0 /* 4680: 44800000 */ mtc1 $zero,$f0 /* 4684: 3c013f80 */ lui $at,0x3f80 /* 4688: 460c8102 */ mul.s $f4,$f16,$f12 /* 468c: 46003207 */ neg.s $f8,$f6 /* 4690: e4880030 */ swc1 $f8,0x30($a0) /* 4694: 46027202 */ mul.s $f8,$f14,$f2 /* 4698: 46045180 */ add.s $f6,$f10,$f4 /* 469c: 46083280 */ add.s $f10,$f6,$f8 /* 46a0: 46005107 */ neg.s $f4,$f10 /* 46a4: e4840034 */ swc1 $f4,0x34($a0) /* 46a8: c7a60050 */ lwc1 $f6,0x50($sp) /* 46ac: c7aa0054 */ lwc1 $f10,0x54($sp) /* 46b0: 46143202 */ mul.s $f8,$f6,$f20 /* 46b4: 00000000 */ sll $zero,$zero,0x0 /* 46b8: 46165102 */ mul.s $f4,$f10,$f22 /* 46bc: c7aa0058 */ lwc1 $f10,0x58($sp) /* 46c0: e480000c */ swc1 $f0,0xc($a0) /* 46c4: e480001c */ swc1 $f0,0x1c($a0) /* 46c8: e480002c */ swc1 $f0,0x2c($a0) /* 46cc: 46044180 */ add.s $f6,$f8,$f4 /* 46d0: 46185202 */ mul.s $f8,$f10,$f24 /* 46d4: 46083100 */ add.s $f4,$f6,$f8 /* 46d8: 44813000 */ mtc1 $at,$f6 /* 46dc: 46002287 */ neg.s $f10,$f4 /* 46e0: e486003c */ swc1 $f6,0x3c($a0) /* 46e4: e48a0038 */ swc1 $f10,0x38($a0) /* 46e8: 8fbf0044 */ lw $ra,0x44($sp) /* 46ec: d7be0038 */ ldc1 $f30,0x38($sp) /* 46f0: d7bc0030 */ ldc1 $f28,0x30($sp) /* 46f4: d7ba0028 */ ldc1 $f26,0x28($sp) /* 46f8: d7b80020 */ ldc1 $f24,0x20($sp) /* 46fc: d7b60018 */ ldc1 $f22,0x18($sp) /* 4700: d7b40010 */ ldc1 $f20,0x10($sp) /* 4704: 03e00008 */ jr $ra /* 4708: 27bd0048 */ addiu $sp,$sp,0x48 ); GLOBAL_ASM( glabel func0000470c /* 470c: 27bdff88 */ addiu $sp,$sp,-120 /* 4710: c7a40088 */ lwc1 $f4,0x88($sp) /* 4714: 44866000 */ mtc1 $a2,$f12 /* 4718: 44877000 */ mtc1 $a3,$f14 /* 471c: e7a40010 */ swc1 $f4,0x10($sp) /* 4720: c7a400a0 */ lwc1 $f4,0xa0($sp) /* 4724: c7a6008c */ lwc1 $f6,0x8c($sp) /* 4728: c7a80090 */ lwc1 $f8,0x90($sp) /* 472c: c7aa0094 */ lwc1 $f10,0x94($sp) /* 4730: c7b00098 */ lwc1 $f16,0x98($sp) /* 4734: c7b2009c */ lwc1 $f18,0x9c($sp) /* 4738: afbf0034 */ sw $ra,0x34($sp) /* 473c: afa40078 */ sw $a0,0x78($sp) /* 4740: 44066000 */ mfc1 $a2,$f12 /* 4744: 44077000 */ mfc1 $a3,$f14 /* 4748: 27a40038 */ addiu $a0,$sp,0x38 /* 474c: e7a40028 */ swc1 $f4,0x28($sp) /* 4750: e7a60014 */ swc1 $f6,0x14($sp) /* 4754: e7a80018 */ swc1 $f8,0x18($sp) /* 4758: e7aa001c */ swc1 $f10,0x1c($sp) /* 475c: e7b00020 */ swc1 $f16,0x20($sp) /* 4760: 0c0010c8 */ jal func00004320 /* 4764: e7b20024 */ swc1 $f18,0x24($sp) /* 4768: 27a40038 */ addiu $a0,$sp,0x38 /* 476c: 0c0128d8 */ jal func0004a360 /* 4770: 8fa50078 */ lw $a1,0x78($sp) /* 4774: 8fbf0034 */ lw $ra,0x34($sp) /* 4778: 27bd0078 */ addiu $sp,$sp,0x78 /* 477c: 03e00008 */ jr $ra /* 4780: 00000000 */ sll $zero,$zero,0x0 /* 4784: 00000000 */ sll $zero,$zero,0x0 /* 4788: 00000000 */ sll $zero,$zero,0x0 /* 478c: 00000000 */ sll $zero,$zero,0x0 );