prime/asm/Runtime/k_rem_pio2.s

1093 lines
50 KiB
ArmAsm
Raw Normal View History

.include "macros.inc"
.section .rodata
.balign 8
.global lbl_803D8918
lbl_803D8918:
# ROM: 0x3D5918
.4byte 0x00000002
.4byte 0x00000003
.4byte 0x00000004
.4byte 0x00000006
.global lbl_803D8928
lbl_803D8928:
# ROM: 0x3D5928
.4byte 0x3FF921FB
.float 2.0
.asciz ">tD-"
.balign 4
.4byte 0x3CF84698
.4byte 0x80000000
.4byte 0x3B78CC51
.4byte 0x60000000
.4byte 0x39F01B83
.4byte 0x80000000
.asciz "8z% @"
.balign 4
.4byte 0x36E38222
.4byte 0x80000000
.4byte 0x3569F31D
.4byte 0
.section .text, "ax"
.global __kernel_rem_pio2
__kernel_rem_pio2:
/* 803930C0 00390020 94 21 FD 30 */ stwu r1, -0x2d0(r1)
/* 803930C4 00390024 7C 08 02 A6 */ mflr r0
/* 803930C8 00390028 90 01 02 D4 */ stw r0, 0x2d4(r1)
/* 803930CC 0039002C 39 61 02 D0 */ addi r11, r1, 0x2d0
/* 803930D0 00390030 4B FF 69 0D */ bl _savefpr_25
/* 803930D4 00390034 BE 01 02 58 */ stmw r16, 0x258(r1)
/* 803930D8 00390038 3D 20 2A AB */ lis r9, 0x2AAAAAAB@ha
/* 803930DC 0039003C 7C F7 3B 78 */ mr r23, r7
/* 803930E0 00390040 38 05 FF FD */ addi r0, r5, -3
/* 803930E4 00390044 3D 40 80 3E */ lis r10, lbl_803D8918@ha
/* 803930E8 00390048 38 E9 AA AB */ addi r7, r9, 0x2AAAAAAB@l
/* 803930EC 0039004C 56 E9 10 3A */ slwi r9, r23, 2
/* 803930F0 00390050 7C 07 00 96 */ mulhw r0, r7, r0
/* 803930F4 00390054 38 EA 89 18 */ addi r7, r10, lbl_803D8918@l
/* 803930F8 00390058 7F 87 48 2E */ lwzx r28, r7, r9
/* 803930FC 0039005C 7C 75 1B 78 */ mr r21, r3
/* 80393100 00390060 7C 96 23 78 */ mr r22, r4
/* 80393104 00390064 7D 18 43 78 */ mr r24, r8
/* 80393108 00390068 7C 00 16 70 */ srawi r0, r0, 2
/* 8039310C 0039006C 3B C6 FF FF */ addi r30, r6, -1
/* 80393110 00390070 54 03 0F FE */ srwi r3, r0, 0x1f
/* 80393114 00390074 7F A0 1A 15 */ add. r29, r0, r3
/* 80393118 00390078 40 80 00 08 */ bge lbl_80393120
/* 8039311C 0039007C 3B A0 00 00 */ li r29, 0
lbl_80393120:
/* 80393120 00390080 38 1D 00 01 */ addi r0, r29, 1
/* 80393124 00390084 7C FE E2 15 */ add. r7, r30, r28
/* 80393128 00390088 1C 80 00 18 */ mulli r4, r0, 0x18
/* 8039312C 0039008C 7C DE E8 50 */ subf r6, r30, r29
/* 80393130 00390090 C8 22 D3 F8 */ lfd f1, lbl_805AF118@sda21(r2)
/* 80393134 00390094 54 C3 10 3A */ slwi r3, r6, 2
/* 80393138 00390098 7F 44 28 50 */ subf r26, r4, r5
/* 8039313C 0039009C 38 07 00 01 */ addi r0, r7, 1
/* 80393140 003900A0 7C 98 1A 14 */ add r4, r24, r3
/* 80393144 003900A4 38 A1 01 98 */ addi r5, r1, 0x198
/* 80393148 003900A8 3C 60 43 30 */ lis r3, 0x4330
/* 8039314C 003900AC 7C 09 03 A6 */ mtctr r0
/* 80393150 003900B0 41 80 00 40 */ blt lbl_80393190
lbl_80393154:
/* 80393154 003900B4 2C 06 00 00 */ cmpwi r6, 0
/* 80393158 003900B8 40 80 00 0C */ bge lbl_80393164
/* 8039315C 003900BC C8 02 D3 C0 */ lfd f0, lbl_805AF0E0@sda21(r2)
/* 80393160 003900C0 48 00 00 1C */ b lbl_8039317C
lbl_80393164:
/* 80393164 003900C4 80 04 00 00 */ lwz r0, 0(r4)
/* 80393168 003900C8 90 61 02 38 */ stw r3, 0x238(r1)
/* 8039316C 003900CC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80393170 003900D0 90 01 02 3C */ stw r0, 0x23c(r1)
/* 80393174 003900D4 C8 01 02 38 */ lfd f0, 0x238(r1)
/* 80393178 003900D8 FC 00 08 28 */ fsub f0, f0, f1
lbl_8039317C:
/* 8039317C 003900DC D8 05 00 00 */ stfd f0, 0(r5)
/* 80393180 003900E0 38 A5 00 08 */ addi r5, r5, 8
/* 80393184 003900E4 38 84 00 04 */ addi r4, r4, 4
/* 80393188 003900E8 38 C6 00 01 */ addi r6, r6, 1
/* 8039318C 003900EC 42 00 FF C8 */ bdnz lbl_80393154
lbl_80393190:
/* 80393190 003900F0 38 A1 00 58 */ addi r5, r1, 0x58
/* 80393194 003900F4 38 E0 00 00 */ li r7, 0
/* 80393198 003900F8 48 00 01 5C */ b lbl_803932F4
lbl_8039319C:
/* 8039319C 003900FC 2C 1E 00 00 */ cmpwi r30, 0
/* 803931A0 00390100 C8 82 D3 C0 */ lfd f4, lbl_805AF0E0@sda21(r2)
/* 803931A4 00390104 38 C0 00 00 */ li r6, 0
/* 803931A8 00390108 41 80 01 40 */ blt lbl_803932E8
/* 803931AC 0039010C 38 1E 00 01 */ addi r0, r30, 1
/* 803931B0 00390110 39 3E FF F8 */ addi r9, r30, -8
/* 803931B4 00390114 2C 00 00 08 */ cmpwi r0, 8
/* 803931B8 00390118 40 81 00 EC */ ble lbl_803932A4
/* 803931BC 0039011C 39 09 00 08 */ addi r8, r9, 8
/* 803931C0 00390120 7E A4 AB 78 */ mr r4, r21
/* 803931C4 00390124 55 08 E8 FE */ srwi r8, r8, 3
/* 803931C8 00390128 7C 1E 3A 14 */ add r0, r30, r7
/* 803931CC 0039012C 38 61 01 98 */ addi r3, r1, 0x198
/* 803931D0 00390130 7D 09 03 A6 */ mtctr r8
/* 803931D4 00390134 2C 09 00 00 */ cmpwi r9, 0
/* 803931D8 00390138 41 80 00 CC */ blt lbl_803932A4
lbl_803931DC:
/* 803931DC 0039013C 7D 06 00 50 */ subf r8, r6, r0
/* 803931E0 00390140 39 26 00 01 */ addi r9, r6, 1
/* 803931E4 00390144 55 0A 18 38 */ slwi r10, r8, 3
/* 803931E8 00390148 C8 24 00 00 */ lfd f1, 0(r4)
/* 803931EC 0039014C 7C 03 54 AE */ lfdx f0, r3, r10
/* 803931F0 00390150 7D 29 00 50 */ subf r9, r9, r0
/* 803931F4 00390154 55 2A 18 38 */ slwi r10, r9, 3
/* 803931F8 00390158 39 06 00 02 */ addi r8, r6, 2
/* 803931FC 0039015C FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393200 00390160 7D 28 00 50 */ subf r9, r8, r0
/* 80393204 00390164 39 06 00 03 */ addi r8, r6, 3
/* 80393208 00390168 C8 24 00 08 */ lfd f1, 8(r4)
/* 8039320C 0039016C 7C 03 54 AE */ lfdx f0, r3, r10
/* 80393210 00390170 7D 08 00 50 */ subf r8, r8, r0
/* 80393214 00390174 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393218 00390178 55 29 18 38 */ slwi r9, r9, 3
/* 8039321C 0039017C C8 24 00 10 */ lfd f1, 0x10(r4)
/* 80393220 00390180 55 0A 18 38 */ slwi r10, r8, 3
/* 80393224 00390184 7C 03 4C AE */ lfdx f0, r3, r9
/* 80393228 00390188 39 06 00 04 */ addi r8, r6, 4
/* 8039322C 0039018C FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393230 00390190 C8 24 00 18 */ lfd f1, 0x18(r4)
/* 80393234 00390194 7C 03 54 AE */ lfdx f0, r3, r10
/* 80393238 00390198 7D 28 00 50 */ subf r9, r8, r0
/* 8039323C 0039019C 55 2A 18 38 */ slwi r10, r9, 3
/* 80393240 003901A0 39 06 00 05 */ addi r8, r6, 5
/* 80393244 003901A4 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393248 003901A8 C8 44 00 20 */ lfd f2, 0x20(r4)
/* 8039324C 003901AC 7C 03 54 AE */ lfdx f0, r3, r10
/* 80393250 003901B0 7D 08 00 50 */ subf r8, r8, r0
/* 80393254 003901B4 55 0A 18 38 */ slwi r10, r8, 3
/* 80393258 003901B8 39 26 00 06 */ addi r9, r6, 6
/* 8039325C 003901BC FC 82 20 3A */ fmadd f4, f2, f0, f4
/* 80393260 003901C0 7D 29 00 50 */ subf r9, r9, r0
/* 80393264 003901C4 55 29 18 38 */ slwi r9, r9, 3
/* 80393268 003901C8 C8 24 00 28 */ lfd f1, 0x28(r4)
/* 8039326C 003901CC 7C 03 54 AE */ lfdx f0, r3, r10
/* 80393270 003901D0 39 06 00 07 */ addi r8, r6, 7
/* 80393274 003901D4 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393278 003901D8 7D 08 00 50 */ subf r8, r8, r0
/* 8039327C 003901DC 55 08 18 38 */ slwi r8, r8, 3
/* 80393280 003901E0 C8 64 00 30 */ lfd f3, 0x30(r4)
/* 80393284 003901E4 7C 43 4C AE */ lfdx f2, r3, r9
/* 80393288 003901E8 38 C6 00 08 */ addi r6, r6, 8
/* 8039328C 003901EC C8 24 00 38 */ lfd f1, 0x38(r4)
/* 80393290 003901F0 FC 83 20 BA */ fmadd f4, f3, f2, f4
/* 80393294 003901F4 7C 03 44 AE */ lfdx f0, r3, r8
/* 80393298 003901F8 38 84 00 40 */ addi r4, r4, 0x40
/* 8039329C 003901FC FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 803932A0 00390200 42 00 FF 3C */ bdnz lbl_803931DC
lbl_803932A4:
/* 803932A4 00390204 38 1E 00 01 */ addi r0, r30, 1
/* 803932A8 00390208 54 C3 18 38 */ slwi r3, r6, 3
/* 803932AC 0039020C 7C 06 00 50 */ subf r0, r6, r0
/* 803932B0 00390210 7D 1E 3A 14 */ add r8, r30, r7
/* 803932B4 00390214 7C 95 1A 14 */ add r4, r21, r3
/* 803932B8 00390218 38 61 01 98 */ addi r3, r1, 0x198
/* 803932BC 0039021C 7C 09 03 A6 */ mtctr r0
/* 803932C0 00390220 7C 06 F0 00 */ cmpw r6, r30
/* 803932C4 00390224 41 81 00 24 */ bgt lbl_803932E8
lbl_803932C8:
/* 803932C8 00390228 7C 06 40 50 */ subf r0, r6, r8
/* 803932CC 0039022C C8 24 00 00 */ lfd f1, 0(r4)
/* 803932D0 00390230 54 00 18 38 */ slwi r0, r0, 3
/* 803932D4 00390234 38 84 00 08 */ addi r4, r4, 8
/* 803932D8 00390238 7C 03 04 AE */ lfdx f0, r3, r0
/* 803932DC 0039023C 38 C6 00 01 */ addi r6, r6, 1
/* 803932E0 00390240 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 803932E4 00390244 42 00 FF E4 */ bdnz lbl_803932C8
lbl_803932E8:
/* 803932E8 00390248 D8 85 00 00 */ stfd f4, 0(r5)
/* 803932EC 0039024C 38 A5 00 08 */ addi r5, r5, 8
/* 803932F0 00390250 38 E7 00 01 */ addi r7, r7, 1
lbl_803932F4:
/* 803932F4 00390254 7C 07 E0 00 */ cmpw r7, r28
/* 803932F8 00390258 40 81 FE A4 */ ble lbl_8039319C
/* 803932FC 0039025C 22 5A 00 18 */ subfic r18, r26, 0x18
/* 80393300 00390260 CB 42 D3 C8 */ lfd f26, lbl_805AF0E8@sda21(r2)
/* 80393304 00390264 CB 62 D3 F8 */ lfd f27, lbl_805AF118@sda21(r2)
/* 80393308 00390268 3A 01 00 08 */ addi r16, r1, 8
/* 8039330C 0039026C CB 82 D3 D0 */ lfd f28, lbl_805AF0F0@sda21(r2)
/* 80393310 00390270 7F 9F E3 78 */ mr r31, r28
/* 80393314 00390274 CB A2 D3 E0 */ lfd f29, lbl_805AF100@sda21(r2)
/* 80393318 00390278 22 3A 00 17 */ subfic r17, r26, 0x17
/* 8039331C 0039027C CB C2 D3 D8 */ lfd f30, lbl_805AF0F8@sda21(r2)
/* 80393320 00390280 3A 81 01 98 */ addi r20, r1, 0x198
/* 80393324 00390284 CB E2 D3 C0 */ lfd f31, lbl_805AF0E0@sda21(r2)
/* 80393328 00390288 3E 60 43 30 */ lis r19, 0x4330
lbl_8039332C:
/* 8039332C 0039028C 57 E0 18 38 */ slwi r0, r31, 3
/* 80393330 00390290 38 A1 00 58 */ addi r5, r1, 0x58
/* 80393334 00390294 7C A5 02 14 */ add r5, r5, r0
/* 80393338 00390298 2C 1F 00 00 */ cmpwi r31, 0
/* 8039333C 0039029C C8 25 00 00 */ lfd f1, 0(r5)
/* 80393340 003902A0 7E 04 83 78 */ mr r4, r16
/* 80393344 003902A4 7F E3 FB 78 */ mr r3, r31
/* 80393348 003902A8 40 81 00 EC */ ble lbl_80393434
/* 8039334C 003902AC 57 E0 F8 7F */ rlwinm. r0, r31, 0x1f, 1, 0x1f
/* 80393350 003902B0 7C 09 03 A6 */ mtctr r0
/* 80393354 003902B4 41 82 00 94 */ beq lbl_803933E8
lbl_80393358:
/* 80393358 003902B8 FC 7A 00 72 */ fmul f3, f26, f1
/* 8039335C 003902BC 92 61 02 40 */ stw r19, 0x240(r1)
/* 80393360 003902C0 C8 05 FF F8 */ lfd f0, -8(r5)
/* 80393364 003902C4 FC 40 18 1E */ fctiwz f2, f3
/* 80393368 003902C8 D8 41 02 38 */ stfd f2, 0x238(r1)
/* 8039336C 003902CC 80 01 02 3C */ lwz r0, 0x23c(r1)
/* 80393370 003902D0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80393374 003902D4 90 01 02 44 */ stw r0, 0x244(r1)
/* 80393378 003902D8 C8 41 02 40 */ lfd f2, 0x240(r1)
/* 8039337C 003902DC FC 62 D8 28 */ fsub f3, f2, f27
/* 80393380 003902E0 92 61 02 40 */ stw r19, 0x240(r1)
/* 80393384 003902E4 FC 5C 08 FC */ fnmsub f2, f28, f3, f1
/* 80393388 003902E8 FC 23 00 2A */ fadd f1, f3, f0
/* 8039338C 003902EC CC 05 FF F0 */ lfdu f0, -0x10(r5)
/* 80393390 003902F0 FC 40 10 1E */ fctiwz f2, f2
/* 80393394 003902F4 FC 7A 00 72 */ fmul f3, f26, f1
/* 80393398 003902F8 D8 41 02 48 */ stfd f2, 0x248(r1)
/* 8039339C 003902FC FC 40 18 1E */ fctiwz f2, f3
/* 803933A0 00390300 80 01 02 4C */ lwz r0, 0x24c(r1)
/* 803933A4 00390304 90 04 00 00 */ stw r0, 0(r4)
/* 803933A8 00390308 D8 41 02 38 */ stfd f2, 0x238(r1)
/* 803933AC 0039030C 80 01 02 3C */ lwz r0, 0x23c(r1)
/* 803933B0 00390310 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 803933B4 00390314 90 01 02 44 */ stw r0, 0x244(r1)
/* 803933B8 00390318 C8 41 02 40 */ lfd f2, 0x240(r1)
/* 803933BC 0039031C FC 62 D8 28 */ fsub f3, f2, f27
/* 803933C0 00390320 FC 5C 08 FC */ fnmsub f2, f28, f3, f1
/* 803933C4 00390324 FC 23 00 2A */ fadd f1, f3, f0
/* 803933C8 00390328 FC 40 10 1E */ fctiwz f2, f2
/* 803933CC 0039032C D8 41 02 48 */ stfd f2, 0x248(r1)
/* 803933D0 00390330 80 01 02 4C */ lwz r0, 0x24c(r1)
/* 803933D4 00390334 90 04 00 04 */ stw r0, 4(r4)
/* 803933D8 00390338 38 84 00 08 */ addi r4, r4, 8
/* 803933DC 0039033C 42 00 FF 7C */ bdnz lbl_80393358
/* 803933E0 00390340 70 63 00 01 */ andi. r3, r3, 1
/* 803933E4 00390344 41 82 00 50 */ beq lbl_80393434
lbl_803933E8:
/* 803933E8 00390348 7C 69 03 A6 */ mtctr r3
lbl_803933EC:
/* 803933EC 0039034C FC 7A 00 72 */ fmul f3, f26, f1
/* 803933F0 00390350 92 61 02 40 */ stw r19, 0x240(r1)
/* 803933F4 00390354 CC 05 FF F8 */ lfdu f0, -8(r5)
/* 803933F8 00390358 FC 40 18 1E */ fctiwz f2, f3
/* 803933FC 0039035C D8 41 02 38 */ stfd f2, 0x238(r1)
/* 80393400 00390360 80 01 02 3C */ lwz r0, 0x23c(r1)
/* 80393404 00390364 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80393408 00390368 90 01 02 44 */ stw r0, 0x244(r1)
/* 8039340C 0039036C C8 41 02 40 */ lfd f2, 0x240(r1)
/* 80393410 00390370 FC 62 D8 28 */ fsub f3, f2, f27
/* 80393414 00390374 FC 5C 08 FC */ fnmsub f2, f28, f3, f1
/* 80393418 00390378 FC 23 00 2A */ fadd f1, f3, f0
/* 8039341C 0039037C FC 40 10 1E */ fctiwz f2, f2
/* 80393420 00390380 D8 41 02 48 */ stfd f2, 0x248(r1)
/* 80393424 00390384 80 01 02 4C */ lwz r0, 0x24c(r1)
/* 80393428 00390388 90 04 00 00 */ stw r0, 0(r4)
/* 8039342C 0039038C 38 84 00 04 */ addi r4, r4, 4
/* 80393430 00390390 42 00 FF BC */ bdnz lbl_803933EC
lbl_80393434:
/* 80393434 00390394 7F 43 D3 78 */ mr r3, r26
/* 80393438 00390398 48 00 12 61 */ bl ldexp
/* 8039343C 0039039C FF 20 08 90 */ fmr f25, f1
/* 80393440 003903A0 FC 3D 06 72 */ fmul f1, f29, f25
/* 80393444 003903A4 48 00 10 81 */ bl floor
/* 80393448 003903A8 FF 3E C8 7C */ fnmsub f25, f30, f1, f25
/* 8039344C 003903AC 92 61 02 40 */ stw r19, 0x240(r1)
/* 80393450 003903B0 2C 1A 00 00 */ cmpwi r26, 0
/* 80393454 003903B4 3B 20 00 00 */ li r25, 0
/* 80393458 003903B8 FC 00 C8 1E */ fctiwz f0, f25
/* 8039345C 003903BC D8 01 02 48 */ stfd f0, 0x248(r1)
/* 80393460 003903C0 83 61 02 4C */ lwz r27, 0x24c(r1)
/* 80393464 003903C4 6F 60 80 00 */ xoris r0, r27, 0x8000
/* 80393468 003903C8 90 01 02 44 */ stw r0, 0x244(r1)
/* 8039346C 003903CC C8 01 02 40 */ lfd f0, 0x240(r1)
/* 80393470 003903D0 FC 00 D8 28 */ fsub f0, f0, f27
/* 80393474 003903D4 FF 39 00 28 */ fsub f25, f25, f0
/* 80393478 003903D8 40 81 00 34 */ ble lbl_803934AC
/* 8039347C 003903DC 57 E3 10 3A */ slwi r3, r31, 2
/* 80393480 003903E0 38 81 00 08 */ addi r4, r1, 8
/* 80393484 003903E4 38 A3 FF FC */ addi r5, r3, -4
/* 80393488 003903E8 7C 64 28 2E */ lwzx r3, r4, r5
/* 8039348C 003903EC 7C 66 96 30 */ sraw r6, r3, r18
/* 80393490 003903F0 7C C0 90 30 */ slw r0, r6, r18
/* 80393494 003903F4 7C 00 18 50 */ subf r0, r0, r3
/* 80393498 003903F8 7F 7B 32 14 */ add r27, r27, r6
/* 8039349C 003903FC 7C 04 29 2E */ stwx r0, r4, r5
/* 803934A0 00390400 7C 04 28 2E */ lwzx r0, r4, r5
/* 803934A4 00390404 7C 19 8E 30 */ sraw r25, r0, r17
/* 803934A8 00390408 48 00 00 34 */ b lbl_803934DC
lbl_803934AC:
/* 803934AC 0039040C 40 82 00 1C */ bne lbl_803934C8
/* 803934B0 00390410 57 E4 10 3A */ slwi r4, r31, 2
/* 803934B4 00390414 38 61 00 08 */ addi r3, r1, 8
/* 803934B8 00390418 38 04 FF FC */ addi r0, r4, -4
/* 803934BC 0039041C 7C 03 00 2E */ lwzx r0, r3, r0
/* 803934C0 00390420 7C 19 BE 70 */ srawi r25, r0, 0x17
/* 803934C4 00390424 48 00 00 18 */ b lbl_803934DC
lbl_803934C8:
/* 803934C8 00390428 C8 02 D3 E8 */ lfd f0, lbl_805AF108@sda21(r2)
/* 803934CC 0039042C FC 19 00 40 */ fcmpo cr0, f25, f0
/* 803934D0 00390430 4C 41 13 82 */ cror 2, 1, 2
/* 803934D4 00390434 40 82 00 08 */ bne lbl_803934DC
/* 803934D8 00390438 3B 20 00 02 */ li r25, 2
lbl_803934DC:
/* 803934DC 0039043C 2C 19 00 00 */ cmpwi r25, 0
/* 803934E0 00390440 40 81 00 D0 */ ble lbl_803935B0
/* 803934E4 00390444 3C A0 01 00 */ lis r5, 0x00FFFFFF@ha
/* 803934E8 00390448 7E 06 83 78 */ mr r6, r16
/* 803934EC 0039044C 38 00 00 00 */ li r0, 0
/* 803934F0 00390450 38 85 FF FF */ addi r4, r5, 0x00FFFFFF@l
/* 803934F4 00390454 7F E9 03 A6 */ mtctr r31
/* 803934F8 00390458 2C 1F 00 00 */ cmpwi r31, 0
/* 803934FC 0039045C 3B 7B 00 01 */ addi r27, r27, 1
/* 80393500 00390460 40 81 00 38 */ ble lbl_80393538
lbl_80393504:
/* 80393504 00390464 2C 00 00 00 */ cmpwi r0, 0
/* 80393508 00390468 80 66 00 00 */ lwz r3, 0(r6)
/* 8039350C 0039046C 40 82 00 1C */ bne lbl_80393528
/* 80393510 00390470 2C 03 00 00 */ cmpwi r3, 0
/* 80393514 00390474 41 82 00 1C */ beq lbl_80393530
/* 80393518 00390478 7C 63 28 50 */ subf r3, r3, r5
/* 8039351C 0039047C 38 00 00 01 */ li r0, 1
/* 80393520 00390480 90 66 00 00 */ stw r3, 0(r6)
/* 80393524 00390484 48 00 00 0C */ b lbl_80393530
lbl_80393528:
/* 80393528 00390488 7C 63 20 50 */ subf r3, r3, r4
/* 8039352C 0039048C 90 66 00 00 */ stw r3, 0(r6)
lbl_80393530:
/* 80393530 00390490 38 C6 00 04 */ addi r6, r6, 4
/* 80393534 00390494 42 00 FF D0 */ bdnz lbl_80393504
lbl_80393538:
/* 80393538 00390498 2C 1A 00 00 */ cmpwi r26, 0
/* 8039353C 0039049C 40 81 00 50 */ ble lbl_8039358C
/* 80393540 003904A0 2C 1A 00 02 */ cmpwi r26, 2
/* 80393544 003904A4 41 82 00 30 */ beq lbl_80393574
/* 80393548 003904A8 40 80 00 44 */ bge lbl_8039358C
/* 8039354C 003904AC 2C 1A 00 01 */ cmpwi r26, 1
/* 80393550 003904B0 40 80 00 08 */ bge lbl_80393558
/* 80393554 003904B4 48 00 00 38 */ b lbl_8039358C
lbl_80393558:
/* 80393558 003904B8 57 E3 10 3A */ slwi r3, r31, 2
/* 8039355C 003904BC 38 A1 00 08 */ addi r5, r1, 8
/* 80393560 003904C0 38 83 FF FC */ addi r4, r3, -4
/* 80393564 003904C4 7C 65 20 2E */ lwzx r3, r5, r4
/* 80393568 003904C8 54 63 02 7E */ clrlwi r3, r3, 9
/* 8039356C 003904CC 7C 65 21 2E */ stwx r3, r5, r4
/* 80393570 003904D0 48 00 00 1C */ b lbl_8039358C
lbl_80393574:
/* 80393574 003904D4 57 E3 10 3A */ slwi r3, r31, 2
/* 80393578 003904D8 38 A1 00 08 */ addi r5, r1, 8
/* 8039357C 003904DC 38 83 FF FC */ addi r4, r3, -4
/* 80393580 003904E0 7C 65 20 2E */ lwzx r3, r5, r4
/* 80393584 003904E4 54 63 02 BE */ clrlwi r3, r3, 0xa
/* 80393588 003904E8 7C 65 21 2E */ stwx r3, r5, r4
lbl_8039358C:
/* 8039358C 003904EC 2C 19 00 02 */ cmpwi r25, 2
/* 80393590 003904F0 40 82 00 20 */ bne lbl_803935B0
/* 80393594 003904F4 C8 22 D3 F0 */ lfd f1, lbl_805AF110@sda21(r2)
/* 80393598 003904F8 2C 00 00 00 */ cmpwi r0, 0
/* 8039359C 003904FC FF 21 C8 28 */ fsub f25, f1, f25
/* 803935A0 00390500 41 82 00 10 */ beq lbl_803935B0
/* 803935A4 00390504 7F 43 D3 78 */ mr r3, r26
/* 803935A8 00390508 48 00 10 F1 */ bl ldexp
/* 803935AC 0039050C FF 39 08 28 */ fsub f25, f25, f1
lbl_803935B0:
/* 803935B0 00390510 FC 1F C8 00 */ fcmpu cr0, f31, f25
/* 803935B4 00390514 40 82 02 64 */ bne lbl_80393818
/* 803935B8 00390518 38 7F FF FF */ addi r3, r31, -1
/* 803935BC 0039051C 38 81 00 08 */ addi r4, r1, 8
/* 803935C0 00390520 7C 03 E0 00 */ cmpw r3, r28
/* 803935C4 00390524 38 A0 00 00 */ li r5, 0
/* 803935C8 00390528 54 60 10 3A */ slwi r0, r3, 2
/* 803935CC 0039052C 38 63 00 01 */ addi r3, r3, 1
/* 803935D0 00390530 7C 84 02 14 */ add r4, r4, r0
/* 803935D4 00390534 7C 7C 18 50 */ subf r3, r28, r3
/* 803935D8 00390538 41 80 00 74 */ blt lbl_8039364C
/* 803935DC 0039053C 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 803935E0 00390540 7C 09 03 A6 */ mtctr r0
/* 803935E4 00390544 41 82 00 54 */ beq lbl_80393638
lbl_803935E8:
/* 803935E8 00390548 80 04 00 00 */ lwz r0, 0(r4)
/* 803935EC 0039054C 7C A5 03 78 */ or r5, r5, r0
/* 803935F0 00390550 80 04 FF FC */ lwz r0, -4(r4)
/* 803935F4 00390554 7C A5 03 78 */ or r5, r5, r0
/* 803935F8 00390558 80 04 FF F8 */ lwz r0, -8(r4)
/* 803935FC 0039055C 7C A5 03 78 */ or r5, r5, r0
/* 80393600 00390560 80 04 FF F4 */ lwz r0, -0xc(r4)
/* 80393604 00390564 7C A5 03 78 */ or r5, r5, r0
/* 80393608 00390568 80 04 FF F0 */ lwz r0, -0x10(r4)
/* 8039360C 0039056C 7C A5 03 78 */ or r5, r5, r0
/* 80393610 00390570 80 04 FF EC */ lwz r0, -0x14(r4)
/* 80393614 00390574 7C A5 03 78 */ or r5, r5, r0
/* 80393618 00390578 80 04 FF E8 */ lwz r0, -0x18(r4)
/* 8039361C 0039057C 7C A5 03 78 */ or r5, r5, r0
/* 80393620 00390580 80 04 FF E4 */ lwz r0, -0x1c(r4)
/* 80393624 00390584 38 84 FF E0 */ addi r4, r4, -32
/* 80393628 00390588 7C A5 03 78 */ or r5, r5, r0
/* 8039362C 0039058C 42 00 FF BC */ bdnz lbl_803935E8
/* 80393630 00390590 70 63 00 07 */ andi. r3, r3, 7
/* 80393634 00390594 41 82 00 18 */ beq lbl_8039364C
lbl_80393638:
/* 80393638 00390598 7C 69 03 A6 */ mtctr r3
lbl_8039363C:
/* 8039363C 0039059C 80 04 00 00 */ lwz r0, 0(r4)
/* 80393640 003905A0 38 84 FF FC */ addi r4, r4, -4
/* 80393644 003905A4 7C A5 03 78 */ or r5, r5, r0
/* 80393648 003905A8 42 00 FF F4 */ bdnz lbl_8039363C
lbl_8039364C:
/* 8039364C 003905AC 2C 05 00 00 */ cmpwi r5, 0
/* 80393650 003905B0 40 82 01 C8 */ bne lbl_80393818
/* 80393654 003905B4 39 40 00 01 */ li r10, 1
/* 80393658 003905B8 48 00 00 08 */ b lbl_80393660
lbl_8039365C:
/* 8039365C 003905BC 39 4A 00 01 */ addi r10, r10, 1
lbl_80393660:
/* 80393660 003905C0 7C 0A E0 50 */ subf r0, r10, r28
/* 80393664 003905C4 54 00 10 3A */ slwi r0, r0, 2
/* 80393668 003905C8 7C 10 00 2E */ lwzx r0, r16, r0
/* 8039366C 003905CC 2C 00 00 00 */ cmpwi r0, 0
/* 80393670 003905D0 41 82 FF EC */ beq lbl_8039365C
/* 80393674 003905D4 39 3F 00 01 */ addi r9, r31, 1
/* 80393678 003905D8 38 A1 00 58 */ addi r5, r1, 0x58
/* 8039367C 003905DC 55 20 18 38 */ slwi r0, r9, 3
/* 80393680 003905E0 7C DF 52 14 */ add r6, r31, r10
/* 80393684 003905E4 7C A5 02 14 */ add r5, r5, r0
/* 80393688 003905E8 48 00 01 80 */ b lbl_80393808
lbl_8039368C:
/* 8039368C 003905EC 7C 1D 4A 14 */ add r0, r29, r9
/* 80393690 003905F0 7C FE 4A 14 */ add r7, r30, r9
/* 80393694 003905F4 54 00 10 3A */ slwi r0, r0, 2
/* 80393698 003905F8 92 61 02 48 */ stw r19, 0x248(r1)
/* 8039369C 003905FC 7C 78 00 2E */ lwzx r3, r24, r0
/* 803936A0 00390600 2C 1E 00 00 */ cmpwi r30, 0
/* 803936A4 00390604 54 E0 18 38 */ slwi r0, r7, 3
/* 803936A8 00390608 C8 82 D3 C0 */ lfd f4, lbl_805AF0E0@sda21(r2)
/* 803936AC 0039060C 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 803936B0 00390610 39 00 00 00 */ li r8, 0
/* 803936B4 00390614 90 61 02 4C */ stw r3, 0x24c(r1)
/* 803936B8 00390618 C8 01 02 48 */ lfd f0, 0x248(r1)
/* 803936BC 0039061C FC 00 D8 28 */ fsub f0, f0, f27
/* 803936C0 00390620 7C 14 05 AE */ stfdx f0, r20, r0
/* 803936C4 00390624 41 80 01 38 */ blt lbl_803937FC
/* 803936C8 00390628 38 1E 00 01 */ addi r0, r30, 1
/* 803936CC 0039062C 39 7E FF F8 */ addi r11, r30, -8
/* 803936D0 00390630 2C 00 00 08 */ cmpwi r0, 8
/* 803936D4 00390634 40 81 00 E8 */ ble lbl_803937BC
/* 803936D8 00390638 38 0B 00 08 */ addi r0, r11, 8
/* 803936DC 0039063C 7E A4 AB 78 */ mr r4, r21
/* 803936E0 00390640 54 00 E8 FE */ srwi r0, r0, 3
/* 803936E4 00390644 38 61 01 98 */ addi r3, r1, 0x198
/* 803936E8 00390648 7C 09 03 A6 */ mtctr r0
/* 803936EC 0039064C 2C 0B 00 00 */ cmpwi r11, 0
/* 803936F0 00390650 41 80 00 CC */ blt lbl_803937BC
lbl_803936F4:
/* 803936F4 00390654 7D 68 38 50 */ subf r11, r8, r7
/* 803936F8 00390658 38 08 00 01 */ addi r0, r8, 1
/* 803936FC 0039065C 55 6C 18 38 */ slwi r12, r11, 3
/* 80393700 00390660 C8 24 00 00 */ lfd f1, 0(r4)
/* 80393704 00390664 7C 03 64 AE */ lfdx f0, r3, r12
/* 80393708 00390668 7C 00 38 50 */ subf r0, r0, r7
/* 8039370C 0039066C 39 68 00 02 */ addi r11, r8, 2
/* 80393710 00390670 C8 44 00 20 */ lfd f2, 0x20(r4)
/* 80393714 00390674 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393718 00390678 7D 8B 38 50 */ subf r12, r11, r7
/* 8039371C 0039067C 54 00 18 38 */ slwi r0, r0, 3
/* 80393720 00390680 39 68 00 03 */ addi r11, r8, 3
/* 80393724 00390684 7C 03 04 AE */ lfdx f0, r3, r0
/* 80393728 00390688 55 99 18 38 */ slwi r25, r12, 3
/* 8039372C 0039068C C8 24 00 08 */ lfd f1, 8(r4)
/* 80393730 00390690 7D 6B 38 50 */ subf r11, r11, r7
/* 80393734 00390694 55 6C 18 38 */ slwi r12, r11, 3
/* 80393738 00390698 38 08 00 04 */ addi r0, r8, 4
/* 8039373C 0039069C FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393740 003906A0 C8 24 00 10 */ lfd f1, 0x10(r4)
/* 80393744 003906A4 7C 03 CC AE */ lfdx f0, r3, r25
/* 80393748 003906A8 7D 60 38 50 */ subf r11, r0, r7
/* 8039374C 003906AC 38 08 00 05 */ addi r0, r8, 5
/* 80393750 003906B0 C8 64 00 30 */ lfd f3, 0x30(r4)
/* 80393754 003906B4 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393758 003906B8 7C 03 64 AE */ lfdx f0, r3, r12
/* 8039375C 003906BC C8 24 00 18 */ lfd f1, 0x18(r4)
/* 80393760 003906C0 55 6C 18 38 */ slwi r12, r11, 3
/* 80393764 003906C4 39 68 00 06 */ addi r11, r8, 6
/* 80393768 003906C8 7C 00 38 50 */ subf r0, r0, r7
/* 8039376C 003906CC FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 80393770 003906D0 7C 03 64 AE */ lfdx f0, r3, r12
/* 80393774 003906D4 54 0C 18 38 */ slwi r12, r0, 3
/* 80393778 003906D8 C8 24 00 28 */ lfd f1, 0x28(r4)
/* 8039377C 003906DC 38 08 00 07 */ addi r0, r8, 7
/* 80393780 003906E0 7D 6B 38 50 */ subf r11, r11, r7
/* 80393784 003906E4 FC 82 20 3A */ fmadd f4, f2, f0, f4
/* 80393788 003906E8 7C 03 64 AE */ lfdx f0, r3, r12
/* 8039378C 003906EC 55 6B 18 38 */ slwi r11, r11, 3
/* 80393790 003906F0 7C 00 38 50 */ subf r0, r0, r7
/* 80393794 003906F4 7C 43 5C AE */ lfdx f2, r3, r11
/* 80393798 003906F8 54 00 18 38 */ slwi r0, r0, 3
/* 8039379C 003906FC FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 803937A0 00390700 C8 24 00 38 */ lfd f1, 0x38(r4)
/* 803937A4 00390704 7C 03 04 AE */ lfdx f0, r3, r0
/* 803937A8 00390708 38 84 00 40 */ addi r4, r4, 0x40
/* 803937AC 0039070C 39 08 00 08 */ addi r8, r8, 8
/* 803937B0 00390710 FC 83 20 BA */ fmadd f4, f3, f2, f4
/* 803937B4 00390714 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 803937B8 00390718 42 00 FF 3C */ bdnz lbl_803936F4
lbl_803937BC:
/* 803937BC 0039071C 38 1E 00 01 */ addi r0, r30, 1
/* 803937C0 00390720 55 04 18 38 */ slwi r4, r8, 3
/* 803937C4 00390724 7C 08 00 50 */ subf r0, r8, r0
/* 803937C8 00390728 38 61 01 98 */ addi r3, r1, 0x198
/* 803937CC 0039072C 7C 95 22 14 */ add r4, r21, r4
/* 803937D0 00390730 7C 09 03 A6 */ mtctr r0
/* 803937D4 00390734 7C 08 F0 00 */ cmpw r8, r30
/* 803937D8 00390738 41 81 00 24 */ bgt lbl_803937FC
lbl_803937DC:
/* 803937DC 0039073C 7C 08 38 50 */ subf r0, r8, r7
/* 803937E0 00390740 C8 24 00 00 */ lfd f1, 0(r4)
/* 803937E4 00390744 54 00 18 38 */ slwi r0, r0, 3
/* 803937E8 00390748 38 84 00 08 */ addi r4, r4, 8
/* 803937EC 0039074C 7C 03 04 AE */ lfdx f0, r3, r0
/* 803937F0 00390750 39 08 00 01 */ addi r8, r8, 1
/* 803937F4 00390754 FC 81 20 3A */ fmadd f4, f1, f0, f4
/* 803937F8 00390758 42 00 FF E4 */ bdnz lbl_803937DC
lbl_803937FC:
/* 803937FC 0039075C D8 85 00 00 */ stfd f4, 0(r5)
/* 80393800 00390760 38 A5 00 08 */ addi r5, r5, 8
/* 80393804 00390764 39 29 00 01 */ addi r9, r9, 1
lbl_80393808:
/* 80393808 00390768 7C 09 30 00 */ cmpw r9, r6
/* 8039380C 0039076C 40 81 FE 80 */ ble lbl_8039368C
/* 80393810 00390770 7F FF 52 14 */ add r31, r31, r10
/* 80393814 00390774 4B FF FB 18 */ b lbl_8039332C
lbl_80393818:
/* 80393818 00390778 C8 02 D3 C0 */ lfd f0, lbl_805AF0E0@sda21(r2)
/* 8039381C 0039077C FC 00 C8 00 */ fcmpu cr0, f0, f25
/* 80393820 00390780 40 82 00 38 */ bne lbl_80393858
/* 80393824 00390784 3B FF FF FF */ addi r31, r31, -1
/* 80393828 00390788 38 61 00 08 */ addi r3, r1, 8
/* 8039382C 0039078C 57 E0 10 3A */ slwi r0, r31, 2
/* 80393830 00390790 3B 5A FF E8 */ addi r26, r26, -24
/* 80393834 00390794 7C 63 02 14 */ add r3, r3, r0
/* 80393838 00390798 48 00 00 10 */ b lbl_80393848
lbl_8039383C:
/* 8039383C 0039079C 38 63 FF FC */ addi r3, r3, -4
/* 80393840 003907A0 3B FF FF FF */ addi r31, r31, -1
/* 80393844 003907A4 3B 5A FF E8 */ addi r26, r26, -24
lbl_80393848:
/* 80393848 003907A8 80 03 00 00 */ lwz r0, 0(r3)
/* 8039384C 003907AC 2C 00 00 00 */ cmpwi r0, 0
/* 80393850 003907B0 41 82 FF EC */ beq lbl_8039383C
/* 80393854 003907B4 48 00 00 A4 */ b lbl_803938F8
lbl_80393858:
/* 80393858 003907B8 FC 20 C8 90 */ fmr f1, f25
/* 8039385C 003907BC 7C 7A 00 D0 */ neg r3, r26
/* 80393860 003907C0 48 00 0E 39 */ bl ldexp
/* 80393864 003907C4 C8 62 D3 D0 */ lfd f3, lbl_805AF0F0@sda21(r2)
/* 80393868 003907C8 FC 01 18 40 */ fcmpo cr0, f1, f3
/* 8039386C 003907CC 4C 41 13 82 */ cror 2, 1, 2
/* 80393870 003907D0 40 82 00 70 */ bne lbl_803938E0
/* 80393874 003907D4 C8 02 D3 C8 */ lfd f0, lbl_805AF0E8@sda21(r2)
/* 80393878 003907D8 3C 00 43 30 */ lis r0, 0x4330
/* 8039387C 003907DC 57 E5 10 3A */ slwi r5, r31, 2
/* 80393880 003907E0 90 01 02 40 */ stw r0, 0x240(r1)
/* 80393884 003907E4 FC 00 00 72 */ fmul f0, f0, f1
/* 80393888 003907E8 3B FF 00 01 */ addi r31, r31, 1
/* 8039388C 003907EC C8 42 D3 F8 */ lfd f2, lbl_805AF118@sda21(r2)
/* 80393890 003907F0 38 81 00 08 */ addi r4, r1, 8
/* 80393894 003907F4 57 E0 10 3A */ slwi r0, r31, 2
/* 80393898 003907F8 3B 5A 00 18 */ addi r26, r26, 0x18
/* 8039389C 003907FC FC 00 00 1E */ fctiwz f0, f0
/* 803938A0 00390800 D8 01 02 48 */ stfd f0, 0x248(r1)
/* 803938A4 00390804 80 61 02 4C */ lwz r3, 0x24c(r1)
/* 803938A8 00390808 6C 63 80 00 */ xoris r3, r3, 0x8000
/* 803938AC 0039080C 90 61 02 44 */ stw r3, 0x244(r1)
/* 803938B0 00390810 C8 01 02 40 */ lfd f0, 0x240(r1)
/* 803938B4 00390814 FC 00 10 28 */ fsub f0, f0, f2
/* 803938B8 00390818 FC 23 08 3C */ fnmsub f1, f3, f0, f1
/* 803938BC 0039081C FC 00 00 1E */ fctiwz f0, f0
/* 803938C0 00390820 FC 20 08 1E */ fctiwz f1, f1
/* 803938C4 00390824 D8 01 02 50 */ stfd f0, 0x250(r1)
/* 803938C8 00390828 D8 21 02 38 */ stfd f1, 0x238(r1)
/* 803938CC 0039082C 80 61 02 54 */ lwz r3, 0x254(r1)
/* 803938D0 00390830 80 C1 02 3C */ lwz r6, 0x23c(r1)
/* 803938D4 00390834 7C C4 29 2E */ stwx r6, r4, r5
/* 803938D8 00390838 7C 64 01 2E */ stwx r3, r4, r0
/* 803938DC 0039083C 48 00 00 1C */ b lbl_803938F8
lbl_803938E0:
/* 803938E0 00390840 FC 00 08 1E */ fctiwz f0, f1
/* 803938E4 00390844 57 E0 10 3A */ slwi r0, r31, 2
/* 803938E8 00390848 38 61 00 08 */ addi r3, r1, 8
/* 803938EC 0039084C D8 01 02 50 */ stfd f0, 0x250(r1)
/* 803938F0 00390850 80 81 02 54 */ lwz r4, 0x254(r1)
/* 803938F4 00390854 7C 83 01 2E */ stwx r4, r3, r0
lbl_803938F8:
/* 803938F8 00390858 C8 22 D3 F0 */ lfd f1, lbl_805AF110@sda21(r2)
/* 803938FC 0039085C 7F 43 D3 78 */ mr r3, r26
/* 80393900 00390860 48 00 0D 99 */ bl ldexp
/* 80393904 00390864 2C 1F 00 00 */ cmpwi r31, 0
/* 80393908 00390868 57 E0 10 3A */ slwi r0, r31, 2
/* 8039390C 0039086C 38 C1 00 08 */ addi r6, r1, 8
/* 80393910 00390870 57 E8 18 38 */ slwi r8, r31, 3
/* 80393914 00390874 38 E1 00 58 */ addi r7, r1, 0x58
/* 80393918 00390878 C8 A2 D3 F8 */ lfd f5, lbl_805AF118@sda21(r2)
/* 8039391C 0039087C C8 02 D3 C8 */ lfd f0, lbl_805AF0E8@sda21(r2)
/* 80393920 00390880 7C C6 02 14 */ add r6, r6, r0
/* 80393924 00390884 7C E7 42 14 */ add r7, r7, r8
/* 80393928 00390888 38 7F 00 01 */ addi r3, r31, 1
/* 8039392C 0039088C 3C 80 43 30 */ lis r4, 0x4330
/* 80393930 00390890 41 80 00 E8 */ blt lbl_80393A18
/* 80393934 00390894 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f
/* 80393938 00390898 7C 09 03 A6 */ mtctr r0
/* 8039393C 0039089C 41 82 00 A8 */ beq lbl_803939E4
lbl_80393940:
/* 80393940 003908A0 80 A6 00 00 */ lwz r5, 0(r6)
/* 80393944 003908A4 90 81 02 50 */ stw r4, 0x250(r1)
/* 80393948 003908A8 6C A0 80 00 */ xoris r0, r5, 0x8000
/* 8039394C 003908AC 80 A6 FF FC */ lwz r5, -4(r6)
/* 80393950 003908B0 90 01 02 54 */ stw r0, 0x254(r1)
/* 80393954 003908B4 6C A0 80 00 */ xoris r0, r5, 0x8000
/* 80393958 003908B8 80 A6 FF F8 */ lwz r5, -8(r6)
/* 8039395C 003908BC C8 81 02 50 */ lfd f4, 0x250(r1)
/* 80393960 003908C0 90 01 02 54 */ stw r0, 0x254(r1)
/* 80393964 003908C4 FC 64 28 28 */ fsub f3, f4, f5
/* 80393968 003908C8 6C A0 80 00 */ xoris r0, r5, 0x8000
/* 8039396C 003908CC 80 A6 FF F4 */ lwz r5, -0xc(r6)
/* 80393970 003908D0 90 81 02 50 */ stw r4, 0x250(r1)
/* 80393974 003908D4 38 C6 FF F0 */ addi r6, r6, -16
/* 80393978 003908D8 FC 41 00 F2 */ fmul f2, f1, f3
/* 8039397C 003908DC C8 81 02 50 */ lfd f4, 0x250(r1)
/* 80393980 003908E0 FC 21 00 32 */ fmul f1, f1, f0
/* 80393984 003908E4 90 01 02 54 */ stw r0, 0x254(r1)
/* 80393988 003908E8 6C A0 80 00 */ xoris r0, r5, 0x8000
/* 8039398C 003908EC FC 64 28 28 */ fsub f3, f4, f5
/* 80393990 003908F0 90 81 02 50 */ stw r4, 0x250(r1)
/* 80393994 003908F4 C8 81 02 50 */ lfd f4, 0x250(r1)
/* 80393998 003908F8 D8 47 00 00 */ stfd f2, 0(r7)
/* 8039399C 003908FC FC 41 00 F2 */ fmul f2, f1, f3
/* 803939A0 00390900 FC 21 00 32 */ fmul f1, f1, f0
/* 803939A4 00390904 90 01 02 54 */ stw r0, 0x254(r1)
/* 803939A8 00390908 90 81 02 50 */ stw r4, 0x250(r1)
/* 803939AC 0039090C FC 64 28 28 */ fsub f3, f4, f5
/* 803939B0 00390910 D8 47 FF F8 */ stfd f2, -8(r7)
/* 803939B4 00390914 FC 41 00 F2 */ fmul f2, f1, f3
/* 803939B8 00390918 C8 81 02 50 */ lfd f4, 0x250(r1)
/* 803939BC 0039091C FC 21 00 32 */ fmul f1, f1, f0
/* 803939C0 00390920 FC 64 28 28 */ fsub f3, f4, f5
/* 803939C4 00390924 D8 47 FF F0 */ stfd f2, -0x10(r7)
/* 803939C8 00390928 FC 41 00 F2 */ fmul f2, f1, f3
/* 803939CC 0039092C FC 21 00 32 */ fmul f1, f1, f0
/* 803939D0 00390930 D8 47 FF E8 */ stfd f2, -0x18(r7)
/* 803939D4 00390934 38 E7 FF E0 */ addi r7, r7, -32
/* 803939D8 00390938 42 00 FF 68 */ bdnz lbl_80393940
/* 803939DC 0039093C 70 63 00 03 */ andi. r3, r3, 3
/* 803939E0 00390940 41 82 00 38 */ beq lbl_80393A18
lbl_803939E4:
/* 803939E4 00390944 7C 69 03 A6 */ mtctr r3
lbl_803939E8:
/* 803939E8 00390948 80 A6 00 00 */ lwz r5, 0(r6)
/* 803939EC 0039094C 38 C6 FF FC */ addi r6, r6, -4
/* 803939F0 00390950 90 81 02 50 */ stw r4, 0x250(r1)
/* 803939F4 00390954 6C A0 80 00 */ xoris r0, r5, 0x8000
/* 803939F8 00390958 90 01 02 54 */ stw r0, 0x254(r1)
/* 803939FC 0039095C C8 81 02 50 */ lfd f4, 0x250(r1)
/* 80393A00 00390960 FC 64 28 28 */ fsub f3, f4, f5
/* 80393A04 00390964 FC 41 00 F2 */ fmul f2, f1, f3
/* 80393A08 00390968 FC 21 00 32 */ fmul f1, f1, f0
/* 80393A0C 0039096C D8 47 00 00 */ stfd f2, 0(r7)
/* 80393A10 00390970 38 E7 FF F8 */ addi r7, r7, -8
/* 80393A14 00390974 42 00 FF D4 */ bdnz lbl_803939E8
lbl_80393A18:
/* 80393A18 00390978 3C 60 80 3E */ lis r3, lbl_803D8928@ha
/* 80393A1C 0039097C 38 1F 00 01 */ addi r0, r31, 1
/* 80393A20 00390980 7F E9 FB 78 */ mr r9, r31
/* 80393A24 00390984 38 81 00 58 */ addi r4, r1, 0x58
/* 80393A28 00390988 38 A3 89 28 */ addi r5, r3, lbl_803D8928@l
/* 80393A2C 0039098C 38 61 00 F8 */ addi r3, r1, 0xf8
/* 80393A30 00390990 7C 09 03 A6 */ mtctr r0
/* 80393A34 00390994 2C 1F 00 00 */ cmpwi r31, 0
/* 80393A38 00390998 41 80 00 54 */ blt lbl_80393A8C
lbl_80393A3C:
/* 80393A3C 0039099C C8 42 D3 C0 */ lfd f2, lbl_805AF0E0@sda21(r2)
/* 80393A40 003909A0 7C A6 2B 78 */ mr r6, r5
/* 80393A44 003909A4 7C E9 F8 50 */ subf r7, r9, r31
/* 80393A48 003909A8 39 40 00 00 */ li r10, 0
/* 80393A4C 003909AC 48 00 00 20 */ b lbl_80393A6C
lbl_80393A50:
/* 80393A50 003909B0 7C 09 52 14 */ add r0, r9, r10
/* 80393A54 003909B4 C8 26 00 00 */ lfd f1, 0(r6)
/* 80393A58 003909B8 54 00 18 38 */ slwi r0, r0, 3
/* 80393A5C 003909BC 38 C6 00 08 */ addi r6, r6, 8
/* 80393A60 003909C0 7C 04 04 AE */ lfdx f0, r4, r0
/* 80393A64 003909C4 39 4A 00 01 */ addi r10, r10, 1
/* 80393A68 003909C8 FC 41 10 3A */ fmadd f2, f1, f0, f2
lbl_80393A6C:
/* 80393A6C 003909CC 7C 0A E0 00 */ cmpw r10, r28
/* 80393A70 003909D0 41 81 00 0C */ bgt lbl_80393A7C
/* 80393A74 003909D4 7C 0A 38 00 */ cmpw r10, r7
/* 80393A78 003909D8 40 81 FF D8 */ ble lbl_80393A50
lbl_80393A7C:
/* 80393A7C 003909DC 54 E0 18 38 */ slwi r0, r7, 3
/* 80393A80 003909E0 39 29 FF FF */ addi r9, r9, -1
/* 80393A84 003909E4 7C 43 05 AE */ stfdx f2, r3, r0
/* 80393A88 003909E8 42 00 FF B4 */ bdnz lbl_80393A3C
lbl_80393A8C:
/* 80393A8C 003909EC 2C 17 00 03 */ cmpwi r23, 3
/* 80393A90 003909F0 41 82 02 24 */ beq lbl_80393CB4
/* 80393A94 003909F4 40 80 04 60 */ bge lbl_80393EF4
/* 80393A98 003909F8 2C 17 00 00 */ cmpwi r23, 0
/* 80393A9C 003909FC 41 82 00 0C */ beq lbl_80393AA8
/* 80393AA0 00390A00 40 80 00 A8 */ bge lbl_80393B48
/* 80393AA4 00390A04 48 00 04 50 */ b lbl_80393EF4
lbl_80393AA8:
/* 80393AA8 00390A08 2C 1F 00 00 */ cmpwi r31, 0
/* 80393AAC 00390A0C 38 81 00 F8 */ addi r4, r1, 0xf8
/* 80393AB0 00390A10 C8 22 D3 C0 */ lfd f1, lbl_805AF0E0@sda21(r2)
/* 80393AB4 00390A14 7C 84 42 14 */ add r4, r4, r8
/* 80393AB8 00390A18 38 7F 00 01 */ addi r3, r31, 1
/* 80393ABC 00390A1C 41 80 00 74 */ blt lbl_80393B30
/* 80393AC0 00390A20 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80393AC4 00390A24 7C 09 03 A6 */ mtctr r0
/* 80393AC8 00390A28 41 82 00 54 */ beq lbl_80393B1C
lbl_80393ACC:
/* 80393ACC 00390A2C C8 04 00 00 */ lfd f0, 0(r4)
/* 80393AD0 00390A30 FC 21 00 2A */ fadd f1, f1, f0
/* 80393AD4 00390A34 C8 04 FF F8 */ lfd f0, -8(r4)
/* 80393AD8 00390A38 FC 21 00 2A */ fadd f1, f1, f0
/* 80393ADC 00390A3C C8 04 FF F0 */ lfd f0, -0x10(r4)
/* 80393AE0 00390A40 FC 21 00 2A */ fadd f1, f1, f0
/* 80393AE4 00390A44 C8 04 FF E8 */ lfd f0, -0x18(r4)
/* 80393AE8 00390A48 FC 21 00 2A */ fadd f1, f1, f0
/* 80393AEC 00390A4C C8 04 FF E0 */ lfd f0, -0x20(r4)
/* 80393AF0 00390A50 FC 21 00 2A */ fadd f1, f1, f0
/* 80393AF4 00390A54 C8 04 FF D8 */ lfd f0, -0x28(r4)
/* 80393AF8 00390A58 FC 21 00 2A */ fadd f1, f1, f0
/* 80393AFC 00390A5C C8 04 FF D0 */ lfd f0, -0x30(r4)
/* 80393B00 00390A60 FC 21 00 2A */ fadd f1, f1, f0
/* 80393B04 00390A64 C8 04 FF C8 */ lfd f0, -0x38(r4)
/* 80393B08 00390A68 38 84 FF C0 */ addi r4, r4, -64
/* 80393B0C 00390A6C FC 21 00 2A */ fadd f1, f1, f0
/* 80393B10 00390A70 42 00 FF BC */ bdnz lbl_80393ACC
/* 80393B14 00390A74 70 63 00 07 */ andi. r3, r3, 7
/* 80393B18 00390A78 41 82 00 18 */ beq lbl_80393B30
lbl_80393B1C:
/* 80393B1C 00390A7C 7C 69 03 A6 */ mtctr r3
lbl_80393B20:
/* 80393B20 00390A80 C8 04 00 00 */ lfd f0, 0(r4)
/* 80393B24 00390A84 38 84 FF F8 */ addi r4, r4, -8
/* 80393B28 00390A88 FC 21 00 2A */ fadd f1, f1, f0
/* 80393B2C 00390A8C 42 00 FF F4 */ bdnz lbl_80393B20
lbl_80393B30:
/* 80393B30 00390A90 2C 19 00 00 */ cmpwi r25, 0
/* 80393B34 00390A94 40 82 00 08 */ bne lbl_80393B3C
/* 80393B38 00390A98 48 00 00 08 */ b lbl_80393B40
lbl_80393B3C:
/* 80393B3C 00390A9C FC 20 08 50 */ fneg f1, f1
lbl_80393B40:
/* 80393B40 00390AA0 D8 36 00 00 */ stfd f1, 0(r22)
/* 80393B44 00390AA4 48 00 03 B0 */ b lbl_80393EF4
lbl_80393B48:
/* 80393B48 00390AA8 2C 1F 00 00 */ cmpwi r31, 0
/* 80393B4C 00390AAC 38 81 00 F8 */ addi r4, r1, 0xf8
/* 80393B50 00390AB0 C8 42 D3 C0 */ lfd f2, lbl_805AF0E0@sda21(r2)
/* 80393B54 00390AB4 7C 84 42 14 */ add r4, r4, r8
/* 80393B58 00390AB8 38 7F 00 01 */ addi r3, r31, 1
/* 80393B5C 00390ABC 41 80 00 74 */ blt lbl_80393BD0
/* 80393B60 00390AC0 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80393B64 00390AC4 7C 09 03 A6 */ mtctr r0
/* 80393B68 00390AC8 41 82 00 54 */ beq lbl_80393BBC
lbl_80393B6C:
/* 80393B6C 00390ACC C8 04 00 00 */ lfd f0, 0(r4)
/* 80393B70 00390AD0 FC 42 00 2A */ fadd f2, f2, f0
/* 80393B74 00390AD4 C8 04 FF F8 */ lfd f0, -8(r4)
/* 80393B78 00390AD8 FC 42 00 2A */ fadd f2, f2, f0
/* 80393B7C 00390ADC C8 04 FF F0 */ lfd f0, -0x10(r4)
/* 80393B80 00390AE0 FC 42 00 2A */ fadd f2, f2, f0
/* 80393B84 00390AE4 C8 04 FF E8 */ lfd f0, -0x18(r4)
/* 80393B88 00390AE8 FC 42 00 2A */ fadd f2, f2, f0
/* 80393B8C 00390AEC C8 04 FF E0 */ lfd f0, -0x20(r4)
/* 80393B90 00390AF0 FC 42 00 2A */ fadd f2, f2, f0
/* 80393B94 00390AF4 C8 04 FF D8 */ lfd f0, -0x28(r4)
/* 80393B98 00390AF8 FC 42 00 2A */ fadd f2, f2, f0
/* 80393B9C 00390AFC C8 04 FF D0 */ lfd f0, -0x30(r4)
/* 80393BA0 00390B00 FC 42 00 2A */ fadd f2, f2, f0
/* 80393BA4 00390B04 C8 04 FF C8 */ lfd f0, -0x38(r4)
/* 80393BA8 00390B08 38 84 FF C0 */ addi r4, r4, -64
/* 80393BAC 00390B0C FC 42 00 2A */ fadd f2, f2, f0
/* 80393BB0 00390B10 42 00 FF BC */ bdnz lbl_80393B6C
/* 80393BB4 00390B14 70 63 00 07 */ andi. r3, r3, 7
/* 80393BB8 00390B18 41 82 00 18 */ beq lbl_80393BD0
lbl_80393BBC:
/* 80393BBC 00390B1C 7C 69 03 A6 */ mtctr r3
lbl_80393BC0:
/* 80393BC0 00390B20 C8 04 00 00 */ lfd f0, 0(r4)
/* 80393BC4 00390B24 38 84 FF F8 */ addi r4, r4, -8
/* 80393BC8 00390B28 FC 42 00 2A */ fadd f2, f2, f0
/* 80393BCC 00390B2C 42 00 FF F4 */ bdnz lbl_80393BC0
lbl_80393BD0:
/* 80393BD0 00390B30 2C 19 00 00 */ cmpwi r25, 0
/* 80393BD4 00390B34 40 82 00 0C */ bne lbl_80393BE0
/* 80393BD8 00390B38 FC 20 10 90 */ fmr f1, f2
/* 80393BDC 00390B3C 48 00 00 08 */ b lbl_80393BE4
lbl_80393BE0:
/* 80393BE0 00390B40 FC 20 10 50 */ fneg f1, f2
lbl_80393BE4:
/* 80393BE4 00390B44 C8 01 00 F8 */ lfd f0, 0xf8(r1)
/* 80393BE8 00390B48 2C 1F 00 01 */ cmpwi r31, 1
/* 80393BEC 00390B4C D8 36 00 00 */ stfd f1, 0(r22)
/* 80393BF0 00390B50 38 A0 00 01 */ li r5, 1
/* 80393BF4 00390B54 FC C0 10 28 */ fsub f6, f0, f2
/* 80393BF8 00390B58 41 80 00 A4 */ blt lbl_80393C9C
/* 80393BFC 00390B5C 2C 1F 00 08 */ cmpwi r31, 8
/* 80393C00 00390B60 38 7F FF F8 */ addi r3, r31, -8
/* 80393C04 00390B64 40 81 00 68 */ ble lbl_80393C6C
/* 80393C08 00390B68 38 03 00 07 */ addi r0, r3, 7
/* 80393C0C 00390B6C 38 81 01 00 */ addi r4, r1, 0x100
/* 80393C10 00390B70 54 00 E8 FE */ srwi r0, r0, 3
/* 80393C14 00390B74 7C 09 03 A6 */ mtctr r0
/* 80393C18 00390B78 2C 03 00 01 */ cmpwi r3, 1
/* 80393C1C 00390B7C 41 80 00 50 */ blt lbl_80393C6C
lbl_80393C20:
/* 80393C20 00390B80 C8 24 00 00 */ lfd f1, 0(r4)
/* 80393C24 00390B84 38 A5 00 08 */ addi r5, r5, 8
/* 80393C28 00390B88 C8 04 00 08 */ lfd f0, 8(r4)
/* 80393C2C 00390B8C FC C6 08 2A */ fadd f6, f6, f1
/* 80393C30 00390B90 C8 A4 00 10 */ lfd f5, 0x10(r4)
/* 80393C34 00390B94 C8 84 00 18 */ lfd f4, 0x18(r4)
/* 80393C38 00390B98 C8 64 00 20 */ lfd f3, 0x20(r4)
/* 80393C3C 00390B9C FC C6 00 2A */ fadd f6, f6, f0
/* 80393C40 00390BA0 C8 44 00 28 */ lfd f2, 0x28(r4)
/* 80393C44 00390BA4 C8 24 00 30 */ lfd f1, 0x30(r4)
/* 80393C48 00390BA8 C8 04 00 38 */ lfd f0, 0x38(r4)
/* 80393C4C 00390BAC 38 84 00 40 */ addi r4, r4, 0x40
/* 80393C50 00390BB0 FC C6 28 2A */ fadd f6, f6, f5
/* 80393C54 00390BB4 FC C6 20 2A */ fadd f6, f6, f4
/* 80393C58 00390BB8 FC C6 18 2A */ fadd f6, f6, f3
/* 80393C5C 00390BBC FC C6 10 2A */ fadd f6, f6, f2
/* 80393C60 00390BC0 FC C6 08 2A */ fadd f6, f6, f1
/* 80393C64 00390BC4 FC C6 00 2A */ fadd f6, f6, f0
/* 80393C68 00390BC8 42 00 FF B8 */ bdnz lbl_80393C20
lbl_80393C6C:
/* 80393C6C 00390BCC 38 1F 00 01 */ addi r0, r31, 1
/* 80393C70 00390BD0 54 A3 18 38 */ slwi r3, r5, 3
/* 80393C74 00390BD4 38 81 00 F8 */ addi r4, r1, 0xf8
/* 80393C78 00390BD8 7C 05 00 50 */ subf r0, r5, r0
/* 80393C7C 00390BDC 7C 84 1A 14 */ add r4, r4, r3
/* 80393C80 00390BE0 7C 09 03 A6 */ mtctr r0
/* 80393C84 00390BE4 7C 05 F8 00 */ cmpw r5, r31
/* 80393C88 00390BE8 41 81 00 14 */ bgt lbl_80393C9C
lbl_80393C8C:
/* 80393C8C 00390BEC C8 04 00 00 */ lfd f0, 0(r4)
/* 80393C90 00390BF0 38 84 00 08 */ addi r4, r4, 8
/* 80393C94 00390BF4 FC C6 00 2A */ fadd f6, f6, f0
/* 80393C98 00390BF8 42 00 FF F4 */ bdnz lbl_80393C8C
lbl_80393C9C:
/* 80393C9C 00390BFC 2C 19 00 00 */ cmpwi r25, 0
/* 80393CA0 00390C00 40 82 00 08 */ bne lbl_80393CA8
/* 80393CA4 00390C04 48 00 00 08 */ b lbl_80393CAC
lbl_80393CA8:
/* 80393CA8 00390C08 FC C0 30 50 */ fneg f6, f6
lbl_80393CAC:
/* 80393CAC 00390C0C D8 D6 00 08 */ stfd f6, 8(r22)
/* 80393CB0 00390C10 48 00 02 44 */ b lbl_80393EF4
lbl_80393CB4:
/* 80393CB4 00390C14 38 A1 00 F8 */ addi r5, r1, 0xf8
/* 80393CB8 00390C18 2C 1F 00 00 */ cmpwi r31, 0
/* 80393CBC 00390C1C 7C A5 42 14 */ add r5, r5, r8
/* 80393CC0 00390C20 7F E3 FB 78 */ mr r3, r31
/* 80393CC4 00390C24 7C A4 2B 78 */ mr r4, r5
/* 80393CC8 00390C28 40 81 00 B0 */ ble lbl_80393D78
/* 80393CCC 00390C2C 57 E0 F0 BF */ rlwinm. r0, r31, 0x1e, 2, 0x1f
/* 80393CD0 00390C30 7C 09 03 A6 */ mtctr r0
/* 80393CD4 00390C34 41 82 00 80 */ beq lbl_80393D54
lbl_80393CD8:
/* 80393CD8 00390C38 C8 04 FF F8 */ lfd f0, -8(r4)
/* 80393CDC 00390C3C C8 24 00 00 */ lfd f1, 0(r4)
/* 80393CE0 00390C40 FC 40 08 2A */ fadd f2, f0, f1
/* 80393CE4 00390C44 FC 00 10 28 */ fsub f0, f0, f2
/* 80393CE8 00390C48 FC 01 00 2A */ fadd f0, f1, f0
/* 80393CEC 00390C4C D8 04 00 00 */ stfd f0, 0(r4)
/* 80393CF0 00390C50 D8 44 FF F8 */ stfd f2, -8(r4)
/* 80393CF4 00390C54 C8 04 FF F0 */ lfd f0, -0x10(r4)
/* 80393CF8 00390C58 C8 24 FF F8 */ lfd f1, -8(r4)
/* 80393CFC 00390C5C FC 40 08 2A */ fadd f2, f0, f1
/* 80393D00 00390C60 FC 00 10 28 */ fsub f0, f0, f2
/* 80393D04 00390C64 FC 01 00 2A */ fadd f0, f1, f0
/* 80393D08 00390C68 D8 04 FF F8 */ stfd f0, -8(r4)
/* 80393D0C 00390C6C D8 44 FF F0 */ stfd f2, -0x10(r4)
/* 80393D10 00390C70 C8 04 FF E8 */ lfd f0, -0x18(r4)
/* 80393D14 00390C74 C8 24 FF F0 */ lfd f1, -0x10(r4)
/* 80393D18 00390C78 FC 40 08 2A */ fadd f2, f0, f1
/* 80393D1C 00390C7C FC 00 10 28 */ fsub f0, f0, f2
/* 80393D20 00390C80 FC 01 00 2A */ fadd f0, f1, f0
/* 80393D24 00390C84 D8 04 FF F0 */ stfd f0, -0x10(r4)
/* 80393D28 00390C88 D8 44 FF E8 */ stfd f2, -0x18(r4)
/* 80393D2C 00390C8C C8 04 FF E0 */ lfd f0, -0x20(r4)
/* 80393D30 00390C90 C8 24 FF E8 */ lfd f1, -0x18(r4)
/* 80393D34 00390C94 FC 40 08 2A */ fadd f2, f0, f1
/* 80393D38 00390C98 FC 00 10 28 */ fsub f0, f0, f2
/* 80393D3C 00390C9C FC 01 00 2A */ fadd f0, f1, f0
/* 80393D40 00390CA0 D8 04 FF E8 */ stfd f0, -0x18(r4)
/* 80393D44 00390CA4 DC 44 FF E0 */ stfdu f2, -0x20(r4)
/* 80393D48 00390CA8 42 00 FF 90 */ bdnz lbl_80393CD8
/* 80393D4C 00390CAC 70 63 00 03 */ andi. r3, r3, 3
/* 80393D50 00390CB0 41 82 00 28 */ beq lbl_80393D78
lbl_80393D54:
/* 80393D54 00390CB4 7C 69 03 A6 */ mtctr r3
lbl_80393D58:
/* 80393D58 00390CB8 C8 04 FF F8 */ lfd f0, -8(r4)
/* 80393D5C 00390CBC C8 24 00 00 */ lfd f1, 0(r4)
/* 80393D60 00390CC0 FC 40 08 2A */ fadd f2, f0, f1
/* 80393D64 00390CC4 FC 00 10 28 */ fsub f0, f0, f2
/* 80393D68 00390CC8 FC 01 00 2A */ fadd f0, f1, f0
/* 80393D6C 00390CCC D8 04 00 00 */ stfd f0, 0(r4)
/* 80393D70 00390CD0 DC 44 FF F8 */ stfdu f2, -8(r4)
/* 80393D74 00390CD4 42 00 FF E4 */ bdnz lbl_80393D58
lbl_80393D78:
/* 80393D78 00390CD8 2C 1F 00 01 */ cmpwi r31, 1
/* 80393D7C 00390CDC 7C A4 2B 78 */ mr r4, r5
/* 80393D80 00390CE0 38 7F FF FF */ addi r3, r31, -1
/* 80393D84 00390CE4 40 81 00 B0 */ ble lbl_80393E34
/* 80393D88 00390CE8 54 60 F0 BF */ rlwinm. r0, r3, 0x1e, 2, 0x1f
/* 80393D8C 00390CEC 7C 09 03 A6 */ mtctr r0
/* 80393D90 00390CF0 41 82 00 80 */ beq lbl_80393E10
lbl_80393D94:
/* 80393D94 00390CF4 C8 04 FF F8 */ lfd f0, -8(r4)
/* 80393D98 00390CF8 C8 24 00 00 */ lfd f1, 0(r4)
/* 80393D9C 00390CFC FC 40 08 2A */ fadd f2, f0, f1
/* 80393DA0 00390D00 FC 00 10 28 */ fsub f0, f0, f2
/* 80393DA4 00390D04 FC 01 00 2A */ fadd f0, f1, f0
/* 80393DA8 00390D08 D8 04 00 00 */ stfd f0, 0(r4)
/* 80393DAC 00390D0C D8 44 FF F8 */ stfd f2, -8(r4)
/* 80393DB0 00390D10 C8 04 FF F0 */ lfd f0, -0x10(r4)
/* 80393DB4 00390D14 C8 24 FF F8 */ lfd f1, -8(r4)
/* 80393DB8 00390D18 FC 40 08 2A */ fadd f2, f0, f1
/* 80393DBC 00390D1C FC 00 10 28 */ fsub f0, f0, f2
/* 80393DC0 00390D20 FC 01 00 2A */ fadd f0, f1, f0
/* 80393DC4 00390D24 D8 04 FF F8 */ stfd f0, -8(r4)
/* 80393DC8 00390D28 D8 44 FF F0 */ stfd f2, -0x10(r4)
/* 80393DCC 00390D2C C8 04 FF E8 */ lfd f0, -0x18(r4)
/* 80393DD0 00390D30 C8 24 FF F0 */ lfd f1, -0x10(r4)
/* 80393DD4 00390D34 FC 40 08 2A */ fadd f2, f0, f1
/* 80393DD8 00390D38 FC 00 10 28 */ fsub f0, f0, f2
/* 80393DDC 00390D3C FC 01 00 2A */ fadd f0, f1, f0
/* 80393DE0 00390D40 D8 04 FF F0 */ stfd f0, -0x10(r4)
/* 80393DE4 00390D44 D8 44 FF E8 */ stfd f2, -0x18(r4)
/* 80393DE8 00390D48 C8 04 FF E0 */ lfd f0, -0x20(r4)
/* 80393DEC 00390D4C C8 24 FF E8 */ lfd f1, -0x18(r4)
/* 80393DF0 00390D50 FC 40 08 2A */ fadd f2, f0, f1
/* 80393DF4 00390D54 FC 00 10 28 */ fsub f0, f0, f2
/* 80393DF8 00390D58 FC 01 00 2A */ fadd f0, f1, f0
/* 80393DFC 00390D5C D8 04 FF E8 */ stfd f0, -0x18(r4)
/* 80393E00 00390D60 DC 44 FF E0 */ stfdu f2, -0x20(r4)
/* 80393E04 00390D64 42 00 FF 90 */ bdnz lbl_80393D94
/* 80393E08 00390D68 70 63 00 03 */ andi. r3, r3, 3
/* 80393E0C 00390D6C 41 82 00 28 */ beq lbl_80393E34
lbl_80393E10:
/* 80393E10 00390D70 7C 69 03 A6 */ mtctr r3
lbl_80393E14:
/* 80393E14 00390D74 C8 04 FF F8 */ lfd f0, -8(r4)
/* 80393E18 00390D78 C8 24 00 00 */ lfd f1, 0(r4)
/* 80393E1C 00390D7C FC 40 08 2A */ fadd f2, f0, f1
/* 80393E20 00390D80 FC 00 10 28 */ fsub f0, f0, f2
/* 80393E24 00390D84 FC 01 00 2A */ fadd f0, f1, f0
/* 80393E28 00390D88 D8 04 00 00 */ stfd f0, 0(r4)
/* 80393E2C 00390D8C DC 44 FF F8 */ stfdu f2, -8(r4)
/* 80393E30 00390D90 42 00 FF E4 */ bdnz lbl_80393E14
lbl_80393E34:
/* 80393E34 00390D94 2C 1F 00 02 */ cmpwi r31, 2
/* 80393E38 00390D98 C8 62 D3 C0 */ lfd f3, lbl_805AF0E0@sda21(r2)
/* 80393E3C 00390D9C 38 7F FF FF */ addi r3, r31, -1
/* 80393E40 00390DA0 41 80 00 74 */ blt lbl_80393EB4
/* 80393E44 00390DA4 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
/* 80393E48 00390DA8 7C 09 03 A6 */ mtctr r0
/* 80393E4C 00390DAC 41 82 00 54 */ beq lbl_80393EA0
lbl_80393E50:
/* 80393E50 00390DB0 C8 05 00 00 */ lfd f0, 0(r5)
/* 80393E54 00390DB4 FC 63 00 2A */ fadd f3, f3, f0
/* 80393E58 00390DB8 C8 05 FF F8 */ lfd f0, -8(r5)
/* 80393E5C 00390DBC FC 63 00 2A */ fadd f3, f3, f0
/* 80393E60 00390DC0 C8 05 FF F0 */ lfd f0, -0x10(r5)
/* 80393E64 00390DC4 FC 63 00 2A */ fadd f3, f3, f0
/* 80393E68 00390DC8 C8 05 FF E8 */ lfd f0, -0x18(r5)
/* 80393E6C 00390DCC FC 63 00 2A */ fadd f3, f3, f0
/* 80393E70 00390DD0 C8 05 FF E0 */ lfd f0, -0x20(r5)
/* 80393E74 00390DD4 FC 63 00 2A */ fadd f3, f3, f0
/* 80393E78 00390DD8 C8 05 FF D8 */ lfd f0, -0x28(r5)
/* 80393E7C 00390DDC FC 63 00 2A */ fadd f3, f3, f0
/* 80393E80 00390DE0 C8 05 FF D0 */ lfd f0, -0x30(r5)
/* 80393E84 00390DE4 FC 63 00 2A */ fadd f3, f3, f0
/* 80393E88 00390DE8 C8 05 FF C8 */ lfd f0, -0x38(r5)
/* 80393E8C 00390DEC 38 A5 FF C0 */ addi r5, r5, -64
/* 80393E90 00390DF0 FC 63 00 2A */ fadd f3, f3, f0
/* 80393E94 00390DF4 42 00 FF BC */ bdnz lbl_80393E50
/* 80393E98 00390DF8 70 63 00 07 */ andi. r3, r3, 7
/* 80393E9C 00390DFC 41 82 00 18 */ beq lbl_80393EB4
lbl_80393EA0:
/* 80393EA0 00390E00 7C 69 03 A6 */ mtctr r3
lbl_80393EA4:
/* 80393EA4 00390E04 C8 05 00 00 */ lfd f0, 0(r5)
/* 80393EA8 00390E08 38 A5 FF F8 */ addi r5, r5, -8
/* 80393EAC 00390E0C FC 63 00 2A */ fadd f3, f3, f0
/* 80393EB0 00390E10 42 00 FF F4 */ bdnz lbl_80393EA4
lbl_80393EB4:
/* 80393EB4 00390E14 2C 19 00 00 */ cmpwi r25, 0
/* 80393EB8 00390E18 40 82 00 1C */ bne lbl_80393ED4
/* 80393EBC 00390E1C C8 21 00 F8 */ lfd f1, 0xf8(r1)
/* 80393EC0 00390E20 C8 01 01 00 */ lfd f0, 0x100(r1)
/* 80393EC4 00390E24 D8 36 00 00 */ stfd f1, 0(r22)
/* 80393EC8 00390E28 D8 16 00 08 */ stfd f0, 8(r22)
/* 80393ECC 00390E2C D8 76 00 10 */ stfd f3, 0x10(r22)
/* 80393ED0 00390E30 48 00 00 24 */ b lbl_80393EF4
lbl_80393ED4:
/* 80393ED4 00390E34 C8 41 00 F8 */ lfd f2, 0xf8(r1)
/* 80393ED8 00390E38 FC 00 18 50 */ fneg f0, f3
/* 80393EDC 00390E3C C8 21 01 00 */ lfd f1, 0x100(r1)
/* 80393EE0 00390E40 FC 40 10 50 */ fneg f2, f2
/* 80393EE4 00390E44 FC 20 08 50 */ fneg f1, f1
/* 80393EE8 00390E48 D8 56 00 00 */ stfd f2, 0(r22)
/* 80393EEC 00390E4C D8 36 00 08 */ stfd f1, 8(r22)
/* 80393EF0 00390E50 D8 16 00 10 */ stfd f0, 0x10(r22)
lbl_80393EF4:
/* 80393EF4 00390E54 57 63 07 7E */ clrlwi r3, r27, 0x1d
/* 80393EF8 00390E58 39 61 02 D0 */ addi r11, r1, 0x2d0
/* 80393EFC 00390E5C 4B FF 5B 2D */ bl _restfpr_25
/* 80393F00 00390E60 BA 01 02 58 */ lmw r16, 0x258(r1)
/* 80393F04 00390E64 80 01 02 D4 */ lwz r0, 0x2d4(r1)
/* 80393F08 00390E68 7C 08 03 A6 */ mtlr r0
/* 80393F0C 00390E6C 38 21 02 D0 */ addi r1, r1, 0x2d0
/* 80393F10 00390E70 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AF0E0
lbl_805AF0E0:
# ROM: 0x3FB980
.4byte 0
.4byte 0
.global lbl_805AF0E8
lbl_805AF0E8:
# ROM: 0x3FB988
.4byte 0x3E700000
.4byte 0
.global lbl_805AF0F0
lbl_805AF0F0:
# ROM: 0x3FB990
.float 15.0
.4byte 0
.global lbl_805AF0F8
lbl_805AF0F8:
# ROM: 0x3FB998
.float 2.5
.4byte 0
.global lbl_805AF100
lbl_805AF100:
# ROM: 0x3FB9A0
.float 1.5
.4byte 0
.global lbl_805AF108
lbl_805AF108:
# ROM: 0x3FB9A8
.4byte 0x3FE00000
.4byte 0
.global lbl_805AF110
lbl_805AF110:
# ROM: 0x3FB9B0
.double 1.0
.global lbl_805AF118
lbl_805AF118:
# ROM: 0x3FB9B8
.double 4.503601774854144E15