// File: /workspace/github_cpp_makefile_star2_O2/openflightmaps[P]ofm2xplane/main.cpp
// Function: complete_Ahp(rapidxml::xml_node<char> const*, std::basic_ofstream<char, std::char_traits<char>>&)
xml_node<> * complete_Ahp(const xml_node<> *Ahp, ofstream &out)
{
    xml_node<> * current;
    xml_node<> * Rwy, *Rdn1, *Rdn2;
    xml_node<> * Twy, *Tly, *Apn, *misc;
    xml_node<> * to_return;
    string s;
    
    int heli_count=0;
    double hlen, hwid, hhdg;
    double ahphdg=-1;

    int ID=my_stoi(string(Ahp->first_node("AhpUid")->first_attribute("mid")->value()));
    out << endl << "1 ";

    if(Ahp->first_node("valElev")!=NULL && Ahp->first_node("uomElev")!=NULL)
    {
        string buf(Ahp->first_node("uomElev")->value());
        if(buf.compare("FT")==0)
            out << Ahp->first_node("valElev")->value() << " ";
        else
        {
            if(buf.compare("M")==0)
            {
                string buf2(Ahp->first_node("valElev")->value());
                out << int(my_stof(buf2)*3.28083) << " ";
            }else
            {
                cout << "Attention: unknown unit uomElev: " << buf << endl;
                string buf2(Ahp->first_node("valElev")->value());
                out << int(my_stof(buf2)) << " ";
            }
        }
    }else
    {
        cout << "Warning: default field elevation given!" << endl;
        out << def->first_node("Ahp")->first_node("altitude")->value() << " ";
    }
    out << "0 0 ";
    string buf2(Ahp->first_node("codeType")->value());

    if(buf2.compare("AD")==0)
    {
        if(Ahp->first_node("codeIcao")!=NULL)
            out << Ahp->first_node("codeIcao")->value() << " ";
        else
            out << Ahp->first_node("xt_GpsIdent")->value() << " ";
    }
    if(buf2.compare("ELS")==0)
    {
        non_ICAO++;
        s=string(Ahp->first_attribute("xt_fir")->value()).substr(0,2);
        s=s.append(my_itos(non_ICAO,2));
        out << s << " ";
        cout << "non-ICAO code given: " << s << endl;
    }
    
    out << Ahp->first_node("txtName")->value() << endl;
    //--------AHP line finished-----------

    if(Ahp->next_sibling()!=NULL)
        current=Ahp->next_sibling();
    else
        return NULL;
    while(true)
    {
        if(check_ID(current,ID)==false)
            goto cont;

        // ----------------------------- Making runway ----------------
        if(string(current->name()).compare("Rwy")==0)
        {
            Rwy=current;
            Rdn1=Rwy->next_sibling("Rdn");
            Rdn2=Rdn1->next_sibling("Rdn");
            
            out << "100 ";
            if(string(Rwy->first_node("uomDimRwy")->value()).compare("M")==0)
                out << Rwy->first_node("valWid")->value() << " ";
            if(string(Rwy->first_node("uomDimRwy")->value()).compare("FT")==0)
                out << my_stof(string(Rwy->first_node("valWid")->value()))*3.28083 << " ";
            
            out << surface_code(Rwy) << " ";
            out << def->first_node("Rwy")->first_node("shoulder_surface")->value() << " ";
            out << def->first_node("Rwy")->first_node("smoothness")->value() << " ";
            
            
            
            if(Rwy->first_node("xt_lighting")->first_node()!=NULL)
            {
                if(Rwy->first_node("xt_lighting")->first_node("CENTER_LIGHTS")!=NULL)
                    out << "1 ";
                else
                    out << "0 ";
                if(Rwy->first_node("xt_lighting")->first_node("EDGE_LIGTHS")!=NULL)
                    out << "2 ";
                else
                    out << "0 ";
            }else
            {
                out << def->first_node("Rwy")->first_node("center_lights")->value() << " ";
                out << def->first_node("Rwy")->first_node("edge_lights")->value() << " ";
            }
            
            out << def->first_node("Rwy")->first_node("generate_signs")->value() << " ";
            
            
            // --- Rdn1 --- //
            if(ahphdg==-1)
                ahphdg=my_stod(string(Rdn1->first_node("valueTruBrg")->value()));
            if(string(Rdn1->first_node("RdnUid")->first_node("txtDesig")->value()).length()!=0)
                out << Rdn1->first_node("RdnUid")->first_node("txtDesig")->value() << " ";
            else
                out << def->first_node("Rdn")->first_node("desig_1")->value() << " ";
            out << Rdn1->first_node("geoLat")->value() << " ";
            out << Rdn1->first_node("geoLon")->value() << " ";
            
            out << def->first_node("Rdn")->first_node("disptr")->value() << " ";
            if(Rdn1->first_node("xt_valDispTres")!=NULL)
            {
                if(string(Rdn1->first_node("xt_uomDispTres")->value()).compare("FT")==0)
                    out << my_stof(string(Rdn1->first_node("xt_valDispTres")->value()))*0.3048 << " ";
                else
                    out << Rdn1->first_node("xt_valDispTres")->value() << " ";
            }else
                out << "0.00 ";
            
            
            if(Ahp->first_node("xt_TypeOfTraffic")->first_node("Ifr")!=0)
                out << "3 ";
            else
                out << "1 ";
            
            out << def->first_node("Rdn")->first_node("Apr_light")->value() << " ";
            out << def->first_node("Rdn")->first_node("TDZ_light")->value() << " ";
            out << def->first_node("Rdn")->first_node("REIL")->value() << " ";
            
            // --- Rdn2 --- //
            if(!string(Rdn2->first_node("RdnUid")->first_node("txtDesig")->value()).empty())
                out << Rdn2->first_node("RdnUid")->first_node("txtDesig")->value() << " ";
            else
                out << def->first_node("Rdn")->first_node("desig_2")->value() << " ";
            out << Rdn2->first_node("geoLat")->value() << " ";
            out << Rdn2->first_node("geoLon")->value() << " ";
            
            out << def->first_node("Rdn")->first_node("disptr")->value() << " ";
            if(Rdn2->first_node("xt_valDispTres")!=NULL)
            {
                if(string(Rdn2->first_node("xt_uomDispTres")->value()).compare("FT")==0)
                    out << my_stof(string(Rdn2->first_node("xt_valDispTres")->value()))*0.3048 << " ";
                else
                    out << Rdn2->first_node("xt_valDispTres")->value() << " ";
            }else
                out << "0.00 ";
            
            
            if(Ahp->first_node("xt_TypeOfTraffic")->first_node("Ifr")!=0)
                out << "3 ";
            else
                out << "1 ";
            
            out << def->first_node("Rdn")->first_node("Apr_light")->value() << " ";
            out << def->first_node("Rdn")->first_node("TDZ_light")->value() << " ";
            out << def->first_node("Rdn")->first_node("REIL")->value() << " " << endl;
            goto cont;
            
        } // -------------- End of making runway ----------------
        
        
        // ---------------- Making taxiway --------------
        if(string(current->name()).compare("Twy")==0)
        {
            Twy=current;
            out << "110 ";
            out << surface_code(Twy) << " ";
            out << def->first_node("Twy")->first_node("smoothness")->value() << " ";
            if(ahphdg==-1)
                out << def->first_node("Twy")->first_node("orientation")->value() << " ";
            else
                out << ahphdg << " ";
            out << Twy->first_node("TwyUid")->first_node("txtDesig")->value() << " " << endl;
            if(surface_code(Twy)==2)
                write_coordinatesC(Twy->first_node("xt_surface")->first_node("gmlPosList"),out); // 53,102
            else
                write_coordinatesC(Twy->first_node("xt_surface")->first_node("gmlPosList"),out); // 3,102
            /* if (string(Ahp->first_node()->first_attribute()->value()).compare("7459")==0)
                system("PAUSE"); */
            goto cont;
        }
        
        // -------------- Making taxiway lines -----------
        if(string(current->name()).compare("Tly")==0)
        {
            Tly=current;
            if(Tly->first_node("xt_surface")!=NULL)
            {    
                out << "120 ";
                out << Tly->first_node("TlyUid")->first_node("TwyUid")->first_node("txtDesig")->value() << endl;
                if(surface_code(Twy)==2)
                    write_coordinates(Tly->first_node("xt_surface")->first_node("gmlPosList"),out,51,101);
                else
                    write_coordinates(Tly->first_node("xt_surface")->first_node("gmlPosList"),out,1,101);
            }
            goto cont;
        }
        
        // --------------- Making apron ------------------
        if(string(current->name()).compare("Apn")==0)
        {
            Apn=current;
            out << "110 ";
            out << surface_code(Apn) << " ";
            out << def->first_node("Apn")->first_node("smoothness")->value() << " ";
            if(ahphdg==-1)
                out << def->first_node("Apn")->first_node("orientation")->value() << " ";
            else
                out << ahphdg << " ";
            out << Apn->first_node("ApnUid")->first_node("txtName")->value() << " " << endl;
            if(surface_code(Apn)==2)
                write_coordinatesC(Apn->first_node("xt_surface")->first_node("gmlPosList"),out);  //   52           
            else
                write_coordinatesC(Apn->first_node("xt_surface")->first_node("gmlPosList"),out); // 2
            goto cont;
        }
        
        
        // --------------- Checking misc -----------------
        if(string(current->name()).compare("misc")==0)
        {
            misc=current;
            s=string(misc->first_node("type")->value());
            // ------------ Windsock -------------
            if(s.compare("Windsock")==0)
            {
                out << "19 ";
                write_center(misc->first_node("xt_surface")->first_node("gmlPosList"),out);
                out << def->first_node("misc")->first_node("WS_light")->value() << endl;
                goto cont;
            }
            
            // ------------ Helipad --------------
            if(s.compare("Helipad")==0)
            {
                heli_count++;
                out << "102 ";
                out << "H" << heli_count << " ";
                write_center(misc->first_node("xt_surface")->first_node("gmlPosList"),out);
                dimension(misc->first_node("xt_surface")->first_node("gmlPosList"),hhdg,hlen,hwid);
                out << hhdg << " ";
                out << hlen << " ";
                out << hwid << " ";
                out << surface_code(Rwy) << " ";
                out << "0 ";
                out << surface_code(Rwy) << " ";
                out << def->first_node("misc")->first_node("heli_smooth")->value() << " ";
                out << def->first_node("misc")->first_node("heli_lights")->value() << endl;
                goto cont;
            }
            
            // -------------- Ramps --------------
            if(s.find("ramp")!=s.npos)
            {
                if(misc->first_node("xt_label")!=NULL && false)
                {
                    out << "1300 ";
                    out << def->first_node("misc")->first_node("ramp")->first_node("zone_class")->value() << " ";
                    
                    s=string(misc->first_node("xt_label")->first_node("geoLat")->value());
                    if(s[s.length()-1]=='N')
                        out << my_stold(s) << " ";
                    else
                        out << "-" << my_stold(s) << " ";
                    
                    s=string(misc->first_node("xt_label")->first_node("geoLon")->value());
                    if(s[s.length()-1]=='E')
                        out << my_stold(s) << " ";
                    else
                        out << "-" << my_stold(s) << " ";
                    
                    if(string(misc->first_node("xt_label")->first_node("angle")->value()).length()!=0)
                        out << misc->first_node("xt_label")->first_node("angle")->value() << " ";
                    else
                        out << def->first_node("misc")->first_node("ramp")->first_node("angle")->value() << " ";
                    out << def->first_node("misc")->first_node("ramp")->first_node("type")->value() << " ";
                    out << def->first_node("misc")->first_node("ramp")->first_node("airplane")->value() << endl;
                }
                out << "120 ";
                out << misc->first_node("miscUid")->first_node("txtName")->value() << endl;
                if(surface_code(Apn)==2)
                    write_coordinates(misc->first_node("xt_surface")->first_node("gmlPosList"),out,51);  //   52           
                else
                    write_coordinates(misc->first_node("xt_surface")->first_node("gmlPosList"),out,1);
                goto cont;
            }
            
            // Airport boundary
            if(s.compare("airport zone")==0)
            {
                //cout << "Zone written in " << Ahp->first_node("txtName")->value() << endl;
                out << "130 ";
                out << misc->first_node("miscUid")->first_node("txtName")->value() << endl;
                write_coordinatesC(misc->first_node("xt_surface")->first_node("gmlPosList"),out,2);
                goto cont;
            }
        }
        
            
        cont:
        if(current->next_sibling()!=NULL)
            current=current->next_sibling();
        else
        {
            out << endl;
            return NULL;
        }
    }
    
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1c8, %rsp            # imm = 0x1C8
movq %rsi, %rbx
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x6869(%rip), %rsi      # 0x9257
pushq $0x1
popq %rcx
movq %rdi, -0x38(%rbp)
xorl %edx, %edx
callq 0x6d52
leaq 0x685b(%rip), %rsi      # 0x925e
pushq $0x1
popq %rcx
movq %rax, %rdi
xorl %edx, %edx
callq 0x6e98
movq 0x8(%rax), %rsi
testq %rsi, %rsi
leaq 0xa7da(%rip), %r15      # 0xd1f8
cmoveq %r15, %rsi
leaq -0x168(%rbp), %rdi
leaq -0xc0(%rbp), %rdx
callq 0x6f24
leaq -0x168(%rbp), %rdi
callq 0x4710
movl %eax, -0x94(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x20e0
leaq 0x6ae3(%rip), %rsi      # 0x9545
movq %rax, %rdi
callq 0x21b0
leaq 0x67f1(%rip), %rsi      # 0x9262
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
testq %rax, %rax
je 0x2bab
leaq 0x67db(%rip), %rsi      # 0x926a
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
testq %rax, %rax
je 0x2bab
leaq 0x67bd(%rip), %rsi      # 0x926a
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0xc0(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x6f24
leaq 0x6795(%rip), %rsi      # 0x9272
leaq -0xc0(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x2c19
leaq 0x677d(%rip), %rsi      # 0x9275
leaq -0xc0(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x2c55
movq 0xa4bd(%rip), %rdi      # 0xcfd0
leaq 0x675d(%rip), %rsi      # 0x9277
callq 0x21b0
leaq -0xc0(%rbp), %rsi
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20e0
leaq 0x6725(%rip), %rsi      # 0x9262
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
leaq -0x128(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x2220
leaq -0x128(%rbp), %rdi
xorl %esi, %esi
callq 0x47da
cvttss2si %xmm0, %esi
movq %rbx, %rdi
callq 0x2310
leaq 0x66b7(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
leaq -0x128(%rbp), %rdi
jmp 0x2cd1
movq 0xa41e(%rip), %rdi      # 0xcfd0
leaq 0x66e0(%rip), %rsi      # 0x9299
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq 0xa623(%rip), %rdi      # 0xd1f0
leaq 0x667c(%rip), %rsi      # 0x9250
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x6d52
leaq 0x66dc(%rip), %rsi      # 0x92c1
pushq $0x1
popq %rcx
movq %rax, %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
leaq 0x6642(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
jmp 0x2ceb
leaq 0x6642(%rip), %rsi      # 0x9262
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
leaq 0x6606(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
jmp 0x2cdf
leaq 0x6606(%rip), %rsi      # 0x9262
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
leaq -0x148(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x2220
leaq -0x148(%rbp), %rdi
xorl %esi, %esi
callq 0x47da
cvtss2sd %xmm0, %xmm0
mulsd 0x6359(%rip), %xmm0     # 0x9008
cvttsd2si %xmm0, %esi
movq %rbx, %rdi
callq 0x2310
leaq 0x658c(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
leaq -0x148(%rbp), %rdi
callq 0x20d0
leaq -0x68(%rbp), %rdi
callq 0x20d0
leaq -0xc0(%rbp), %rdi
callq 0x20d0
leaq 0x65d8(%rip), %rsi      # 0x92ca
movq %rbx, %rdi
callq 0x21b0
leaq 0x65ce(%rip), %rsi      # 0x92cf
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0xc0(%rbp), %rdi
leaq -0x68(%rbp), %rdx
callq 0x6f24
leaq 0x65a7(%rip), %rsi      # 0x92d8
leaq -0xc0(%rbp), %rdi
callq 0x2090
testl %eax, %eax
jne 0x2d9a
leaq 0x6593(%rip), %r14      # 0x92db
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x6d52
testq %rax, %rax
leaq 0x6581(%rip), %rax      # 0x92e4
cmoveq %rax, %r14
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
leaq 0x64bc(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
leaq 0x654f(%rip), %rsi      # 0x92f0
leaq -0xc0(%rbp), %rdi
callq 0x2090
testl %eax, %eax
jne 0x2ea9
incl 0xa431(%rip)            # 0xd1ec
leaq 0x6532(%rip), %rsi      # 0x92f4
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6e98
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x90(%rbp), %rdi
leaq -0x41(%rbp), %rdx
callq 0x6f24
leaq -0x68(%rbp), %rdi
leaq -0x90(%rbp), %rsi
pushq $0x2
popq %rcx
xorl %edx, %edx
callq 0x21e0
leaq -0xe0(%rbp), %rdi
leaq -0x68(%rbp), %r14
movq %r14, %rsi
callq 0x2200
movq %r14, %rdi
callq 0x20d0
leaq -0x90(%rbp), %rdi
callq 0x20d0
movl 0xa3bf(%rip), %esi      # 0xd1ec
leaq -0x68(%rbp), %rdi
pushq $0x2
popq %rdx
callq 0x494f
leaq -0xe0(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x2370
leaq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x2140
leaq -0x68(%rbp), %rdi
callq 0x20d0
leaq -0xe0(%rbp), %rsi
movq %rbx, %rdi
callq 0x21a0
leaq 0x63d7(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
movq 0xa14a(%rip), %rdi      # 0xcfd0
leaq 0x646e(%rip), %rsi      # 0x92fb
callq 0x21b0
leaq -0xe0(%rbp), %rsi
movq %rax, %rdi
callq 0x21a0
movq %rax, %rdi
callq 0x20e0
leaq 0x6461(%rip), %rsi      # 0x9311
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %edx, %edx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6dec
testq %rax, %rax
je 0x45d7
movq $0x0, -0xa0(%rbp)
pushq $0x1
popq %rcx
movq -0x38(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x6dec
movq %rax, %r12
movsd 0x60f8(%rip), %xmm0     # 0x9010
movsd %xmm0, -0x70(%rbp)
movq %rbx, -0x30(%rbp)
movq %r12, %rdi
movl -0x94(%rbp), %esi
callq 0x49f7
testb %al, %al
je 0x4223
movq (%r12), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x63c9(%rip), %rsi      # 0x9328
callq 0x2090
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20d0
testl %r14d, %r14d
je 0x3075
movq (%r12), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x6495(%rip), %rsi      # 0x9431
callq 0x2090
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20d0
testl %r14d, %r14d
je 0x3376
movq (%r12), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x648a(%rip), %rsi      # 0x9463
callq 0x2090
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20d0
testl %r14d, %r14d
je 0x3455
movq (%r12), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x645d(%rip), %rsi      # 0x9473
callq 0x2090
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20d0
testl %r14d, %r14d
je 0x38bc
movq (%r12), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x642b(%rip), %rsi      # 0x947e
callq 0x2090
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20d0
testl %r14d, %r14d
je 0x3fe8
movq -0x30(%rbp), %rbx
jmp 0x4223
movq %r12, %rdi
leaq 0x629a(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6dec
movq -0x30(%rbp), %rbx
movq %rax, %r14
movq %rax, %rdi
leaq 0x627f(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6dec
movq %rax, -0x40(%rbp)
movq %rbx, %rdi
leaq 0x626b(%rip), %rsi      # 0x931d
callq 0x21b0
movq %r12, %rdi
leaq 0x6261(%rip), %rsi      # 0x9322
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x6182(%rip), %rsi      # 0x9275
callq 0x2090
movl %eax, %r15d
movq %rbx, %rdi
callq 0x20d0
testl %r15d, %r15d
leaq 0xa0eb(%rip), %r15      # 0xd1f8
movq -0x30(%rbp), %rbx
jne 0x3149
movq %r12, %rdi
leaq 0x620f(%rip), %rsi      # 0x932c
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x610a(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r12, %rdi
leaq 0x61cf(%rip), %rsi      # 0x9322
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x60ed(%rip), %rsi      # 0x9272
callq 0x2090
movl %eax, %r15d
movq %rbx, %rdi
callq 0x20d0
testl %r15d, %r15d
leaq 0xa059(%rip), %r15      # 0xd1f8
movq -0x30(%rbp), %rbx
jne 0x3210
movq %r12, %rdi
leaq 0x617d(%rip), %rsi      # 0x932c
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x1c8(%rbp), %r13
movq %r13, %rdi
leaq -0x68(%rbp), %rdx
callq 0x6f24
movq %r13, %rdi
xorl %esi, %esi
callq 0x47da
cvtss2sd %xmm0, %xmm0
mulsd 0x5e1b(%rip), %xmm0     # 0x9008
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x604f(%rip), %rsi      # 0x924e
callq 0x21b0
leaq -0x1c8(%rbp), %rdi
callq 0x20d0
movq %r12, %rdi
callq 0x4aa7
movq %rbx, %rdi
movl %eax, %esi
callq 0x2310
movq %rax, %rdi
leaq 0x6022(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9fb8(%rip), %rdi      # 0xd1f0
leaq 0x60e9(%rip), %rsi      # 0x9328
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x60e0(%rip), %rsi      # 0x9333
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5fd4(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9f6a(%rip), %rdi      # 0xd1f0
leaq 0x609b(%rip), %rsi      # 0x9328
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x60a3(%rip), %rsi      # 0x9344
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5f86(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r12, %rdi
leaq 0x6078(%rip), %rsi      # 0x934f
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
cmpq $0x0, 0x30(%rax)
je 0x3520
movq %r12, %rdi
leaq 0x6059(%rip), %rsi      # 0x934f
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x6051(%rip), %rsi      # 0x935b
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
testq %rax, %rax
leaq 0x6227(%rip), %rsi      # 0x9545
leaq 0x5fa7(%rip), %rax      # 0x92cc
cmoveq %rax, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %r12, %rdi
leaq 0x6014(%rip), %rsi      # 0x934f
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x601a(%rip), %rsi      # 0x9369
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
testq %rax, %rax
leaq 0x6145(%rip), %rsi      # 0x94a8
leaq 0x5f62(%rip), %rax      # 0x92cc
cmoveq %rax, %rsi
movq %rbx, %rax
jmp 0x35b4
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
leaq 0x60b1(%rip), %rsi      # 0x9435
callq 0x21b0
movq %r12, %rdi
callq 0x4aa7
movq %rbx, %rdi
movl %eax, %esi
callq 0x2310
movq %rax, %rdi
leaq 0x5ea9(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9e3f(%rip), %rdi      # 0xd1f0
leaq 0x6079(%rip), %rsi      # 0x9431
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5f78(%rip), %rsi      # 0x9344
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5e5b(%rip), %rsi      # 0x924e
callq 0x21b0
movsd -0x70(%rbp), %xmm0
ucomisd 0x5c0b(%rip), %xmm0     # 0x9010
jne 0x399b
jp 0x399b
movq 0x9dd8(%rip), %rdi      # 0xd1f0
leaq 0x6012(%rip), %rsi      # 0x9431
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x6007(%rip), %rsi      # 0x943a
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
jmp 0x39a3
movq %r12, %rdi
leaq 0x5fee(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq -0x30(%rbp), %rbx
testq %rax, %rax
je 0x4223
movq %rbx, %rdi
leaq 0x5fe7(%rip), %rsi      # 0x9467
callq 0x21b0
movq %r12, %rdi
leaq 0x5fdd(%rip), %rsi      # 0x946c
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5fa3(%rip), %rsi      # 0x9446
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5efa(%rip), %rsi      # 0x93b1
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq -0xf0(%rbp), %rdi
callq 0x4aa7
cmpl $0x2, %eax
jne 0x4130
movq %r12, %rdi
leaq 0x5f52(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5f49(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
pushq $0x33
jmp 0x415a
movq 0x9cc9(%rip), %rdi      # 0xd1f0
leaq 0x5dfa(%rip), %rsi      # 0x9328
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5e33(%rip), %rsi      # 0x9375
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5ce5(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9c7b(%rip), %rdi      # 0xd1f0
leaq 0x5dac(%rip), %rsi      # 0x9328
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5df3(%rip), %rsi      # 0x9383
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
leaq 0x5c9a(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
movq 0x9c2d(%rip), %rdi      # 0xd1f0
leaq 0x5d5e(%rip), %rsi      # 0x9328
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5db1(%rip), %rsi      # 0x938f
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5c49(%rip), %rsi      # 0x924e
callq 0x21b0
movsd -0x70(%rbp), %xmm0
ucomisd 0x59f9(%rip), %xmm0     # 0x9010
jne 0x3664
jp 0x3664
movq %r14, %rdi
leaq 0x5d79(%rip), %rsi      # 0x939e
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x1e8(%rbp), %rbx
movq %rbx, %rdi
leaq -0x68(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
xorl %esi, %esi
callq 0x4bba
movsd %xmm0, -0x70(%rbp)
movq %rbx, %rdi
callq 0x20d0
movq %r14, %rdi
leaq 0x5d3c(%rip), %rsi      # 0x93aa
xorl %edx, %edx
pushq $0x1
popq %rbx
movl %ebx, %ecx
callq 0x6d52
movq %rax, %rdi
leaq 0x5d2d(%rip), %rsi      # 0x93b1
xorl %edx, %edx
movl %ebx, %ecx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq -0x60(%rbp), %r15
movq %rbx, %rdi
callq 0x20d0
testq %r15, %r15
je 0x36e4
movq %r14, %rdi
leaq 0x5ce4(%rip), %rsi      # 0x93aa
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
leaq 0x9b21(%rip), %r15      # 0xd1f8
movq -0x30(%rbp), %rbx
leaq 0x5ccf(%rip), %rsi      # 0x93b1
jmp 0x370e
movq 0x9b05(%rip), %rdi      # 0xd1f0
leaq 0x5c27(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
leaq 0x9af5(%rip), %r15      # 0xd1f8
movq -0x30(%rbp), %rbx
leaq 0x5cac(%rip), %rsi      # 0x93ba
movq %rax, %rdi
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5b16(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r14, %rdi
leaq 0x5c7b(%rip), %rsi      # 0x93c2
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5ae0(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r14, %rdi
leaq 0x5c4c(%rip), %rsi      # 0x93c9
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5aaa(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9a40(%rip), %rdi      # 0xd1f0
leaq 0x5b62(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5c05(%rip), %rsi      # 0x93d0
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5a5c(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r14, %rdi
leaq 0x5bd6(%rip), %rsi      # 0x93d7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rcx
movq %rbx, %rax
leaq 0x5bdd(%rip), %rsi      # 0x93f5
testq %rcx, %rcx
je 0x38af
movq %r14, %rdi
leaq 0x5bbb(%rip), %rsi      # 0x93e6
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x5a15(%rip), %rsi      # 0x9272
callq 0x2090
movl %eax, %r15d
movq %rbx, %rdi
callq 0x20d0
testl %r15d, %r15d
je 0x3a4f
movq %r14, %rdi
leaq 0x5b57(%rip), %rsi      # 0x93d7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
leaq 0x9967(%rip), %r15      # 0xd1f8
movq -0x30(%rbp), %rbx
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
leaq 0x599f(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
jmp 0x3ac5
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
leaq 0x5b6b(%rip), %rsi      # 0x9435
callq 0x21b0
movq %r12, %rdi
callq 0x4aa7
movq %rbx, %rdi
movl %eax, %esi
callq 0x2310
movq %rax, %rdi
leaq 0x5963(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x98f9(%rip), %rdi      # 0xd1f0
leaq 0x5b75(%rip), %rsi      # 0x9473
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5a32(%rip), %rsi      # 0x9344
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5915(%rip), %rsi      # 0x924e
callq 0x21b0
movsd -0x70(%rbp), %xmm0
ucomisd 0x56c5(%rip), %xmm0     # 0x9010
jne 0x4174
jp 0x4174
movq 0x9892(%rip), %rdi      # 0xd1f0
leaq 0x5b0e(%rip), %rsi      # 0x9473
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5ac1(%rip), %rsi      # 0x943a
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
jmp 0x417c
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x58a1(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r12, %rdi
leaq 0x5a8a(%rip), %rsi      # 0x9446
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x59e1(%rip), %rsi      # 0x93b1
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5857(%rip), %rsi      # 0x924e
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq %r12, %rdi
callq 0x4aa7
movq %r12, %rdi
leaq 0x5a37(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5a2e(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
movq %rbx, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x4d3b
movq %r12, -0xf0(%rbp)
jmp 0x4223
movq %r14, %rdi
leaq 0x597e(%rip), %rsi      # 0x93d7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
leaq 0x978e(%rip), %r15      # 0xd1f8
movq -0x30(%rbp), %rbx
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x1a8(%rbp), %r14
movq %r14, %rdi
leaq -0x68(%rbp), %rdx
callq 0x6f24
movq %r14, %rdi
xorl %esi, %esi
callq 0x47da
cvtss2sd %xmm0, %xmm0
mulsd 0x5576(%rip), %xmm0     # 0x9018
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x579a(%rip), %rsi      # 0x924e
callq 0x21b0
leaq -0x1a8(%rbp), %rdi
callq 0x20d0
movq -0x38(%rbp), %rdi
leaq 0x592b(%rip), %rsi      # 0x93fb
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5928(%rip), %rsi      # 0x940c
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
testq %rax, %rax
leaq 0x5a52(%rip), %rsi      # 0x954a
leaq 0x5a46(%rip), %rax      # 0x9545
cmoveq %rax, %rsi
movq %rbx, %rdi
callq 0x21b0
movq 0x96de(%rip), %rdi      # 0xd1f0
leaq 0x5800(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x58e3(%rip), %rsi      # 0x9410
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x56fa(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9690(%rip), %rdi      # 0xd1f0
leaq 0x57b2(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x589f(%rip), %rsi      # 0x941a
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x56ac(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x9642(%rip), %rdi      # 0xd1f0
leaq 0x5764(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x585b(%rip), %rsi      # 0x9424
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x565e(%rip), %rsi      # 0x924e
callq 0x21b0
movq -0x40(%rbp), %rdi
leaq 0x57aa(%rip), %rsi      # 0x93aa
xorl %edx, %edx
pushq $0x1
popq %rbx
movl %ebx, %ecx
callq 0x6d52
movq %rax, %rdi
leaq 0x579b(%rip), %rsi      # 0x93b1
xorl %edx, %edx
movl %ebx, %ecx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq -0x60(%rbp), %r14
movq %rbx, %rdi
callq 0x20d0
testq %r14, %r14
je 0x3c70
movq -0x40(%rbp), %rdi
leaq 0x5751(%rip), %rsi      # 0x93aa
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq -0x30(%rbp), %rbx
leaq 0x5743(%rip), %rsi      # 0x93b1
jmp 0x3c93
movq 0x9579(%rip), %rdi      # 0xd1f0
leaq 0x569b(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq -0x30(%rbp), %rbx
leaq 0x5796(%rip), %rsi      # 0x9429
movq %rax, %rdi
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5591(%rip), %rsi      # 0x924e
callq 0x21b0
movq -0x40(%rbp), %rdi
leaq 0x56f5(%rip), %rsi      # 0x93c2
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x555a(%rip), %rsi      # 0x924e
callq 0x21b0
movq -0x40(%rbp), %rdi
leaq 0x56c5(%rip), %rsi      # 0x93c9
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5523(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x94b9(%rip), %rdi      # 0xd1f0
leaq 0x55db(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x567e(%rip), %rsi      # 0x93d0
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x54d5(%rip), %rsi      # 0x924e
callq 0x21b0
movq -0x40(%rbp), %rdi
leaq 0x564e(%rip), %rsi      # 0x93d7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rcx
movq %rbx, %rax
leaq 0x5655(%rip), %rsi      # 0x93f5
testq %rcx, %rcx
je 0x3e2e
movq -0x40(%rbp), %rdi
leaq 0x5632(%rip), %rsi      # 0x93e6
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x68(%rbp), %rbx
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
movq %rbx, %rdi
leaq 0x548c(%rip), %rsi      # 0x9272
callq 0x2090
movl %eax, %r14d
movq %rbx, %rdi
callq 0x20d0
testl %r14d, %r14d
je 0x3e38
movq -0x40(%rbp), %rdi
leaq 0x55d1(%rip), %rsi      # 0x93d7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq -0x30(%rbp), %rbx
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
leaq 0x5420(%rip), %rsi      # 0x924e
movq %rax, %rdi
callq 0x21b0
jmp 0x3ea8
movq -0x40(%rbp), %rdi
leaq 0x5594(%rip), %rsi      # 0x93d7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq -0x30(%rbp), %rbx
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
leaq -0x188(%rbp), %r14
movq %r14, %rdi
leaq -0x68(%rbp), %rdx
callq 0x6f24
movq %r14, %rdi
xorl %esi, %esi
callq 0x47da
cvtss2sd %xmm0, %xmm0
mulsd 0x5193(%rip), %xmm0     # 0x9018
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x53b7(%rip), %rsi      # 0x924e
callq 0x21b0
leaq -0x188(%rbp), %rdi
callq 0x20d0
movq -0x38(%rbp), %rdi
leaq 0x5548(%rip), %rsi      # 0x93fb
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5545(%rip), %rsi      # 0x940c
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
testq %rax, %rax
leaq 0x566f(%rip), %rsi      # 0x954a
leaq 0x5663(%rip), %rax      # 0x9545
cmoveq %rax, %rsi
movq %rbx, %rdi
callq 0x21b0
movq 0x92fb(%rip), %rdi      # 0xd1f0
leaq 0x541d(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5500(%rip), %rsi      # 0x9410
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x5317(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x92ad(%rip), %rdi      # 0xd1f0
leaq 0x53cf(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x54bc(%rip), %rsi      # 0x941a
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x52c9(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x925f(%rip), %rdi      # 0xd1f0
leaq 0x5381(%rip), %rsi      # 0x9319
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5478(%rip), %rsi      # 0x9424
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x527b(%rip), %rsi      # 0x924e
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq %r12, %r13
jmp 0x4223
movq %r12, %rdi
leaq 0x5491(%rip), %rsi      # 0x9483
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %r13, %r14
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
leaq -0x90(%rbp), %rdx
callq 0x6f24
leaq -0xe0(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x2200
movq %rbx, %rdi
callq 0x20d0
movq %r13, %rdi
leaq 0x544b(%rip), %rsi      # 0x9488
callq 0x2090
testl %eax, %eax
je 0x4252
movq %r13, %rdi
leaq 0x544a(%rip), %rsi      # 0x949e
callq 0x2090
testl %eax, %eax
movq -0x30(%rbp), %rbx
je 0x42e7
movq %r13, %rdi
leaq 0x5454(%rip), %rsi      # 0x94c3
xorl %edx, %edx
callq 0x2380
cmpq $-0x1, %rax
je 0x44ef
movq %r12, %rdi
leaq 0x543e(%rip), %rsi      # 0x94c8
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %r14, %r13
movq %rbx, %rdi
leaq 0x53c6(%rip), %rsi      # 0x9467
callq 0x21b0
movq %r12, %rdi
leaq 0x5421(%rip), %rsi      # 0x94d1
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x524d(%rip), %rsi      # 0x9311
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq -0xe8(%rbp), %rdi
callq 0x4aa7
cmpl $0x2, %eax
jne 0x450a
movq %r12, %rdi
leaq 0x5345(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
xorl %r14d, %r14d
movq %rax, %rdi
leaq 0x5339(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
pushq $0x33
jmp 0x4537
movq %r12, %rdi
leaq 0x5313(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x530a(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
pushq $0x1
popq %rdx
pushq $0x65
popq %rcx
movl %ecx, %r14d
movq %rax, %rdi
movq %rbx, %rsi
movl %r14d, %ecx
callq 0x5723
jmp 0x4223
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x50c8(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r12, %rdi
leaq 0x52e2(%rip), %rsi      # 0x9477
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5168(%rip), %rsi      # 0x9311
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x507e(%rip), %rsi      # 0x924e
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq %r12, %rdi
callq 0x4aa7
movq %r12, %rdi
leaq 0x525e(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5255(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
movq %rbx, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x4d3b
movq %r12, -0xe8(%rbp)
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6dec
testq %rax, %rax
je 0x45cf
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6dec
movq %rax, %r12
jmp 0x2f21
movq -0x30(%rbp), %rbx
movq %rbx, %rdi
leaq 0x5231(%rip), %rsi      # 0x9491
callq 0x21b0
movq %r14, %r13
movq %r12, %rdi
leaq 0x51db(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x51d2(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
movq %rbx, %rsi
callq 0x5e8b
movq 0x8f4e(%rip), %rdi      # 0xd1f0
leaq 0x51d5(%rip), %rsi      # 0x947e
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x51d8(%rip), %rsi      # 0x9495
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
jmp 0x4223
movq %rbx, %rdi
leaq 0x51b5(%rip), %rsi      # 0x94a6
callq 0x21b0
movq %r14, %r13
movq %rbx, %rdi
leaq 0x5204(%rip), %rsi      # 0x9507
callq 0x21b0
movq -0xa0(%rbp), %rsi
incl %esi
movq %rax, %rdi
movq %rsi, -0xa0(%rbp)
callq 0x2310
movq %rax, %rdi
leaq 0x4f24(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r12, %rdi
leaq 0x5114(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x510b(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
movq %rbx, %rsi
callq 0x5e8b
movq %r12, %rdi
leaq 0x50e1(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x50d8(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq -0xf8(%rbp), %rsi
leaq -0x108(%rbp), %rdx
leaq -0x100(%rbp), %rcx
callq 0x605c
movsd -0xf8(%rbp), %xmm0
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x4e8d(%rip), %rsi      # 0x924e
callq 0x21b0
movsd -0x108(%rbp), %xmm0
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x4e6e(%rip), %rsi      # 0x924e
callq 0x21b0
movsd -0x100(%rbp), %xmm0
movq %rbx, %rdi
callq 0x22b0
movq %rax, %rdi
leaq 0x4e4f(%rip), %rsi      # 0x924e
callq 0x21b0
movq %r13, %rdi
callq 0x4aa7
movq %rbx, %rdi
movl %eax, %esi
callq 0x2310
movq %rax, %rdi
leaq 0x4e2e(%rip), %rsi      # 0x924e
callq 0x21b0
movq %rbx, %rdi
leaq 0x4e9d(%rip), %rsi      # 0x92cc
callq 0x21b0
movq %r13, %rdi
callq 0x4aa7
movq %rbx, %rdi
movl %eax, %esi
callq 0x2310
movq %rax, %rdi
leaq 0x4dfe(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x8d94(%rip), %rdi      # 0xd1f0
leaq 0x501b(%rip), %rsi      # 0x947e
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x5034(%rip), %rsi      # 0x94ab
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
leaq 0x4db0(%rip), %rsi      # 0x924e
callq 0x21b0
movq 0x8d46(%rip), %rdi      # 0xd1f0
leaq 0x4fcd(%rip), %rsi      # 0x947e
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x4ff2(%rip), %rsi      # 0x94b7
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
jmp 0x4223
movq %r13, %rdi
leaq 0x4fe0(%rip), %rsi      # 0x94d9
callq 0x2090
testl %eax, %eax
je 0x453d
movq %r14, %r13
jmp 0x4223
movq %r12, %rdi
leaq 0x4f39(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
xorl %r14d, %r14d
movq %rax, %rdi
leaq 0x4f2d(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
pushq $0x1
popq %rdx
jmp 0x4161
movq %rbx, %rdi
leaq 0x4f9f(%rip), %rsi      # 0x94e6
callq 0x21b0
movq %r14, %r13
movq %r12, %rdi
leaq 0x4f78(%rip), %rsi      # 0x94d1
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x4da4(%rip), %rsi      # 0x9311
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq 0x8(%rax), %rsi
testq %rsi, %rsi
cmoveq %r15, %rsi
movq %rbx, %rdi
callq 0x21b0
movq %rax, %rdi
callq 0x20e0
movq %r12, %rdi
leaq 0x4eb1(%rip), %rsi      # 0x944d
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
leaq 0x4ea8(%rip), %rsi      # 0x9458
xorl %edx, %edx
pushq $0x1
popq %rcx
callq 0x6d52
movq %rax, %rdi
movq %rbx, %rsi
pushq $0x2
popq %rdx
xorl %ecx, %ecx
callq 0x4d3b
jmp 0x4223
movq %rbx, %rdi
callq 0x20e0
leaq -0xc0(%rbp), %rdi
callq 0x20d0
leaq -0xe0(%rbp), %rdi
callq 0x20d0
xorl %eax, %eax
addq $0x1c8, %rsp            # imm = 0x1C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x466a
jmp 0x46ed
jmp 0x46ed
jmp 0x466a
jmp 0x46ed
jmp 0x46ed
movq %rax, %rbx
leaq -0x148(%rbp), %rdi
jmp 0x4659
jmp 0x46ed
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
jmp 0x46d7
jmp 0x46ed
jmp 0x46ed
jmp 0x46e8
jmp 0x46e8
movq %rax, %rbx
leaq -0x128(%rbp), %rdi
callq 0x20d0
jmp 0x466d
jmp 0x46ed
jmp 0x46ed
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
jmp 0x46d7
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46e8
jmp 0x46e8
movq %rax, %rbx
leaq -0x168(%rbp), %rdi
jmp 0x46f7
jmp 0x46e8
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
movq %rax, %rbx
leaq -0x1e8(%rbp), %rdi
jmp 0x46d7
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
movq %rax, %rbx
leaq -0x188(%rbp), %rdi
jmp 0x46d7
movq %rax, %rbx
leaq -0x1a8(%rbp), %rdi
jmp 0x46d7
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
movq %rax, %rbx
leaq -0x1c8(%rbp), %rdi
callq 0x20d0
jmp 0x46f0
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
jmp 0x46ed
movq %rax, %rbx
jmp 0x46fc
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x20d0
leaq -0xe0(%rbp), %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x2330