// File: /workspace/github_cpp_makefile_star2_O2/mouda[P]LTE_random_access-simulate/specialfunctions.cpp
// Function: alglib_impl::airy(double, double*, double*, double*, double*, alglib_impl::ae_state*)
void airy(double x,
     double* ai,
     double* aip,
     double* bi,
     double* bip,
     ae_state *_state)
{
    double z;
    double zz;
    double t;
    double f;
    double g;
    double uf;
    double ug;
    double k;
    double zeta;
    double theta;
    ae_int_t domflg;
    double c1;
    double c2;
    double sqrt3;
    double sqpii;
    double afn;
    double afd;
    double agn;
    double agd;
    double apfn;
    double apfd;
    double apgn;
    double apgd;
    double an;
    double ad;
    double apn;
    double apd;
    double bn16;
    double bd16;
    double bppn;
    double bppd;

    *ai = 0;
    *aip = 0;
    *bi = 0;
    *bip = 0;

    sqpii = 5.64189583547756286948E-1;
    c1 = 0.35502805388781723926;
    c2 = 0.258819403792806798405;
    sqrt3 = 1.732050807568877293527;
    domflg = 0;
    if( ae_fp_greater(x,25.77) )
    {
        *ai = 0;
        *aip = 0;
        *bi = ae_maxrealnumber;
        *bip = ae_maxrealnumber;
        return;
    }
    if( ae_fp_less(x,-2.09) )
    {
        domflg = 15;
        t = ae_sqrt(-x, _state);
        zeta = -2.0*x*t/3.0;
        t = ae_sqrt(t, _state);
        k = sqpii/t;
        z = 1.0/zeta;
        zz = z*z;
        afn = -1.31696323418331795333E-1;
        afn = afn*zz-6.26456544431912369773E-1;
        afn = afn*zz-6.93158036036933542233E-1;
        afn = afn*zz-2.79779981545119124951E-1;
        afn = afn*zz-4.91900132609500318020E-2;
        afn = afn*zz-4.06265923594885404393E-3;
        afn = afn*zz-1.59276496239262096340E-4;
        afn = afn*zz-2.77649108155232920844E-6;
        afn = afn*zz-1.67787698489114633780E-8;
        afd = 1.00000000000000000000E0;
        afd = afd*zz+1.33560420706553243746E1;
        afd = afd*zz+3.26825032795224613948E1;
        afd = afd*zz+2.67367040941499554804E1;
        afd = afd*zz+9.18707402907259625840E0;
        afd = afd*zz+1.47529146771666414581E0;
        afd = afd*zz+1.15687173795188044134E-1;
        afd = afd*zz+4.40291641615211203805E-3;
        afd = afd*zz+7.54720348287414296618E-5;
        afd = afd*zz+4.51850092970580378464E-7;
        uf = 1.0+zz*afn/afd;
        agn = 1.97339932091685679179E-2;
        agn = agn*zz+3.91103029615688277255E-1;
        agn = agn*zz+1.06579897599595591108E0;
        agn = agn*zz+9.39169229816650230044E-1;
        agn = agn*zz+3.51465656105547619242E-1;
        agn = agn*zz+6.33888919628925490927E-2;
        agn = agn*zz+5.85804113048388458567E-3;
        agn = agn*zz+2.82851600836737019778E-4;
        agn = agn*zz+6.98793669997260967291E-6;
        agn = agn*zz+8.11789239554389293311E-8;
        agn = agn*zz+3.41551784765923618484E-10;
        agd = 1.00000000000000000000E0;
        agd = agd*zz+9.30892908077441974853E0;
        agd = agd*zz+1.98352928718312140417E1;
        agd = agd*zz+1.55646628932864612953E1;
        agd = agd*zz+5.47686069422975497931E0;
        agd = agd*zz+9.54293611618961883998E-1;
        agd = agd*zz+8.64580826352392193095E-2;
        agd = agd*zz+4.12656523824222607191E-3;
        agd = agd*zz+1.01259085116509135510E-4;
        agd = agd*zz+1.17166733214413521882E-6;
        agd = agd*zz+4.91834570062930015649E-9;
        ug = z*agn/agd;
        theta = zeta+0.25*ae_pi;
        f = ae_sin(theta, _state);
        g = ae_cos(theta, _state);
        *ai = k*(f*uf-g*ug);
        *bi = k*(g*uf+f*ug);
        apfn = 1.85365624022535566142E-1;
        apfn = apfn*zz+8.86712188052584095637E-1;
        apfn = apfn*zz+9.87391981747398547272E-1;
        apfn = apfn*zz+4.01241082318003734092E-1;
        apfn = apfn*zz+7.10304926289631174579E-2;
        apfn = apfn*zz+5.90618657995661810071E-3;
        apfn = apfn*zz+2.33051409401776799569E-4;
        apfn = apfn*zz+4.08718778289035454598E-6;
        apfn = apfn*zz+2.48379932900442457853E-8;
        apfd = 1.00000000000000000000E0;
        apfd = apfd*zz+1.47345854687502542552E1;
        apfd = apfd*zz+3.75423933435489594466E1;
        apfd = apfd*zz+3.14657751203046424330E1;
        apfd = apfd*zz+1.09969125207298778536E1;
        apfd = apfd*zz+1.78885054766999417817E0;
        apfd = apfd*zz+1.41733275753662636873E-1;
        apfd = apfd*zz+5.44066067017226003627E-3;
        apfd = apfd*zz+9.39421290654511171663E-5;
        apfd = apfd*zz+5.65978713036027009243E-7;
        uf = 1.0+zz*apfn/apfd;
        apgn = -3.55615429033082288335E-2;
        apgn = apgn*zz-6.37311518129435504426E-1;
        apgn = apgn*zz-1.70856738884312371053E0;
        apgn = apgn*zz-1.50221872117316635393E0;
        apgn = apgn*zz-5.63606665822102676611E-1;
        apgn = apgn*zz-1.02101031120216891789E-1;
        apgn = apgn*zz-9.48396695961445269093E-3;
        apgn = apgn*zz-4.60325307486780994357E-4;
        apgn = apgn*zz-1.14300836484517375919E-5;
        apgn = apgn*zz-1.33415518685547420648E-7;
        apgn = apgn*zz-5.63803833958893494476E-10;
        apgd = 1.00000000000000000000E0;
        apgd = apgd*zz+9.85865801696130355144E0;
        apgd = apgd*zz+2.16401867356585941885E1;
        apgd = apgd*zz+1.73130776389749389525E1;
        apgd = apgd*zz+6.17872175280828766327E0;
        apgd = apgd*zz+1.08848694396321495475E0;
        apgd = apgd*zz+9.95005543440888479402E-2;
        apgd = apgd*zz+4.78468199683886610842E-3;
        apgd = apgd*zz+1.18159633322838625562E-4;
        apgd = apgd*zz+1.37480673554219441465E-6;
        apgd = apgd*zz+5.79912514929147598821E-9;
        ug = z*apgn/apgd;
        k = sqpii*t;
        *aip = -k*(g*uf+f*ug);
        *bip = k*(f*uf-g*ug);
        return;
    }
    if( ae_fp_greater_eq(x,2.09) )
    {
        domflg = 5;
        t = ae_sqrt(x, _state);
        zeta = 2.0*x*t/3.0;
        g = ae_exp(zeta, _state);
        t = ae_sqrt(t, _state);
        k = 2.0*t*g;
        z = 1.0/zeta;
        an = 3.46538101525629032477E-1;
        an = an*z+1.20075952739645805542E1;
        an = an*z+7.62796053615234516538E1;
        an = an*z+1.68089224934630576269E2;
        an = an*z+1.59756391350164413639E2;
        an = an*z+7.05360906840444183113E1;
        an = an*z+1.40264691163389668864E1;
        an = an*z+9.99999999999999995305E-1;
        ad = 5.67594532638770212846E-1;
        ad = ad*z+1.47562562584847203173E1;
        ad = ad*z+8.45138970141474626562E1;
        ad = ad*z+1.77318088145400459522E2;
        ad = ad*z+1.64234692871529701831E2;
        ad = ad*z+7.14778400825575695274E1;
        ad = ad*z+1.40959135607834029598E1;
        ad = ad*z+1.00000000000000000470E0;
        f = an/ad;
        *ai = sqpii*f/k;
        k = -0.5*sqpii*t/g;
        apn = 6.13759184814035759225E-1;
        apn = apn*z+1.47454670787755323881E1;
        apn = apn*z+8.20584123476060982430E1;
        apn = apn*z+1.71184781360976385540E2;
        apn = apn*z+1.59317847137141783523E2;
        apn = apn*z+6.99778599330103016170E1;
        apn = apn*z+1.39470856980481566958E1;
        apn = apn*z+1.00000000000000000550E0;
        apd = 3.34203677749736953049E-1;
        apd = apd*z+1.11810297306158156705E1;
        apd = apd*z+7.11727352147859965283E1;
        apd = apd*z+1.58778084372838313640E2;
        apd = apd*z+1.53206427475809220834E2;
        apd = apd*z+6.86752304592780337944E1;
        apd = apd*z+1.38498634758259442477E1;
        apd = apd*z+9.99999999999999994502E-1;
        f = apn/apd;
        *aip = f*k;
        if( ae_fp_greater(x,8.3203353) )
        {
            bn16 = -2.53240795869364152689E-1;
            bn16 = bn16*z+5.75285167332467384228E-1;
            bn16 = bn16*z-3.29907036873225371650E-1;
            bn16 = bn16*z+6.44404068948199951727E-2;
            bn16 = bn16*z-3.82519546641336734394E-3;
            bd16 = 1.00000000000000000000E0;
            bd16 = bd16*z-7.15685095054035237902E0;
            bd16 = bd16*z+1.06039580715664694291E1;
            bd16 = bd16*z-5.23246636471251500874E0;
            bd16 = bd16*z+9.57395864378383833152E-1;
            bd16 = bd16*z-5.50828147163549611107E-2;
            f = z*bn16/bd16;
            k = sqpii*g;
            *bi = k*(1.0+f)/t;
            bppn = 4.65461162774651610328E-1;
            bppn = bppn*z-1.08992173800493920734E0;
            bppn = bppn*z+6.38800117371827987759E-1;
            bppn = bppn*z-1.26844349553102907034E-1;
            bppn = bppn*z+7.62487844342109852105E-3;
            bppd = 1.00000000000000000000E0;
            bppd = bppd*z-8.70622787633159124240E0;
            bppd = bppd*z+1.38993162704553213172E1;
            bppd = bppd*z-7.14116144616431159572E0;
            bppd = bppd*z+1.34008595960680518666E0;
            bppd = bppd*z-7.84273211323341930448E-2;
            f = z*bppn/bppd;
            *bip = k*t*(1.0+f);
            return;
        }
    }
    f = 1.0;
    g = x;
    t = 1.0;
    uf = 1.0;
    ug = x;
    k = 1.0;
    z = x*x*x;
    while(ae_fp_greater(t,ae_machineepsilon))
    {
        uf = uf*z;
        k = k+1.0;
        uf = uf/k;
        ug = ug*z;
        k = k+1.0;
        ug = ug/k;
        uf = uf/k;
        f = f+uf;
        k = k+1.0;
        ug = ug/k;
        g = g+ug;
        t = ae_fabs(uf/f, _state);
    }
    uf = c1*f;
    ug = c2*g;
    if( domflg%2==0 )
    {
        *ai = uf-ug;
    }
    if( domflg/2%2==0 )
    {
        *bi = sqrt3*(uf+ug);
    }
    k = 4.0;
    uf = x*x/2.0;
    ug = z/3.0;
    f = uf;
    g = 1.0+ug;
    uf = uf/3.0;
    t = 1.0;
    while(ae_fp_greater(t,ae_machineepsilon))
    {
        uf = uf*z;
        ug = ug/k;
        k = k+1.0;
        ug = ug*z;
        uf = uf/k;
        f = f+uf;
        k = k+1.0;
        ug = ug/k;
        uf = uf/k;
        g = g+ug;
        k = k+1.0;
        t = ae_fabs(ug/g, _state);
    }
    uf = c1*f;
    ug = c2*g;
    if( domflg/4%2==0 )
    {
        *aip = uf-ug;
    }
    if( domflg/8%2==0 )
    {
        *bip = sqrt3*(uf+ug);
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %r8, %r13
movq %rcx, %rbx
movq %rdi, %r12
andq $0x0, (%rdi)
movq %rsi, %r14
andq $0x0, (%rsi)
movq %rdx, %r15
andq $0x0, (%rdx)
andq $0x0, (%rcx)
movsd 0x2a3f8(%rip), %xmm1    # 0x30750
movapd %xmm0, (%rsp)
callq 0x24279
testb %al, %al
je 0x6389
andq $0x0, (%r12)
andq $0x0, (%r14)
movabsq $0x7e37e43c8800759c, %rax # imm = 0x7E37E43C8800759C
movq %rax, (%r15)
movsd 0x2a2dc(%rip), %xmm5    # 0x30660
jmp 0x6e79
movsd 0x2a3c7(%rip), %xmm1    # 0x30758
movaps (%rsp), %xmm0
callq 0x24239
testb %al, %al
je 0x68dd
movapd (%rsp), %xmm0
xorpd 0x29e01(%rip), %xmm0    # 0x301b0
movq %r13, %rdi
callq 0x24424
movapd (%rsp), %xmm1
mulsd 0x2a03c(%rip), %xmm1    # 0x30400
mulsd %xmm0, %xmm1
divsd 0x29e10(%rip), %xmm1    # 0x301e0
movapd %xmm1, (%rsp)
movq %r13, %rdi
callq 0x24424
movsd 0x29e13(%rip), %xmm2    # 0x301f8
movapd %xmm2, %xmm1
movapd %xmm2, %xmm5
movapd (%rsp), %xmm9
divsd %xmm9, %xmm1
movapd %xmm1, %xmm4
movapd %xmm1, %xmm3
movsd %xmm1, 0x40(%rsp)
mulsd %xmm1, %xmm4
movsd %xmm4, 0x70(%rsp)
movsd 0x2a498(%rip), %xmm1    # 0x308b0
mulsd %xmm4, %xmm1
addsd 0x2a494(%rip), %xmm1    # 0x308b8
mulsd %xmm4, %xmm1
addsd 0x2a490(%rip), %xmm1    # 0x308c0
mulsd %xmm4, %xmm1
addsd 0x2a48c(%rip), %xmm1    # 0x308c8
mulsd %xmm4, %xmm1
addsd 0x2a488(%rip), %xmm1    # 0x308d0
mulsd %xmm4, %xmm1
addsd 0x2a484(%rip), %xmm1    # 0x308d8
mulsd %xmm4, %xmm1
addsd 0x2a480(%rip), %xmm1    # 0x308e0
mulsd %xmm4, %xmm1
addsd 0x2a47c(%rip), %xmm1    # 0x308e8
mulsd %xmm4, %xmm1
addsd 0x2a478(%rip), %xmm1    # 0x308f0
movapd %xmm1, %xmm6
movsd 0x2a474(%rip), %xmm1    # 0x308f8
addsd %xmm4, %xmm1
mulsd %xmm4, %xmm1
addsd 0x2a46c(%rip), %xmm1    # 0x30900
mulsd %xmm4, %xmm1
addsd 0x2a468(%rip), %xmm1    # 0x30908
mulsd %xmm4, %xmm1
addsd 0x2a464(%rip), %xmm1    # 0x30910
mulsd %xmm4, %xmm1
addsd 0x2a460(%rip), %xmm1    # 0x30918
mulsd %xmm4, %xmm1
addsd 0x2a45c(%rip), %xmm1    # 0x30920
mulsd %xmm4, %xmm1
addsd 0x2a458(%rip), %xmm1    # 0x30928
mulsd %xmm4, %xmm1
addsd 0x2a454(%rip), %xmm1    # 0x30930
mulsd %xmm4, %xmm1
addsd 0x2a450(%rip), %xmm1    # 0x30938
movsd 0x2a450(%rip), %xmm2    # 0x30940
mulsd %xmm4, %xmm2
addsd 0x2a44c(%rip), %xmm2    # 0x30948
mulsd %xmm4, %xmm2
addsd 0x2a448(%rip), %xmm2    # 0x30950
mulsd %xmm4, %xmm2
addsd 0x2a444(%rip), %xmm2    # 0x30958
mulsd %xmm4, %xmm2
addsd 0x2a440(%rip), %xmm2    # 0x30960
mulsd %xmm4, %xmm2
addsd 0x2a43c(%rip), %xmm2    # 0x30968
mulsd %xmm4, %xmm2
addsd 0x2a438(%rip), %xmm2    # 0x30970
mulsd %xmm4, %xmm2
addsd 0x2a434(%rip), %xmm2    # 0x30978
mulsd %xmm4, %xmm2
addsd 0x2a430(%rip), %xmm2    # 0x30980
mulsd %xmm4, %xmm2
addsd 0x2a42c(%rip), %xmm2    # 0x30988
mulsd %xmm4, %xmm2
addsd 0x2a428(%rip), %xmm2    # 0x30990
movapd %xmm2, %xmm8
movsd 0x2a423(%rip), %xmm2    # 0x30998
addsd %xmm4, %xmm2
mulsd %xmm4, %xmm2
addsd 0x2a41b(%rip), %xmm2    # 0x309a0
mulsd %xmm4, %xmm2
addsd 0x2a417(%rip), %xmm2    # 0x309a8
movapd %xmm0, 0x30(%rsp)
mulsd %xmm4, %xmm2
addsd 0x2a40d(%rip), %xmm2    # 0x309b0
movsd 0x2a1bd(%rip), %xmm7    # 0x30768
mulsd %xmm4, %xmm2
addsd 0x2a401(%rip), %xmm2    # 0x309b8
mulsd %xmm4, %xmm6
mulsd %xmm4, %xmm2
addsd 0x2a3f9(%rip), %xmm2    # 0x309c0
divsd %xmm1, %xmm6
mulsd %xmm4, %xmm2
addsd 0x2a3f1(%rip), %xmm2    # 0x309c8
mulsd %xmm4, %xmm2
addsd 0x2a3ed(%rip), %xmm2    # 0x309d0
divsd %xmm0, %xmm7
movsd %xmm7, 0x20(%rsp)
mulsd %xmm4, %xmm2
addsd 0x2a3df(%rip), %xmm2    # 0x309d8
addsd %xmm5, %xmm6
movsd %xmm6, 0x60(%rsp)
mulsd %xmm4, %xmm2
addsd 0x2a3d1(%rip), %xmm2    # 0x309e0
mulsd %xmm3, %xmm8
divsd %xmm2, %xmm8
movsd %xmm8, 0x18(%rsp)
movapd %xmm9, %xmm0
addsd 0x2a3bb(%rip), %xmm0    # 0x309e8
movapd %xmm0, (%rsp)
movq %r13, %rdi
callq 0x2452d
movsd %xmm0, 0x58(%rsp)
movapd (%rsp), %xmm0
movq %r13, %rdi
callq 0x24532
movsd 0x2a39b(%rip), %xmm5    # 0x309f0
movsd 0x70(%rsp), %xmm7
mulsd %xmm7, %xmm5
addsd 0x2a391(%rip), %xmm5    # 0x309f8
mulsd %xmm7, %xmm5
addsd 0x2a38d(%rip), %xmm5    # 0x30a00
mulsd %xmm7, %xmm5
addsd 0x2a389(%rip), %xmm5    # 0x30a08
mulsd %xmm7, %xmm5
addsd 0x2a385(%rip), %xmm5    # 0x30a10
mulsd %xmm7, %xmm5
addsd 0x2a381(%rip), %xmm5    # 0x30a18
mulsd %xmm7, %xmm5
addsd 0x2a37d(%rip), %xmm5    # 0x30a20
mulsd %xmm7, %xmm5
addsd 0x2a379(%rip), %xmm5    # 0x30a28
mulsd %xmm7, %xmm5
addsd 0x2a375(%rip), %xmm5    # 0x30a30
movsd 0x2a375(%rip), %xmm1    # 0x30a38
addsd %xmm7, %xmm1
mulsd %xmm7, %xmm1
addsd 0x2a36d(%rip), %xmm1    # 0x30a40
mulsd %xmm7, %xmm1
addsd 0x2a369(%rip), %xmm1    # 0x30a48
mulsd %xmm7, %xmm1
addsd 0x2a365(%rip), %xmm1    # 0x30a50
mulsd %xmm7, %xmm1
addsd 0x2a361(%rip), %xmm1    # 0x30a58
mulsd %xmm7, %xmm1
addsd 0x2a35d(%rip), %xmm1    # 0x30a60
mulsd %xmm7, %xmm1
addsd 0x2a359(%rip), %xmm1    # 0x30a68
mulsd %xmm7, %xmm1
addsd 0x2a355(%rip), %xmm1    # 0x30a70
movsd 0x58(%rsp), %xmm6
movapd %xmm6, %xmm3
mulsd %xmm7, %xmm1
addsd 0x2a347(%rip), %xmm1    # 0x30a78
movsd 0x2a347(%rip), %xmm2    # 0x30a80
mulsd %xmm7, %xmm2
addsd 0x2a343(%rip), %xmm2    # 0x30a88
movsd 0x18(%rsp), %xmm4
mulsd %xmm4, %xmm3
mulsd %xmm7, %xmm2
addsd 0x2a335(%rip), %xmm2    # 0x30a90
mulsd %xmm0, %xmm4
movapd %xmm4, %xmm9
mulsd %xmm7, %xmm2
addsd 0x2a328(%rip), %xmm2    # 0x30a98
movapd %xmm6, %xmm4
mulsd %xmm7, %xmm2
addsd 0x2a320(%rip), %xmm2    # 0x30aa0
movsd 0x60(%rsp), %xmm8
mulsd %xmm8, %xmm4
mulsd %xmm7, %xmm2
addsd 0x2a310(%rip), %xmm2    # 0x30aa8
subsd %xmm9, %xmm4
mulsd %xmm7, %xmm2
addsd 0x2a307(%rip), %xmm2    # 0x30ab0
movsd 0x20(%rsp), %xmm9
mulsd %xmm9, %xmm4
mulsd %xmm7, %xmm2
addsd 0x2a2f7(%rip), %xmm2    # 0x30ab8
movsd %xmm4, (%r12)
mulsd %xmm7, %xmm2
addsd 0x2a2ed(%rip), %xmm2    # 0x30ac0
mulsd %xmm0, %xmm8
mulsd %xmm7, %xmm2
addsd 0x2a2e4(%rip), %xmm2    # 0x30ac8
mulsd %xmm7, %xmm2
addsd 0x2a2e0(%rip), %xmm2    # 0x30ad0
movsd 0x2a2e0(%rip), %xmm4    # 0x30ad8
addsd %xmm7, %xmm4
mulsd %xmm7, %xmm4
addsd 0x2a2d8(%rip), %xmm4    # 0x30ae0
addsd %xmm3, %xmm8
mulsd %xmm7, %xmm4
addsd 0x2a2cf(%rip), %xmm4    # 0x30ae8
mulsd %xmm9, %xmm8
mulsd %xmm7, %xmm4
addsd 0x2a2c6(%rip), %xmm4    # 0x30af0
movsd %xmm8, (%r15)
mulsd %xmm7, %xmm4
addsd 0x2a2bd(%rip), %xmm4    # 0x30af8
mulsd %xmm7, %xmm5
mulsd %xmm7, %xmm4
addsd 0x2a2b5(%rip), %xmm4    # 0x30b00
divsd %xmm1, %xmm5
mulsd %xmm7, %xmm4
addsd 0x2a2ad(%rip), %xmm4    # 0x30b08
addsd 0x29995(%rip), %xmm5    # 0x301f8
mulsd %xmm7, %xmm4
addsd 0x2a2a1(%rip), %xmm4    # 0x30b10
mulsd %xmm7, %xmm4
addsd 0x2a29d(%rip), %xmm4    # 0x30b18
mulsd %xmm7, %xmm4
addsd 0x2a299(%rip), %xmm4    # 0x30b20
mulsd 0x40(%rsp), %xmm2
divsd %xmm4, %xmm2
movapd 0x30(%rsp), %xmm1
mulsd 0x29ec9(%rip), %xmm1    # 0x30768
movapd 0x29909(%rip), %xmm3    # 0x301b0
xorpd %xmm1, %xmm3
movapd %xmm1, %xmm4
movapd %xmm6, %xmm1
mulsd %xmm2, %xmm1
mulsd %xmm0, %xmm2
mulsd %xmm5, %xmm0
addsd %xmm1, %xmm0
mulsd %xmm3, %xmm0
movsd %xmm0, (%r14)
mulsd %xmm6, %xmm5
subsd %xmm2, %xmm5
mulsd %xmm4, %xmm5
jmp 0x6e79
movsd 0x29e7b(%rip), %xmm1    # 0x30760
movaps (%rsp), %xmm0
callq 0x24295
movl %eax, %ebp
testb %al, %al
je 0x6c2a
movapd (%rsp), %xmm0
movq %r13, %rdi
callq 0x24424
movapd %xmm0, %xmm1
movsd %xmm0, 0x20(%rsp)
movapd (%rsp), %xmm0
addsd %xmm0, %xmm0
mulsd %xmm1, %xmm0
divsd 0x298bc(%rip), %xmm0    # 0x301e0
movapd %xmm0, 0x40(%rsp)
movq %r13, %rdi
callq 0x24569
movapd %xmm0, 0x30(%rsp)
movsd 0x20(%rsp), %xmm0
movq %r13, %rdi
callq 0x24424
movsd 0x298aa(%rip), %xmm4    # 0x301f8
movapd %xmm4, %xmm5
divsd 0x40(%rsp), %xmm5
movapd %xmm5, %xmm3
unpcklpd %xmm5, %xmm3            # xmm3 = xmm3[0],xmm5[0]
movapd 0x2b3d8(%rip), %xmm1    # 0x31d40
mulpd %xmm3, %xmm1
addpd 0x2b3dc(%rip), %xmm1    # 0x31d50
mulpd %xmm3, %xmm1
addpd 0x2b3e0(%rip), %xmm1    # 0x31d60
mulpd %xmm3, %xmm1
addpd 0x2b3e4(%rip), %xmm1    # 0x31d70
mulpd %xmm3, %xmm1
addpd 0x2b3e8(%rip), %xmm1    # 0x31d80
mulpd %xmm3, %xmm1
addpd 0x2b3ec(%rip), %xmm1    # 0x31d90
movapd %xmm0, %xmm2
mulpd %xmm3, %xmm1
addpd 0x2b3ec(%rip), %xmm1    # 0x31da0
mulpd %xmm3, %xmm1
addpd 0x2b3f0(%rip), %xmm1    # 0x31db0
movapd %xmm1, %xmm3
unpckhpd %xmm1, %xmm3            # xmm3 = xmm3[1],xmm1[1]
divsd %xmm3, %xmm1
mulsd 0x29d94(%rip), %xmm1    # 0x30768
movsd 0x29d9c(%rip), %xmm3    # 0x30778
mulsd %xmm5, %xmm3
addsd 0x29d98(%rip), %xmm3    # 0x30780
addsd %xmm0, %xmm2
mulsd %xmm5, %xmm3
addsd 0x29d90(%rip), %xmm3    # 0x30788
movapd 0x30(%rsp), %xmm6
mulsd %xmm6, %xmm2
mulsd %xmm5, %xmm3
addsd 0x29d82(%rip), %xmm3    # 0x30790
divsd %xmm2, %xmm1
mulsd %xmm5, %xmm3
addsd 0x29d7a(%rip), %xmm3    # 0x30798
movsd %xmm1, (%r12)
mulsd %xmm5, %xmm3
addsd 0x29d70(%rip), %xmm3    # 0x307a0
movsd 0x29d38(%rip), %xmm1    # 0x30770
mulsd %xmm5, %xmm3
addsd 0x29d64(%rip), %xmm3    # 0x307a8
movsd 0x29d64(%rip), %xmm2    # 0x307b0
mulsd %xmm5, %xmm2
addsd 0x29d60(%rip), %xmm2    # 0x307b8
movsd %xmm0, 0x20(%rsp)
mulsd %xmm0, %xmm1
mulsd %xmm5, %xmm2
addsd 0x29d52(%rip), %xmm2    # 0x307c0
mulsd %xmm5, %xmm3
mulsd %xmm5, %xmm2
addsd 0x29d4a(%rip), %xmm2    # 0x307c8
addsd %xmm4, %xmm3
mulsd %xmm5, %xmm2
addsd 0x29d42(%rip), %xmm2    # 0x307d0
unpcklpd %xmm3, %xmm1            # xmm1 = xmm1[0],xmm3[0]
mulsd %xmm5, %xmm2
addsd 0x29d3a(%rip), %xmm2    # 0x307d8
mulsd %xmm5, %xmm2
addsd 0x29d36(%rip), %xmm2    # 0x307e0
movapd %xmm5, 0x40(%rsp)
mulsd %xmm5, %xmm2
addsd %xmm4, %xmm2
movapd %xmm6, %xmm0
unpcklpd %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0]
divpd %xmm0, %xmm1
movapd %xmm1, %xmm0
unpckhpd %xmm1, %xmm0            # xmm0 = xmm0[1],xmm1[1]
mulsd %xmm1, %xmm0
movsd %xmm0, (%r14)
movsd 0x29d0b(%rip), %xmm1    # 0x307e8
movaps (%rsp), %xmm0
callq 0x24279
testb %al, %al
je 0x6c2a
movsd 0x29d1a(%rip), %xmm0    # 0x30810
movapd 0x40(%rsp), %xmm4
mulsd %xmm4, %xmm0
addsd 0x29d10(%rip), %xmm0    # 0x30818
mulsd %xmm4, %xmm0
addsd 0x29d0c(%rip), %xmm0    # 0x30820
mulsd %xmm4, %xmm0
addsd 0x29d08(%rip), %xmm0    # 0x30828
mulsd %xmm4, %xmm0
addsd 0x29d04(%rip), %xmm0    # 0x30830
movsd 0x29d04(%rip), %xmm1    # 0x30838
addsd %xmm4, %xmm1
mulsd %xmm4, %xmm1
addsd 0x29cfc(%rip), %xmm1    # 0x30840
mulsd %xmm4, %xmm1
addsd 0x29cf8(%rip), %xmm1    # 0x30848
mulsd %xmm4, %xmm1
addsd 0x29cf4(%rip), %xmm1    # 0x30850
mulsd %xmm4, %xmm1
addsd 0x29cf0(%rip), %xmm1    # 0x30858
mulsd %xmm4, %xmm0
divsd %xmm1, %xmm0
movapd 0x30(%rsp), %xmm2
mulsd 0x29bea(%rip), %xmm2    # 0x30768
movsd 0x29cda(%rip), %xmm5    # 0x30860
mulsd %xmm4, %xmm5
addsd 0x29cd6(%rip), %xmm5    # 0x30868
movsd 0x2965e(%rip), %xmm3    # 0x301f8
addsd %xmm3, %xmm0
mulsd %xmm4, %xmm5
addsd 0x29cc6(%rip), %xmm5    # 0x30870
mulsd %xmm2, %xmm0
mulsd %xmm4, %xmm5
addsd 0x29cbe(%rip), %xmm5    # 0x30878
mulsd %xmm4, %xmm5
addsd 0x29cba(%rip), %xmm5    # 0x30880
movsd 0x29cba(%rip), %xmm1    # 0x30888
addsd %xmm4, %xmm1
mulsd %xmm4, %xmm1
addsd 0x29cb2(%rip), %xmm1    # 0x30890
movsd 0x20(%rsp), %xmm6
divsd %xmm6, %xmm0
mulsd %xmm4, %xmm1
addsd 0x29ca4(%rip), %xmm1    # 0x30898
movsd %xmm0, (%r15)
mulsd %xmm4, %xmm1
addsd 0x29c9b(%rip), %xmm1    # 0x308a0
mulsd %xmm4, %xmm1
addsd 0x29c97(%rip), %xmm1    # 0x308a8
mulsd %xmm4, %xmm5
divsd %xmm1, %xmm5
mulsd %xmm6, %xmm2
addsd %xmm3, %xmm5
mulsd %xmm2, %xmm5
jmp 0x6e79
movapd (%rsp), %xmm0
movapd %xmm0, %xmm1
mulsd %xmm0, %xmm1
movapd %xmm1, 0x30(%rsp)
mulsd %xmm0, %xmm1
movapd %xmm1, 0x40(%rsp)
movsd 0x295a9(%rip), %xmm1    # 0x301f8
movsd %xmm1, 0x18(%rsp)
movsd %xmm1, 0x58(%rsp)
movsd %xmm0, 0x20(%rsp)
movsd %xmm1, 0x60(%rsp)
movapd %xmm1, %xmm0
movsd 0x29b7d(%rip), %xmm1    # 0x307f0
callq 0x24279
testb %al, %al
je 0x6d09
movapd 0x40(%rsp), %xmm1
movsd 0x58(%rsp), %xmm5
mulsd %xmm1, %xmm5
movsd 0x29560(%rip), %xmm3    # 0x301f8
movsd 0x18(%rsp), %xmm4
addsd %xmm3, %xmm4
divsd %xmm4, %xmm5
movapd (%rsp), %xmm0
mulsd %xmm1, %xmm0
addsd %xmm3, %xmm4
divsd %xmm4, %xmm0
divsd %xmm4, %xmm5
movsd 0x60(%rsp), %xmm2
addsd %xmm5, %xmm2
addsd %xmm3, %xmm4
movsd %xmm4, 0x18(%rsp)
divsd %xmm4, %xmm0
movapd %xmm0, (%rsp)
movsd 0x20(%rsp), %xmm1
addsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
movsd %xmm5, 0x58(%rsp)
movapd %xmm5, %xmm0
movsd %xmm2, 0x60(%rsp)
divsd %xmm2, %xmm0
movq %r13, %rdi
callq 0x2440c
jmp 0x6c6b
movsd 0x60(%rsp), %xmm2
mulsd 0x29ae1(%rip), %xmm2    # 0x307f8
movsd 0x20(%rsp), %xmm1
mulsd 0x29adb(%rip), %xmm1    # 0x30800
testb %bpl, %bpl
jne 0x6d38
movapd %xmm2, %xmm0
subsd %xmm1, %xmm0
movsd %xmm0, (%r12)
addsd %xmm2, %xmm1
mulsd 0x29ac4(%rip), %xmm1    # 0x30808
movapd 0x30(%rsp), %xmm2
mulsd 0x29736(%rip), %xmm2    # 0x30488
movsd %xmm1, (%r15)
movsd 0x29481(%rip), %xmm0    # 0x301e0
movapd 0x40(%rsp), %xmm1
divsd %xmm0, %xmm1
movsd 0x29487(%rip), %xmm3    # 0x301f8
movapd %xmm1, 0x20(%rsp)
addsd %xmm3, %xmm1
movapd %xmm1, (%rsp)
movapd %xmm2, 0x30(%rsp)
divsd %xmm0, %xmm2
movapd %xmm2, 0x60(%rsp)
movsd 0x29450(%rip), %xmm0    # 0x301e8
movsd %xmm0, 0x18(%rsp)
movapd %xmm3, %xmm0
movsd 0x29a46(%rip), %xmm1    # 0x307f0
callq 0x24279
testb %al, %al
je 0x6e40
movapd 0x40(%rsp), %xmm0
movapd 0x60(%rsp), %xmm4
mulsd %xmm0, %xmm4
movapd 0x20(%rsp), %xmm2
movsd 0x18(%rsp), %xmm5
divsd %xmm5, %xmm2
movsd 0x29419(%rip), %xmm3    # 0x301f8
addsd %xmm3, %xmm5
mulsd %xmm0, %xmm2
divsd %xmm5, %xmm4
movapd 0x30(%rsp), %xmm0
addsd %xmm4, %xmm0
movapd %xmm0, 0x30(%rsp)
addsd %xmm3, %xmm5
divsd %xmm5, %xmm2
divsd %xmm5, %xmm4
movapd %xmm4, 0x60(%rsp)
movapd (%rsp), %xmm1
addsd %xmm2, %xmm1
addsd %xmm3, %xmm5
movsd %xmm5, 0x18(%rsp)
movapd %xmm2, 0x20(%rsp)
movapd %xmm2, %xmm0
movapd %xmm1, (%rsp)
divsd %xmm1, %xmm0
movq %r13, %rdi
callq 0x2440c
jmp 0x6da2
movapd 0x30(%rsp), %xmm1
mulsd 0x299aa(%rip), %xmm1    # 0x307f8
movapd (%rsp), %xmm5
mulsd 0x299a5(%rip), %xmm5    # 0x30800
testb %bpl, %bpl
jne 0x6e6d
movapd %xmm1, %xmm0
subsd %xmm5, %xmm0
movsd %xmm0, (%r14)
addsd %xmm1, %xmm5
mulsd 0x2998f(%rip), %xmm5    # 0x30808
movsd %xmm5, (%rbx)
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq