// File: 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
movq %rsp, %rbp
subq $0x2280, %rsp           # imm = 0x2280
movq %rdi, -0x2098(%rbp)
movq %rdi, %rax
movq %rax, -0x2090(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
callq 0x78d0
movb $0x0, -0x12(%rbp)
movb $0x0, -0x13(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x44c0
leaq -0x8e0(%rbp), %rdi
callq 0xe010
jmp 0x9cc4
jmp 0x9cc6
movq -0x10(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x40b0
movq %rax, -0x20a0(%rbp)
jmp 0x9cdc
movq -0x20a0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x4450
movb %al, -0x20a1(%rbp)
jmp 0x9cfa
movb -0x20a1(%rbp), %al
testb $0x1, %al
jne 0x9d09
jmp 0xb995
leaq -0x40(%rbp), %rdi
callq 0xba60
jmp 0x9d14
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x45a0
testb $0x1, %al
jne 0x9d2f
jmp 0x9d5f
jmp 0x9cc6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xba14
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xba08
testb $0x1, -0x13(%rbp)
je 0x9daf
movq -0x2098(%rbp), %rdi
leaq -0x8e0(%rbp), %rsi
callq 0xc490
jmp 0x9d7a
leaq -0x1190(%rbp), %rdi
callq 0xe010
jmp 0x9d88
leaq -0x8e0(%rbp), %rdi
leaq -0x1190(%rbp), %rsi
callq 0xc500
leaq -0x1190(%rbp), %rdi
callq 0x7780
movb $0x0, -0x12(%rbp)
movb $0x0, -0x13(%rbp)
testb $0x1, -0x12(%rbp)
je 0x9ec4
leaq -0x40(%rbp), %rdi
callq 0x4240
cmpq $0x1, %rax
jbe 0x9ec2
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x4660
movq %rax, -0x20b0(%rbp)
jmp 0x9de2
movq -0x20b0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0x9e20
leaq -0x40(%rbp), %rdi
movl $0x1, %esi
callq 0x4660
movq %rax, -0x20b8(%rbp)
jmp 0x9e08
movq -0x20b8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0x9e20
movb $0x1, -0x13(%rbp)
jmp 0x9ec0
leaq -0x40(%rbp), %rdi
movq %rdi, -0x20c8(%rbp)
callq 0x4240
movq -0x20c8(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x4660
movq %rax, -0x20c0(%rbp)
jmp 0x9e4c
movq -0x20c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0x9ebe
leaq -0x40(%rbp), %rdi
movq %rdi, -0x20d8(%rbp)
callq 0x4240
movq -0x20d8(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x4660
movq %rax, -0x20d0(%rbp)
jmp 0x9e86
movq -0x20d0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0x9ebe
leaq -0x40(%rbp), %rdi
movq %rdi, -0x20e0(%rbp)
callq 0x4240
movq -0x20e0(%rbp), %rdi
movq %rax, %rsi
addq $-0x2, %rsi
callq 0x44b0
jmp 0x9eba
movb $0x1, -0x13(%rbp)
jmp 0x9ec0
jmp 0x9ec2
jmp 0x9ec4
leaq -0x40(%rbp), %rdi
callq 0x42c0
movq %rax, -0x1198(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x42c0
movq %rax, -0x11a0(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x41d0
movq %rax, -0x11a8(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
testb $0x1, -0x12(%rbp)
je 0xaf1c
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x4660
movq %rax, -0x20e8(%rbp)
jmp 0x9f22
movq -0x20e8(%rbp), %rax
movsbl (%rax), %edi
callq 0x4560
cmpl $0x0, %eax
jne 0x9f84
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x4660
movq %rax, -0x20f0(%rbp)
jmp 0x9f4c
movq -0x20f0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5f, %eax
je 0x9f84
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x4660
movq %rax, -0x20f8(%rbp)
jmp 0x9f71
movq -0x20f8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xada8
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
testb $0x1, %al
jne 0x9f9d
jmp 0x9fc6
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0x9fc6
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x11b8(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
leaq -0x11d8(%rbp), %rdi
callq 0x44c0
leaq -0x11a0(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xa212
jmp 0x9ffa
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x20f9(%rbp)
jne 0xa01e
jmp 0xa039
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
setne %al
movb %al, -0x20f9(%rbp)
movb -0x20f9(%rbp), %al
testb $0x1, %al
jne 0xa045
jmp 0xa05c
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x11e0(%rbp)
jmp 0x9ffa
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc6d0
testb $0x1, %al
jne 0xa078
jmp 0xa156
movb $0x1, -0x1201(%rbp)
movl $0x20, %edi
callq 0x41a0
movq %rax, -0x2108(%rbp)
leaq 0xb7ed(%rip), %rsi      # 0x15884
leaq -0x1200(%rbp), %rdi
callq 0x140e0
jmp 0xa0a5
movq -0x20(%rbp), %rax
movq %rax, -0x2110(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a0(%rbp), %rsi
callq 0xc710
movq -0x2108(%rbp), %rdi
movq -0x2110(%rbp), %rdx
movq %rax, %rcx
leaq -0x1200(%rbp), %rsi
callq 0x9bd0
jmp 0xa0e2
movq -0x2108(%rbp), %rdi
movb $0x0, -0x1201(%rbp)
leaq 0x12c11(%rip), %rsi     # 0x1cd08
leaq 0x2652(%rip), %rdx      # 0xc750
callq 0x45d0
jmp 0xba53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xa13a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1200(%rbp), %rdi
callq 0x41f0
testb $0x1, -0x1201(%rbp)
jne 0xa145
jmp 0xa151
movq -0x2108(%rbp), %rdi
callq 0x4260
jmp 0xad97
movq -0x11b0(%rbp), %rax
movq %rax, -0x1230(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1238(%rbp)
leaq -0x1239(%rbp), %rdi
movq %rdi, -0x2118(%rbp)
callq 0x4600
movq -0x2118(%rbp), %rcx
movq -0x1230(%rbp), %rsi
movq -0x1238(%rbp), %rdx
leaq -0x1228(%rbp), %rdi
callq 0xc770
jmp 0xa1a8
leaq -0x11d8(%rbp), %rdi
leaq -0x1228(%rbp), %rsi
callq 0x4420
leaq -0x1228(%rbp), %rdi
callq 0x41f0
leaq -0x1239(%rbp), %rdi
callq 0x4390
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1248(%rbp)
jmp 0xa20d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1239(%rbp), %rdi
callq 0x4390
jmp 0xad97
jmp 0xa311
movq -0x1198(%rbp), %rax
movq %rax, -0x1258(%rbp)
movq -0x1258(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbad0
movq %rax, -0x2120(%rbp)
jmp 0xa23c
movq -0x2120(%rbp), %rax
movq %rax, -0x1250(%rbp)
movq -0x1250(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x11b0(%rbp), %rax
movq %rax, -0x1280(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1288(%rbp)
leaq -0x1289(%rbp), %rdi
movq %rdi, -0x2128(%rbp)
callq 0x4600
movq -0x2128(%rbp), %rcx
movq -0x1280(%rbp), %rsi
movq -0x1288(%rbp), %rdx
leaq -0x1278(%rbp), %rdi
callq 0xc770
jmp 0xa2aa
leaq -0x11d8(%rbp), %rdi
leaq -0x1278(%rbp), %rsi
callq 0x4420
leaq -0x1278(%rbp), %rdi
callq 0x41f0
leaq -0x1289(%rbp), %rdi
callq 0x4390
jmp 0xa311
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xad97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1289(%rbp), %rdi
callq 0x4390
jmp 0xad97
movq -0x1198(%rbp), %rax
movq %rax, -0x12a0(%rbp)
movq -0x12a0(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2130(%rbp)
jmp 0xa33b
movq -0x2130(%rbp), %rax
movq %rax, -0x1298(%rbp)
movq -0x1298(%rbp), %rax
movq %rax, -0x1198(%rbp)
leaq -0x888(%rbp), %rdi
leaq -0x488(%rbp), %rsi
leaq -0x11d8(%rbp), %rdx
callq 0xc7f0
movq %rax, -0x2138(%rbp)
jmp 0xa37a
movq -0x2138(%rbp), %rax
movq %rax, -0x12a8(%rbp)
movq -0x12a8(%rbp), %rax
leaq -0x8e0(%rbp), %rcx
addq $0x58, %rcx
addq $0x400, %rcx            # imm = 0x400
cmpq %rcx, %rax
je 0xa549
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
testb $0x1, %al
jne 0xa3c3
jmp 0xa432
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x3a, %eax
jne 0xa432
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x12b0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x12c0(%rbp)
movq -0x12c0(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2140(%rbp)
jmp 0xa416
movq -0x2140(%rbp), %rax
movq %rax, -0x12b8(%rbp)
movq -0x12b8(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1308(%rbp)
movq -0x11a8(%rbp), %rax
movq %rax, -0x1310(%rbp)
leaq -0x1311(%rbp), %rdi
movq %rdi, -0x2148(%rbp)
callq 0x4600
movq -0x2148(%rbp), %rcx
movq -0x1308(%rbp), %rsi
movq -0x1310(%rbp), %rdx
leaq -0x1300(%rbp), %rdi
callq 0xc770
jmp 0xa484
leaq -0x12e0(%rbp), %rdi
leaq -0x1300(%rbp), %rsi
callq 0xde40
jmp 0xa499
leaq -0x8e0(%rbp), %rdi
addq $0x458, %rdi            # imm = 0x458
movq -0x12a8(%rbp), %rax
leaq -0x8e0(%rbp), %rcx
addq $0x58, %rcx
subq %rcx, %rax
sarq $0x5, %rax
shlq $0x5, %rax
addq %rax, %rdi
leaq -0x12e0(%rbp), %rsi
callq 0x4420
leaq -0x12e0(%rbp), %rdi
callq 0x41f0
leaq -0x1300(%rbp), %rdi
callq 0x41f0
leaq -0x1311(%rbp), %rdi
callq 0x4390
movl $0x2, -0x1318(%rbp)
jmp 0xad75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xa538
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1300(%rbp), %rdi
callq 0x41f0
leaq -0x1311(%rbp), %rdi
callq 0x4390
jmp 0xad97
leaq 0xabab(%rip), %rsi      # 0x150fb
leaq -0x11d8(%rbp), %rdi
callq 0x74c0
movb %al, -0x2149(%rbp)
jmp 0xa564
movb -0x2149(%rbp), %al
testb $0x1, %al
jne 0xa573
jmp 0xa706
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x3d, %eax
jne 0xa706
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1320(%rbp)
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xa701
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1328(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x214a(%rbp)
jne 0xa5ff
jmp 0xa61a
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
setne %al
movb %al, -0x214a(%rbp)
movb -0x214a(%rbp), %al
testb $0x1, %al
jne 0xa626
jmp 0xa63d
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1330(%rbp)
jmp 0xa5db
movq -0x11b0(%rbp), %rax
movq %rax, -0x1358(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1360(%rbp)
leaq -0x1361(%rbp), %rdi
movq %rdi, -0x2158(%rbp)
callq 0x4600
movq -0x2158(%rbp), %rcx
movq -0x1358(%rbp), %rsi
movq -0x1360(%rbp), %rdx
leaq -0x1350(%rbp), %rdi
callq 0xc770
jmp 0xa68f
leaq -0x1361(%rbp), %rdi
callq 0x4390
leaq -0x60(%rbp), %rdi
leaq -0x1350(%rbp), %rsi
callq 0x4040
jmp 0xa6ad
leaq -0x1350(%rbp), %rdi
callq 0x41f0
jmp 0xa701
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1361(%rbp), %rdi
callq 0x4390
jmp 0xad97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1350(%rbp), %rdi
callq 0x41f0
jmp 0xad97
jmp 0xad6b
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc6d0
testb $0x1, %al
jne 0xa735
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x3a, %eax
je 0xab57
leaq -0x11a0(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
je 0xab57
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1378(%rbp)
movq -0x1378(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbad0
movq %rax, -0x2160(%rbp)
jmp 0xa785
movq -0x2160(%rbp), %rax
movq %rax, -0x1370(%rbp)
movq -0x1370(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x11b0(%rbp), %rax
movq %rax, -0x13a0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x13a8(%rbp)
leaq -0x13a9(%rbp), %rdi
movq %rdi, -0x2168(%rbp)
callq 0x4600
movq -0x2168(%rbp), %rcx
movq -0x13a0(%rbp), %rsi
movq -0x13a8(%rbp), %rdx
leaq -0x1398(%rbp), %rdi
callq 0xc770
jmp 0xa7f3
leaq 0xb09e(%rip), %rsi      # 0x15898
leaq -0x1398(%rbp), %rdi
callq 0x74c0
movb %al, -0x2169(%rbp)
jmp 0xa80e
leaq -0x1398(%rbp), %rdi
callq 0x41f0
leaq -0x13a9(%rbp), %rdi
callq 0x4390
movb -0x2169(%rbp), %al
testb $0x1, %al
jne 0xa835
jmp 0xaa04
movq -0x1198(%rbp), %rax
movq %rax, -0x13c0(%rbp)
movq -0x13c0(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2178(%rbp)
jmp 0xa85f
movq -0x2178(%rbp), %rax
movq %rax, -0x13b8(%rbp)
movq -0x13b8(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x13d0(%rbp)
movq -0x13d0(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbad0
movq %rax, -0x2180(%rbp)
jmp 0xa8b3
movq -0x2180(%rbp), %rax
movq %rax, -0x13c8(%rbp)
movq -0x13c8(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x11b0(%rbp), %rax
movq %rax, -0x13f8(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1400(%rbp)
leaq -0x1401(%rbp), %rdi
movq %rdi, -0x2188(%rbp)
callq 0x4600
movq -0x2188(%rbp), %rcx
movq -0x13f8(%rbp), %rsi
movq -0x1400(%rbp), %rdx
leaq -0x13f0(%rbp), %rdi
callq 0xc770
jmp 0xa921
leaq -0x11d8(%rbp), %rdi
leaq -0x13f0(%rbp), %rsi
movq %rsi, -0x2198(%rbp)
callq 0x4420
movq -0x2198(%rbp), %rdi
callq 0x41f0
leaq -0x1401(%rbp), %rdi
callq 0x4390
movq -0x1198(%rbp), %rax
movq %rax, -0x1418(%rbp)
movq -0x1418(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2190(%rbp)
jmp 0xa97d
movq -0x2190(%rbp), %rax
movq %rax, -0x1410(%rbp)
movq -0x1410(%rbp), %rax
movq %rax, -0x1198(%rbp)
jmp 0xab55
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xa9d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1398(%rbp), %rdi
callq 0x41f0
leaq -0x13a9(%rbp), %rdi
callq 0x4390
jmp 0xad97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1401(%rbp), %rdi
callq 0x4390
jmp 0xad97
leaq -0x8e0(%rbp), %rdi
addq $0x20, %rdi
callq 0x45a0
testb $0x1, %al
jne 0xaa1a
jmp 0xaa98
leaq -0x1458(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x4130
jmp 0xaa2c
leaq -0x1438(%rbp), %rdi
leaq -0x1458(%rbp), %rsi
callq 0xde40
jmp 0xaa41
leaq -0x8e0(%rbp), %rdi
addq $0x20, %rdi
leaq -0x1438(%rbp), %rsi
callq 0x4420
leaq -0x1438(%rbp), %rdi
callq 0x41f0
leaq -0x1458(%rbp), %rdi
callq 0x41f0
jmp 0xab46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1458(%rbp), %rdi
callq 0x41f0
jmp 0xad97
leaq -0x8c0(%rbp), %rdi
leaq 0xadf5(%rip), %rsi      # 0x1589b
callq 0x4300
jmp 0xaaad
leaq -0x1498(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x4130
jmp 0xaabf
leaq -0x1478(%rbp), %rdi
leaq -0x1498(%rbp), %rsi
callq 0xde40
jmp 0xaad4
leaq -0x8c0(%rbp), %rdi
leaq -0x1478(%rbp), %rsi
callq 0x4460
jmp 0xaae9
leaq -0x1478(%rbp), %rdi
callq 0x41f0
leaq -0x1498(%rbp), %rdi
callq 0x41f0
jmp 0xab46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xab35
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1478(%rbp), %rdi
callq 0x41f0
leaq -0x1498(%rbp), %rdi
callq 0x41f0
jmp 0xad97
movl $0x2, -0x1318(%rbp)
jmp 0xad75
jmp 0xab57
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
testb $0x1, %al
jne 0xab73
jmp 0xad69
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x3a, %eax
je 0xab9f
leaq -0x11a0(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x22, %eax
jne 0xad69
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x3a, %eax
jne 0xabc8
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x14a0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x14b0(%rbp)
movq -0x14b0(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x21a0(%rbp)
jmp 0xabf2
movq -0x21a0(%rbp), %rax
movq %rax, -0x14a8(%rbp)
movq -0x14a8(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x14f8(%rbp)
movq -0x11a8(%rbp), %rax
movq %rax, -0x1500(%rbp)
leaq -0x1501(%rbp), %rdi
movq %rdi, -0x21a8(%rbp)
callq 0x4600
movq -0x21a8(%rbp), %rcx
movq -0x14f8(%rbp), %rsi
movq -0x1500(%rbp), %rdx
leaq -0x14f0(%rbp), %rdi
callq 0xc770
jmp 0xac60
leaq -0x14d0(%rbp), %rdi
leaq -0x14f0(%rbp), %rsi
callq 0xde40
jmp 0xac75
leaq -0x14f0(%rbp), %rdi
callq 0x41f0
leaq -0x1501(%rbp), %rdi
callq 0x4390
leaq -0x8a0(%rbp), %rax
movq %rax, -0x21b0(%rbp)
leaq -0x1568(%rbp), %rdi
leaq -0x11d8(%rbp), %rsi
leaq -0x14d0(%rbp), %rdx
callq 0xdf00
jmp 0xacb7
movq -0x21b0(%rbp), %rdi
leaq -0x1568(%rbp), %rsi
callq 0x75a0
jmp 0xaccc
leaq -0x1568(%rbp), %rdi
callq 0x75d0
leaq -0x14d0(%rbp), %rdi
callq 0x41f0
jmp 0xad69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xad1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x14f0(%rbp), %rdi
callq 0x41f0
leaq -0x1501(%rbp), %rdi
callq 0x4390
jmp 0xad97
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xad5b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1568(%rbp), %rdi
callq 0x75d0
leaq -0x14d0(%rbp), %rdi
callq 0x41f0
jmp 0xad97
jmp 0xad6b
movl $0x0, -0x1318(%rbp)
leaq -0x11d8(%rbp), %rdi
callq 0x41f0
movl -0x1318(%rbp), %eax
testl %eax, %eax
je 0xad92
jmp 0xad8d
jmp 0x9cc6
jmp 0xaf17
leaq -0x11d8(%rbp), %rdi
callq 0x41f0
jmp 0xba08
xorl %eax, %eax
movl %eax, %esi
leaq -0x40(%rbp), %rdi
callq 0x4660
movq %rax, -0x21b8(%rbp)
jmp 0xadbe
movq -0x21b8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
jne 0xaf15
leaq -0x8e0(%rbp), %rdi
addq $0x20, %rdi
callq 0x45a0
testb $0x1, %al
jne 0xade7
jmp 0xae65
leaq -0x15a8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x4130
jmp 0xadf9
leaq -0x1588(%rbp), %rdi
leaq -0x15a8(%rbp), %rsi
callq 0xde40
jmp 0xae0e
leaq -0x8e0(%rbp), %rdi
addq $0x20, %rdi
leaq -0x1588(%rbp), %rsi
callq 0x4420
leaq -0x1588(%rbp), %rdi
callq 0x41f0
leaq -0x15a8(%rbp), %rdi
callq 0x41f0
jmp 0xaf13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x15a8(%rbp), %rdi
callq 0x41f0
jmp 0xba08
leaq -0x8c0(%rbp), %rdi
leaq 0xaa2a(%rip), %rsi      # 0x1589d
callq 0x4300
jmp 0xae7a
leaq -0x15e8(%rbp), %rdi
leaq -0x40(%rbp), %rsi
callq 0x4130
jmp 0xae8c
leaq -0x15c8(%rbp), %rdi
leaq -0x15e8(%rbp), %rsi
callq 0xde40
jmp 0xaea1
leaq -0x8c0(%rbp), %rdi
leaq -0x15c8(%rbp), %rsi
callq 0x4460
jmp 0xaeb6
leaq -0x15c8(%rbp), %rdi
callq 0x41f0
leaq -0x15e8(%rbp), %rdi
callq 0x41f0
jmp 0xaf13
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xaf02
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x15c8(%rbp), %rdi
callq 0x41f0
leaq -0x15e8(%rbp), %rdi
callq 0x41f0
jmp 0xba08
jmp 0xaf15
jmp 0xaf17
jmp 0xb990
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0xb98e
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x15f0(%rbp)
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x2f, %eax
jne 0xaf62
jmp 0x9cc6
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0xb98a
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x15f8(%rbp)
leaq -0x11a8(%rbp), %rdi
leaq -0x1198(%rbp), %rsi
callq 0xc710
cmpq 0x123b7(%rip), %rax     # 0x1d360
jbe 0xb8aa
movq 0x123aa(%rip), %rax     # 0x1d360
leaq 0xa8ec(%rip), %rdi      # 0x158a9
movq %rdi, %rsi
addq %rax, %rsi
movq -0x1198(%rbp), %rax
movq %rax, -0x1600(%rbp)
movq -0x1600(%rbp), %rdx
callq 0xc840
movb %al, -0x21b9(%rbp)
jmp 0xafe5
movb -0x21b9(%rbp), %al
testb $0x1, %al
jne 0xaff4
jmp 0xb8aa
movq 0x12365(%rip), %rsi     # 0x1d360
leaq -0x1198(%rbp), %rdi
callq 0xc880
jmp 0xb009
movq -0x1198(%rbp), %rax
movq %rax, -0x1610(%rbp)
movq -0x1610(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x21c8(%rbp)
jmp 0xb033
movq -0x21c8(%rbp), %rax
movq %rax, -0x1608(%rbp)
movq -0x1608(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1620(%rbp)
movq -0x1620(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbad0
movq %rax, -0x21d0(%rbp)
jmp 0xb087
movq -0x21d0(%rbp), %rax
movq %rax, -0x1618(%rbp)
movq -0x1618(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x11b0(%rbp), %rax
movq %rax, -0x1648(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1650(%rbp)
leaq -0x1651(%rbp), %rdi
movq %rdi, -0x21d8(%rbp)
callq 0x4600
movq -0x21d8(%rbp), %rcx
movq -0x1648(%rbp), %rsi
movq -0x1650(%rbp), %rdx
leaq -0x1640(%rbp), %rdi
callq 0xc770
jmp 0xb0f5
leaq -0x8e0(%rbp), %rdi
leaq -0x1640(%rbp), %rsi
movq %rsi, -0x21e8(%rbp)
callq 0x4420
movq -0x21e8(%rbp), %rdi
callq 0x41f0
leaq -0x1651(%rbp), %rdi
callq 0x4390
movq -0x1198(%rbp), %rax
movq %rax, -0x1668(%rbp)
movq -0x1668(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x21e0(%rbp)
jmp 0xb151
movq -0x21e0(%rbp), %rax
movq %rax, -0x1660(%rbp)
movq -0x1660(%rbp), %rax
movq %rax, -0x1198(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
testb $0x1, %al
jne 0xb189
jmp 0xb7ce
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x28, %eax
jne 0xb7c9
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1670(%rbp)
movl $0x0, -0x1674(%rbp)
cmpl $0x3, -0x1674(%rbp)
jge 0xb38b
movq -0x1198(%rbp), %rax
movq %rax, -0x1688(%rbp)
movq -0x1688(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x21f0(%rbp)
jmp 0xb1f7
movq -0x21f0(%rbp), %rax
movq %rax, -0x1680(%rbp)
movq -0x1680(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x11b0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1698(%rbp)
movq -0x1698(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbbe0
movq %rax, -0x21f8(%rbp)
jmp 0xb24b
movq -0x21f8(%rbp), %rax
movq %rax, -0x1690(%rbp)
movq -0x1690(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x11b0(%rbp), %rax
movq %rax, -0x16c0(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x16c8(%rbp)
leaq -0x16c9(%rbp), %rdi
movq %rdi, -0x2200(%rbp)
callq 0x4600
movq -0x2200(%rbp), %rcx
movq -0x16c0(%rbp), %rsi
movq -0x16c8(%rbp), %rdx
leaq -0x16b8(%rbp), %rdi
callq 0xc770
jmp 0xb2b9
leaq -0x16c9(%rbp), %rdi
callq 0x4390
leaq -0x16b8(%rbp), %rdi
callq 0x4120
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4270
cvtsd2ss %xmm0, %xmm0
callq 0xddf0
movl %eax, -0x2204(%rbp)
jmp 0xb2ee
movl -0x2204(%rbp), %ecx
movslq -0x1674(%rbp), %rax
movl %ecx, -0x88(%rbp,%rax,4)
leaq -0x16b8(%rbp), %rdi
callq 0x41f0
movl -0x1674(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1674(%rbp)
jmp 0xb1c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1651(%rbp), %rdi
callq 0x4390
jmp 0xba08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x16c9(%rbp), %rdi
callq 0x4390
jmp 0xba08
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x16b8(%rbp), %rdi
callq 0x41f0
jmp 0xba08
jmp 0xb38d
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x29, %eax
je 0xb4b2
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x16d8(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc6d0
testb $0x1, %al
jne 0xb3d6
jmp 0xb4ad
movb $0x1, -0x16f9(%rbp)
movl $0x20, %edi
callq 0x41a0
movq %rax, -0x2210(%rbp)
leaq -0x16f8(%rbp), %rdi
callq 0xbc70
jmp 0xb3fc
movq -0x20(%rbp), %rax
movq %rax, -0x2218(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a0(%rbp), %rsi
callq 0xc710
movq -0x2210(%rbp), %rdi
movq -0x2218(%rbp), %rdx
movq %rax, %rcx
leaq -0x16f8(%rbp), %rsi
callq 0x9bd0
jmp 0xb439
movq -0x2210(%rbp), %rdi
movb $0x0, -0x16f9(%rbp)
leaq 0x118ba(%rip), %rsi     # 0x1cd08
leaq 0x12fb(%rip), %rdx      # 0xc750
callq 0x45d0
jmp 0xba53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xb491
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x16f8(%rbp), %rdi
callq 0x41f0
testb $0x1, -0x16f9(%rbp)
jne 0xb49c
jmp 0xb4a8
movq -0x2210(%rbp), %rdi
callq 0x4260
jmp 0xba08
jmp 0xb38d
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1708(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1718(%rbp)
movq -0x1718(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2220(%rbp)
jmp 0xb4f1
movq -0x2220(%rbp), %rax
movq %rax, -0x1710(%rbp)
movq -0x1710(%rbp), %rax
movq %rax, -0x1198(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xc630
testb $0x1, %al
jne 0xb529
jmp 0xb6f0
leaq -0x1198(%rbp), %rdi
callq 0xc670
movsbl (%rax), %eax
cmpl $0x3f, %eax
jne 0xb55b
movb $0x1, -0x64(%rbp)
leaq -0x1198(%rbp), %rdi
xorl %esi, %esi
callq 0xc690
movq %rax, -0x1720(%rbp)
jmp 0xb657
movq -0x1198(%rbp), %rax
movq %rax, -0x1730(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x7c(%rbp), %r8
movq -0x1730(%rbp), %rdi
leaq -0x11a0(%rbp), %rdx
leaq -0x11a8(%rbp), %rcx
movl $0xfffffff8, %r9d       # imm = 0xFFFFFFF8
callq 0xbca0
movq %rax, -0x2228(%rbp)
jmp 0xb59a
movq -0x2228(%rbp), %rax
movq %rax, -0x1728(%rbp)
movq -0x1728(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1740(%rbp)
movq -0x1740(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2230(%rbp)
jmp 0xb5e0
movq -0x2230(%rbp), %rax
movq %rax, -0x1738(%rbp)
movq -0x1738(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1750(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x70(%rbp), %r8
movq -0x1750(%rbp), %rdi
leaq -0x11a0(%rbp), %rdx
leaq -0x11a8(%rbp), %rcx
movl $0x8, %r9d
callq 0xbca0
movq %rax, -0x2238(%rbp)
jmp 0xb63b
movq -0x2238(%rbp), %rax
movq %rax, -0x1748(%rbp)
movq -0x1748(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1760(%rbp)
movq -0x1760(%rbp), %rdi
leaq -0x11a8(%rbp), %rsi
callq 0xbb60
movq %rax, -0x2240(%rbp)
jmp 0xb681
movq -0x2240(%rbp), %rax
movq %rax, -0x1758(%rbp)
movq -0x1758(%rbp), %rax
movq %rax, -0x1198(%rbp)
movq -0x1198(%rbp), %rax
movq %rax, -0x1768(%rbp)
movq -0x20(%rbp), %rsi
leaq -0x888(%rbp), %r8
movq -0x1768(%rbp), %rdi
leaq -0x11a0(%rbp), %rdx
leaq -0x11a8(%rbp), %rcx
callq 0xc210
movq %rax, -0x2248(%rbp)
jmp 0xb6d9
movq -0x2248(%rbp), %rax
movq %rax, -0x1770(%rbp)
movb $0x1, -0x12(%rbp)
jmp 0xb7c7
movb $0x1, -0x1791(%rbp)
movl $0x20, %edi
callq 0x41a0
movq %rax, -0x2250(%rbp)
leaq -0x1790(%rbp), %rdi
callq 0xbc70
jmp 0xb716
movq -0x20(%rbp), %rax
movq %rax, -0x2258(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a0(%rbp), %rsi
callq 0xc710
movq -0x2250(%rbp), %rdi
movq -0x2258(%rbp), %rdx
movq %rax, %rcx
leaq -0x1790(%rbp), %rsi
callq 0x9bd0
jmp 0xb753
movq -0x2250(%rbp), %rdi
movb $0x0, -0x1791(%rbp)
leaq 0x115a0(%rip), %rsi     # 0x1cd08
leaq 0xfe1(%rip), %rdx       # 0xc750
callq 0x45d0
jmp 0xba53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xb7ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x1790(%rbp), %rdi
callq 0x41f0
testb $0x1, -0x1791(%rbp)
jne 0xb7b6
jmp 0xb7c2
movq -0x2250(%rbp), %rdi
callq 0x4260
jmp 0xba08
jmp 0xb7c9
jmp 0xb8a5
movb $0x1, -0x17b9(%rbp)
movl $0x20, %edi
callq 0x41a0
movq %rax, -0x2260(%rbp)
leaq -0x17b8(%rbp), %rdi
callq 0xbc70
jmp 0xb7f4
movq -0x20(%rbp), %rax
movq %rax, -0x2268(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a0(%rbp), %rsi
callq 0xc710
movq -0x2260(%rbp), %rdi
movq -0x2268(%rbp), %rdx
movq %rax, %rcx
leaq -0x17b8(%rbp), %rsi
callq 0x9bd0
jmp 0xb831
movq -0x2260(%rbp), %rdi
movb $0x0, -0x17b9(%rbp)
leaq 0x114c2(%rip), %rsi     # 0x1cd08
leaq 0xf03(%rip), %rdx       # 0xc750
callq 0x45d0
jmp 0xba53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xb889
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x17b8(%rbp), %rdi
callq 0x41f0
testb $0x1, -0x17b9(%rbp)
jne 0xb894
jmp 0xb8a0
movq -0x2260(%rbp), %rdi
callq 0x4260
jmp 0xba08
jmp 0xb988
movb $0x1, -0x17e1(%rbp)
movl $0x20, %edi
callq 0x41a0
movq %rax, -0x2270(%rbp)
leaq 0x9fd7(%rip), %rsi      # 0x158a0
leaq -0x17e0(%rbp), %rdi
callq 0x140e0
jmp 0xb8d7
movq -0x20(%rbp), %rax
movq %rax, -0x2278(%rbp)
leaq -0x1198(%rbp), %rdi
leaq -0x11a0(%rbp), %rsi
callq 0xc710
movq -0x2270(%rbp), %rdi
movq -0x2278(%rbp), %rdx
movq %rax, %rcx
leaq -0x17e0(%rbp), %rsi
callq 0x9bd0
jmp 0xb914
movq -0x2270(%rbp), %rdi
movb $0x0, -0x17e1(%rbp)
leaq 0x113df(%rip), %rsi     # 0x1cd08
leaq 0xe20(%rip), %rdx       # 0xc750
callq 0x45d0
jmp 0xba53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
jmp 0xb96c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x8e8(%rbp)
movl %eax, -0x8ec(%rbp)
leaq -0x17e0(%rbp), %rdi
callq 0x41f0
testb $0x1, -0x17e1(%rbp)
jne 0xb977
jmp 0xb983
movq -0x2270(%rbp), %rdi
callq 0x4260
jmp 0xba08
jmp 0xb98a
jmp 0xb98c
jmp 0xb98e
jmp 0xb990
jmp 0x9cc6
testb $0x1, -0x13(%rbp)
je 0xb9dd
movq -0x2098(%rbp), %rdi
leaq -0x8e0(%rbp), %rsi
callq 0xc490
jmp 0xb9b0
leaq -0x2088(%rbp), %rdi
callq 0xe010
jmp 0xb9be
leaq -0x8e0(%rbp), %rdi
leaq -0x2088(%rbp), %rsi
callq 0xc500
leaq -0x2088(%rbp), %rdi
callq 0x7780
movb $0x1, -0x11(%rbp)
movl $0x1, -0x1318(%rbp)
leaq -0x8e0(%rbp), %rdi
callq 0x7780
leaq -0x40(%rbp), %rdi
callq 0x41f0
testb $0x1, -0x11(%rbp)
jne 0xba37
jmp 0xba2b
leaq -0x8e0(%rbp), %rdi
callq 0x7780
leaq -0x40(%rbp), %rdi
callq 0x41f0
movq -0x2098(%rbp), %rdi
callq 0x7920
jmp 0xba47
movq -0x2098(%rbp), %rdi
callq 0x7920
movq -0x2090(%rbp), %rax
addq $0x2280, %rsp           # imm = 0x2280
popq %rbp
retq
movq -0x8e8(%rbp), %rdi
callq 0x45f0
nopw %cs:(%rax,%rax)