// File: mouda[P]LTE_random_access-simulate/specialfunctions.cpp
// Function: alglib_impl::hyperbolicsinecosineintegrals(double, double*, double*, alglib_impl::ae_state*)
void hyperbolicsinecosineintegrals(double x,
     double* shi,
     double* chi,
     ae_state *_state)
{
    double k;
    double z;
    double c;
    double s;
    double a;
    ae_int_t sg;
    double b0;
    double b1;
    double b2;

    *shi = 0;
    *chi = 0;

    if( ae_fp_less(x,0) )
    {
        sg = -1;
        x = -x;
    }
    else
    {
        sg = 0;
    }
    if( ae_fp_eq(x,0) )
    {
        *shi = 0;
        *chi = -ae_maxrealnumber;
        return;
    }
    if( ae_fp_less(x,8.0) )
    {
        z = x*x;
        a = 1.0;
        s = 1.0;
        c = 0.0;
        k = 2.0;
        do
        {
            a = a*z/k;
            c = c+a/k;
            k = k+1.0;
            a = a/k;
            s = s+a/k;
            k = k+1.0;
        }
        while(ae_fp_greater_eq(ae_fabs(a/s, _state),ae_machineepsilon));
        s = s*x;
    }
    else
    {
        if( ae_fp_less(x,18.0) )
        {
            a = (576.0/x-52.0)/10.0;
            k = ae_exp(x, _state)/x;
            b0 = 1.83889230173399459482E-17;
            b1 = 0.0;
            trigintegrals_chebiterationshichi(a, -9.55485532279655569575E-17, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 2.04326105980879882648E-16, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.09896949074905343022E-15, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.31313534344092599234E-14, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 5.93976226264314278932E-14, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -3.47197010497749154755E-14, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.40059764613117131000E-12, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 9.49044626224223543299E-12, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.61596181145435454033E-11, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.77899784436430310321E-10, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.35455469767246947469E-9, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.03257121792819495123E-9, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -3.56699611114982536845E-8, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.44818877384267342057E-7, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 7.82018215184051295296E-7, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -5.39919118403805073710E-6, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -3.12458202168959833422E-5, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 8.90136741950727517826E-5, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 2.02558474743846862168E-3, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 2.96064440855633256972E-2, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.11847751047257036625E0, &b0, &b1, &b2, _state);
            s = k*0.5*(b0-b2);
            b0 = -8.12435385225864036372E-18;
            b1 = 0.0;
            trigintegrals_chebiterationshichi(a, 2.17586413290339214377E-17, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 5.22624394924072204667E-17, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -9.48812110591690559363E-16, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 5.35546311647465209166E-15, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.21009970113732918701E-14, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -6.00865178553447437951E-14, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 7.16339649156028587775E-13, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -2.93496072607599856104E-12, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.40359438136491256904E-12, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 8.76302288609054966081E-11, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -4.40092476213282340617E-10, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -1.87992075640569295479E-10, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.31458150989474594064E-8, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -4.75513930924765465590E-8, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -2.21775018801848880741E-7, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.94635531373272490962E-6, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 4.33505889257316408893E-6, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -6.13387001076494349496E-5, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, -3.13085477492997465138E-4, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 4.97164789823116062801E-4, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 2.64347496031374526641E-2, &b0, &b1, &b2, _state);
            trigintegrals_chebiterationshichi(a, 1.11446150876699213025E0, &b0, &b1, &b2, _state);
            c = k*0.5*(b0-b2);
        }
        else
        {
            if( ae_fp_less_eq(x,88.0) )
            {
                a = (6336.0/x-212.0)/70.0;
                k = ae_exp(x, _state)/x;
                b0 = -1.05311574154850938805E-17;
                b1 = 0.0;
                trigintegrals_chebiterationshichi(a, 2.62446095596355225821E-17, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 8.82090135625368160657E-17, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -3.38459811878103047136E-16, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -8.30608026366935789136E-16, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 3.93397875437050071776E-15, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.01765565969729044505E-14, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -4.21128170307640802703E-14, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -1.60818204519802480035E-13, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 3.34714954175994481761E-13, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 2.72600352129153073807E-12, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.66894954752839083608E-12, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -3.49278141024730899554E-11, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -1.58580661666482709598E-10, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -1.79289437183355633342E-10, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.76281629144264523277E-9, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.69050228879421288846E-8, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.25391771228487041649E-7, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.16229947068677338732E-6, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.61038260117376323993E-5, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 3.49810375601053973070E-4, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.28478065259647610779E-2, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.03665722588798326712E0, &b0, &b1, &b2, _state);
                s = k*0.5*(b0-b2);
                b0 = 8.06913408255155572081E-18;
                b1 = 0.0;
                trigintegrals_chebiterationshichi(a, -2.08074168180148170312E-17, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -5.98111329658272336816E-17, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 2.68533951085945765591E-16, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 4.52313941698904694774E-16, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -3.10734917335299464535E-15, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -4.42823207332531972288E-15, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 3.49639695410806959872E-14, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 6.63406731718911586609E-14, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -3.71902448093119218395E-13, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -1.27135418132338309016E-12, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 2.74851141935315395333E-12, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 2.33781843985453438400E-11, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 2.71436006377612442764E-11, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -2.56600180000355990529E-10, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -1.61021375163803438552E-9, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -4.72543064876271773512E-9, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, -3.00095178028681682282E-9, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 7.79387474390914922337E-8, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.06942765566401507066E-6, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.59503164802313196374E-5, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 3.49592575153777996871E-4, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.28475387530065247392E-2, &b0, &b1, &b2, _state);
                trigintegrals_chebiterationshichi(a, 1.03665693917934275131E0, &b0, &b1, &b2, _state);
                c = k*0.5*(b0-b2);
            }
            else
            {
                if( sg!=0 )
                {
                    *shi = -ae_maxrealnumber;
                }
                else
                {
                    *shi = ae_maxrealnumber;
                }
                *chi = ae_maxrealnumber;
                return;
            }
        }
    }
    if( sg!=0 )
    {
        s = -s;
    }
    *shi = s;
    *chi = 0.57721566490153286061+ae_log(x, _state)+c;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movsd %xmm0, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movsd -0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
callq 0x3c440
testb $0x1, %al
jne 0x1b042
jmp 0x1b06d
movq $-0x1, -0x50(%rbp)
movsd -0x8(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x8(%rbp)
jmp 0x1b075
movq $0x0, -0x50(%rbp)
movsd -0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
callq 0x3c3d0
testb $0x1, %al
jne 0x1b088
jmp 0x1b0a8
movq -0x10(%rbp), %rax
xorps %xmm0, %xmm0
movsd %xmm0, (%rax)
movq -0x18(%rbp), %rax
movsd 0x3a711(%rip), %xmm0    # 0x557b0
movsd %xmm0, (%rax)
jmp 0x1bf97
movsd -0x8(%rbp), %xmm0
movsd 0x3a56b(%rip), %xmm1    # 0x55620
callq 0x3c440
testb $0x1, %al
jne 0x1b0c3
jmp 0x1b1b4
movsd -0x8(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x30(%rbp)
movsd 0x39f2e(%rip), %xmm0    # 0x55008
movsd %xmm0, -0x48(%rbp)
movsd 0x39f21(%rip), %xmm0    # 0x55008
movsd %xmm0, -0x40(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x3a2cc(%rip), %xmm0    # 0x553c8
movsd %xmm0, -0x28(%rbp)
movsd -0x48(%rbp), %xmm0
mulsd -0x30(%rbp), %xmm0
divsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x38(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
divsd -0x28(%rbp), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
movsd 0x39ed3(%rip), %xmm0    # 0x55008
addsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x48(%rbp), %xmm0
divsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x40(%rbp), %xmm0
movsd -0x48(%rbp), %xmm1
divsd -0x28(%rbp), %xmm1
addsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x39e9a(%rip), %xmm0    # 0x55008
addsd -0x28(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd -0x48(%rbp), %xmm0
divsd -0x40(%rbp), %xmm0
movq -0x20(%rbp), %rdi
callq 0x3c820
movsd 0x3a785(%rip), %xmm1    # 0x55918
callq 0x3c500
testb $0x1, %al
jne 0x1b101
movsd -0x40(%rbp), %xmm0
mulsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x40(%rbp)
jmp 0x1bf38
movsd -0x8(%rbp), %xmm0
movsd 0x3be2f(%rip), %xmm1    # 0x56ff0
callq 0x3c440
testb $0x1, %al
jne 0x1b1cf
jmp 0x1b836
movsd 0x3c129(%rip), %xmm0    # 0x57300
divsd -0x8(%rbp), %xmm0
movsd 0x3c114(%rip), %xmm1    # 0x572f8
subsd %xmm1, %xmm0
movsd 0x3a338(%rip), %xmm1    # 0x55528
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x8(%rbp), %xmm0
movq -0x20(%rbp), %rdi
callq 0x3cdd0
divsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0x3c0d7(%rip), %xmm0    # 0x572f0
movsd %xmm0, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3c0b1(%rip), %xmm1    # 0x572e8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3c087(%rip), %xmm1    # 0x572e0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3c05d(%rip), %xmm1    # 0x572d8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3c033(%rip), %xmm1    # 0x572d0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3c009(%rip), %xmm1    # 0x572c8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bfdf(%rip), %xmm1    # 0x572c0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bfb5(%rip), %xmm1    # 0x572b8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bf8b(%rip), %xmm1    # 0x572b0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bf61(%rip), %xmm1    # 0x572a8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bf37(%rip), %xmm1    # 0x572a0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bf0d(%rip), %xmm1    # 0x57298
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bee3(%rip), %xmm1    # 0x57290
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3beb9(%rip), %xmm1    # 0x57288
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3be8f(%rip), %xmm1    # 0x57280
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3be65(%rip), %xmm1    # 0x57278
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3be3b(%rip), %xmm1    # 0x57270
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3be11(%rip), %xmm1    # 0x57268
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bde7(%rip), %xmm1    # 0x57260
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bdbd(%rip), %xmm1    # 0x57258
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bd93(%rip), %xmm1    # 0x57250
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bd69(%rip), %xmm1    # 0x57248
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd 0x39f58(%rip), %xmm0    # 0x55450
mulsd -0x28(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
subsd -0x68(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x3bd28(%rip), %xmm0    # 0x57240
movsd %xmm0, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bd02(%rip), %xmm1    # 0x57238
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bcd8(%rip), %xmm1    # 0x57230
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bcae(%rip), %xmm1    # 0x57228
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bc84(%rip), %xmm1    # 0x57220
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bc5a(%rip), %xmm1    # 0x57218
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bc30(%rip), %xmm1    # 0x57210
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bc06(%rip), %xmm1    # 0x57208
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bbdc(%rip), %xmm1    # 0x57200
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bbb2(%rip), %xmm1    # 0x571f8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bb88(%rip), %xmm1    # 0x571f0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bb5e(%rip), %xmm1    # 0x571e8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bb34(%rip), %xmm1    # 0x571e0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bb0a(%rip), %xmm1    # 0x571d8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bae0(%rip), %xmm1    # 0x571d0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3bab6(%rip), %xmm1    # 0x571c8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3ba8c(%rip), %xmm1    # 0x571c0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3ba62(%rip), %xmm1    # 0x571b8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3ba38(%rip), %xmm1    # 0x571b0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3ba0e(%rip), %xmm1    # 0x571a8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b9e4(%rip), %xmm1    # 0x571a0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b9ba(%rip), %xmm1    # 0x57198
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b990(%rip), %xmm1    # 0x57190
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd 0x39c37(%rip), %xmm0    # 0x55450
mulsd -0x28(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
subsd -0x68(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
jmp 0x1bf36
movsd -0x8(%rbp), %xmm0
movsd 0x3b7b5(%rip), %xmm1    # 0x56ff8
callq 0x3c480
testb $0x1, %al
jne 0x1b851
jmp 0x1bef9
movsd 0x3b92f(%rip), %xmm0    # 0x57188
divsd -0x8(%rbp), %xmm0
movsd 0x3b91a(%rip), %xmm1    # 0x57180
subsd %xmm1, %xmm0
movsd 0x3b906(%rip), %xmm1    # 0x57178
divsd %xmm1, %xmm0
movsd %xmm0, -0x48(%rbp)
movsd -0x8(%rbp), %xmm0
movq -0x20(%rbp), %rdi
callq 0x3cdd0
divsd -0x8(%rbp), %xmm0
movsd %xmm0, -0x28(%rbp)
movsd 0x3b8d5(%rip), %xmm0    # 0x57170
movsd %xmm0, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b8af(%rip), %xmm1    # 0x57168
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b885(%rip), %xmm1    # 0x57160
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b85b(%rip), %xmm1    # 0x57158
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b831(%rip), %xmm1    # 0x57150
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b807(%rip), %xmm1    # 0x57148
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b7dd(%rip), %xmm1    # 0x57140
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b7b3(%rip), %xmm1    # 0x57138
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b789(%rip), %xmm1    # 0x57130
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b75f(%rip), %xmm1    # 0x57128
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b735(%rip), %xmm1    # 0x57120
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b70b(%rip), %xmm1    # 0x57118
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b6e1(%rip), %xmm1    # 0x57110
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b6b7(%rip), %xmm1    # 0x57108
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b68d(%rip), %xmm1    # 0x57100
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b663(%rip), %xmm1    # 0x570f8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b639(%rip), %xmm1    # 0x570f0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b60f(%rip), %xmm1    # 0x570e8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b5e5(%rip), %xmm1    # 0x570e0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b5bb(%rip), %xmm1    # 0x570d8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b591(%rip), %xmm1    # 0x570d0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b567(%rip), %xmm1    # 0x570c8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b53d(%rip), %xmm1    # 0x570c0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd 0x398b4(%rip), %xmm0    # 0x55450
mulsd -0x28(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
subsd -0x68(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd 0x3b4fc(%rip), %xmm0    # 0x570b8
movsd %xmm0, -0x58(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x60(%rbp)
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b4d6(%rip), %xmm1    # 0x570b0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b4ac(%rip), %xmm1    # 0x570a8
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b482(%rip), %xmm1    # 0x570a0
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b458(%rip), %xmm1    # 0x57098
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b42e(%rip), %xmm1    # 0x57090
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b404(%rip), %xmm1    # 0x57088
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b3da(%rip), %xmm1    # 0x57080
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b3b0(%rip), %xmm1    # 0x57078
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b386(%rip), %xmm1    # 0x57070
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b35c(%rip), %xmm1    # 0x57068
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b332(%rip), %xmm1    # 0x57060
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b308(%rip), %xmm1    # 0x57058
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b2de(%rip), %xmm1    # 0x57050
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b2b4(%rip), %xmm1    # 0x57048
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b28a(%rip), %xmm1    # 0x57040
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b260(%rip), %xmm1    # 0x57038
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b236(%rip), %xmm1    # 0x57030
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b20c(%rip), %xmm1    # 0x57028
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b1e2(%rip), %xmm1    # 0x57020
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b1b8(%rip), %xmm1    # 0x57018
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b18e(%rip), %xmm1    # 0x57010
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b164(%rip), %xmm1    # 0x57008
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd -0x48(%rbp), %xmm0
movq -0x20(%rbp), %rcx
movsd 0x3b13a(%rip), %xmm1    # 0x57000
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
leaq -0x68(%rbp), %rdx
callq 0x1d710
movsd 0x39571(%rip), %xmm0    # 0x55450
mulsd -0x28(%rbp), %xmm0
movsd -0x58(%rbp), %xmm1
subsd -0x68(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd %xmm0, -0x38(%rbp)
jmp 0x1bf34
cmpq $0x0, -0x50(%rbp)
je 0x1bf12
movq -0x10(%rbp), %rax
movsd 0x398a4(%rip), %xmm0    # 0x557b0
movsd %xmm0, (%rax)
jmp 0x1bf22
movq -0x10(%rbp), %rax
movsd 0x3988a(%rip), %xmm0    # 0x557a8
movsd %xmm0, (%rax)
movq -0x18(%rbp), %rax
movsd 0x3987a(%rip), %xmm0    # 0x557a8
movsd %xmm0, (%rax)
jmp 0x1bf97
jmp 0x1bf36
jmp 0x1bf38
cmpq $0x0, -0x50(%rbp)
je 0x1bf60
movsd -0x40(%rbp), %xmm0
movq %xmm0, %rax
movabsq $-0x8000000000000000, %rcx # imm = 0x8000000000000000
xorq %rcx, %rax
movq %rax, %xmm0
movsd %xmm0, -0x40(%rbp)
movsd -0x40(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, (%rax)
movsd -0x8(%rbp), %xmm0
movq -0x20(%rbp), %rdi
callq 0x3cd70
movaps %xmm0, %xmm1
movsd 0x394ba(%rip), %xmm0    # 0x55440
addsd %xmm1, %xmm0
addsd -0x38(%rbp), %xmm0
movq -0x18(%rbp), %rax
movsd %xmm0, (%rax)
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)