papermario/ver/us/asm/nonmatchings/code_342140/func_E0030000.s
alex a4e1c2f522
Add versioning (#187)
* fix vscode cpp extension messing with files.associations

* move stuff

* it builds!

* symlink papermario.us.z64

* ci: put baserom in right place

* add jp

* fix splat dir

* ignore starrod dump

* .s deps

* update jenkins

* add dsl back

* configure.py versions

* wups

* fine ethan

* fix paths

* configure: default to only the version(s) with existing baseroms

* fix coverage

* fix progress.py

* progress.py verisoning

* remove format.sh from CONTRIBUTING

* update CONTRIBUTING

* fix first_diff

* diff.py: use ver/current/

* update splat.yaml

* trying to fix subrepo

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "06a737f02d"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "06a737f02d"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* configure fix

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "41786effd3"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "41786effd3"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2021-02-22 18:21:23 +09:00

486 lines
24 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_E0030000
/* 342140 E0030000 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 342144 E0030004 F7B600A8 */ sdc1 $f22, 0xa8($sp)
/* 342148 E0030008 C7B600E0 */ lwc1 $f22, 0xe0($sp)
/* 34214C E003000C F7B800B0 */ sdc1 $f24, 0xb0($sp)
/* 342150 E0030010 C7B800E4 */ lwc1 $f24, 0xe4($sp)
/* 342154 E0030014 F7BA00B8 */ sdc1 $f26, 0xb8($sp)
/* 342158 E0030018 C7BA00E8 */ lwc1 $f26, 0xe8($sp)
/* 34215C E003001C 8FA800EC */ lw $t0, 0xec($sp)
/* 342160 E0030020 AFB60090 */ sw $s6, 0x90($sp)
/* 342164 E0030024 0080B02D */ daddu $s6, $a0, $zero
/* 342168 E0030028 AFB00078 */ sw $s0, 0x78($sp)
/* 34216C E003002C 27B00018 */ addiu $s0, $sp, 0x18
/* 342170 E0030030 AFBF009C */ sw $ra, 0x9c($sp)
/* 342174 E0030034 AFBE0098 */ sw $fp, 0x98($sp)
/* 342178 E0030038 AFB70094 */ sw $s7, 0x94($sp)
/* 34217C E003003C AFB5008C */ sw $s5, 0x8c($sp)
/* 342180 E0030040 AFB40088 */ sw $s4, 0x88($sp)
/* 342184 E0030044 AFB30084 */ sw $s3, 0x84($sp)
/* 342188 E0030048 AFB20080 */ sw $s2, 0x80($sp)
/* 34218C E003004C AFB1007C */ sw $s1, 0x7c($sp)
/* 342190 E0030050 F7BE00C8 */ sdc1 $f30, 0xc8($sp)
/* 342194 E0030054 F7BC00C0 */ sdc1 $f28, 0xc0($sp)
/* 342198 E0030058 F7B400A0 */ sdc1 $f20, 0xa0($sp)
/* 34219C E003005C AFA500D4 */ sw $a1, 0xd4($sp)
/* 3421A0 E0030060 AFA600D8 */ sw $a2, 0xd8($sp)
/* 3421A4 E0030064 1100019E */ beqz $t0, .LE00306E0
/* 3421A8 E0030068 AFA700DC */ sw $a3, 0xdc($sp)
/* 3421AC E003006C 4616B002 */ mul.s $f0, $f22, $f22
/* 3421B0 E0030070 00000000 */ nop
/* 3421B4 E0030074 4618C082 */ mul.s $f2, $f24, $f24
/* 3421B8 E0030078 00000000 */ nop
/* 3421BC E003007C 461AD102 */ mul.s $f4, $f26, $f26
/* 3421C0 E0030080 00000000 */ nop
/* 3421C4 E0030084 46020000 */ add.s $f0, $f0, $f2
/* 3421C8 E0030088 46040300 */ add.s $f12, $f0, $f4
/* 3421CC E003008C 4480A000 */ mtc1 $zero, $f20
/* 3421D0 E0030090 00000000 */ nop
/* 3421D4 E0030094 46146032 */ c.eq.s $f12, $f20
/* 3421D8 E0030098 00000000 */ nop
/* 3421DC E003009C 45010190 */ bc1t .LE00306E0
/* 3421E0 E00300A0 00000000 */ nop
/* 3421E4 E00300A4 0C080154 */ jal func_E0200550
/* 3421E8 E00300A8 00000000 */ nop
/* 3421EC E00300AC 3C01BF80 */ lui $at, 0xbf80
/* 3421F0 E00300B0 44811000 */ mtc1 $at, $f2
/* 3421F4 E00300B4 00000000 */ nop
/* 3421F8 E00300B8 46001303 */ div.s $f12, $f2, $f0
/* 3421FC E00300BC 460CB582 */ mul.s $f22, $f22, $f12
/* 342200 E00300C0 00000000 */ nop
/* 342204 E00300C4 460CC602 */ mul.s $f24, $f24, $f12
/* 342208 E00300C8 00000000 */ nop
/* 34220C E00300CC 460CD682 */ mul.s $f26, $f26, $f12
/* 342210 E00300D0 00000000 */ nop
/* 342214 E00300D4 4614B032 */ c.eq.s $f22, $f20
/* 342218 E00300D8 00000000 */ nop
/* 34221C E00300DC 45010007 */ bc1t .LE00300FC
/* 342220 E00300E0 4600A706 */ mov.s $f28, $f20
/* 342224 E00300E4 4600C007 */ neg.s $f0, $f24
/* 342228 E00300E8 46160783 */ div.s $f30, $f0, $f22
/* 34222C E00300EC 3C013F80 */ lui $at, 0x3f80
/* 342230 E00300F0 44813000 */ mtc1 $at, $f6
/* 342234 E00300F4 0800C04D */ j .LE0030134
/* 342238 E00300F8 E7A60070 */ swc1 $f6, 0x70($sp)
.LE00300FC:
/* 34223C E00300FC 4614C032 */ c.eq.s $f24, $f20
/* 342240 E0030100 00000000 */ nop
/* 342244 E0030104 45010007 */ bc1t .LE0030124
/* 342248 E0030108 4600B007 */ neg.s $f0, $f22
/* 34224C E003010C 46180003 */ div.s $f0, $f0, $f24
/* 342250 E0030110 3C013F80 */ lui $at, 0x3f80
/* 342254 E0030114 4481F000 */ mtc1 $at, $f30
/* 342258 E0030118 4600A706 */ mov.s $f28, $f20
/* 34225C E003011C 0800C04D */ j .LE0030134
/* 342260 E0030120 E7A00070 */ swc1 $f0, 0x70($sp)
.LE0030124:
/* 342264 E0030124 3C013F80 */ lui $at, 0x3f80
/* 342268 E0030128 4481F000 */ mtc1 $at, $f30
/* 34226C E003012C 461A0703 */ div.s $f28, $f0, $f26
/* 342270 E0030130 E7B40070 */ swc1 $f20, 0x70($sp)
.LE0030134:
/* 342274 E0030134 461EF002 */ mul.s $f0, $f30, $f30
/* 342278 E0030138 00000000 */ nop
/* 34227C E003013C 461CE102 */ mul.s $f4, $f28, $f28
/* 342280 E0030140 00000000 */ nop
/* 342284 E0030144 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 342288 E0030148 46004186 */ mov.s $f6, $f8
/* 34228C E003014C 46064082 */ mul.s $f2, $f8, $f6
/* 342290 E0030150 00000000 */ nop
/* 342294 E0030154 46020000 */ add.s $f0, $f0, $f2
/* 342298 E0030158 46040300 */ add.s $f12, $f0, $f4
/* 34229C E003015C 44800000 */ mtc1 $zero, $f0
/* 3422A0 E0030160 00000000 */ nop
/* 3422A4 E0030164 46006032 */ c.eq.s $f12, $f0
/* 3422A8 E0030168 00000000 */ nop
/* 3422AC E003016C 4501015C */ bc1t .LE00306E0
/* 3422B0 E0030170 00000000 */ nop
/* 3422B4 E0030174 0C080154 */ jal func_E0200550
/* 3422B8 E0030178 00000000 */ nop
/* 3422BC E003017C 3C013F80 */ lui $at, 0x3f80
/* 3422C0 E0030180 44811000 */ mtc1 $at, $f2
/* 3422C4 E0030184 00000000 */ nop
/* 3422C8 E0030188 46001303 */ div.s $f12, $f2, $f0
/* 3422CC E003018C 460CF782 */ mul.s $f30, $f30, $f12
/* 3422D0 E0030190 00000000 */ nop
/* 3422D4 E0030194 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 3422D8 E0030198 460C4202 */ mul.s $f8, $f8, $f12
/* 3422DC E003019C 00000000 */ nop
/* 3422E0 E00301A0 460CE702 */ mul.s $f28, $f28, $f12
/* 3422E4 E00301A4 00000000 */ nop
/* 3422E8 E00301A8 3C014100 */ lui $at, 0x4100
/* 3422EC E00301AC 44810000 */ mtc1 $at, $f0
/* 3422F0 E00301B0 00000000 */ nop
/* 3422F4 E00301B4 4600B582 */ mul.s $f22, $f22, $f0
/* 3422F8 E00301B8 00000000 */ nop
/* 3422FC E00301BC 4600C602 */ mul.s $f24, $f24, $f0
/* 342300 E00301C0 00000000 */ nop
/* 342304 E00301C4 4600D682 */ mul.s $f26, $f26, $f0
/* 342308 E00301C8 00000000 */ nop
/* 34230C E00301CC 4600F782 */ mul.s $f30, $f30, $f0
/* 342310 E00301D0 00000000 */ nop
/* 342314 E00301D4 0200202D */ daddu $a0, $s0, $zero
/* 342318 E00301D8 3C02E003 */ lui $v0, %hi(func_E0030728)
/* 34231C E00301DC 24420728 */ addiu $v0, $v0, %lo(func_E0030728)
/* 342320 E00301E0 AC820008 */ sw $v0, 8($a0)
/* 342324 E00301E4 46004202 */ mul.s $f8, $f8, $f0
/* 342328 E00301E8 00000000 */ nop
/* 34232C E00301EC 3C02E003 */ lui $v0, %hi(func_E0030730)
/* 342330 E00301F0 24420730 */ addiu $v0, $v0, %lo(func_E0030730)
/* 342334 E00301F4 AC82000C */ sw $v0, 0xc($a0)
/* 342338 E00301F8 3C02E003 */ lui $v0, %hi(func_E0030A24)
/* 34233C E00301FC 24420A24 */ addiu $v0, $v0, %lo(func_E0030A24)
/* 342340 E0030200 AC800000 */ sw $zero, ($a0)
/* 342344 E0030204 4600E702 */ mul.s $f28, $f28, $f0
/* 342348 E0030208 00000000 */ nop
/* 34234C E003020C E7A80070 */ swc1 $f8, 0x70($sp)
/* 342350 E0030210 AC820010 */ sw $v0, 0x10($a0)
/* 342354 E0030214 24020018 */ addiu $v0, $zero, 0x18
/* 342358 E0030218 AC800014 */ sw $zero, 0x14($a0)
/* 34235C E003021C 0C080124 */ jal func_E0200490
/* 342360 E0030220 AC820004 */ sw $v0, 4($a0)
/* 342364 E0030224 8FA800EC */ lw $t0, 0xec($sp)
/* 342368 E0030228 0040802D */ daddu $s0, $v0, $zero
/* 34236C E003022C 00082040 */ sll $a0, $t0, 1
/* 342370 E0030230 00882021 */ addu $a0, $a0, $t0
/* 342374 E0030234 00042100 */ sll $a0, $a0, 4
/* 342378 E0030238 0C08012C */ jal func_E02004B0
/* 34237C E003023C AE080008 */ sw $t0, 8($s0)
/* 342380 E0030240 0040982D */ daddu $s3, $v0, $zero
/* 342384 E0030244 16600003 */ bnez $s3, .LE0030254
/* 342388 E0030248 AE13000C */ sw $s3, 0xc($s0)
.LE003024C:
/* 34238C E003024C 0800C093 */ j .LE003024C
/* 342390 E0030250 00000000 */ nop
.LE0030254:
/* 342394 E0030254 8FA800EC */ lw $t0, 0xec($sp)
/* 342398 E0030258 19000112 */ blez $t0, .LE00306A4
/* 34239C E003025C 0000902D */ daddu $s2, $zero, $zero
/* 3423A0 E0030260 2511FFFF */ addiu $s1, $t0, -1
/* 3423A4 E0030264 3C1E800B */ lui $fp, %hi(gCameras)
/* 3423A8 E0030268 27DE1D80 */ addiu $fp, $fp, %lo(gCameras)
/* 3423AC E003026C 3C178007 */ lui $s7, %hi(gCurrentCameraID)
/* 3423B0 E0030270 26F77410 */ addiu $s7, $s7, %lo(gCurrentCameraID)
/* 3423B4 E0030274 27A80030 */ addiu $t0, $sp, 0x30
/* 3423B8 E0030278 AFA80074 */ sw $t0, 0x74($sp)
/* 3423BC E003027C 26700024 */ addiu $s0, $s3, 0x24
/* 3423C0 E0030280 0240A82D */ daddu $s5, $s2, $zero
/* 3423C4 E0030284 0240A02D */ daddu $s4, $s2, $zero
.LE0030288:
/* 3423C8 E0030288 AE760000 */ sw $s6, ($s3)
/* 3423CC E003028C C7A600D4 */ lwc1 $f6, 0xd4($sp)
/* 3423D0 E0030290 E606FFE0 */ swc1 $f6, -0x20($s0)
/* 3423D4 E0030294 C7A800D8 */ lwc1 $f8, 0xd8($sp)
/* 3423D8 E0030298 E608FFE4 */ swc1 $f8, -0x1c($s0)
/* 3423DC E003029C C7A600DC */ lwc1 $f6, 0xdc($sp)
/* 3423E0 E00302A0 24020003 */ addiu $v0, $zero, 3
/* 3423E4 E00302A4 12C20042 */ beq $s6, $v0, .LE00303B0
/* 3423E8 E00302A8 E606FFE8 */ swc1 $f6, -0x18($s0)
/* 3423EC E00302AC 2AC20004 */ slti $v0, $s6, 4
/* 3423F0 E00302B0 14400005 */ bnez $v0, .LE00302C8
/* 3423F4 E00302B4 24020004 */ addiu $v0, $zero, 4
/* 3423F8 E00302B8 12C2006E */ beq $s6, $v0, .LE0030474
/* 3423FC E00302BC 2EC20005 */ sltiu $v0, $s6, 5
/* 342400 E00302C0 0800C16C */ j .LE00305B0
/* 342404 E00302C4 00000000 */ nop
.LE00302C8:
/* 342408 E00302C8 06C000B8 */ bltz $s6, .LE00305AC
/* 34240C E00302CC 27A40030 */ addiu $a0, $sp, 0x30
/* 342410 E00302D0 16200002 */ bnez $s1, .LE00302DC
/* 342414 E00302D4 0291001A */ div $zero, $s4, $s1
/* 342418 E00302D8 0007000D */ break 7
.LE00302DC:
/* 34241C E00302DC 2401FFFF */ addiu $at, $zero, -1
/* 342420 E00302E0 16210004 */ bne $s1, $at, .LE00302F4
/* 342424 E00302E4 3C018000 */ lui $at, 0x8000
/* 342428 E00302E8 16810002 */ bne $s4, $at, .LE00302F4
/* 34242C E00302EC 00000000 */ nop
/* 342430 E00302F0 0006000D */ break 6
.LE00302F4:
/* 342434 E00302F4 00001812 */ mflo $v1
/* 342438 E00302F8 4406B000 */ mfc1 $a2, $f22
/* 34243C E00302FC 4407C000 */ mfc1 $a3, $f24
/* 342440 E0030300 44833000 */ mtc1 $v1, $f6
/* 342444 E0030304 00000000 */ nop
/* 342448 E0030308 468031A0 */ cvt.s.w $f6, $f6
/* 34244C E003030C 44053000 */ mfc1 $a1, $f6
/* 342450 E0030310 0C080104 */ jal func_E0200410
/* 342454 E0030314 E7BA0010 */ swc1 $f26, 0x10($sp)
/* 342458 E0030318 C7A00030 */ lwc1 $f0, 0x30($sp)
/* 34245C E003031C 461E0002 */ mul.s $f0, $f0, $f30
/* 342460 E0030320 00000000 */ nop
/* 342464 E0030324 C7A40040 */ lwc1 $f4, 0x40($sp)
/* 342468 E0030328 C7A80070 */ lwc1 $f8, 0x70($sp)
/* 34246C E003032C 46082102 */ mul.s $f4, $f4, $f8
/* 342470 E0030330 00000000 */ nop
/* 342474 E0030334 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 342478 E0030338 461C1082 */ mul.s $f2, $f2, $f28
/* 34247C E003033C 00000000 */ nop
/* 342480 E0030340 4600B000 */ add.s $f0, $f22, $f0
/* 342484 E0030344 46040000 */ add.s $f0, $f0, $f4
/* 342488 E0030348 46020000 */ add.s $f0, $f0, $f2
/* 34248C E003034C E600FFEC */ swc1 $f0, -0x14($s0)
/* 342490 E0030350 C7A00034 */ lwc1 $f0, 0x34($sp)
/* 342494 E0030354 461E0002 */ mul.s $f0, $f0, $f30
/* 342498 E0030358 00000000 */ nop
/* 34249C E003035C C7A40044 */ lwc1 $f4, 0x44($sp)
/* 3424A0 E0030360 46082102 */ mul.s $f4, $f4, $f8
/* 3424A4 E0030364 00000000 */ nop
/* 3424A8 E0030368 C7A20054 */ lwc1 $f2, 0x54($sp)
/* 3424AC E003036C 461C1082 */ mul.s $f2, $f2, $f28
/* 3424B0 E0030370 00000000 */ nop
/* 3424B4 E0030374 4600C000 */ add.s $f0, $f24, $f0
/* 3424B8 E0030378 46040000 */ add.s $f0, $f0, $f4
/* 3424BC E003037C 46020000 */ add.s $f0, $f0, $f2
/* 3424C0 E0030380 E600FFF0 */ swc1 $f0, -0x10($s0)
/* 3424C4 E0030384 C7A00038 */ lwc1 $f0, 0x38($sp)
/* 3424C8 E0030388 461E0002 */ mul.s $f0, $f0, $f30
/* 3424CC E003038C 00000000 */ nop
/* 3424D0 E0030390 C7A40048 */ lwc1 $f4, 0x48($sp)
/* 3424D4 E0030394 46082102 */ mul.s $f4, $f4, $f8
/* 3424D8 E0030398 00000000 */ nop
/* 3424DC E003039C C7A20058 */ lwc1 $f2, 0x58($sp)
/* 3424E0 E00303A0 461C1082 */ mul.s $f2, $f2, $f28
/* 3424E4 E00303A4 00000000 */ nop
/* 3424E8 E00303A8 0800C168 */ j .LE00305A0
/* 3424EC E00303AC 4600D000 */ add.s $f0, $f26, $f0
.LE00303B0:
/* 3424F0 E00303B0 8EE30000 */ lw $v1, ($s7)
/* 3424F4 E00303B4 00031080 */ sll $v0, $v1, 2
/* 3424F8 E00303B8 00431021 */ addu $v0, $v0, $v1
/* 3424FC E00303BC 00021080 */ sll $v0, $v0, 2
/* 342500 E00303C0 00431023 */ subu $v0, $v0, $v1
/* 342504 E00303C4 000218C0 */ sll $v1, $v0, 3
/* 342508 E00303C8 00431021 */ addu $v0, $v0, $v1
/* 34250C E00303CC 000210C0 */ sll $v0, $v0, 3
/* 342510 E00303D0 005E1021 */ addu $v0, $v0, $fp
/* 342514 E00303D4 0C080140 */ jal func_E0200500
/* 342518 E00303D8 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 34251C E00303DC 8EE30000 */ lw $v1, ($s7)
/* 342520 E00303E0 00031080 */ sll $v0, $v1, 2
/* 342524 E00303E4 00431021 */ addu $v0, $v0, $v1
/* 342528 E00303E8 00021080 */ sll $v0, $v0, 2
/* 34252C E00303EC 00431023 */ subu $v0, $v0, $v1
/* 342530 E00303F0 000218C0 */ sll $v1, $v0, 3
/* 342534 E00303F4 00431021 */ addu $v0, $v0, $v1
/* 342538 E00303F8 000210C0 */ sll $v0, $v0, 3
/* 34253C E00303FC 005E1021 */ addu $v0, $v0, $fp
/* 342540 E0030400 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 342544 E0030404 0C080144 */ jal func_E0200510
/* 342548 E0030408 46000506 */ mov.s $f20, $f0
/* 34254C E003040C 24020001 */ addiu $v0, $zero, 1
/* 342550 E0030410 8FA800EC */ lw $t0, 0xec($sp)
/* 342554 E0030414 11020010 */ beq $t0, $v0, .LE0030458
/* 342558 E0030418 46000007 */ neg.s $f0, $f0
/* 34255C E003041C 16200002 */ bnez $s1, .LE0030428
/* 342560 E0030420 02B1001A */ div $zero, $s5, $s1
/* 342564 E0030424 0007000D */ break 7
.LE0030428:
/* 342568 E0030428 2401FFFF */ addiu $at, $zero, -1
/* 34256C E003042C 16210004 */ bne $s1, $at, .LE0030440
/* 342570 E0030430 3C018000 */ lui $at, 0x8000
/* 342574 E0030434 16A10002 */ bne $s5, $at, .LE0030440
/* 342578 E0030438 00000000 */ nop
/* 34257C E003043C 0006000D */ break 6
.LE0030440:
/* 342580 E0030440 00001012 */ mflo $v0
/* 342584 E0030444 2442FFCE */ addiu $v0, $v0, -0x32
/* 342588 E0030448 44821000 */ mtc1 $v0, $f2
/* 34258C E003044C 00000000 */ nop
/* 342590 E0030450 0800C117 */ j .LE003045C
/* 342594 E0030454 468010A0 */ cvt.s.w $f2, $f2
.LE0030458:
/* 342598 E0030458 44801000 */ mtc1 $zero, $f2
.LE003045C:
/* 34259C E003045C 8FA40074 */ lw $a0, 0x74($sp)
/* 3425A0 E0030460 44051000 */ mfc1 $a1, $f2
/* 3425A4 E0030464 4406A000 */ mfc1 $a2, $f20
/* 3425A8 E0030468 0000382D */ daddu $a3, $zero, $zero
/* 3425AC E003046C 0800C145 */ j .LE0030514
/* 3425B0 E0030470 E7A00010 */ swc1 $f0, 0x10($sp)
.LE0030474:
/* 3425B4 E0030474 8EE30000 */ lw $v1, ($s7)
/* 3425B8 E0030478 00031080 */ sll $v0, $v1, 2
/* 3425BC E003047C 00431021 */ addu $v0, $v0, $v1
/* 3425C0 E0030480 00021080 */ sll $v0, $v0, 2
/* 3425C4 E0030484 00431023 */ subu $v0, $v0, $v1
/* 3425C8 E0030488 000218C0 */ sll $v1, $v0, 3
/* 3425CC E003048C 00431021 */ addu $v0, $v0, $v1
/* 3425D0 E0030490 000210C0 */ sll $v0, $v0, 3
/* 3425D4 E0030494 005E1021 */ addu $v0, $v0, $fp
/* 3425D8 E0030498 0C080140 */ jal func_E0200500
/* 3425DC E003049C C44C006C */ lwc1 $f12, 0x6c($v0)
/* 3425E0 E00304A0 8EE30000 */ lw $v1, ($s7)
/* 3425E4 E00304A4 00031080 */ sll $v0, $v1, 2
/* 3425E8 E00304A8 00431021 */ addu $v0, $v0, $v1
/* 3425EC E00304AC 00021080 */ sll $v0, $v0, 2
/* 3425F0 E00304B0 00431023 */ subu $v0, $v0, $v1
/* 3425F4 E00304B4 000218C0 */ sll $v1, $v0, 3
/* 3425F8 E00304B8 00431021 */ addu $v0, $v0, $v1
/* 3425FC E00304BC 000210C0 */ sll $v0, $v0, 3
/* 342600 E00304C0 005E1021 */ addu $v0, $v0, $fp
/* 342604 E00304C4 C44C006C */ lwc1 $f12, 0x6c($v0)
/* 342608 E00304C8 0C080144 */ jal func_E0200510
/* 34260C E00304CC 46000506 */ mov.s $f20, $f0
/* 342610 E00304D0 3C0143B4 */ lui $at, 0x43b4
/* 342614 E00304D4 44811000 */ mtc1 $at, $f2
/* 342618 E00304D8 44922000 */ mtc1 $s2, $f4
/* 34261C E00304DC 00000000 */ nop
/* 342620 E00304E0 46802120 */ cvt.s.w $f4, $f4
/* 342624 E00304E4 46022102 */ mul.s $f4, $f4, $f2
/* 342628 E00304E8 00000000 */ nop
/* 34262C E00304EC 27A40030 */ addiu $a0, $sp, 0x30
/* 342630 E00304F0 46000007 */ neg.s $f0, $f0
/* 342634 E00304F4 E7A00010 */ swc1 $f0, 0x10($sp)
/* 342638 E00304F8 44910000 */ mtc1 $s1, $f0
/* 34263C E00304FC 00000000 */ nop
/* 342640 E0030500 46800020 */ cvt.s.w $f0, $f0
/* 342644 E0030504 4406A000 */ mfc1 $a2, $f20
/* 342648 E0030508 46002103 */ div.s $f4, $f4, $f0
/* 34264C E003050C 44052000 */ mfc1 $a1, $f4
/* 342650 E0030510 0000382D */ daddu $a3, $zero, $zero
.LE0030514:
/* 342654 E0030514 0C080104 */ jal func_E0200410
/* 342658 E0030518 00000000 */ nop
/* 34265C E003051C C7A00030 */ lwc1 $f0, 0x30($sp)
/* 342660 E0030520 46160002 */ mul.s $f0, $f0, $f22
/* 342664 E0030524 00000000 */ nop
/* 342668 E0030528 C7A40040 */ lwc1 $f4, 0x40($sp)
/* 34266C E003052C 46182102 */ mul.s $f4, $f4, $f24
/* 342670 E0030530 00000000 */ nop
/* 342674 E0030534 C7A20050 */ lwc1 $f2, 0x50($sp)
/* 342678 E0030538 461A1082 */ mul.s $f2, $f2, $f26
/* 34267C E003053C 00000000 */ nop
/* 342680 E0030540 46040000 */ add.s $f0, $f0, $f4
/* 342684 E0030544 46020000 */ add.s $f0, $f0, $f2
/* 342688 E0030548 E600FFEC */ swc1 $f0, -0x14($s0)
/* 34268C E003054C C7A00034 */ lwc1 $f0, 0x34($sp)
/* 342690 E0030550 46160002 */ mul.s $f0, $f0, $f22
/* 342694 E0030554 00000000 */ nop
/* 342698 E0030558 C7A40044 */ lwc1 $f4, 0x44($sp)
/* 34269C E003055C 46182102 */ mul.s $f4, $f4, $f24
/* 3426A0 E0030560 00000000 */ nop
/* 3426A4 E0030564 C7A20054 */ lwc1 $f2, 0x54($sp)
/* 3426A8 E0030568 461A1082 */ mul.s $f2, $f2, $f26
/* 3426AC E003056C 00000000 */ nop
/* 3426B0 E0030570 46040000 */ add.s $f0, $f0, $f4
/* 3426B4 E0030574 46020000 */ add.s $f0, $f0, $f2
/* 3426B8 E0030578 E600FFF0 */ swc1 $f0, -0x10($s0)
/* 3426BC E003057C C7A00038 */ lwc1 $f0, 0x38($sp)
/* 3426C0 E0030580 46160002 */ mul.s $f0, $f0, $f22
/* 3426C4 E0030584 00000000 */ nop
/* 3426C8 E0030588 C7A40048 */ lwc1 $f4, 0x48($sp)
/* 3426CC E003058C 46182102 */ mul.s $f4, $f4, $f24
/* 3426D0 E0030590 00000000 */ nop
/* 3426D4 E0030594 C7A20058 */ lwc1 $f2, 0x58($sp)
/* 3426D8 E0030598 461A1082 */ mul.s $f2, $f2, $f26
/* 3426DC E003059C 00000000 */ nop
.LE00305A0:
/* 3426E0 E00305A0 46040000 */ add.s $f0, $f0, $f4
/* 3426E4 E00305A4 46020000 */ add.s $f0, $f0, $f2
/* 3426E8 E00305A8 E600FFF4 */ swc1 $f0, -0xc($s0)
.LE00305AC:
/* 3426EC E00305AC 2EC20005 */ sltiu $v0, $s6, 5
.LE00305B0:
/* 3426F0 E00305B0 10400030 */ beqz $v0, .LE0030674
/* 3426F4 E00305B4 00161080 */ sll $v0, $s6, 2
/* 3426F8 E00305B8 3C08E003 */ lui $t0, %hi(D_E0030EC0)
/* 3426FC E00305BC 25080EC0 */ addiu $t0, $t0, %lo(D_E0030EC0)
/* 342700 E00305C0 00481021 */ addu $v0, $v0, $t0
/* 342704 E00305C4 8C420000 */ lw $v0, ($v0)
/* 342708 E00305C8 00400008 */ jr $v0
/* 34270C E00305CC 00000000 */ nop
/* 342710 E00305D0 24080018 */ addiu $t0, $zero, 0x18
/* 342714 E00305D4 0800C19C */ j .LE0030670
/* 342718 E00305D8 AE00FFFC */ sw $zero, -4($s0)
/* 34271C E00305DC 3C0141A0 */ lui $at, 0x41a0
/* 342720 E00305E0 44813000 */ mtc1 $at, $f6
/* 342724 E00305E4 24080018 */ addiu $t0, $zero, 0x18
/* 342728 E00305E8 AE080004 */ sw $t0, 4($s0)
/* 34272C E00305EC 0800C19D */ j .LE0030674
/* 342730 E00305F0 E606FFFC */ swc1 $f6, -4($s0)
/* 342734 E00305F4 C604FFEC */ lwc1 $f4, -0x14($s0)
/* 342738 E00305F8 3C013FE0 */ lui $at, 0x3fe0
/* 34273C E00305FC 44813800 */ mtc1 $at, $f7
/* 342740 E0030600 44803000 */ mtc1 $zero, $f6
/* 342744 E0030604 46002121 */ cvt.d.s $f4, $f4
/* 342748 E0030608 46262102 */ mul.d $f4, $f4, $f6
/* 34274C E003060C 00000000 */ nop
/* 342750 E0030610 C602FFF0 */ lwc1 $f2, -0x10($s0)
/* 342754 E0030614 460010A1 */ cvt.d.s $f2, $f2
/* 342758 E0030618 46261082 */ mul.d $f2, $f2, $f6
/* 34275C E003061C 00000000 */ nop
/* 342760 E0030620 C600FFF4 */ lwc1 $f0, -0xc($s0)
/* 342764 E0030624 46000021 */ cvt.d.s $f0, $f0
/* 342768 E0030628 46260002 */ mul.d $f0, $f0, $f6
/* 34276C E003062C 00000000 */ nop
/* 342770 E0030630 3C0141A0 */ lui $at, 0x41a0
/* 342774 E0030634 44814000 */ mtc1 $at, $f8
/* 342778 E0030638 24020028 */ addiu $v0, $zero, 0x28
/* 34277C E003063C AE020004 */ sw $v0, 4($s0)
/* 342780 E0030640 E608FFFC */ swc1 $f8, -4($s0)
/* 342784 E0030644 46202120 */ cvt.s.d $f4, $f4
/* 342788 E0030648 462010A0 */ cvt.s.d $f2, $f2
/* 34278C E003064C 46200020 */ cvt.s.d $f0, $f0
/* 342790 E0030650 E604FFEC */ swc1 $f4, -0x14($s0)
/* 342794 E0030654 E602FFF0 */ swc1 $f2, -0x10($s0)
/* 342798 E0030658 0800C19D */ j .LE0030674
/* 34279C E003065C E600FFF4 */ swc1 $f0, -0xc($s0)
/* 3427A0 E0030660 3C0141A0 */ lui $at, 0x41a0
/* 3427A4 E0030664 44813000 */ mtc1 $at, $f6
/* 3427A8 E0030668 24080018 */ addiu $t0, $zero, 0x18
/* 3427AC E003066C E606FFFC */ swc1 $f6, -4($s0)
.LE0030670:
/* 3427B0 E0030670 AE080004 */ sw $t0, 4($s0)
.LE0030674:
/* 3427B4 E0030674 26B50064 */ addiu $s5, $s5, 0x64
/* 3427B8 E0030678 26940168 */ addiu $s4, $s4, 0x168
/* 3427BC E003067C 26520001 */ addiu $s2, $s2, 1
/* 3427C0 E0030680 240200FF */ addiu $v0, $zero, 0xff
/* 3427C4 E0030684 AE00FFF8 */ sw $zero, -8($s0)
/* 3427C8 E0030688 AE000008 */ sw $zero, 8($s0)
/* 3427CC E003068C AE020000 */ sw $v0, ($s0)
/* 3427D0 E0030690 26100030 */ addiu $s0, $s0, 0x30
/* 3427D4 E0030694 8FA800EC */ lw $t0, 0xec($sp)
/* 3427D8 E0030698 0248102A */ slt $v0, $s2, $t0
/* 3427DC E003069C 1440FEFA */ bnez $v0, .LE0030288
/* 3427E0 E00306A0 26730030 */ addiu $s3, $s3, 0x30
.LE00306A4:
/* 3427E4 E00306A4 3C02E003 */ lui $v0, %hi(D_E0030EB4)
/* 3427E8 E00306A8 24420EB4 */ addiu $v0, $v0, %lo(D_E0030EB4)
/* 3427EC E00306AC C4400000 */ lwc1 $f0, ($v0)
/* 3427F0 E00306B0 3C014170 */ lui $at, 0x4170
/* 3427F4 E00306B4 44811000 */ mtc1 $at, $f2
/* 3427F8 E00306B8 00000000 */ nop
/* 3427FC E00306BC 46020000 */ add.s $f0, $f0, $f2
/* 342800 E00306C0 3C0143B4 */ lui $at, 0x43b4
/* 342804 E00306C4 44811000 */ mtc1 $at, $f2
/* 342808 E00306C8 00000000 */ nop
/* 34280C E00306CC 4600103C */ c.lt.s $f2, $f0
/* 342810 E00306D0 00000000 */ nop
/* 342814 E00306D4 45000002 */ bc1f .LE00306E0
/* 342818 E00306D8 E4400000 */ swc1 $f0, ($v0)
/* 34281C E00306DC AC400000 */ sw $zero, ($v0)
.LE00306E0:
/* 342820 E00306E0 8FBF009C */ lw $ra, 0x9c($sp)
/* 342824 E00306E4 8FBE0098 */ lw $fp, 0x98($sp)
/* 342828 E00306E8 8FB70094 */ lw $s7, 0x94($sp)
/* 34282C E00306EC 8FB60090 */ lw $s6, 0x90($sp)
/* 342830 E00306F0 8FB5008C */ lw $s5, 0x8c($sp)
/* 342834 E00306F4 8FB40088 */ lw $s4, 0x88($sp)
/* 342838 E00306F8 8FB30084 */ lw $s3, 0x84($sp)
/* 34283C E00306FC 8FB20080 */ lw $s2, 0x80($sp)
/* 342840 E0030700 8FB1007C */ lw $s1, 0x7c($sp)
/* 342844 E0030704 8FB00078 */ lw $s0, 0x78($sp)
/* 342848 E0030708 D7BE00C8 */ ldc1 $f30, 0xc8($sp)
/* 34284C E003070C D7BC00C0 */ ldc1 $f28, 0xc0($sp)
/* 342850 E0030710 D7BA00B8 */ ldc1 $f26, 0xb8($sp)
/* 342854 E0030714 D7B800B0 */ ldc1 $f24, 0xb0($sp)
/* 342858 E0030718 D7B600A8 */ ldc1 $f22, 0xa8($sp)
/* 34285C E003071C D7B400A0 */ ldc1 $f20, 0xa0($sp)
/* 342860 E0030720 03E00008 */ jr $ra
/* 342864 E0030724 27BD00D0 */ addiu $sp, $sp, 0xd0