// File: /workspace/github_cpp_makefile_star2_O2/FreeSlave[P]def2fgd/src/defreader.cpp
// Function: readDefFile(std::istream&)
std::vector<Entity> readDefFile(std::istream& stream)
{
    std::vector<Entity> toReturn;

    bool inKeys = false;
    bool shouldPush = false;
    size_t lineNum = 0;
    std::string line;

    Entity entity;

    while(getline(stream, line))
    {
        stripRight(line);
        lineNum++;

        if (line.empty()) {
            continue;
        }

        if (shouldPush) {
            toReturn.push_back(entity);
            entity = Entity();
            inKeys = false;
            shouldPush = false;
        }

        if (inKeys) {
            if (line.size() > 1)
            {
                if (line[0] == '*' && line[1] == '/') {
                    shouldPush = true;
                } else if (line[line.size()-2] == '*' && line[line.size()-1] == '/') {
                    line.resize(line.size()-2);
                    shouldPush = true;
                }
            }
        }

        std::string::iterator it = line.begin();
        std::string::iterator begin = line.begin();
        std::string::iterator end = line.end();
        std::string::iterator start = it;


        if (inKeys) {
            if (isalpha(line[0]) || line[0] == '_' || line[0] == '\"')
            {
                if (it != end && *it == '\"') {
                    it++;
                }

                start = it;

                std::string keyname;
                if (*begin == '\"') {
                    while(it != end && *it != '\"') {
                        it++;
                    }
                    if (it == end) {
                        throw DefReadError(translate("Expected pair quote"), lineNum, it-begin);
                    } else {
                        keyname = std::string(start, it);
                        it++;
                    }
                } else {
                    it = skipAlpha(it, end);
                    keyname = std::string(start, it);
                }

                it = skipSpaces(it, end);
                std::string* found = std::find(entity.spawnflags, entity.spawnflags+Entity::SpawnFlagNum, keyname);
                if (found != entity.spawnflags+Entity::SpawnFlagNum) {

                    if (it != end && *it == ':') {
                        it++;
                        it = skipSpaces(it, end);
                    }

                    entity.flagsdescriptions[found-entity.spawnflags] = withoutQuotes(std::string(it, end));
                    continue;
                }

                if (keyname == "model" && *it == '=')
                {
                    it++;
                    if (*it == '"') {
                        it++;
                        start = it;
                        while(it != end && *it != '"') {
                            it++;
                        }
                        std::string modelname(start, it);
                        entity.model = modelname;
                    }
                }
                else
                {
                    if ((it == end  || *it != ':') && *begin != '\"' )
                    {
                        start = it;
                        it = skipAlpha(it, end);
                        if (std::string(start, it) == "OR") //check if this is the field with two names
                        {
                            it = skipSpaces(it, end);
                            start = it;
                            it = skipAlpha(it, end);
                            keyname = std::string(start, it); //take the second name as a key name
                            it = skipSpaces(it, end);
                        }
                        else //description
                        {
                            if (entity.description.empty()) {
                                entity.description = withoutQuotes(line);
                            } else {
                                entity.description += "\\n\\n";
                                entity.description += withoutQuotes(line);
                            }
                            continue;
                        }
                    }
                    if (it != end && (*it == ':' || *begin == '\"'))
                    {
                        if (*it == ':') {
                            it++;
                        }
                        it = skipSpaces(it, end);

                        std::string description = withoutQuotes(std::string(it, end));

                        entity.keys.push_back(Key(keyname, description));
                    }
                }
            } else if (line[0] == ' ') {
                if (entity.description.empty()) {
                    entity.description = withoutQuotes(line);
                } else {
                    entity.description += "\\n";
                    entity.description += withoutQuotes(line);
                }
            }
        } else {
            if (*it == '/')
            {
                it++;
                if (*it == '/') {
                    continue; //skip comment
                } else if (*it == '*') {
                    it++;
                    if ( static_cast<size_t>(end - it) > quakednum && std::equal(quakedstr, quakedstr+quakednum, it)) // /*QUAKED starts here
                    {
                        advance(it, quakednum);
                        it = skipSpaces(it, end);
                        start = it;
                        it = skipAlpha(it, end);
                        entity.name = std::string(start, it);

                        it = skipSpaces(it, end);
                        if (it != end)
                        {
                            if (*it == '(')
                            {
                                it++;
                                for (int i=0; i<3; ++i)
                                {
                                    it = skipSpaces(it, end);
                                    start = it;
                                    it = skipFloat(it, end);
                                    std::string numstr(start, it);
                                    entity.color[i] = colorFromFloat(static_cast<float>(strtod(numstr.c_str(), NULL)));
                                }

                                while(*it != ')')
                                {
                                    it++;
                                    if (it == end) {
                                        throw DefReadError(unexpectedEndOfFile(), lineNum, it-begin);
                                    }
                                }
                                it++;
                                it = skipSpaces(it, end);
                                if (it != end)
                                {
                                    if (*it == '?') {
                                        entity.solid = true;
                                        it++;
                                    } else {
                                        it = readBox(it, lineNum, begin, end, entity.box, -8);
                                        it = skipSpaces(it, end);
                                        it = readBox(it, lineNum, begin, end, entity.box+3, 8);
                                    }
                                    it = skipSpaces(it, end);
                                    readFlags(it, lineNum, begin, end, entity.spawnflags);

                                    inKeys = true;
                                }
                                else
                                {
                                    throw DefReadError(unexpectedEndOfFile(), lineNum, it-begin);
                                }
                            }
                        }
                        else
                        {
                            throw DefReadError(unexpectedEndOfFile(), lineNum, it-begin);
                        }
                    }
                    else
                    {
                        throw DefReadError(translate("Expected QUAKED"), lineNum, it-begin);
                    }
                }
            }
        }
    }

    if (shouldPush) {
        toReturn.push_back(entity);
        entity = Entity();
    }

    return toReturn;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1298, %rsp           # imm = 0x1298
movq %rsi, %r15
andq $0x0, 0x10(%rdi)
xorps %xmm0, %xmm0
movq %rdi, 0x48(%rsp)
movups %xmm0, (%rdi)
leaq 0x30(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x9f8(%rsp), %rdi
callq 0x6dc6
xorl %r14d, %r14d
leaq 0x20(%rsp), %rbp
leaq 0x158(%rsp), %r12
xorl %eax, %eax
movl $0x0, 0x4(%rsp)
movl %eax, %ebx
movq %r15, %rdi
movq %rbp, %rsi
callq 0x3080
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x6027
movq 0x28(%rsp), %rsi
testq %rsi, %rsi
je 0x56a6
movq 0x20(%rsp), %rax
cmpb $0xd, -0x1(%rax,%rsi)
jne 0x56ab
decq %rsi
movq %rbp, %rdi
callq 0x3350
movq 0x28(%rsp), %rsi
incq %r14
testq %rsi, %rsi
je 0x5659
jmp 0x56ae
incq %r14
jmp 0x5659
incq %r14
testb $0x1, %bl
je 0x56f2
movq 0x48(%rsp), %rdi
leaq 0x9f8(%rsp), %rsi
callq 0x66d4
movq %r12, %rdi
callq 0x6dc6
leaq 0x9f8(%rsp), %rdi
movq %r12, %rsi
callq 0x6704
movq %r12, %rdi
callq 0x4e46
xorl %r13d, %r13d
movl $0x0, 0x14(%rsp)
jmp 0x5754
testb $0x1, 0x4(%rsp)
je 0x5746
cmpq $0x2, %rsi
jb 0x574b
movq 0x20(%rsp), %rax
cmpb $0x2a, (%rax)
jne 0x5718
movb $0x1, %r13b
cmpb $0x2f, 0x1(%rax)
movb $0x1, %cl
movl %ecx, 0x14(%rsp)
je 0x5754
cmpb $0x2a, -0x2(%rax,%rsi)
jne 0x574b
cmpb $0x2f, -0x1(%rax,%rsi)
movb $0x1, %r13b
movl %ebx, %eax
movl %eax, 0x14(%rsp)
jne 0x5754
addq $-0x2, %rsi
movb $0x1, %r13b
movq %rbp, %rdi
callq 0x3350
movb $0x1, %al
movl %eax, 0x14(%rsp)
jmp 0x5754
xorl %r13d, %r13d
jmp 0x574e
movb $0x1, %r13b
movl %ebx, %eax
movl %eax, 0x14(%rsp)
movq 0x20(%rsp), %rcx
movq 0x28(%rsp), %rax
movq %rcx, 0x50(%rsp)
leaq (%rcx,%rax), %rbx
movq %rbx, 0x8(%rsp)
movsbl (%rcx), %ebp
testb %r13b, %r13b
je 0x57be
movq %rax, 0x40(%rsp)
movq %rcx, 0x18(%rsp)
movl %ebp, %edi
callq 0x33e0
testl %eax, %eax
leaq 0xf8(%rsp), %r13
je 0x5931
cmpq $0x0, 0x40(%rsp)
setne %al
cmpb $0x22, %bpl
sete %cl
movq 0x18(%rsp), %rdx
movq %rdx, %rsi
testb %cl, %al
je 0x59d3
leaq 0x1(%rdx), %rsi
jmp 0x59d3
cmpb $0x2f, %bpl
jne 0x591f
cmpb $0x2a, 0x1(%rcx)
leaq 0x20(%rsp), %rbp
jne 0x5966
movq %rax, 0x40(%rsp)
addq $-0x9, %rax
cmpq $-0x8, %rax
ja 0x6143
movq %rcx, %r13
leaq 0x2(%rcx), %rdx
leaq 0x50b6(%rip), %rdi      # 0xa8ae
leaq 0x50b5(%rip), %rsi      # 0xa8b4
callq 0x6c9e
testb %al, %al
je 0x6143
movq %r13, %rdi
addq $0x8, %rdi
leaq 0x8(%rsp), %r13
movq %r13, %rsi
callq 0x6403
movq %rax, %rbp
movq %rax, %rdi
movq %r13, %rsi
callq 0x63d0
movq %rax, %r13
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x6822
leaq 0x9f8(%rsp), %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6403
cmpq %rbx, %rax
je 0x6198
movq %rax, %rbp
cmpb $0x28, (%rax)
jne 0x591f
incq %rbp
xorl %ebx, %ebx
cmpq $0x3, %rbx
je 0x5973
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6403
movq 0x8(%rsp), %rbp
movq %rax, %rcx
cmpq %rbp, %rcx
je 0x58d2
movsbl (%rcx), %edx
cmpl $0x2e, %edx
setne %sil
addl $-0x30, %edx
cmpl $0xa, %edx
setae %dl
testb %dl, %sil
jne 0x58cf
incq %rcx
jmp 0x58ad
movq %rcx, %rbp
leaq 0x168(%rsp), %rcx
movq %rcx, 0x158(%rsp)
movq %r12, %rdi
movq %rax, %rsi
movq %rbp, %rdx
callq 0x6822
movq 0x158(%rsp), %rdi
xorl %esi, %esi
callq 0x3200
cvtsd2ss %xmm0, %xmm0
callq 0x6cc0
movl %eax, 0x1250(%rsp,%rbx,4)
movq %r12, %rdi
callq 0x3110
incq %rbx
jmp 0x588e
movl $0x0, 0x4(%rsp)
leaq 0x20(%rsp), %rbp
jmp 0x5fd6
movb $0x1, %al
movl %eax, 0x4(%rsp)
cmpb $0x20, %bpl
movq 0x18(%rsp), %rdx
movq 0x40(%rsp), %rcx
je 0x5c07
movzbl %bpl, %eax
movq %rdx, %rsi
cmpl $0x22, %eax
je 0x59ca
cmpl $0x5f, %eax
leaq 0x20(%rsp), %rbp
je 0x59d3
jmp 0x5fd6
movl $0x0, 0x4(%rsp)
jmp 0x5fd6
movq 0x8(%rsp), %r13
leaq 0x8(%rsp), %rbx
cmpb $0x29, (%rbp)
je 0x5990
incq %rbp
cmpq %r13, %rbp
jne 0x597d
jmp 0x60f0
incq %rbp
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x6403
movq %r13, 0x18(%rsp)
cmpq %r13, %rax
je 0x61e5
cmpb $0x3f, (%rax)
leaq 0x50(%rsp), %r13
jne 0x5d50
movb $0x1, 0x1274(%rsp)
incq %rax
jmp 0x5d95
testq %rcx, %rcx
jne 0x57b5
leaq 0x68(%rsp), %rax
movq %rax, 0x58(%rsp)
andq $0x0, 0x60(%rsp)
movb $0x0, 0x68(%rsp)
cmpb $0x22, (%rdx)
jne 0x5a0a
movq %rsi, %r13
leaq 0x58(%rsp), %rbp
cmpq %rbx, %r13
je 0x6099
cmpb $0x22, (%r13)
je 0x5a55
incq %r13
jmp 0x59f5
movq %rsi, %rdi
movq %rsi, %rbp
leaq 0x8(%rsp), %rsi
callq 0x63d0
movq %rax, %r13
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
movq %r13, %rdx
callq 0x6822
leaq 0x58(%rsp), %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
jmp 0x5a8f
cmpq %rbx, %r13
je 0x6099
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
movq %r12, %rdi
movq %r13, %rdx
callq 0x6822
movq %rbp, %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
incq %r13
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6403
movq %rax, %r13
leaq 0xa50(%rsp), %rdi
leaq 0xe50(%rsp), %r12
movq %r12, %rsi
movq %rbp, %rdx
callq 0x6b7e
movq %rax, %rbp
cmpq %r12, %rax
je 0x5af6
cmpq %rbx, %r13
je 0x5b73
cmpb $0x3a, (%r13)
leaq 0x88(%rsp), %r12
jne 0x5b7b
incq %r13
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6403
movq %rax, %r13
jmp 0x5b7b
leaq 0x58(%rsp), %rdi
leaq 0x4615(%rip), %rsi      # 0xa117
callq 0x4ddd
testb %al, %al
leaq 0xa8(%rsp), %r12
je 0x5b50
cmpb $0x3d, (%r13)
jne 0x5b50
cmpb $0x22, 0x1(%r13)
leaq 0x20(%rsp), %rbp
jne 0x5f79
addq $0x2, %r13
movq %r13, %rdx
leaq 0x1278(%rsp), %r12
cmpq %rbx, %rdx
je 0x5f43
cmpb $0x22, (%rdx)
je 0x5f43
incq %rdx
jmp 0x5b39
cmpq %rbx, %r13
je 0x5bf3
cmpb $0x3a, (%r13)
jne 0x5bf3
leaq 0x20(%rsp), %rbp
movq 0x18(%rsp), %rax
jmp 0x5d34
leaq 0x88(%rsp), %r12
movq %r12, 0x78(%rsp)
leaq 0x78(%rsp), %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x6822
leaq 0x158(%rsp), %r12
movq %r12, %rdi
leaq 0x78(%rsp), %rbx
movq %rbx, %rsi
callq 0x6cdf
leaq 0xe50(%rsp), %rcx
leaq 0xa50(%rsp), %rax
subq %rax, %rbp
addq %rcx, %rbp
movq %rbp, %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
movq %rbx, %rdi
callq 0x3110
leaq 0x20(%rsp), %rbp
leaq 0x58(%rsp), %rdi
callq 0x3110
movb $0x1, %al
movl %eax, 0x4(%rsp)
jmp 0x5fd6
movq 0x18(%rsp), %rax
cmpb $0x22, (%rax)
jne 0x5c65
leaq 0x20(%rsp), %rbp
jmp 0x5d34
cmpq $0x0, 0xa20(%rsp)
je 0x5f93
leaq 0xa18(%rsp), %rdi
leaq 0x4c7d(%rip), %rsi      # 0xa8a2
callq 0x3490
leaq 0x20(%rsp), %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x3340
movq %r12, %rdi
movq %r13, %rsi
callq 0x6cdf
leaq 0xa18(%rsp), %rdi
movq %r12, %rsi
callq 0x34a0
movq %r12, %rdi
callq 0x3110
movq %r13, %rdi
jmp 0x5fd1
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x63d0
movq %rax, %r12
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
leaq 0x158(%rsp), %rbp
movq %rbp, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x6822
movq %rbp, %rdi
leaq 0x4bf8(%rip), %rsi      # 0xa89d
callq 0x4ddd
movl %eax, %r13d
movq %rbp, %rdi
callq 0x3110
testb %r13b, %r13b
je 0x5ed5
movq %r12, %rdi
leaq 0x8(%rsp), %r13
movq %r13, %rsi
callq 0x6403
movq %rax, %r12
movq %rax, %rdi
movq %r13, %rsi
callq 0x63d0
movq %rax, %r13
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
movq %rbp, %rdi
movq %r12, %rsi
movq %r13, %rdx
callq 0x6822
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x32f0
movq %rbp, %rdi
callq 0x3110
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6403
movq %rax, %r13
leaq 0x20(%rsp), %rbp
movq 0x18(%rsp), %rax
leaq 0xa8(%rsp), %r12
cmpq %rbx, %r13
je 0x5f79
cmpb $0x3a, (%r13)
jne 0x5e49
incq %r13
jmp 0x5e52
movq %rax, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbx, %rcx
leaq 0x125c(%rsp), %r8
pushq $-0x8
popq %r9
callq 0x6447
movq %rax, %rdi
movq %rbx, %rsi
callq 0x6403
movq %rax, %rdi
movq %r14, %rsi
movq %r13, %rdx
movq %rbx, %rcx
leaq 0x1268(%rsp), %r8
pushq $0x8
popq %r9
callq 0x6447
movq 0x18(%rsp), %r13
movq %rax, %rdi
movq %rbx, %rsi
callq 0x6403
movq %rax, %rbp
movb $0x1, %al
movl %eax, 0x4(%rsp)
cmpq %rbp, %r13
je 0x5927
leaq 0xa50(%rsp), %r13
cmpq 0x18(%rsp), %rbp
je 0x5927
movb (%rbp), %bl
movsbl %bl, %edi
callq 0x3280
testl %eax, %eax
je 0x5e24
cmpb $0x2d, %bl
je 0x5e2d
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
callq 0x63d0
movq %rax, %rbx
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
movq %r12, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
callq 0x6822
movq %r13, %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
movq %rbx, %rbp
jmp 0x5e30
cmpb $0x2d, %bl
jne 0x5927
incq %rbp
leaq 0x8(%rsp), %rsi
movq %rbp, %rdi
callq 0x6403
movq %rax, %rbp
addq $0x20, %r13
jmp 0x5dbf
cmpb $0x22, (%rax)
jne 0x5f79
movq %r13, %rdi
leaq 0x8(%rsp), %rsi
callq 0x6403
movq %r12, 0x98(%rsp)
leaq 0x98(%rsp), %r12
movq %r12, %rdi
movq %rax, %rsi
movq %rbx, %rdx
callq 0x6822
leaq 0xb8(%rsp), %r13
movq %r13, %rdi
movq %r12, %rsi
callq 0x6cdf
leaq 0x158(%rsp), %rbx
movq %r12, %rdi
callq 0x3110
movq %rbx, %rdi
leaq 0x58(%rsp), %rsi
movq %r13, %rdx
callq 0x6d20
leaq 0xa38(%rsp), %rdi
movq %rbx, %rsi
callq 0x51f2
movq %rbx, %rdi
callq 0x4e26
leaq 0xb8(%rsp), %rdi
jmp 0x5f74
movq %rbp, %r12
cmpq $0x0, 0xa20(%rsp)
je 0x5fdf
leaq 0xa18(%rsp), %rdi
leaq 0x49aa(%rip), %rsi      # 0xa8a0
callq 0x3490
leaq 0xd8(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rbp
movq %rbp, %rsi
callq 0x3340
movq %r12, %rdi
movq %rbx, %rsi
callq 0x6cdf
leaq 0xa18(%rsp), %rdi
movq %r12, %rsi
callq 0x34a0
movq %r12, %rdi
callq 0x3110
leaq 0xd8(%rsp), %rdi
jmp 0x601d
leaq 0x168(%rsp), %rax
movq %rax, 0x158(%rsp)
leaq 0x158(%rsp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x6822
movq %r12, %rdi
movq %rbx, %rsi
callq 0x3180
movq %rbx, %rdi
callq 0x3110
leaq 0x58(%rsp), %rdi
callq 0x3110
movb $0x1, %al
movl %eax, 0x4(%rsp)
leaq 0x158(%rsp), %r12
jmp 0x5fd6
leaq 0x118(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rbp
movq %rbp, %rsi
callq 0x3340
movq %r12, %rdi
movq %rbx, %rsi
callq 0x6cdf
leaq 0xa18(%rsp), %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
movq %rbx, %rdi
callq 0x3110
movl 0x14(%rsp), %eax
jmp 0x5657
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
leaq 0x20(%rsp), %rbp
movq %rbp, %rsi
callq 0x3340
movq %r12, %rdi
movq %rbx, %rsi
callq 0x6cdf
leaq 0xa18(%rsp), %rdi
movq %r12, %rsi
callq 0x32f0
movq %r12, %rdi
callq 0x3110
movq %rbx, %rdi
callq 0x3110
jmp 0x5bde
testb $0x1, %bl
je 0x606b
leaq 0x9f8(%rsp), %rsi
movq 0x48(%rsp), %rdi
callq 0x66d4
leaq 0x158(%rsp), %rdi
callq 0x6dc6
leaq 0x9f8(%rsp), %rdi
leaq 0x158(%rsp), %rbx
movq %rbx, %rsi
callq 0x6704
movq %rbx, %rdi
callq 0x4e46
leaq 0x9f8(%rsp), %rdi
callq 0x4e46
leaq 0x20(%rsp), %rdi
callq 0x3110
movq 0x48(%rsp), %rax
addq $0x1298, %rsp           # imm = 0x1298
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x20
popq %rdi
callq 0x3150
movq %rax, %r15
leaq 0x47de(%rip), %rsi      # 0xa889
leaq 0x158(%rsp), %rdi
callq 0x95ed
movb $0x1, %bpl
leaq 0x158(%rsp), %rsi
movq %r15, %rdi
movq %r14, %rdx
movq 0x40(%rsp), %rcx
callq 0x55c4
xorl %ebp, %ebp
leaq 0x8c2c(%rip), %rsi      # 0xed08
movq 0x8ecd(%rip), %rdx      # 0xefb0
movq %r15, %rdi
callq 0x3440
jmp 0x6235
pushq $0x20
popq %rdi
callq 0x3150
movq %rax, %r15
leaq 0x158(%rsp), %rdi
callq 0x6432
movq %r13, %rcx
subq 0x50(%rsp), %rcx
movb $0x1, %bpl
leaq 0x158(%rsp), %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x55c4
xorl %ebp, %ebp
leaq 0x8bd9(%rip), %rsi      # 0xed08
movq 0x8e7a(%rip), %rdx      # 0xefb0
movq %r15, %rdi
callq 0x3440
jmp 0x6235
pushq $0x20
popq %rdi
callq 0x3150
movq %rax, %r15
leaq 0x4750(%rip), %rsi      # 0xa8a5
leaq 0x158(%rsp), %rdi
callq 0x95ed
movb $0x1, %bpl
leaq 0x158(%rsp), %rsi
pushq $0x2
popq %rcx
movq %r15, %rdi
movq %r14, %rdx
callq 0x55c4
xorl %ebp, %ebp
leaq 0x8b84(%rip), %rsi      # 0xed08
movq 0x8e25(%rip), %rdx      # 0xefb0
movq %r15, %rdi
callq 0x3440
jmp 0x6235
pushq $0x20
popq %rdi
callq 0x3150
movq %rax, %r15
leaq 0x158(%rsp), %rdi
callq 0x6432
movb $0x1, %bpl
leaq 0x158(%rsp), %rsi
movq %r15, %rdi
movq %r14, %rdx
movq 0x40(%rsp), %rcx
callq 0x55c4
xorl %ebp, %ebp
leaq 0x8b34(%rip), %rsi      # 0xed08
movq 0x8dd5(%rip), %rdx      # 0xefb0
movq %r15, %rdi
callq 0x3440
jmp 0x6235
pushq $0x20
popq %rdi
callq 0x3150
movq %rax, %r15
leaq 0x158(%rsp), %rdi
callq 0x6432
movq 0x18(%rsp), %rcx
subq 0x50(%rsp), %rcx
movb $0x1, %bpl
leaq 0x158(%rsp), %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x55c4
xorl %ebp, %ebp
leaq 0x8ae2(%rip), %rsi      # 0xed08
movq 0x8d83(%rip), %rdx      # 0xefb0
movq %r15, %rdi
callq 0x3440
movq %rax, %rbx
leaq 0x138(%rsp), %rdi
jmp 0x6326
jmp 0x6331
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x3110
jmp 0x625f
movq %rax, %rbx
leaq 0xd8(%rsp), %rdi
jmp 0x6326
jmp 0x6331
movq %rax, %rbx
leaq 0x118(%rsp), %rdi
jmp 0x639d
jmp 0x63a4
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
jmp 0x6326
jmp 0x6331
jmp 0x6331
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x3110
jmp 0x62b5
movq %rax, %rbx
leaq 0xf8(%rsp), %rdi
jmp 0x639d
jmp 0x63a4
jmp 0x6343
jmp 0x635a
jmp 0x63a4
jmp 0x63a4
jmp 0x6331
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x4e26
jmp 0x62ef
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
jmp 0x6326
movq %rax, %rbx
leaq 0x98(%rsp), %rdi
jmp 0x6326
jmp 0x6331
jmp 0x6343
jmp 0x635a
jmp 0x63a4
jmp 0x6343
jmp 0x635a
jmp 0x63a4
jmp 0x6331
jmp 0x6331
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x3110
jmp 0x6398
jmp 0x6331
jmp 0x63a4
movq %rax, %rbx
jmp 0x6398
jmp 0x63a4
jmp 0x63a4
jmp 0x63a4
jmp 0x63a4
movq %rax, %rbx
jmp 0x63b4
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x3110
testb %bpl, %bpl
jne 0x635d
jmp 0x63a7
movq %rax, %rbx
movq %r15, %rdi
callq 0x31f0
jmp 0x63a7
jmp 0x63a4
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
jmp 0x639d
movq %rax, %rbx
leaq 0x158(%rsp), %rdi
callq 0x3110
testb %bpl, %bpl
jne 0x6390
jmp 0x6398
movq %rax, %rbx
movq %r15, %rdi
callq 0x31f0
leaq 0x58(%rsp), %rdi
callq 0x3110
jmp 0x63a7
movq %rax, %rbx
leaq 0x9f8(%rsp), %rdi
callq 0x4e46
leaq 0x20(%rsp), %rdi
callq 0x3110
movq 0x48(%rsp), %rdi
callq 0x4ece
movq %rbx, %rdi
callq 0x3460