// File: /workspace/github_cpp_makefile_star2_O3/FFY00[P]uicc/src/program_uicc.c
// Function: writeUSIMvalues(char*, uicc_vals&)
bool writeUSIMvalues(char *port, struct uicc_vals &values) {
    vector<string> res;
    USIM USIMcard;
    string ATR;
    Assert((ATR=USIMcard.open(port))!="", "Failed to open %s", port);
    //dump_hex("ATR", ATR);
    USIMcard.openUSIM();

    if (!USIMcard.verifyChv('\x0a', values.adm)) {
        printf("chv 0a Nok\n");
        return false;
    }

    if ( values.key.size() > 0)
        // Ki files and Milenage algo paramters are specific to the card manufacturer
        Assert(USIMcard.writeFile("GR Ki", USIMcard.encodeKi(values.key)),
               "can't set Ki %s",values.key.c_str());

    if (values.opc.size() > 0)
        Assert(USIMcard.writeFile("GR OPc", USIMcard.encodeOPC(values.opc)),
               "can't set OPc %s",values.opc.c_str());

    //Milenage internal paramters
    USIMcard.writeFile("GR R",makeBcdVect("4000204060",false));
    vector<string> C;
    C.push_back(makeBcd("00000000000000000000000000000000",false));
    C.push_back(makeBcd("00000000000000000000000000000001",false));
    C.push_back(makeBcd("00000000000000000000000000000002",false));
    C.push_back(makeBcd("00000000000000000000000000000004",false));
    C.push_back(makeBcd("00000000000000000000000000000008",false));
    USIMcard.writeFile("GR C",C);
    vector<string> li;
    li.push_back("en");
    Assert(USIMcard.writeFile("language preference", li), "can't set language");
    Assert(USIMcard.writeFile("SMSC", makeBcdVect("",true,40)),
           "can't set SMSC");

    if (values.isdn.size() > 0)
        Assert(USIMcard.writeFile("MSISDN", USIMcard.encodeISDN(values.isdn, USIMcard.fileRecordSize("MSISDN"))),
               "can't set msisdn %s",values.isdn.c_str());

    if ( values.acc.size() > 0)
        Assert(USIMcard.writeFile("Access control class", USIMcard.encodeACC(values.acc)),
               "can't set acc %s",values.acc.c_str());

    if ( values.imsi.size() > 0) {
        Assert(USIMcard.writeFile("IMSI", USIMcard.encodeIMSI(values.imsi)),
               "can't set imsi %s",values.imsi.c_str());
        string MccMnc=USIMcard.encodeMccMnc(values.imsi.substr(0,3),
                                            values.imsi.substr(3,values.mncLen));
        vector<string> VectMccMnc;
        VectMccMnc.push_back(MccMnc);
        vector<string> MccMncWithAct=VectMccMnc;
        // Add EUTRAN access techno only
        MccMncWithAct[0]+=string(u8"\x40\x00",2);
        Assert(USIMcard.writeFile("PLMN selector with Access Technology",
                                  MccMncWithAct, true), "Can't write PLMN Selector");
        Assert(USIMcard.writeFile("Operator controlled PLMN selector with Access Technology",
                                  MccMncWithAct, true), "Can't write Operator PLMN Selector");
        Assert(USIMcard.writeFile("Home PLMN selector with Access Technology",
                                  MccMncWithAct, true), "Can't write home  PLMN Selector");
        Assert(USIMcard.writeFile("Equivalent Home PLMN",
                                  VectMccMnc), "Can't write Equivalent PLMN");
        vector<string> psloci;
        psloci.push_back(makeBcd("",true,7));
        psloci[0]+=MccMnc;
        psloci[0]+=makeBcd("0000ff01", false);
        Assert(USIMcard.writeFile("PS Location information",
                                  psloci,false),
               "PS location information");
        vector<string> csloci;
        csloci.push_back(makeBcd("",true,4));
        csloci[0]+=MccMnc;
        csloci[0]+=makeBcd("0000ff01", false);
        Assert(USIMcard.writeFile("CS Location information",
                                  csloci, false),
               "CS location information");
    }

    vector<string> ad;
    ad.push_back(makeBcd("000000",false));
    ad[0]+=(char) values.mncLen;
    Assert(USIMcard.writeFile("Administrative data", ad),
           "can't set Administrative data");
    vector<string> spn;
    spn.push_back(string(u8"\x01",1));
    spn[0]+=values.spn;
    Assert(USIMcard.writeFile("Service Provider Name", spn, true), "can't set spn");
    Assert(USIMcard.writeFile("Higher Priority PLMN search period", makeBcdVect("02", false)), "can't set plmn search period");
    Assert(USIMcard.writeFile("Forbidden PLMNs", makeBcdVect("",true,12)), "can't set forbidden plmn");
    Assert(USIMcard.writeFile("Group Identifier Level 1", makeBcdVect("",true,4)), "can't set GID1");
    Assert(USIMcard.writeFile("Group Identifier Level 2", makeBcdVect("",true,4)), "can't set GID2");
    vector<string> ecc;
    ecc.push_back(makeBcd("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",false));
    ecc.push_back(makeBcd("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",false));
    ecc.push_back(makeBcd("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",false));
    ecc.push_back(makeBcd("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",false));
    Assert(USIMcard.writeFile("emergency call codes", ecc), "can't set emergency call codes");
    // Typical service list, a bit complex to define (see 3GPP TS 51.011)
    Assert(USIMcard.writeFile("USIM service table", makeBcdVect("867F1F1C230E0000400050", false)),
           "can't set USIM service table");
    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa68, %rsp            # imm = 0xA68
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, -0x2a0(%rbp)
movq $0x0, -0x290(%rbp)
movb $0x0, -0xe0(%rbp)
movl $0xffffffff, -0xdc(%rbp) # imm = 0xFFFFFFFF
leaq 0x114c0(%rip), %rdi     # 0x18400
callq 0x2310
testq %rax, %rax
je 0x6f5c
movzbl (%rax), %eax
orl $0x20, %eax
cmpl $0x79, %eax
jne 0x6f5c
movb $0x1, -0xe0(%rbp)
leaq -0xc8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xa8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x270(%rbp), %r13
movq %r13, -0x10(%r13)
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq -0x50(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
movq %rbx, %rdx
callq 0xaaf4
leaq -0x280(%rbp), %rdi
leaq -0x50(%rbp), %r12
movq %r12, %rsi
callq 0x2320
leaq 0x113f2(%rip), %rsi     # 0x183b2
movq %rax, %rdi
callq 0x20b0
movl %eax, %r15d
movq (%r12), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x6fdd
callq 0x2220
testl %r15d, %r15d
je 0x885f
leaq -0xe0(%rbp), %rdi
callq 0xbb04
leaq -0xa38(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
addq %rsi, %rdx
leaq -0xa48(%rbp), %rdi
callq 0x1394e
leaq -0xe0(%rbp), %rdi
leaq -0xa48(%rbp), %rdx
movl $0xa, %esi
callq 0xcae2
movb %al, -0x29(%rbp)
movq -0xa48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7040
callq 0x2220
cmpb $0x0, -0x29(%rbp)
je 0x87e5
cmpq $0x0, 0xf0(%r14)
je 0x7119
leaq -0xa18(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1017b(%rip), %rsi     # 0x171e5
leaq 0x10179(%rip), %rdx     # 0x171ea
leaq -0xa28(%rbp), %rdi
callq 0x139ec
leaq -0x9f8(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0xe8(%r14), %rsi
movq 0xf0(%r14), %rdx
addq %rsi, %rdx
leaq -0xa08(%rbp), %rdi
callq 0x1394e
leaq -0x4c8(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0xa08(%rbp), %rdx
callq 0xd034
leaq -0xe0(%rbp), %rdi
leaq -0xa28(%rbp), %rsi
leaq -0x4c8(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x4c8(%rbp), %rdi
callq 0xb2cc
movq -0xa08(%rbp), %rdi
cmpq %r12, %rdi
je 0x70ff
callq 0x2220
movq -0xa28(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7110
callq 0x2220
testb %r15b, %r15b
je 0x8899
cmpq $0x0, 0x70(%r14)
je 0x71df
leaq -0x9d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x10159(%rip), %rsi     # 0x1728f
leaq 0x10158(%rip), %rdx     # 0x17295
leaq -0x9e8(%rbp), %rdi
callq 0x139ec
leaq -0x9b8(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x68(%r14), %rsi
movq 0x70(%r14), %rdx
addq %rsi, %rdx
leaq -0x9c8(%rbp), %rdi
callq 0x1394e
leaq -0x4b0(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x9c8(%rbp), %rdx
callq 0xd0ac
leaq -0xe0(%rbp), %rdi
leaq -0x9e8(%rbp), %rsi
leaq -0x4b0(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x4b0(%rbp), %rdi
callq 0xb2cc
movq -0x9c8(%rbp), %rdi
cmpq %r12, %rdi
je 0x71c5
callq 0x2220
movq -0x9e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x71d6
callq 0x2220
testb %r15b, %r15b
je 0x88a8
leaq -0x998(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1014c(%rip), %rsi     # 0x1733d
leaq 0x10149(%rip), %rdx     # 0x17341
leaq -0x9a8(%rbp), %rdi
callq 0x139ec
leaq -0x250(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x1012c(%rip), %rsi     # 0x17342
leaq 0x1012f(%rip), %rdx     # 0x1734c
leaq -0x260(%rbp), %rdi
callq 0x139ec
movq -0x260(%rbp), %rsi
movq -0x258(%rbp), %rdx
leaq -0x498(%rbp), %rdi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x9a8(%rbp), %rsi
leaq -0x498(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
leaq -0x498(%rbp), %rdi
callq 0xb2cc
movq -0x260(%rbp), %rdi
cmpq %r15, %rdi
je 0x7284
callq 0x2220
movq -0x9a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7295
callq 0x2220
xorps %xmm0, %xmm0
movaps %xmm0, -0x120(%rbp)
movq $0x0, -0x110(%rbp)
leaq -0x978(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x10091(%rip), %rsi     # 0x1734d
leaq 0x100aa(%rip), %rdx     # 0x1736d
leaq -0x988(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x988(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x120(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x7305
callq 0x2220
movq -0x988(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7316
callq 0x2220
leaq -0x958(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x10046(%rip), %rsi     # 0x1736e
leaq 0x1005f(%rip), %rdx     # 0x1738e
leaq -0x968(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x968(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x120(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x7371
callq 0x2220
movq -0x968(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7382
callq 0x2220
leaq -0x938(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfffb(%rip), %rsi      # 0x1738f
leaq 0x10014(%rip), %rdx     # 0x173af
leaq -0x948(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x948(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x120(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x73dd
callq 0x2220
movq -0x948(%rbp), %rdi
cmpq %rbx, %rdi
je 0x73ee
callq 0x2220
leaq -0x918(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xffb0(%rip), %rsi      # 0x173b0
leaq 0xffc9(%rip), %rdx      # 0x173d0
leaq -0x928(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x928(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x120(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x7449
callq 0x2220
movq -0x928(%rbp), %rdi
cmpq %rbx, %rdi
je 0x745a
callq 0x2220
leaq -0x8f8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xff65(%rip), %rsi      # 0x173d1
leaq 0xff7e(%rip), %rdx      # 0x173f1
leaq -0x908(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x908(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x120(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x74b5
callq 0x2220
movq -0x908(%rbp), %rdi
cmpq %rbx, %rdi
je 0x74c6
callq 0x2220
leaq -0x8d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xff1a(%rip), %rsi      # 0x173f2
leaq 0xff17(%rip), %rdx      # 0x173f6
leaq -0x8e8(%rbp), %rdi
callq 0x139ec
leaq -0x480(%rbp), %rdi
leaq -0x120(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x8e8(%rbp), %rsi
leaq -0x480(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
leaq -0x480(%rbp), %rdi
callq 0xb2cc
movq -0x8e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x753a
callq 0x2220
xorps %xmm0, %xmm0
movaps %xmm0, -0x180(%rbp)
movq $0x0, -0x170(%rbp)
leaq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
movq %rax, (%rdi)
leaq 0x10f48(%rip), %rsi     # 0x184a9
leaq 0x10f43(%rip), %rdx     # 0x184ab
callq 0x139ec
leaq -0x180(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x758f
callq 0x2220
leaq -0x8b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xef8b(%rip), %rsi      # 0x1652c
leaq 0xef97(%rip), %rdx      # 0x1653f
leaq -0x8c8(%rbp), %rdi
callq 0x139ec
leaq -0x468(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x8c8(%rbp), %rsi
leaq -0x468(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x468(%rbp), %rdi
callq 0xb2cc
movq -0x8c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7606
callq 0x2220
testb %r15b, %r15b
je 0x8867
leaq -0x898(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfb10(%rip), %rsi      # 0x17131
leaq 0xfb0d(%rip), %rdx      # 0x17135
leaq -0x8a8(%rbp), %rdi
callq 0x139ec
leaq -0x230(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x10d6b(%rip), %rdx     # 0x183b2
leaq -0x240(%rbp), %rdi
movq %rdx, %rsi
callq 0x139ec
movq -0x240(%rbp), %rsi
movq -0x238(%rbp), %rdx
leaq -0x450(%rbp), %rdi
movl $0x1, %ecx
movl $0x28, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x8a8(%rbp), %rsi
leaq -0x450(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x450(%rbp), %rdi
callq 0xb2cc
movq -0x240(%rbp), %rdi
cmpq %r12, %rdi
je 0x76ba
callq 0x2220
movq -0x8a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x76cb
callq 0x2220
testb %r15b, %r15b
je 0x886c
cmpq $0x0, 0xb0(%r14)
je 0x77f5
leaq -0x878(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0xec79(%rip), %rsi      # 0x1636e
leaq 0xec78(%rip), %rdx      # 0x16374
leaq -0x888(%rbp), %rdi
callq 0x139ec
leaq -0x858(%rbp), %rbx
movq %rbx, -0x10(%rbx)
movq 0xa8(%r14), %rsi
movq 0xb0(%r14), %rdx
addq %rsi, %rdx
leaq -0x868(%rbp), %rdi
callq 0x1394e
leaq -0x838(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0xec2c(%rip), %rsi      # 0x1636e
leaq 0xec2b(%rip), %rdx      # 0x16374
leaq -0x848(%rbp), %rdi
callq 0x139ec
leaq -0xe0(%rbp), %rdi
leaq -0x848(%rbp), %rsi
callq 0xd124
leaq -0x438(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x868(%rbp), %rdx
movl %eax, %ecx
callq 0xc88a
leaq -0xe0(%rbp), %rdi
leaq -0x888(%rbp), %rsi
leaq -0x438(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x438(%rbp), %rdi
callq 0xb2cc
movq -0x848(%rbp), %rdi
cmpq %r13, %rdi
je 0x77c3
callq 0x2220
movq -0x868(%rbp), %rdi
cmpq %rbx, %rdi
leaq -0x270(%rbp), %r13
je 0x77db
callq 0x2220
movq -0x888(%rbp), %rdi
cmpq %r12, %rdi
je 0x77ec
callq 0x2220
testb %r15b, %r15b
je 0x88b4
cmpq $0x0, 0xd0(%r14)
je 0x78c4
leaq -0x818(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf145(%rip), %rsi      # 0x1695a
leaq 0xf152(%rip), %rdx      # 0x1696e
leaq -0x828(%rbp), %rdi
callq 0x139ec
leaq -0x7f8(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0xc8(%r14), %rsi
movq 0xd0(%r14), %rdx
addq %rsi, %rdx
leaq -0x808(%rbp), %rdi
callq 0x1394e
leaq -0x420(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x808(%rbp), %rdx
callq 0xc812
leaq -0xe0(%rbp), %rdi
leaq -0x828(%rbp), %rsi
leaq -0x420(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x420(%rbp), %rdi
callq 0xb2cc
movq -0x808(%rbp), %rdi
cmpq %r12, %rdi
je 0x78aa
callq 0x2220
movq -0x828(%rbp), %rdi
cmpq %rbx, %rdi
je 0x78bb
callq 0x2220
testb %r15b, %r15b
je 0x88c3
cmpq $0x0, 0x50(%r14)
je 0x7fc0
leaq -0x7d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xea7b(%rip), %rsi      # 0x1635c
leaq 0xea78(%rip), %rdx      # 0x16360
leaq -0x7e8(%rbp), %rdi
callq 0x139ec
leaq -0x7b8(%rbp), %r15
movq %r15, -0x10(%r15)
movq 0x48(%r14), %rsi
movq 0x50(%r14), %rdx
addq %rsi, %rdx
leaq -0x7c8(%rbp), %rdi
callq 0x1394e
leaq -0x408(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0x7c8(%rbp), %rdx
callq 0xc512
leaq -0xe0(%rbp), %rdi
leaq -0x7e8(%rbp), %rsi
leaq -0x408(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r12d
leaq -0x408(%rbp), %rdi
callq 0xb2cc
movq -0x7c8(%rbp), %rdi
cmpq %r15, %rdi
je 0x796f
callq 0x2220
movq -0x7e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7980
callq 0x2220
leaq 0x48(%r14), %r15
testb %r12b, %r12b
je 0x88d2
leaq -0xa88(%rbp), %rdi
movl $0x3, %ecx
movq %r15, %rsi
xorl %edx, %edx
callq 0x2270
movslq 0x128(%r14), %rcx
leaq -0xa68(%rbp), %rdi
movl $0x3, %edx
movq %r15, %rsi
callq 0x2270
leaq -0x50(%rbp), %rdi
leaq -0xe0(%rbp), %rsi
leaq -0xa88(%rbp), %rdx
leaq -0xa68(%rbp), %rcx
xorl %r8d, %r8d
callq 0xc668
leaq -0xa58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x79f4
callq 0x2220
leaq -0xa78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7a09
callq 0x2220
xorps %xmm0, %xmm0
leaq -0x100(%rbp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq -0x50(%rbp), %rsi
callq 0xc7c6
leaq -0x90(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xc484
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
movw $0x40, (%r15)
movq $0x2, -0x8(%r15)
movb $0x0, 0x2(%r15)
movq -0x90(%rbp), %rdi
movl $0x2, %edx
movq %r15, %rsi
callq 0x20d0
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x7a77
callq 0x2220
leaq -0x798(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfb7b(%rip), %rsi      # 0x17604
leaq 0xfb98(%rip), %rdx      # 0x17628
leaq -0x7a8(%rbp), %rdi
callq 0x139ec
leaq -0x3f0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x7a8(%rbp), %rsi
leaq -0x3f0(%rbp), %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r12d
leaq -0x3f0(%rbp), %rdi
callq 0xb2cc
movq -0x7a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7af1
callq 0x2220
testb %r12b, %r12b
je 0x88da
leaq -0x778(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfae4(%rip), %rsi      # 0x175f0
leaq 0xfb15(%rip), %rdx      # 0x17628
leaq -0x788(%rbp), %rdi
callq 0x139ec
leaq -0x3d8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x788(%rbp), %rsi
leaq -0x3d8(%rbp), %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r12d
leaq -0x3d8(%rbp), %rdi
callq 0xb2cc
movq -0x788(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7b74
callq 0x2220
testb %r12b, %r12b
je 0x88df
leaq -0x758(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfb7a(%rip), %rsi      # 0x17709
leaq 0xfb9c(%rip), %rdx      # 0x17732
leaq -0x768(%rbp), %rdi
callq 0x139ec
leaq -0x3c0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x768(%rbp), %rsi
leaq -0x3c0(%rbp), %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r12d
leaq -0x3c0(%rbp), %rdi
callq 0xb2cc
movq -0x768(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7bf7
callq 0x2220
testb %r12b, %r12b
je 0x88e4
leaq -0x738(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfbef(%rip), %rsi      # 0x17801
leaq 0xfbfc(%rip), %rdx      # 0x17815
leaq -0x748(%rbp), %rdi
callq 0x139ec
leaq -0x3a8(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x748(%rbp), %rsi
leaq -0x3a8(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r12d
leaq -0x3a8(%rbp), %rdi
callq 0xb2cc
movq -0x748(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7c77
callq 0x2220
testb %r12b, %r12b
je 0x88e9
xorps %xmm0, %xmm0
movaps %xmm0, -0x160(%rbp)
movq $0x0, -0x150(%rbp)
leaq -0x718(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1070b(%rip), %rdx     # 0x183b2
leaq -0x728(%rbp), %rdi
movq %rdx, %rsi
callq 0x139ec
leaq -0x70(%rbp), %rdi
leaq -0x728(%rbp), %rsi
movl $0x1, %edx
movl $0x7, %ecx
callq 0x6c9a
leaq -0x160(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x13a8a
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x7cee
callq 0x2220
movq -0x728(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7cff
callq 0x2220
movq -0x160(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x20d0
leaq -0x6f8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xeb8d(%rip), %rsi      # 0x168b2
leaq 0xeb8e(%rip), %rdx      # 0x168ba
leaq -0x708(%rbp), %rdi
callq 0x139ec
leaq -0x70(%rbp), %rdi
leaq -0x708(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
movq -0x160(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x20d0
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x7d6e
callq 0x2220
movq -0x708(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7d7f
callq 0x2220
leaq -0x6d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfb31(%rip), %rsi      # 0x178c2
leaq 0xfb41(%rip), %rdx      # 0x178d9
leaq -0x6e8(%rbp), %rdi
callq 0x139ec
leaq -0x390(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x6e8(%rbp), %rsi
leaq -0x390(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r12d
leaq -0x390(%rbp), %rdi
callq 0xb2cc
movq -0x6e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7df6
callq 0x2220
testb %r12b, %r12b
je 0x88ee
xorps %xmm0, %xmm0
movaps %xmm0, -0x140(%rbp)
movq $0x0, -0x130(%rbp)
leaq -0x6b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1058c(%rip), %rdx     # 0x183b2
leaq -0x6c8(%rbp), %rdi
movq %rdx, %rsi
callq 0x139ec
leaq -0x70(%rbp), %rdi
leaq -0x6c8(%rbp), %rsi
movl $0x1, %edx
movl $0x4, %ecx
callq 0x6c9a
leaq -0x140(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x13a8a
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x7e6d
callq 0x2220
movq -0x6c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7e7e
callq 0x2220
movq -0x140(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x20d0
leaq -0x698(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xea0e(%rip), %rsi      # 0x168b2
leaq 0xea0f(%rip), %rdx      # 0x168ba
leaq -0x6a8(%rbp), %rdi
callq 0x139ec
leaq -0x70(%rbp), %rdi
leaq -0x6a8(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
movq -0x140(%rbp), %rdi
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
callq 0x20d0
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x7eed
callq 0x2220
movq -0x6a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7efe
callq 0x2220
leaq -0x678(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xfa77(%rip), %rsi      # 0x17987
leaq 0xfa87(%rip), %rdx      # 0x1799e
leaq -0x688(%rbp), %rdi
callq 0x139ec
leaq -0x378(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x688(%rbp), %rsi
leaq -0x378(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x378(%rbp), %rdi
callq 0xb2cc
movq -0x688(%rbp), %rdi
cmpq %rbx, %rdi
je 0x7f75
callq 0x2220
testb %r15b, %r15b
je 0x88f3
leaq -0x140(%rbp), %rdi
callq 0xb2cc
leaq -0x160(%rbp), %rdi
callq 0xb2cc
leaq -0x90(%rbp), %rdi
callq 0xb2cc
leaq -0x100(%rbp), %rdi
callq 0xb2cc
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x7fc0
callq 0x2220
xorps %xmm0, %xmm0
movaps %xmm0, -0x70(%rbp)
movq $0x0, -0x60(%rbp)
leaq -0x658(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf386(%rip), %rsi      # 0x17367
leaq 0xf385(%rip), %rdx      # 0x1736d
leaq -0x668(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x668(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x70(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8027
callq 0x2220
movq -0x668(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8038
callq 0x2220
movsbl 0x128(%r14), %esi
movq -0x70(%rbp), %rdi
callq 0x2200
leaq -0x638(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xe9c9(%rip), %rsi      # 0x16a24
leaq 0xe9d5(%rip), %rdx      # 0x16a37
leaq -0x648(%rbp), %rdi
callq 0x139ec
leaq -0x360(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x648(%rbp), %rsi
leaq -0x360(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r15d
leaq -0x360(%rbp), %rdi
callq 0xb2cc
movq -0x648(%rbp), %rdi
cmpq %rbx, %rdi
je 0x80bd
callq 0x2220
testb %r15b, %r15b
je 0x8871
xorps %xmm0, %xmm0
leaq -0x100(%rbp), %rdi
movaps %xmm0, (%rdi)
movq $0x0, 0x10(%rdi)
leaq -0x50(%rbp), %rsi
leaq -0x40(%rbp), %rbx
movq %rbx, (%rsi)
movw $0x1, 0x10(%rsi)
movq $0x1, 0x8(%rsi)
callq 0x13a8a
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8107
callq 0x2220
movq -0x100(%rbp), %rdi
movq 0x108(%r14), %rsi
movq 0x110(%r14), %rdx
callq 0x20d0
leaq -0x618(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xe302(%rip), %rsi      # 0x16435
leaq 0xe310(%rip), %rdx      # 0x1644a
leaq -0x628(%rbp), %rdi
callq 0x139ec
leaq -0x348(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x628(%rbp), %rsi
leaq -0x348(%rbp), %rdx
movl $0x1, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x348(%rbp), %rdi
callq 0xb2cc
movq -0x628(%rbp), %rdi
cmpq %rbx, %rdi
je 0x819b
callq 0x2220
testb %r14b, %r14b
je 0x8876
leaq -0x5f8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xe9c5(%rip), %rsi      # 0x16b7b
leaq 0xe9e0(%rip), %rdx      # 0x16b9d
leaq -0x608(%rbp), %rdi
callq 0x139ec
leaq -0x210(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0xf1d2(%rip), %rsi      # 0x173ad
leaq 0xf1cd(%rip), %rdx      # 0x173af
leaq -0x220(%rbp), %rdi
callq 0x139ec
movq -0x220(%rbp), %rsi
movq -0x218(%rbp), %rdx
leaq -0x330(%rbp), %rdi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x608(%rbp), %rsi
leaq -0x330(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x330(%rbp), %rdi
callq 0xb2cc
movq -0x220(%rbp), %rdi
cmpq %r15, %rdi
je 0x824c
callq 0x2220
movq -0x608(%rbp), %rdi
cmpq %rbx, %rdi
je 0x825d
callq 0x2220
testb %r14b, %r14b
je 0x887b
leaq -0x5d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf7d5(%rip), %rsi      # 0x17a4d
leaq 0xf7dd(%rip), %rdx      # 0x17a5c
leaq -0x5e8(%rbp), %rdi
callq 0x139ec
leaq -0x1f0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x10115(%rip), %rdx     # 0x183b2
leaq -0x200(%rbp), %rdi
movq %rdx, %rsi
callq 0x139ec
movq -0x200(%rbp), %rsi
movq -0x1f8(%rbp), %rdx
leaq -0x318(%rbp), %rdi
movl $0x1, %ecx
movl $0xc, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x5e8(%rbp), %rsi
leaq -0x318(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x318(%rbp), %rdi
callq 0xb2cc
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0x8310
callq 0x2220
movq -0x5e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8321
callq 0x2220
testb %r14b, %r14b
je 0x8880
leaq -0x5b8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xe9e7(%rip), %rsi      # 0x16d23
leaq 0xe9f8(%rip), %rdx      # 0x16d3b
leaq -0x5c8(%rbp), %rdi
callq 0x139ec
leaq -0x1d0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x10051(%rip), %rdx     # 0x183b2
leaq -0x1e0(%rbp), %rdi
movq %rdx, %rsi
callq 0x139ec
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdx
leaq -0x300(%rbp), %rdi
movl $0x1, %ecx
movl $0x4, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x5c8(%rbp), %rsi
leaq -0x300(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x300(%rbp), %rdi
callq 0xb2cc
movq -0x1e0(%rbp), %rdi
cmpq %r15, %rdi
je 0x83d4
callq 0x2220
movq -0x5c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x83e5
callq 0x2220
testb %r14b, %r14b
je 0x8885
leaq -0x598(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xe9e9(%rip), %rsi      # 0x16de9
leaq 0xe9fa(%rip), %rdx      # 0x16e01
leaq -0x5a8(%rbp), %rdi
callq 0x139ec
leaq -0x1b0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0xff8d(%rip), %rdx      # 0x183b2
leaq -0x1c0(%rbp), %rdi
movq %rdx, %rsi
callq 0x139ec
movq -0x1c0(%rbp), %rsi
movq -0x1b8(%rbp), %rdx
leaq -0x2e8(%rbp), %rdi
movl $0x1, %ecx
movl $0x4, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x5a8(%rbp), %rsi
leaq -0x2e8(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x2e8(%rbp), %rdi
callq 0xb2cc
movq -0x1c0(%rbp), %rdi
cmpq %r15, %rdi
je 0x8498
callq 0x2220
movq -0x5a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x84a9
callq 0x2220
testb %r14b, %r14b
je 0x888a
xorps %xmm0, %xmm0
movaps %xmm0, -0x90(%rbp)
movq $0x0, -0x80(%rbp)
leaq -0x578(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf796(%rip), %rsi      # 0x17c6c
leaq 0xf7b3(%rip), %rdx      # 0x17c90
leaq -0x588(%rbp), %rdi
callq 0x139ec
leaq -0x40(%rbp), %r14
leaq -0x50(%rbp), %rdi
leaq -0x588(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x851f
callq 0x2220
movq -0x588(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8530
callq 0x2220
leaq -0x558(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf72a(%rip), %rsi      # 0x17c6c
leaq 0xf747(%rip), %rdx      # 0x17c90
leaq -0x568(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x568(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x8587
callq 0x2220
movq -0x568(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8598
callq 0x2220
leaq -0x538(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf6c2(%rip), %rsi      # 0x17c6c
leaq 0xf6df(%rip), %rdx      # 0x17c90
leaq -0x548(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x548(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x85ef
callq 0x2220
movq -0x548(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8600
callq 0x2220
leaq -0x518(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf65a(%rip), %rsi      # 0x17c6c
leaq 0xf677(%rip), %rdx      # 0x17c90
leaq -0x528(%rbp), %rdi
callq 0x139ec
leaq -0x50(%rbp), %rdi
leaq -0x528(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x6c9a
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x13a8a
movq -0x50(%rbp), %rdi
cmpq %r14, %rdi
je 0x8657
callq 0x2220
movq -0x528(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8668
callq 0x2220
leaq -0x4f8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xe835(%rip), %rsi      # 0x16eaf
leaq 0xe842(%rip), %rdx      # 0x16ec3
leaq -0x508(%rbp), %rdi
callq 0x139ec
leaq -0x2d0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0xc484
leaq -0xe0(%rbp), %rdi
leaq -0x508(%rbp), %rsi
leaq -0x2d0(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x2d0(%rbp), %rdi
callq 0xb2cc
movq -0x508(%rbp), %rdi
cmpq %rbx, %rdi
je 0x86df
callq 0x2220
testb %r14b, %r14b
je 0x888f
leaq -0x4d8(%rbp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0xf63f(%rip), %rsi      # 0x17d39
leaq 0xf64a(%rip), %rdx      # 0x17d4b
leaq -0x4e8(%rbp), %rdi
callq 0x139ec
leaq -0x190(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0xf62d(%rip), %rsi      # 0x17d4c
leaq 0xf63c(%rip), %rdx      # 0x17d62
leaq -0x1a0(%rbp), %rdi
callq 0x139ec
movq -0x1a0(%rbp), %rsi
movq -0x198(%rbp), %rdx
leaq -0x2b8(%rbp), %rdi
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0x6bd5
leaq -0xe0(%rbp), %rdi
leaq -0x4e8(%rbp), %rsi
leaq -0x2b8(%rbp), %rdx
xorl %ecx, %ecx
xorl %r8d, %r8d
callq 0xcb5c
movl %eax, %r14d
leaq -0x2b8(%rbp), %rdi
callq 0xb2cc
movq -0x1a0(%rbp), %rdi
cmpq %r15, %rdi
je 0x8790
callq 0x2220
movq -0x4e8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x87a1
callq 0x2220
testb %r14b, %r14b
je 0x8894
leaq -0x90(%rbp), %rdi
callq 0xb2cc
leaq -0x100(%rbp), %rdi
callq 0xb2cc
leaq -0x70(%rbp), %rdi
callq 0xb2cc
leaq -0x180(%rbp), %rdi
callq 0xb2cc
leaq -0x120(%rbp), %rdi
callq 0xb2cc
jmp 0x87f1
leaq 0x10677(%rip), %rdi     # 0x18e63
callq 0x23c0
leaq -0xc8(%rbp), %rbx
leaq -0xa8(%rbp), %r14
movq -0x280(%rbp), %rdi
cmpq %r13, %rdi
je 0x8810
callq 0x2220
movq -0xb8(%rbp), %rdi
cmpq %r14, %rdi
je 0x8821
callq 0x2220
movq -0xd8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8832
callq 0x2220
leaq -0xe0(%rbp), %rdi
callq 0xb442
leaq -0x2a0(%rbp), %rdi
callq 0xb2cc
movb -0x29(%rbp), %al
addq $0xa68, %rsp            # imm = 0xA68
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
callq 0x377c
callq 0x2fe9
callq 0x304d
callq 0x345c
callq 0x34c0
callq 0x3524
callq 0x3588
callq 0x35ec
callq 0x3650
callq 0x36b4
callq 0x3718
addq $0xe8, %r14
movq %r14, %rdi
callq 0x2f07
addq $0x68, %r14
movq %r14, %rdi
callq 0x2f78
addq $0xa8, %r14
movq %r14, %rdi
callq 0x30b1
addq $0xc8, %r14
movq %r14, %rdi
callq 0x3122
movq %r15, %rdi
callq 0x3193
callq 0x3204
callq 0x3268
callq 0x32cc
callq 0x3330
callq 0x3394
callq 0x33f8
movq %rax, %r14
leaq -0x378(%rbp), %rdi
callq 0xb2cc
jmp 0x890c
movq %rax, %r14
movq -0x688(%rbp), %rdi
jmp 0x8957
jmp 0x8963
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x892d
callq 0x2220
jmp 0x892d
movq %rax, %r14
movq -0x6a8(%rbp), %rdi
jmp 0x8957
jmp 0x8963
jmp 0x8963
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x8950
callq 0x2220
jmp 0x8950
movq %rax, %r14
movq -0x6c8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8966
callq 0x2220
jmp 0x8966
movq %rax, %r14
leaq -0x140(%rbp), %rdi
callq 0xb2cc
jmp 0x89e2
movq %rax, %r14
leaq -0x390(%rbp), %rdi
callq 0xb2cc
jmp 0x8988
movq %rax, %r14
movq -0x6e8(%rbp), %rdi
jmp 0x89d3
jmp 0x89df
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x89a9
callq 0x2220
jmp 0x89a9
movq %rax, %r14
movq -0x708(%rbp), %rdi
jmp 0x89d3
jmp 0x89df
jmp 0x89df
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x89cc
callq 0x2220
jmp 0x89cc
movq %rax, %r14
movq -0x728(%rbp), %rdi
cmpq %rbx, %rdi
je 0x89e2
callq 0x2220
jmp 0x89e2
movq %rax, %r14
leaq -0x160(%rbp), %rdi
callq 0xb2cc
leaq -0x90(%rbp), %rdi
callq 0xb2cc
leaq -0x100(%rbp), %rdi
callq 0xb2cc
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
jne 0x9074
jmp 0x9079
movq %rax, %r14
leaq -0x3a8(%rbp), %rdi
callq 0xb2cc
jmp 0x8a30
movq %rax, %r14
movq -0x748(%rbp), %rdi
jmp 0x8a94
jmp 0x8aa7
movq %rax, %r14
leaq -0x3c0(%rbp), %rdi
callq 0xb2cc
jmp 0x8a4f
movq %rax, %r14
movq -0x768(%rbp), %rdi
jmp 0x8a94
jmp 0x8aa7
movq %rax, %r14
leaq -0x3d8(%rbp), %rdi
callq 0xb2cc
jmp 0x8a6e
movq %rax, %r14
movq -0x788(%rbp), %rdi
jmp 0x8a94
jmp 0x8aa7
movq %rax, %r14
leaq -0x3f0(%rbp), %rdi
callq 0xb2cc
jmp 0x8a8d
movq %rax, %r14
movq -0x7a8(%rbp), %rdi
cmpq %rbx, %rdi
je 0x89ee
callq 0x2220
jmp 0x89ee
movq %rax, %r14
jmp 0x89ee
movq %rax, %r14
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x89ee
jmp 0x8a9d
jmp 0x8ac3
movq %rax, %r14
jmp 0x89fa
movq %rax, %r14
leaq -0xa58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8ae8
callq 0x2220
jmp 0x8ae8
movq %rax, %r14
leaq -0xa78(%rbp), %rax
movq -0x10(%rax), %rdi
jmp 0x8a0e
jmp 0x8f08
movq %rax, %r14
leaq -0x408(%rbp), %rdi
callq 0xb2cc
jmp 0x8b11
movq %rax, %r14
movq -0x7c8(%rbp), %rdi
cmpq %r15, %rdi
je 0x8b27
callq 0x2220
jmp 0x8b27
movq %rax, %r14
movq -0x7e8(%rbp), %rdi
jmp 0x8ef0
jmp 0x8f08
movq %rax, %r14
leaq -0x420(%rbp), %rdi
callq 0xb2cc
jmp 0x8b4c
movq %rax, %r14
movq -0x808(%rbp), %rdi
cmpq %r12, %rdi
je 0x8b62
callq 0x2220
jmp 0x8b62
movq %rax, %r14
movq -0x828(%rbp), %rdi
jmp 0x8ef0
movq %rax, %r14
leaq -0x438(%rbp), %rdi
callq 0xb2cc
jmp 0x9046
jmp 0x8f08
movq %rax, %r14
jmp 0x9057
movq %rax, %r14
jmp 0x9068
jmp 0x8f08
movq %rax, %r14
leaq -0x4b0(%rbp), %rdi
callq 0xb2cc
jmp 0x8bb0
movq %rax, %r14
movq -0x9c8(%rbp), %rdi
cmpq %r12, %rdi
je 0x8bc6
callq 0x2220
jmp 0x8bc6
movq %rax, %r14
movq -0x9e8(%rbp), %rdi
jmp 0x90d3
jmp 0x90e1
movq %rax, %r14
leaq -0x4c8(%rbp), %rdi
callq 0xb2cc
jmp 0x8beb
movq %rax, %r14
movq -0xa08(%rbp), %rdi
cmpq %r12, %rdi
je 0x8c01
callq 0x2220
jmp 0x8c01
movq %rax, %r14
movq -0xa28(%rbp), %rdi
jmp 0x90d3
jmp 0x90e1
movq %rax, %r14
leaq -0x2b8(%rbp), %rdi
callq 0xb2cc
jmp 0x8c26
movq %rax, %r14
movq -0x1a0(%rbp), %rdi
cmpq %r15, %rdi
je 0x8c3c
callq 0x2220
jmp 0x8c3c
movq %rax, %r14
movq -0x4e8(%rbp), %rdi
jmp 0x8cfe
jmp 0x8d0a
movq %rax, %r14
leaq -0x2d0(%rbp), %rdi
callq 0xb2cc
jmp 0x8c61
movq %rax, %r14
movq -0x508(%rbp), %rdi
jmp 0x8cfe
jmp 0x8d0a
movq %r14, %rcx
movq %rax, %r14
movq -0x50(%rbp), %rdi
cmpq %rcx, %rdi
je 0x8c8b
callq 0x2220
jmp 0x8c8b
movq %rax, %r14
movq -0x528(%rbp), %rdi
jmp 0x8cfe
jmp 0x8d0a
movq %r14, %rcx
movq %rax, %r14
movq -0x50(%rbp), %rdi
cmpq %rcx, %rdi
je 0x8caf
callq 0x2220
jmp 0x8caf
movq %rax, %r14
movq -0x548(%rbp), %rdi
jmp 0x8cfe
jmp 0x8d0a
movq %r14, %rcx
movq %rax, %r14
movq -0x50(%rbp), %rdi
cmpq %rcx, %rdi
je 0x8cd3
callq 0x2220
jmp 0x8cd3
movq %rax, %r14
movq -0x568(%rbp), %rdi
jmp 0x8cfe
jmp 0x8d0a
movq %r14, %rcx
movq %rax, %r14
movq -0x50(%rbp), %rdi
cmpq %rcx, %rdi
je 0x8cf7
callq 0x2220
jmp 0x8cf7
movq %rax, %r14
movq -0x588(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8d0d
callq 0x2220
jmp 0x8d0d
movq %rax, %r14
leaq -0x90(%rbp), %rdi
callq 0xb2cc
jmp 0x8e33
movq %rax, %r14
leaq -0x2e8(%rbp), %rdi
callq 0xb2cc
jmp 0x8d32
movq %rax, %r14
movq -0x1c0(%rbp), %rdi
cmpq %r15, %rdi
je 0x8d48
callq 0x2220
jmp 0x8d48
movq %rax, %r14
movq -0x5a8(%rbp), %rdi
jmp 0x8e29
jmp 0x8e1d
movq %rax, %r14
leaq -0x300(%rbp), %rdi
callq 0xb2cc
jmp 0x8d6d
movq %rax, %r14
movq -0x1e0(%rbp), %rdi
cmpq %r15, %rdi
je 0x8d83
callq 0x2220
jmp 0x8d83
movq %rax, %r14
movq -0x5c8(%rbp), %rdi
jmp 0x8e29
jmp 0x8e1d
movq %rax, %r14
leaq -0x318(%rbp), %rdi
callq 0xb2cc
jmp 0x8da8
movq %rax, %r14
movq -0x200(%rbp), %rdi
cmpq %r15, %rdi
je 0x8dbe
callq 0x2220
jmp 0x8dbe
movq %rax, %r14
movq -0x5e8(%rbp), %rdi
jmp 0x8e29
jmp 0x8e1d
movq %rax, %r14
leaq -0x330(%rbp), %rdi
callq 0xb2cc
jmp 0x8ddd
movq %rax, %r14
movq -0x220(%rbp), %rdi
cmpq %r15, %rdi
je 0x8df3
callq 0x2220
jmp 0x8df3
movq %rax, %r14
movq -0x608(%rbp), %rdi
jmp 0x8e29
jmp 0x8e1d
movq %rax, %r14
leaq -0x348(%rbp), %rdi
callq 0xb2cc
jmp 0x8e12
movq %rax, %r14
movq -0x628(%rbp), %rdi
jmp 0x8e29
jmp 0x8e1d
movq %rax, %r14
jmp 0x8e33
movq %rax, %r14
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8e33
callq 0x2220
leaq -0x100(%rbp), %rdi
callq 0xb2cc
leaq -0x70(%rbp), %rdi
callq 0xb2cc
jmp 0x9079
movq %rax, %r14
leaq -0x360(%rbp), %rdi
callq 0xb2cc
jmp 0x8e61
movq %rax, %r14
movq -0x648(%rbp), %rdi
jmp 0x8e8f
jmp 0x8e9b
jmp 0x8e9b
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8e88
callq 0x2220
jmp 0x8e88
movq %rax, %r14
movq -0x668(%rbp), %rdi
cmpq %rbx, %rdi
je 0x8e3f
callq 0x2220
jmp 0x8e3f
movq %rax, %r14
jmp 0x8e3f
movq %rax, %r14
leaq -0x450(%rbp), %rdi
callq 0xb2cc
jmp 0x8eb4
movq %rax, %r14
movq -0x240(%rbp), %rdi
cmpq %r12, %rdi
je 0x8eca
callq 0x2220
jmp 0x8eca
movq %rax, %r14
movq -0x8a8(%rbp), %rdi
jmp 0x8ef0
jmp 0x8f08
movq %rax, %r14
leaq -0x468(%rbp), %rdi
callq 0xb2cc
jmp 0x8ee9
movq %rax, %r14
movq -0x8c8(%rbp), %rdi
cmpq %rbx, %rdi
jne 0x9074
jmp 0x9079
jmp 0x8f08
movq %rax, %r14
jmp 0x8a06
movq %rax, %r14
jmp 0x9079
movq %rax, %r14
leaq -0x480(%rbp), %rdi
callq 0xb2cc
jmp 0x8f24
movq %rax, %r14
movq -0x8e8(%rbp), %rdi
jmp 0x8ff0
jmp 0x9003
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8f4f
callq 0x2220
jmp 0x8f4f
movq %rax, %r14
movq -0x908(%rbp), %rdi
jmp 0x8ff0
jmp 0x9003
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8f7a
callq 0x2220
jmp 0x8f7a
movq %rax, %r14
movq -0x928(%rbp), %rdi
jmp 0x8ff0
jmp 0x9003
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8f9f
callq 0x2220
jmp 0x8f9f
movq %rax, %r14
movq -0x948(%rbp), %rdi
jmp 0x8ff0
jmp 0x9003
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8fc4
callq 0x2220
jmp 0x8fc4
movq %rax, %r14
movq -0x968(%rbp), %rdi
jmp 0x8ff0
jmp 0x9003
movq %rax, %r14
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x8fe9
callq 0x2220
jmp 0x8fe9
movq %rax, %r14
movq -0x988(%rbp), %rdi
cmpq %rbx, %rdi
je 0x9085
callq 0x2220
jmp 0x9085
movq %rax, %r14
jmp 0x9085
movq %rax, %r14
leaq -0x498(%rbp), %rdi
callq 0xb2cc
jmp 0x901c
movq %rax, %r14
movq -0x260(%rbp), %rdi
cmpq %r15, %rdi
je 0x9032
callq 0x2220
jmp 0x9032
movq %rax, %r14
movq -0x9a8(%rbp), %rdi
jmp 0x90d3
jmp 0x90e1
movq %rax, %r14
movq -0x848(%rbp), %rdi
cmpq %r13, %rdi
je 0x9057
callq 0x2220
movq -0x868(%rbp), %rdi
cmpq %rbx, %rdi
je 0x9068
callq 0x2220
movq -0x888(%rbp), %rdi
cmpq %r12, %rdi
je 0x9079
callq 0x2220
leaq -0x180(%rbp), %rdi
callq 0xb2cc
leaq -0x120(%rbp), %rdi
callq 0xb2cc
movq -0x280(%rbp), %rdi
leaq -0x270(%rbp), %rax
cmpq %rax, %rdi
je 0x90a9
callq 0x2220
leaq -0xe0(%rbp), %rdi
callq 0xbefc
leaq -0x2a0(%rbp), %rdi
callq 0xb2cc
movq %r14, %rdi
callq 0x2400
movq %rax, %r14
movq -0xa48(%rbp), %rdi
cmpq %rbx, %rdi
je 0x9091
callq 0x2220
jmp 0x9091
jmp 0x90e1
movq %rax, %r14
jmp 0x9091