// File: /workspace/github_cpp_makefile_star2_O2/fffrankkk[P]XmlCode/src/ClassDetail.cpp
// Function: CClassDetail::GenerateParse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
vector<string> CClassDetail::GenerateParse(const string& strBase)
{
    CClassCont CContent;
    vector<string> vecLines;
    vecLines.push_back(CContent.StrGetCommentStart());
    if (strBase.empty()) {
        vecLines.push_back(" * parse from XML file");
    } else {
        vecLines.push_back(" * parse from XML node");
    }
    vecLines.push_back(" * Parameters:");
    if (strBase.empty()) {
        vecLines.push_back(" * pszFile: XML file to parse");
    } else {
        vecLines.push_back(" * pCNode: XML node to parse");
    }
    vecLines.push_back(" * Return-Value: success return true, or else return false");
    vecLines.push_back(CContent.StrGetCommentEnd());
    if (strBase.empty()) {
        vecLines.push_back(string("bool ") + string("C") + NUtility::First2Up(m_strName) + "::ParseFromXML(const char* pszFile)");
    } else {
        vecLines.push_back(string("bool ") + strBase + "::" + string("C") + NUtility::First2Up(m_strName) + "::ParseFromNode(CXMLNode* pCNode)");
    }
    vecLines.push_back("{");
    if (strBase.empty()) {
        vecLines.push_back("\tCXMLTree CXML;");
        vecLines.push_back("\tif(!CXML.Create(pszFile)) return false;");
        vecLines.push_back("");
        vecLines.push_back("\tCXMLNode* pCNode = CXML.GetRoot();");
        vecLines.push_back("\tif(pCNode == NULL) return false;");
        vecLines.push_back("");
    }
    if (!m_vecAttr.empty()) {
        vecLines.push_back(string("\tmap<string, string> mapAttribute = pCNode->GetAttribute();"));
        vecLines.push_back(string("\tfor (map<string, string>::iterator iterAttribute = mapAttribute.begin(); iterAttribute != mapAttribute.end(); ++iterAttribute) {"));
        bool bAttri = false;
        for (vector<CClassMember *>::iterator iterAttr = m_vecAttr.begin(); iterAttr != m_vecAttr.end(); ++iterAttr) {
            if (bAttri) {
                vecLines.erase(vecLines.begin() + vecLines.size() - 1);
                vecLines.push_back(string("\t\t} else if (iterAttribute->first == \"") + (*iterAttr)->GetAttrName() + "\") {");
            } else {
                vecLines.push_back(string("\t\tif (iterAttribute->first == \"") + (*iterAttr)->GetAttrName() + "\") {");
            }
            bAttri = true;
            vecLines.push_back(string("\t\t\tm_str") + NUtility::First2Up((*iterAttr)->GetName()) + " = iterAttribute->second;");
            vecLines.push_back(string("\t\t}"));
        }
        vecLines.push_back(string("\t}"));

    }
    if (!m_vecMem.empty() || !m_mapChildren.empty()) {

        vecLines.push_back(string("\tstd::vector<CXMLNode *> vecNodes = pCNode->GetChildren();"));
        vecLines.push_back("\tfor (std::vector<CXMLNode *>::iterator iterNode = vecNodes.begin(); iterNode != vecNodes.end(); ++iterNode) {");
        bool bMem = false;
        for (vector<CClassMember *>::iterator iterMember = m_vecMem.begin(); iterMember != m_vecMem.end(); ++iterMember) {
            string strLine = string("\t\t") + (bMem ? "} else if ": "if ");
            if (bMem) {
                vecLines.erase(vecLines.begin() + vecLines.size() - 1);
            }
            strLine += string("((*iterNode)->GetName() == \"" + (*iterMember)->GetName() + "\") {");
            vecLines.push_back(strLine);
            if ((*iterMember)->GetType() == "c") {
                vecLines.push_back(string("\t\t\tm_str") + NUtility::First2Up((*iterMember)->GetName()) + " = (*iterNode)->GetValue();");
            } else if ((*iterMember)->GetType() == "c+") {
                vecLines.push_back(string("\t\t\tm_vec") + NUtility::First2Up((*iterMember)->GetName()) + ".push_back((*iterNode)->GetValue());");
            }
            vecLines.push_back("\t\t}");
            bMem = true;
        }

        for (map<string, CClassDetail*>::iterator iterChild = m_mapChildren.begin(); iterChild != m_mapChildren.end(); ++iterChild) {
            string strLine = string("\t\t") + (bMem ? "} else if ": "if ");
            if (bMem) {
                vecLines.erase(vecLines.begin() + vecLines.size() - 1);
            }
            strLine += string("((*iterNode)->GetName() == \"" + iterChild->first + "\") {");
            vecLines.push_back(strLine);
            if (iterChild->second->GetType() == "s") {
                vecLines.push_back(string("\t\t\tm_C") + NUtility::First2Up(iterChild->first) + ".ParseFromNode(*iterNode);");
            } else if (iterChild->second->GetType() == "m") {
                vecLines.push_back(string("\t\t\tm_vec") + NUtility::First2Up(iterChild->first) + ".push_back(C" + NUtility::First2Up(iterChild->first) +  "());");
                vecLines.push_back(string("\t\t\tm_vec") + NUtility::First2Up(iterChild->first) + "[m_vec" + NUtility::First2Up(iterChild->first) +".size() - 1].ParseFromNode(*iterNode);");
            }
            bMem = true;
            vecLines.push_back("\t\t}");
        }
        vecLines.push_back("\t}");
    } else {
        vecLines.push_back("\tm_strValue = pCNode->GetValue();");
    }

    vecLines.push_back("\treturn true;");
    vecLines.push_back("}");
    return vecLines;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %rbx
leaq 0x130(%rsp), %r14
movq %r14, %rdi
callq 0x1082c
xorps %xmm0, %xmm0
movups %xmm0, (%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x10(%rsp), %rdi
movq %r14, %rsi
movq %rbx, 0x8(%rsp)
callq 0x149d8
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
cmpq $0x0, 0x8(%r15)
je 0xefb0
leaq 0x9797(%rip), %rsi      # 0x18727
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
jmp 0xefd5
leaq 0x9759(%rip), %rsi      # 0x18710
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x9758(%rip), %rsi      # 0x1873e
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
cmpq $0x0, 0x8(%r15)
je 0xf03c
leaq 0x974f(%rip), %rsi      # 0x1876b
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
jmp 0xf061
leaq 0x970a(%rip), %rsi      # 0x1874d
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x9716(%rip), %rsi      # 0x18788
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x10(%rsp), %rdi
leaq 0x130(%rsp), %rsi
callq 0x149fa
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
cmpq $0x0, 0x8(%r15)
je 0xf1fd
leaq 0x96ec(%rip), %rsi      # 0x187c3
leaq 0xd0(%rsp), %rdi
leaq 0x37(%rsp), %rdx
callq 0x5480
leaq 0xb0(%rsp), %rdi
leaq 0xd0(%rsp), %rsi
movq %r15, %rdx
callq 0x8a79
leaq 0x909d(%rip), %rdx      # 0x181a5
leaq 0x90(%rsp), %rdi
leaq 0xb0(%rsp), %rsi
callq 0x1046a
leaq 0x9244(%rip), %rsi      # 0x18368
leaq 0xf0(%rsp), %rdi
leaq 0x7f(%rsp), %rdx
callq 0x5480
leaq 0x58(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xf0(%rsp), %rdx
callq 0x8a12
leaq 0x8(%r12), %rsi
leaq 0x110(%rsp), %rdi
callq 0x7602
leaq 0x38(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x110(%rsp), %rdx
callq 0x8a12
leaq 0x966d(%rip), %rdx      # 0x187ed
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1046a
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x38(%rsp), %rdi
callq 0x4160
leaq 0x110(%rsp), %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
leaq 0xf0(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0xd0(%rsp), %rdi
jmp 0xf2dd
leaq 0x95bf(%rip), %rsi      # 0x187c3
leaq 0x90(%rsp), %rdi
leaq 0xf0(%rsp), %rdx
callq 0x5480
leaq 0x9148(%rip), %rsi      # 0x18368
leaq 0xb0(%rsp), %rdi
leaq 0x110(%rsp), %rdx
callq 0x5480
leaq 0x58(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0xb0(%rsp), %rdx
callq 0x8a12
leaq 0x8(%r12), %rsi
leaq 0xd0(%rsp), %rdi
callq 0x7602
leaq 0x38(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0xd0(%rsp), %rdx
callq 0x8a12
leaq 0x954a(%rip), %rdx      # 0x187c9
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x1046a
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x38(%rsp), %rdi
callq 0x4160
leaq 0xd0(%rsp), %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
callq 0x4160
leaq 0x968d(%rip), %rsi      # 0x18976
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
cmpq $0x0, 0x8(%r15)
jne 0xf436
leaq 0x94ec(%rip), %rsi      # 0x1880f
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x94cd(%rip), %rsi      # 0x1881f
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x9169(%rip), %rsi      # 0x184ea
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x9498(%rip), %rsi      # 0x18848
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x948d(%rip), %rsi      # 0x1886c
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x90dc(%rip), %rsi      # 0x184ea
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
movq 0x60(%r12), %rax
cmpq 0x68(%r12), %rax
movq %r12, 0x80(%rsp)
je 0xf6a5
leaq 0x9439(%rip), %rsi      # 0x1888e
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x9446(%rip), %rsi      # 0x188ca
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %r14
movq %r14, %rdi
callq 0x4160
movq 0x60(%r12), %rbx
xorl %eax, %eax
leaq 0x58(%rsp), %r12
leaq 0xb0(%rsp), %r13
leaq 0x90(%rsp), %rbp
leaq 0x38(%rsp), %r15
movq 0x80(%rsp), %rcx
cmpq 0x68(%rcx), %rbx
je 0xf66e
testb $0x1, %al
je 0xf548
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x20, %rsi
callq 0x1048a
movq %r12, %rdi
leaq 0x944a(%rip), %rsi      # 0x1894c
movq %r13, %rdx
callq 0x5480
movq (%rbx), %rsi
addq $0x48, %rsi
movq %rbp, %rdi
callq 0x4410
movq %r15, %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x8a12
movq %r14, %rdi
movq %r15, %rsi
leaq 0x943f(%rip), %rdx      # 0x18973
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x9722
jmp 0xf596
movq %r12, %rdi
leaq 0x9426(%rip), %rsi      # 0x18978
movq %r13, %rdx
callq 0x5480
movq (%rbx), %rsi
addq $0x48, %rsi
movq %rbp, %rdi
callq 0x4410
movq %r15, %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x8a12
movq %r14, %rdi
movq %r15, %rsi
leaq 0x93ef(%rip), %rdx      # 0x18973
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x9722
movq %r14, %rdi
callq 0x4160
movq %r15, %rdi
callq 0x4160
movq %rbp, %rdi
callq 0x4160
movq %r12, %rdi
callq 0x4160
movq %r12, %rdi
leaq 0x93d8(%rip), %rsi      # 0x18998
leaq 0xd0(%rsp), %rdx
callq 0x5480
movq (%rbx), %rsi
addq $0x8, %rsi
movq %r13, %rdi
callq 0x4410
movq %rbp, %rdi
movq %r13, %rsi
callq 0x7602
movq %r15, %rdi
movq %r12, %rsi
movq %rbp, %rdx
callq 0x8a12
movq %r14, %rdi
movq %r15, %rsi
leaq 0x939f(%rip), %rdx      # 0x189a1
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x9722
movq %r14, %rdi
callq 0x4160
movq %r15, %rdi
callq 0x4160
movq %rbp, %rdi
callq 0x4160
movq %r13, %rdi
callq 0x4160
movq %r12, %rdi
callq 0x4160
movq %r14, %rdi
leaq 0x9375(%rip), %rsi      # 0x189bb
movq %r15, %rdx
callq 0x5480
movq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0x9722
movq %r14, %rdi
callq 0x4160
addq $0x8, %rbx
movb $0x1, %al
jmp 0xf4d0
leaq 0x9347(%rip), %rsi      # 0x189bc
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
movq 0x80(%rsp), %r12
leaq 0x10(%rsp), %rdi
callq 0x4160
movq 0x48(%r12), %rax
cmpq 0x50(%r12), %rax
jne 0xf6e6
cmpq $0x0, 0xa0(%r12)
jne 0xf6e6
leaq 0x945a(%rip), %rsi      # 0x18b1d
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
jmp 0xfe77
leaq 0x92d2(%rip), %rsi      # 0x189bf
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x92de(%rip), %rsi      # 0x189fa
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %r15
movq %r15, %rdi
callq 0x4160
movq 0x48(%r12), %rcx
xorl %r14d, %r14d
leaq 0x38(%rsp), %r12
leaq 0xb0(%rsp), %rbp
movq 0x80(%rsp), %rax
movq %rcx, 0x88(%rsp)
cmpq 0x50(%rax), %rcx
je 0xfa5b
movq %r12, %rdi
leaq 0x8d68(%rip), %rsi      # 0x184e8
leaq 0x58(%rsp), %rdx
callq 0x5480
testb $0x1, %r14b
leaq 0x92db(%rip), %rdx      # 0x18a70
leaq 0x92cd(%rip), %rax      # 0x18a69
cmovneq %rax, %rdx
movq %r15, %rdi
movq %r12, %rsi
callq 0x1046a
movq %r12, %rdi
callq 0x4160
testb $0x1, %r14b
je 0xf7cb
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x20, %rsi
callq 0x1048a
movq 0x88(%rsp), %rax
movq (%rax), %rsi
addq $0x8, %rsi
leaq 0x90(%rsp), %r14
movq %r14, %rdi
callq 0x4410
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
leaq 0x927b(%rip), %rsi      # 0x18a74
movq %r14, %rdx
callq 0x10506
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x9165(%rip), %rdx      # 0x18973
callq 0x1046a
movq %r15, %rdi
movq %r12, %rsi
callq 0x4650
movq %r12, %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
movq %r14, %rdi
callq 0x4160
movq 0x8(%rsp), %rdi
movq %r15, %rsi
callq 0x1043e
movq %r15, %r14
movq 0x88(%rsp), %rax
movq (%rax), %rsi
addq $0x28, %rsi
movq %r12, %rdi
callq 0x4410
movq %r12, %rdi
leaq 0x924b(%rip), %rsi      # 0x18ab4
callq 0x10431
movl %eax, %r15d
movq %r12, %rdi
callq 0x4160
testb %r15b, %r15b
je 0xf927
leaq 0x90(%rsp), %rdi
leaq 0x9107(%rip), %rsi      # 0x18998
leaq 0xf0(%rsp), %rdx
callq 0x5480
movq 0x88(%rsp), %rax
movq (%rax), %rsi
addq $0x8, %rsi
leaq 0xd0(%rsp), %r13
movq %r13, %rdi
callq 0x4410
movq %r14, %r15
movq %rbp, %rdi
movq %r13, %rsi
callq 0x7602
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
leaq 0x90(%rsp), %rsi
movq %rbp, %rdx
callq 0x8a12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x91a1(%rip), %rdx      # 0x18a91
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x9722
movq %r12, %rdi
callq 0x4160
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
callq 0x4160
movq %rbp, %rdi
callq 0x4160
movq %r13, %rdi
jmp 0xfa06
movq 0x88(%rsp), %rax
movq (%rax), %rsi
addq $0x28, %rsi
movq %r12, %rdi
callq 0x4410
movq %r12, %rdi
leaq 0x8775(%rip), %rsi      # 0x180bd
callq 0x10431
movl %eax, %r15d
movq %r12, %rdi
callq 0x4160
testb %r15b, %r15b
movq %r14, %r15
leaq 0xd0(%rsp), %r14
leaq 0x58(%rsp), %rbx
je 0xfa18
leaq 0x90(%rsp), %rdi
leaq 0x912d(%rip), %rsi      # 0x18aad
leaq 0xf0(%rsp), %rdx
callq 0x5480
movq 0x88(%rsp), %rax
movq (%rax), %rsi
addq $0x8, %rsi
movq %r14, %rdi
callq 0x4410
movq %rbp, %rdi
movq %r14, %rsi
callq 0x7602
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
leaq 0x90(%rsp), %rsi
movq %rbp, %rdx
callq 0x8a12
movq %r12, %rdi
movq %rbx, %rsi
leaq 0x90e2(%rip), %rdx      # 0x18ab6
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x9722
movq %r12, %rdi
callq 0x4160
leaq 0x58(%rsp), %rbx
movq %rbx, %rdi
callq 0x4160
movq %rbp, %rdi
callq 0x4160
movq %r14, %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
callq 0x4160
movq %r12, %rdi
leaq 0x8f99(%rip), %rsi      # 0x189bb
movq %rbx, %rdx
callq 0x5480
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x9722
movq %r12, %rdi
callq 0x4160
movq %r15, %rdi
callq 0x4160
movq 0x88(%rsp), %rcx
addq $0x8, %rcx
movb $0x1, %r14b
jmp 0xf75c
movq 0x80(%rsp), %rax
movq 0x90(%rax), %r15
subq $-0x80, %rax
movq %rax, 0x80(%rsp)
leaq 0x38(%rsp), %r13
leaq 0x90(%rsp), %rbx
cmpq 0x80(%rsp), %r15
je 0xfe52
movq %r13, %rdi
leaq 0x8a4d(%rip), %rsi      # 0x184e8
leaq 0x58(%rsp), %rdx
callq 0x5480
testb $0x1, %r14b
leaq 0x8fc0(%rip), %rdx      # 0x18a70
leaq 0x8fb2(%rip), %rax      # 0x18a69
cmovneq %rax, %rdx
leaq 0x10(%rsp), %rdi
movq %r13, %rsi
callq 0x1046a
movq %r13, %rdi
callq 0x4160
testb $0x1, %r14b
je 0xfae8
movq 0x8(%rsp), %rdi
movq 0x8(%rdi), %rsi
addq $-0x20, %rsi
callq 0x1048a
leaq 0x20(%r15), %r14
leaq 0x58(%rsp), %r12
movq %r12, %rdi
leaq 0x8f79(%rip), %rsi      # 0x18a74
movq %r14, %rdx
callq 0x96ab
movq %r13, %rdi
movq %r12, %rsi
leaq 0x8e63(%rip), %rdx      # 0x18973
callq 0x1046a
leaq 0x10(%rsp), %r12
movq %r12, %rdi
movq %r13, %rsi
callq 0x4650
movq %r13, %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
movq 0x8(%rsp), %rdi
movq %r12, %rsi
callq 0x1043e
movq %rbx, %r12
movq 0x40(%r15), %rsi
addq $0x28, %rsi
movq %r13, %rdi
callq 0x4410
movq %r13, %rdi
leaq 0x84a9(%rip), %rsi      # 0x1800a
callq 0x10431
movl %eax, %ebx
movq %r13, %rdi
callq 0x4160
testb %bl, %bl
je 0xfc01
movq %r12, %rbx
movq %r12, %rdi
leaq 0x8f56(%rip), %rsi      # 0x18adb
leaq 0xd0(%rsp), %rdx
callq 0x5480
leaq 0xb0(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x7602
leaq 0x58(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x8a12
movq %r13, %rdi
movq %r14, %rsi
leaq 0x8f3d(%rip), %rdx      # 0x18b02
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x9722
movq %r13, %rdi
callq 0x4160
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
movq %rbx, %rdi
jmp 0xfe09
movq 0x40(%r15), %rsi
addq $0x28, %rsi
movq %r13, %rdi
callq 0x4410
movq %r13, %rdi
leaq 0x84a0(%rip), %rsi      # 0x180bb
callq 0x10431
movl %eax, %ebx
movq %r13, %rdi
callq 0x4160
testb %bl, %bl
movq %r12, %rbx
leaq 0x58(%rsp), %r12
je 0xfe0e
leaq 0xd0(%rsp), %rdi
leaq 0x8e64(%rip), %rsi      # 0x18aad
leaq 0x37(%rsp), %rdx
callq 0x5480
leaq 0xf0(%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rsi
callq 0x7602
leaq 0xb0(%rsp), %r12
movq %r12, %rdi
leaq 0xd0(%rsp), %rsi
movq %rbp, %rdx
callq 0x8a12
movq %rbx, %rdi
movq %r12, %rsi
leaq 0x8e54(%rip), %rdx      # 0x18ae2
callq 0x1046a
leaq 0x110(%rsp), %rbp
movq %rbp, %rdi
movq %r14, %rsi
callq 0x7602
leaq 0x58(%rsp), %r12
movq %r12, %rdi
movq %rbx, %rsi
movq %rbp, %rdx
callq 0x8a12
movq %r13, %rdi
movq %r12, %rsi
leaq 0x8e10(%rip), %rdx      # 0x18ad6
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x9722
movq %r13, %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
leaq 0x110(%rsp), %rdi
callq 0x4160
movq %rbx, %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0xf0(%rsp), %rbp
movq %rbp, %rdi
callq 0x4160
leaq 0xd0(%rsp), %r12
movq %r12, %rdi
callq 0x4160
movq %r12, %rdi
leaq 0x8d77(%rip), %rsi      # 0x18aad
leaq 0x37(%rsp), %rdx
callq 0x5480
movq %rbp, %rdi
movq %r14, %rsi
callq 0x7602
leaq 0xb0(%rsp), %r12
movq %r12, %rdi
leaq 0xd0(%rsp), %rsi
movq %rbp, %rdx
callq 0x8a12
movq %rbx, %rdi
movq %r12, %rsi
leaq 0x8d7c(%rip), %rdx      # 0x18aef
callq 0x1046a
leaq 0x110(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x7602
leaq 0x58(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x8a12
movq %r13, %rdi
movq %r14, %rsi
leaq 0x8d4b(%rip), %rdx      # 0x18af6
callq 0x1046a
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x9722
movq %r13, %rdi
callq 0x4160
leaq 0x58(%rsp), %r12
movq %r12, %rdi
callq 0x4160
leaq 0x110(%rsp), %rdi
callq 0x4160
movq %rbx, %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0xf0(%rsp), %rdi
callq 0x4160
leaq 0xd0(%rsp), %rdi
callq 0x4160
movq %r13, %rdi
leaq 0x8ba3(%rip), %rsi      # 0x189bb
movq %r12, %rdx
callq 0x5480
movq 0x8(%rsp), %rdi
movq %r13, %rsi
callq 0x9722
movq %r13, %rdi
callq 0x4160
leaq 0x10(%rsp), %rdi
callq 0x4160
movq %r15, %rdi
callq 0x41f0
movq %rax, %r15
movb $0x1, %r14b
jmp 0xfa83
leaq 0x8b63(%rip), %rsi      # 0x189bc
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x8cb7(%rip), %rsi      # 0x18b3f
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x8b06(%rip), %rsi      # 0x189bd
leaq 0x10(%rsp), %rdi
leaq 0x38(%rsp), %rdx
callq 0x5480
leaq 0x10(%rsp), %rsi
movq 0x8(%rsp), %rbx
movq %rbx, %rdi
callq 0x9722
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x130(%rsp), %rdi
callq 0x10b82
movq %rbx, %rax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x4160
jmp 0xff52
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
jmp 0xff61
movq %rax, %r14
leaq 0xd0(%rsp), %rdi
callq 0x4160
jmp 0xff73
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x4160
jmp 0xff82
movq %rax, %r14
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
jmp 0x10343
movq %rax, %r14
jmp 0xff8f
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10308
jmp 0x10312
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x4160
jmp 0x10012
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
jmp 0x10021
movq %rax, %r14
leaq 0x110(%rsp), %rdi
callq 0x4160
jmp 0x10033
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x4160
jmp 0x10042
movq %rax, %r14
leaq 0xf0(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0xd0(%rsp), %rdi
jmp 0x10343
movq %rax, %r14
jmp 0x1004f
movq %rax, %r14
jmp 0x1005c
movq %rax, %r14
jmp 0x10069
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x10308
jmp 0x10312
jmp 0x100e6
movq %rax, %r14
jmp 0x1013e
jmp 0x100ed
movq %rax, %r14
jmp 0x1014b
jmp 0x100f4
movq %rax, %r14
jmp 0x10158
jmp 0x100fb
movq %rax, %r14
jmp 0x10165
jmp 0x10308
jmp 0x10308
jmp 0x1010c
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
jmp 0x10120
jmp 0x1011d
movq %rax, %r14
leaq 0x58(%rsp), %rdi
callq 0x4160
jmp 0x10131
jmp 0x1012e
movq %rax, %r14
leaq 0x110(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0xf0(%rsp), %rdi
callq 0x4160
leaq 0xd0(%rsp), %rdi
jmp 0x102c5
jmp 0x101da
jmp 0x101e4
jmp 0x101d5
jmp 0x1029a
jmp 0x10308
jmp 0x101e9
jmp 0x10308
jmp 0x1029a
movq %rax, %r14
jmp 0x101aa
jmp 0x10308
movq %rax, %r14
jmp 0x101b4
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
jmp 0x102b8
jmp 0x10308
jmp 0x10308
jmp 0x10308
jmp 0x10308
movq %rax, %r14
jmp 0x1020d
movq %rax, %r14
jmp 0x101f6
jmp 0x1029a
movq %rax, %r14
jmp 0x10200
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0xd0(%rsp), %rdi
jmp 0x102b8
jmp 0x10312
jmp 0x10228
jmp 0x1022d
jmp 0x10312
movq %rax, %r14
jmp 0x1025a
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x4160
jmp 0x10250
jmp 0x10317
jmp 0x1024d
jmp 0x10312
jmp 0x10317
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
jmp 0x10339
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
jmp 0x10293
jmp 0x10308
jmp 0x10308
jmp 0x10308
jmp 0x102cc
jmp 0x10312
jmp 0x102dc
jmp 0x10308
movq %rax, %r14
leaq 0x58(%rsp), %rdi
jmp 0x102c5
movq %rax, %r14
jmp 0x102bd
movq %rax, %r14
jmp 0x102b3
jmp 0x10308
movq %rax, %r14
leaq 0x38(%rsp), %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
leaq 0x90(%rsp), %rdi
callq 0x4160
jmp 0x1030b
movq %rax, %r14
leaq 0x38(%rsp), %rdi
jmp 0x102c5
jmp 0x10308
jmp 0x10308
jmp 0x10312
movq %rax, %r14
leaq 0x38(%rsp), %rdi
jmp 0x10343
jmp 0x10308
movq %rax, %r14
jmp 0x102fa
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x4160
leaq 0x38(%rsp), %rdi
callq 0x4160
jmp 0x10324
jmp 0x10312
movq %rax, %r14
leaq 0x10(%rsp), %rdi
jmp 0x10343
movq %rax, %r14
jmp 0x10348
movq %rax, %r14
jmp 0x1033e
movq %rax, %r14
jmp 0x10331
movq %rax, %r14
leaq 0x90(%rsp), %rdi
callq 0x4160
leaq 0xb0(%rsp), %rdi
callq 0x4160
leaq 0x58(%rsp), %rdi
callq 0x4160
movq 0x8(%rsp), %rdi
callq 0x8ad0
leaq 0x130(%rsp), %rdi
callq 0x10b82
movq %r14, %rdi
callq 0x45c0
nop