// File: /workspace/github_cpp_makefile_star2_O1/ivan-tkatchev[P]makerpm/makerpm.cc
// Function: make_index2[abi:cxx11](rpmprops_t const&)
std::string make_index2(const rpmprops_t& props) {

    Store store;

    // Add package fields.

    uint32_t totsize = 0;
    uint64_t totlongsize = 0;

    //store.add(rpm::TAG_HEADERI18NTABLE, props.locale);

    store.add(rpm::TAG_NAME, props.name, false);
    store.add(rpm::TAG_VERSION, props.version, false);
    store.add(rpm::TAG_RELEASE, props.release, false);

    store.add(rpm::TAG_SUMMARY, props.summary, true);
    store.add(rpm::TAG_DESCRIPTION, props.description, true);
    store.add(rpm::TAG_BUILDHOST, props.buildhost, false);
    store.add(rpm::TAG_BUILDTIME, props.buildtime);
    store.add(rpm::TAG_LICENSE, props.license, false);
    store.add(rpm::TAG_PACKAGER, props.packager, false);
    store.add(rpm::TAG_GROUP, props.group, true);
    store.add(rpm::TAG_URL, props.url, false);
    store.add(rpm::TAG_OS, props.os, false);
    store.add(rpm::TAG_ARCH, props.arch, false);
    store.add(rpm::TAG_RHNPLATFORM, props.arch, false);
    store.add(rpm::TAG_PAYLOADFORMAT, props.payload_format, false);
    store.add(rpm::TAG_PAYLOADCOMPRESSOR, props.payload_compressor, false);
    store.add(rpm::TAG_PLATFORM, props.platform, false);

    // for details, see yum's rpmUtils/miscutils.py, function pkgTupleFromHeader(),
    // or createrepo's createrepo/yumbased.py, method CreateRepoPackage.isSrpm()
    if (!props.sourcerpm.empty()) {
        store.add(rpm::TAG_SOURCERPM, props.sourcerpm, false);
    }
    // unlike yum or createrepo, rpm itself relies on the SOURCEPACKAGE tag existence[1]
    // [1] rpm's lib/rpminstall.c, function rpmInstall()
    if(props.arch == "src")
        store.add(rpm::TAG_SOURCEPACKAGE, (uint32_t)1);

    store.add(rpm::TAG_OPTFLAGS, props.optflags, false);
    store.add(rpm::TAG_RPMVERSION, props.rpmversion, false);

    store.add(rpm::TAG_PREIN, props.prein.code, false);
    store.add(rpm::TAG_PREINPROG, props.prein.prog, false);
    store.add(rpm::TAG_POSTIN, props.postin.code, false);
    store.add(rpm::TAG_POSTINPROG, props.postin.prog, false);
    store.add(rpm::TAG_PREUN, props.preun.code, false);
    store.add(rpm::TAG_PREUNPROG, props.preun.prog, false);
    store.add(rpm::TAG_POSTUN, props.postun.code, false);
    store.add(rpm::TAG_POSTUNPROG, props.postun.prog, false);

    std::vector<std::string> providename;
    std::vector<uint32_t> provideflags;
    std::vector<std::string> provideversion;

    for (const auto& v : props.provide) {
        providename.push_back(v.name);
        provideflags.push_back(v.flags);
        provideversion.push_back(v.version);
    }

    store.add(rpm::TAG_PROVIDENAME, providename);
    store.add(rpm::TAG_PROVIDEVERSION, provideversion);
    store.add(rpm::TAG_PROVIDEFLAGS, provideflags);

    std::vector<std::string> requirename;
    std::vector<uint32_t> requireflags;
    std::vector<std::string> requireversion;

    for (const auto& v : props.require) {
        requirename.push_back(v.name);
        requireflags.push_back(v.flags);
        requireversion.push_back(v.version);
    }

    store.add(rpm::TAG_REQUIRENAME, requirename);
    store.add(rpm::TAG_REQUIREVERSION, requireversion);
    store.add(rpm::TAG_REQUIREFLAGS, requireflags);

    std::vector<std::string> conflictname;
    std::vector<uint32_t> conflictflags;
    std::vector<std::string> conflictversion;

    for (const auto& v : props.conflict) {
        conflictname.push_back(v.name);
        conflictflags.push_back(v.flags);
        conflictversion.push_back(v.version);
    }

    store.add(rpm::TAG_CONFLICTNAME, conflictname);
    store.add(rpm::TAG_CONFLICTVERSION, conflictversion);
    store.add(rpm::TAG_CONFLICTFLAGS, conflictflags);

    std::vector<std::string> obsoletename;
    std::vector<uint32_t> obsoleteflags;
    std::vector<std::string> obsoleteversion;

    for (const auto& v : props.obsolete) {
        obsoletename.push_back(v.name);
        obsoleteflags.push_back(v.flags);
        obsoleteversion.push_back(v.version);
    }

    store.add(rpm::TAG_OBSOLETENAME, obsoletename);
    store.add(rpm::TAG_OBSOLETEVERSION, obsoleteversion);
    store.add(rpm::TAG_OBSOLETEFLAGS, obsoleteflags);


    bool files_longsize = false;

    for (const auto& f : props.files) {

        if (f.longsize > 0) {
            files_longsize = true;
        }
    }

    std::vector<uint32_t> size;
    std::vector<uint64_t> longsize;
    std::vector<uint16_t> mode;
    std::vector<uint16_t> rdev;
    std::vector<uint32_t> mtime;
    std::vector<std::string> digest;
    std::vector<std::string> linkto;
    std::vector<uint32_t> flags;
    std::vector<std::string> user;
    std::vector<std::string> group;
    std::vector<uint32_t> verifyflags;
    std::vector<uint32_t> device;
    std::vector<uint32_t> inode;

    std::vector<std::string> basename;
    std::vector<uint32_t> dirindex;

    std::map<std::string, uint32_t> dirindex_map;

    std::vector<std::string> dirname;

    for (const auto& f : props.files) {

        if (files_longsize) {
            longsize.push_back(f.longsize);
            totlongsize += f.longsize;

        } else {
            size.push_back(f.size);
            totsize += f.size;
        }

        mode.push_back(f.mode);
        rdev.push_back(f.rdev);
        mtime.push_back(f.mtime);
        
        digest.push_back(f.digest);

        linkto.push_back(f.linkto);
        flags.push_back(f.flags);
        user.push_back(f.username);
        group.push_back(f.groupname);
        verifyflags.push_back(f.verifyflags);
        device.push_back(f.device);
        inode.push_back(f.inode);

        const std::string& fname = f.fname;
        size_t slash = fname.find_last_of('/');

        std::string base = fname;
        std::string dir;

        if (slash != std::string::npos) {
            base = fname.substr(slash+1);
            dir = fname.substr(1, slash);
        }

        auto dim = dirindex_map.find(dir);

        if (dim == dirindex_map.end()) {
            dim = dirindex_map.insert(dirindex_map.end(), std::make_pair(dir, dirindex_map.size()));
            dirname.push_back(dir);
        }

        basename.push_back(base);
        dirindex.push_back(dim->second);
    }

    store.add(rpm::TAG_BASENAMES, basename);
    store.add(rpm::TAG_DIRINDEXES, dirindex);
    store.add(rpm::TAG_DIRNAMES, dirname);
    store.add(rpm::TAG_LONGFILESIZES, longsize);
    store.add(rpm::TAG_FILESIZES, size);
    store.add(rpm::TAG_FILEMODES, mode);
    store.add(rpm::TAG_FILERDEVS, rdev);
    store.add(rpm::TAG_FILEMTIMES, mtime);
    store.add(rpm::TAG_FILEDIGESTS, digest);
    store.add(rpm::TAG_FILELINKTOS, linkto);
    store.add(rpm::TAG_FILEFLAGS, flags);
    store.add(rpm::TAG_FILEUSERNAME, user);
    store.add(rpm::TAG_FILEGROUPNAME, group);
    store.add(rpm::TAG_FILEVERIFYFLAGS, verifyflags);
    store.add(rpm::TAG_FILEDEVICES, device);
    store.add(rpm::TAG_FILEINODES, inode);

    if (totlongsize > 0) {
        store.add(rpm::TAG_LONGSIZE, totlongsize);
    } else {
        store.add(rpm::TAG_SIZE, totsize);
    }

    return store.str(rpm::TAG_HEADERIMMUTABLE);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x478, %rsp            # imm = 0x478
movq %rsi, %r14
movq %rdi, 0x440(%rsp)
leaq 0x20(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x40(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq %rax, 0x10(%rcx)
leaq 0x10(%rsp), %rdi
movl $0x3e8, %esi            # imm = 0x3E8
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x1241e
leaq 0x20(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3e9, %esi            # imm = 0x3E9
xorl %ecx, %ecx
callq 0x1241e
leaq 0x40(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3ea, %esi            # imm = 0x3EA
xorl %ecx, %ecx
callq 0x1241e
leaq 0x60(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3ec, %esi            # imm = 0x3EC
movl $0x1, %ecx
callq 0x1241e
leaq 0x80(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3ed, %esi            # imm = 0x3ED
movl $0x1, %ecx
callq 0x1241e
leaq 0xa8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3ef, %esi            # imm = 0x3EF
xorl %ecx, %ecx
callq 0x1241e
movl 0xa0(%r14), %edx
leaq 0x10(%rsp), %rdi
movl $0x3ee, %esi            # imm = 0x3EE
callq 0x12484
leaq 0xc8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3f6, %esi            # imm = 0x3F6
xorl %ecx, %ecx
callq 0x1241e
leaq 0xe8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3f7, %esi            # imm = 0x3F7
xorl %ecx, %ecx
callq 0x1241e
leaq 0x108(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3f8, %esi            # imm = 0x3F8
movl $0x1, %ecx
callq 0x1241e
leaq 0x128(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3fc, %esi            # imm = 0x3FC
xorl %ecx, %ecx
callq 0x1241e
leaq 0x148(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3fd, %esi            # imm = 0x3FD
xorl %ecx, %ecx
callq 0x1241e
leaq 0x168(%r14), %rbx
leaq 0x10(%rsp), %rdi
movl $0x3fe, %esi            # imm = 0x3FE
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x1241e
leaq 0x10(%rsp), %rdi
movl $0x46b, %esi            # imm = 0x46B
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x1241e
leaq 0x188(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x464, %esi            # imm = 0x464
xorl %ecx, %ecx
callq 0x1241e
leaq 0x1a8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x465, %esi            # imm = 0x465
xorl %ecx, %ecx
callq 0x1241e
leaq 0x1e8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x46c, %esi            # imm = 0x46C
xorl %ecx, %ecx
callq 0x1241e
cmpq $0x0, 0x230(%r14)
je 0xf3f2
leaq 0x228(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x414, %esi            # imm = 0x414
xorl %ecx, %ecx
callq 0x1241e
leaq 0xa32d(%rip), %rsi      # 0x19726
movq %rbx, %rdi
callq 0x3520
testl %eax, %eax
jne 0xf419
leaq 0x10(%rsp), %rdi
movl $0x452, %esi            # imm = 0x452
movl $0x1, %edx
callq 0x12484
leaq 0x208(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x462, %esi            # imm = 0x462
xorl %ecx, %ecx
callq 0x1241e
leaq 0x248(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x428, %esi            # imm = 0x428
xorl %ecx, %ecx
callq 0x1241e
leaq 0x2c8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x3ff, %esi            # imm = 0x3FF
xorl %ecx, %ecx
callq 0x1241e
leaq 0x2a8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x43d, %esi            # imm = 0x43D
xorl %ecx, %ecx
callq 0x1241e
leaq 0x308(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %ecx, %ecx
callq 0x1241e
leaq 0x2e8(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x43e, %esi            # imm = 0x43E
xorl %ecx, %ecx
callq 0x1241e
leaq 0x348(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x401, %esi            # imm = 0x401
xorl %ecx, %ecx
callq 0x1241e
leaq 0x328(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x43f, %esi            # imm = 0x43F
xorl %ecx, %ecx
callq 0x1241e
leaq 0x388(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x402, %esi            # imm = 0x402
xorl %ecx, %ecx
callq 0x1241e
leaq 0x368(%r14), %rdx
leaq 0x10(%rsp), %rdi
movl $0x440, %esi            # imm = 0x440
xorl %ecx, %ecx
callq 0x1241e
xorps %xmm0, %xmm0
movaps %xmm0, 0x420(%rsp)
xorl %eax, %eax
movq %rax, 0x430(%rsp)
movq %rax, 0x230(%rsp)
movaps %xmm0, 0x220(%rsp)
movq %rax, 0x410(%rsp)
movaps %xmm0, 0x400(%rsp)
movq 0x3a8(%r14), %rbx
movq %r14, 0x8(%rsp)
movq 0x3b0(%r14), %r14
cmpq %r14, %rbx
je 0xf5cc
addq $0x20, %rbx
leaq 0x420(%rsp), %r15
leaq 0x220(%rsp), %r12
leaq 0x400(%rsp), %r13
leaq -0x20(%rbx), %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x124f8
movq 0x228(%rsp), %rsi
cmpq 0x230(%rsp), %rsi
je 0xf5a5
movl (%rbx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x228(%rsp)
jmp 0xf5b0
movq %r12, %rdi
movq %rbx, %rdx
callq 0x13f8a
addq $0x28, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x124f8
addq $0x48, %rbx
addq $0x20, %rbp
cmpq %r14, %rbp
jne 0xf572
leaq 0x10(%rsp), %rdi
leaq 0x420(%rsp), %rdx
movl $0x417, %esi            # imm = 0x417
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x400(%rsp), %rdx
movl $0x459, %esi            # imm = 0x459
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x220(%rsp), %rdx
movl $0x458, %esi            # imm = 0x458
callq 0x125c8
xorps %xmm0, %xmm0
movaps %xmm0, 0x3e0(%rsp)
xorl %eax, %eax
movq %rax, 0x3f0(%rsp)
movq %rax, 0x210(%rsp)
movaps %xmm0, 0x200(%rsp)
movq %rax, 0x3d0(%rsp)
movaps %xmm0, 0x3c0(%rsp)
movq 0x8(%rsp), %rax
movq 0x3c0(%rax), %rbx
movq 0x3c8(%rax), %r14
cmpq %r14, %rbx
je 0xf6d4
addq $0x20, %rbx
leaq 0x3e0(%rsp), %r15
leaq 0x200(%rsp), %r12
leaq 0x3c0(%rsp), %r13
leaq -0x20(%rbx), %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x124f8
movq 0x208(%rsp), %rsi
cmpq 0x210(%rsp), %rsi
je 0xf6ad
movl (%rbx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x208(%rsp)
jmp 0xf6b8
movq %r12, %rdi
movq %rbx, %rdx
callq 0x13f8a
addq $0x28, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x124f8
addq $0x48, %rbx
addq $0x20, %rbp
cmpq %r14, %rbp
jne 0xf67a
leaq 0x10(%rsp), %rdi
leaq 0x3e0(%rsp), %rdx
movl $0x419, %esi            # imm = 0x419
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x3c0(%rsp), %rdx
movl $0x41a, %esi            # imm = 0x41A
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x200(%rsp), %rdx
movl $0x418, %esi            # imm = 0x418
callq 0x125c8
xorps %xmm0, %xmm0
movaps %xmm0, 0x3a0(%rsp)
xorl %eax, %eax
movq %rax, 0x3b0(%rsp)
movq %rax, 0x1f0(%rsp)
movaps %xmm0, 0x1e0(%rsp)
movq %rax, 0x390(%rsp)
movaps %xmm0, 0x380(%rsp)
movq 0x8(%rsp), %rax
movq 0x3d8(%rax), %rbx
movq 0x3e0(%rax), %r14
cmpq %r14, %rbx
je 0xf7dc
addq $0x20, %rbx
leaq 0x3a0(%rsp), %r15
leaq 0x1e0(%rsp), %r12
leaq 0x380(%rsp), %r13
leaq -0x20(%rbx), %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x124f8
movq 0x1e8(%rsp), %rsi
cmpq 0x1f0(%rsp), %rsi
je 0xf7b5
movl (%rbx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1e8(%rsp)
jmp 0xf7c0
movq %r12, %rdi
movq %rbx, %rdx
callq 0x13f8a
addq $0x28, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x124f8
addq $0x48, %rbx
addq $0x20, %rbp
cmpq %r14, %rbp
jne 0xf782
leaq 0x10(%rsp), %rdi
leaq 0x3a0(%rsp), %rdx
movl $0x41e, %esi            # imm = 0x41E
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x380(%rsp), %rdx
movl $0x41f, %esi            # imm = 0x41F
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x1e0(%rsp), %rdx
movl $0x41d, %esi            # imm = 0x41D
callq 0x125c8
xorps %xmm0, %xmm0
movaps %xmm0, 0x360(%rsp)
xorl %eax, %eax
movq %rax, 0x370(%rsp)
movq %rax, 0x1d0(%rsp)
movaps %xmm0, 0x1c0(%rsp)
movq %rax, 0x350(%rsp)
movaps %xmm0, 0x340(%rsp)
movq 0x8(%rsp), %rax
movq 0x3f0(%rax), %rbx
movq 0x3f8(%rax), %r14
cmpq %r14, %rbx
je 0xf8e4
addq $0x20, %rbx
leaq 0x360(%rsp), %r15
leaq 0x1c0(%rsp), %r12
leaq 0x340(%rsp), %r13
leaq -0x20(%rbx), %rbp
movq %r15, %rdi
movq %rbp, %rsi
callq 0x124f8
movq 0x1c8(%rsp), %rsi
cmpq 0x1d0(%rsp), %rsi
je 0xf8bd
movl (%rbx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1c8(%rsp)
jmp 0xf8c8
movq %r12, %rdi
movq %rbx, %rdx
callq 0x13f8a
addq $0x28, %rbp
movq %r13, %rdi
movq %rbp, %rsi
callq 0x124f8
addq $0x48, %rbx
addq $0x20, %rbp
cmpq %r14, %rbp
jne 0xf88a
leaq 0x10(%rsp), %rdi
leaq 0x360(%rsp), %rdx
movl $0x442, %esi            # imm = 0x442
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x340(%rsp), %rdx
movl $0x45b, %esi            # imm = 0x45B
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
movl $0x45a, %esi            # imm = 0x45A
callq 0x125c8
movq 0x8(%rsp), %rax
movq 0x408(%rax), %r12
movq 0x410(%rax), %r14
xorl %edx, %edx
xorl %ebp, %ebp
cmpq %r14, %r12
je 0xf965
movl $0x1, %eax
movq %r12, %rcx
cmpq $0x0, 0x8(%rcx)
movzbl %bpl, %ebp
cmovnel %eax, %ebp
addq $0xd0, %rcx
cmpq %r14, %rcx
jne 0xf94d
xorps %xmm0, %xmm0
movaps %xmm0, 0x1a0(%rsp)
movq %rdx, 0x1b0(%rsp)
movq %rdx, 0x190(%rsp)
movaps %xmm0, 0x180(%rsp)
movq %rdx, 0x170(%rsp)
movaps %xmm0, 0x160(%rsp)
movq %rdx, 0x150(%rsp)
movaps %xmm0, 0x140(%rsp)
movq %rdx, 0x130(%rsp)
movaps %xmm0, 0x120(%rsp)
movq %rdx, 0x330(%rsp)
movaps %xmm0, 0x320(%rsp)
movq %rdx, 0x310(%rsp)
movaps %xmm0, 0x300(%rsp)
movq %rdx, 0x110(%rsp)
movaps %xmm0, 0x100(%rsp)
movq %rdx, 0x2f0(%rsp)
movaps %xmm0, 0x2e0(%rsp)
movq %rdx, 0x2d0(%rsp)
movaps %xmm0, 0x2c0(%rsp)
movq %rdx, 0xf0(%rsp)
movaps %xmm0, 0xe0(%rsp)
movq %rdx, 0xd0(%rsp)
movaps %xmm0, 0xc0(%rsp)
movq %rdx, 0xb0(%rsp)
movaps %xmm0, 0xa0(%rsp)
movq %rdx, 0x2b0(%rsp)
movaps %xmm0, 0x2a0(%rsp)
movq %rdx, 0x90(%rsp)
movaps %xmm0, 0x80(%rsp)
leaq 0x450(%rsp), %rax
movl $0x0, (%rax)
movq %rdx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rdx, 0x20(%rax)
movq $0x0, 0x8(%rsp)
movq %rdx, 0x290(%rsp)
movaps %xmm0, 0x280(%rsp)
movl $0x0, %eax
movq %rax, 0x58(%rsp)
cmpq %r14, %r12
je 0xff32
movq $0x0, 0x8(%rsp)
leaq 0x238(%rsp), %r13
movq $0x0, 0x58(%rsp)
testb $0x1, %bpl
je 0xfaed
leaq 0x8(%r12), %rbx
movq 0x188(%rsp), %rsi
cmpq 0x190(%rsp), %rsi
je 0xfb13
movq (%rbx), %rax
movq %rax, (%rsi)
addq $0x8, %rsi
movq %rsi, 0x188(%rsp)
jmp 0xfb23
movq 0x1a8(%rsp), %rsi
cmpq 0x1b0(%rsp), %rsi
je 0xfb32
movl (%r12), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x1a8(%rsp)
jmp 0xfb42
leaq 0x180(%rsp), %rdi
movq %rbx, %rdx
callq 0x140be
movq 0x58(%rsp), %rax
addq (%rbx), %rax
movq %rax, 0x58(%rsp)
jmp 0xfb50
leaq 0x1a0(%rsp), %rdi
movq %r12, %rdx
callq 0x13f8a
movq 0x8(%rsp), %rax
addl (%r12), %eax
movq %rax, 0x8(%rsp)
leaq 0x10(%r12), %rdx
movq 0x168(%rsp), %rsi
cmpq 0x170(%rsp), %rsi
je 0xfb7b
movzwl (%rdx), %eax
movw %ax, (%rsi)
addq $0x2, %rsi
movq %rsi, 0x168(%rsp)
jmp 0xfb88
leaq 0x160(%rsp), %rdi
callq 0x141f4
leaq 0x12(%r12), %rdx
movq 0x148(%rsp), %rsi
cmpq 0x150(%rsp), %rsi
je 0xfbb3
movzwl (%rdx), %eax
movw %ax, (%rsi)
addq $0x2, %rsi
movq %rsi, 0x148(%rsp)
jmp 0xfbc0
leaq 0x140(%rsp), %rdi
callq 0x141f4
leaq 0x14(%r12), %rdx
movq 0x128(%rsp), %rsi
cmpq 0x130(%rsp), %rsi
je 0xfbe9
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x128(%rsp)
jmp 0xfbf6
leaq 0x120(%rsp), %rdi
callq 0x13f8a
leaq 0x18(%r12), %rsi
leaq 0x320(%rsp), %rdi
callq 0x124f8
leaq 0x38(%r12), %rsi
leaq 0x300(%rsp), %rdi
callq 0x124f8
leaq 0x58(%r12), %rdx
movq 0x108(%rsp), %rsi
cmpq 0x110(%rsp), %rsi
je 0xfc43
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x108(%rsp)
jmp 0xfc50
leaq 0x100(%rsp), %rdi
callq 0x13f8a
leaq 0x60(%r12), %rsi
leaq 0x2e0(%rsp), %rdi
callq 0x124f8
leaq 0x80(%r12), %rsi
leaq 0x2c0(%rsp), %rdi
callq 0x124f8
leaq 0xa0(%r12), %rdx
movq 0xe8(%rsp), %rsi
cmpq 0xf0(%rsp), %rsi
je 0xfca3
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xe8(%rsp)
jmp 0xfcb0
leaq 0xe0(%rsp), %rdi
callq 0x13f8a
leaq 0xa4(%r12), %rdx
movq 0xc8(%rsp), %rsi
cmpq 0xd0(%rsp), %rsi
je 0xfcdc
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xc8(%rsp)
jmp 0xfce9
leaq 0xc0(%rsp), %rdi
callq 0x13f8a
leaq 0xa8(%r12), %rdx
movq 0xa8(%rsp), %rsi
cmpq 0xb0(%rsp), %rsi
je 0xfd15
movl (%rdx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0xa8(%rsp)
jmp 0xfd22
leaq 0xa0(%rsp), %rdi
callq 0x13f8a
leaq 0xb0(%r12), %r15
movq %r15, %rdi
movl $0x2f, %esi
movq $-0x1, %rdx
callq 0x3260
movq %rax, %rbx
leaq 0x270(%rsp), %rax
movq %rax, 0x260(%rsp)
movq 0xb0(%r12), %rsi
movq 0xb8(%r12), %rdx
addq %rsi, %rdx
leaq 0x260(%rsp), %rdi
callq 0x1392a
leaq 0x70(%rsp), %rax
movq %rax, 0x60(%rsp)
movq $0x0, 0x68(%rsp)
movb $0x0, 0x70(%rsp)
cmpq $-0x1, %rbx
je 0xfe09
leaq 0x1(%rbx), %rdx
movq %r13, %rdi
movq %r15, %rsi
movq $-0x1, %rcx
callq 0x35a0
leaq 0x260(%rsp), %rdi
movq %r13, %rsi
callq 0x32e0
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0xfdcf
callq 0x32f0
movl $0x1, %edx
movq %r13, %rdi
movq %r15, %rsi
movq %rbx, %rcx
callq 0x35a0
leaq 0x60(%rsp), %rdi
movq %r13, %rsi
callq 0x32e0
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0xfe09
callq 0x32f0
leaq 0x448(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x14326
movq %rax, %rbx
leaq 0x450(%rsp), %rax
cmpq %rax, %rbx
jne 0xfea7
movq 0x470(%rsp), %rbx
leaq 0x248(%rsp), %rax
movq %rax, 0x238(%rsp)
movq 0x60(%rsp), %rsi
movq 0x68(%rsp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x1392a
movq %rbx, 0x258(%rsp)
leaq 0x448(%rsp), %rdi
leaq 0x450(%rsp), %rsi
movq %r13, %rdx
callq 0x143b0
movq %rax, %rbx
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0xfe95
callq 0x32f0
leaq 0x280(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x124f8
leaq 0x2a0(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x124f8
addq $0x40, %rbx
movq 0x88(%rsp), %rsi
cmpq 0x90(%rsp), %rsi
je 0xfee4
movl (%rbx), %eax
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x88(%rsp)
jmp 0xfef4
leaq 0x80(%rsp), %rdi
movq %rbx, %rdx
callq 0x13f8a
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0xff08
callq 0x32f0
movq 0x260(%rsp), %rdi
leaq 0x270(%rsp), %rax
cmpq %rax, %rdi
je 0xff22
callq 0x32f0
addq $0xd0, %r12
cmpq %r14, %r12
jne 0xfabc
leaq 0x10(%rsp), %rdi
leaq 0x2a0(%rsp), %rdx
movl $0x45d, %esi            # imm = 0x45D
callq 0x12536
movq 0x440(%rsp), %rbx
leaq 0x10(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movl $0x45c, %esi            # imm = 0x45C
callq 0x125c8
leaq 0x10(%rsp), %rdi
leaq 0x280(%rsp), %rdx
movl $0x45e, %esi            # imm = 0x45E
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movl $0x1390, %esi           # imm = 0x1390
callq 0x12666
leaq 0x10(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
movl $0x404, %esi            # imm = 0x404
callq 0x125c8
leaq 0x10(%rsp), %rdi
leaq 0x160(%rsp), %rdx
movl $0x406, %esi            # imm = 0x406
callq 0x12700
leaq 0x10(%rsp), %rdi
leaq 0x140(%rsp), %rdx
movl $0x409, %esi            # imm = 0x409
callq 0x12700
leaq 0x10(%rsp), %rdi
leaq 0x120(%rsp), %rdx
movl $0x40a, %esi            # imm = 0x40A
callq 0x125c8
leaq 0x10(%rsp), %rdi
leaq 0x320(%rsp), %rdx
movl $0x40b, %esi            # imm = 0x40B
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x300(%rsp), %rdx
movl $0x40c, %esi            # imm = 0x40C
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x100(%rsp), %rdx
movl $0x40d, %esi            # imm = 0x40D
callq 0x125c8
leaq 0x10(%rsp), %rdi
leaq 0x2e0(%rsp), %rdx
movl $0x40f, %esi            # imm = 0x40F
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0x2c0(%rsp), %rdx
movl $0x410, %esi            # imm = 0x410
callq 0x12536
leaq 0x10(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movl $0x415, %esi            # imm = 0x415
callq 0x125c8
leaq 0x10(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
movl $0x447, %esi            # imm = 0x447
callq 0x125c8
leaq 0x10(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
movl $0x448, %esi            # imm = 0x448
callq 0x125c8
movq 0x58(%rsp), %rax
testq %rax, %rax
movq 0x8(%rsp), %rdx
je 0x100cd
leaq 0x10(%rsp), %rdi
movl $0x1391, %esi           # imm = 0x1391
movq %rax, %rdx
callq 0x12792
jmp 0x100dc
leaq 0x10(%rsp), %rdi
movl $0x3f1, %esi            # imm = 0x3F1
callq 0x12484
leaq 0x10(%rsp), %rsi
movq %rbx, %rdi
movl $0x3f, %edx
callq 0x127fc
leaq 0x280(%rsp), %rdi
callq 0x12aa8
leaq 0x448(%rsp), %rdi
callq 0x1378c
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x1011a
callq 0x32f0
leaq 0x2a0(%rsp), %rdi
callq 0x12aa8
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x10139
callq 0x32f0
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x1014b
callq 0x32f0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x1015d
callq 0x32f0
leaq 0x2c0(%rsp), %rdi
callq 0x12aa8
leaq 0x2e0(%rsp), %rdi
callq 0x12aa8
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x10189
callq 0x32f0
leaq 0x300(%rsp), %rdi
callq 0x12aa8
leaq 0x320(%rsp), %rdi
callq 0x12aa8
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0x101b5
callq 0x32f0
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x101c7
callq 0x32f0
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0x101d9
callq 0x32f0
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x101eb
callq 0x32f0
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x101fd
callq 0x32f0
leaq 0x340(%rsp), %rdi
callq 0x12aa8
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x1021c
callq 0x32f0
leaq 0x360(%rsp), %rdi
callq 0x12aa8
leaq 0x380(%rsp), %rdi
callq 0x12aa8
movq 0x1e0(%rsp), %rdi
testq %rdi, %rdi
je 0x10248
callq 0x32f0
leaq 0x3a0(%rsp), %rdi
callq 0x12aa8
leaq 0x3c0(%rsp), %rdi
callq 0x12aa8
movq 0x200(%rsp), %rdi
testq %rdi, %rdi
je 0x10274
callq 0x32f0
leaq 0x3e0(%rsp), %rdi
callq 0x12aa8
leaq 0x400(%rsp), %rdi
callq 0x12aa8
movq 0x220(%rsp), %rdi
testq %rdi, %rdi
je 0x102a0
callq 0x32f0
leaq 0x420(%rsp), %rdi
callq 0x12aa8
movq 0x30(%rsp), %rdi
leaq 0x40(%rsp), %rax
cmpq %rax, %rdi
je 0x102c1
callq 0x32f0
movq 0x10(%rsp), %rdi
leaq 0x20(%rsp), %rax
cmpq %rax, %rdi
je 0x102d5
callq 0x32f0
movq %rbx, %rax
addq $0x478, %rsp            # imm = 0x478
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10323
jmp 0x1032b
jmp 0x10333
jmp 0x1033b
movq %rax, %rbx
movq 0x238(%rsp), %rdi
leaq 0x248(%rsp), %rax
cmpq %rax, %rdi
je 0x10346
callq 0x32f0
jmp 0x10346
jmp 0x10343
jmp 0x10343
jmp 0x10343
jmp 0x10376
jmp 0x10376
movq %rax, %rbx
jmp 0x10538
movq %rax, %rbx
jmp 0x10488
movq %rax, %rbx
jmp 0x104b4
movq %rax, %rbx
jmp 0x104e0
movq %rax, %rbx
jmp 0x1050c
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x1035a
callq 0x32f0
movq 0x260(%rsp), %rdi
leaq 0x270(%rsp), %rax
cmpq %rax, %rdi
je 0x10379
callq 0x32f0
jmp 0x10379
movq %rax, %rbx
leaq 0x280(%rsp), %rdi
callq 0x12aa8
leaq 0x448(%rsp), %rdi
callq 0x1378c
movq 0x80(%rsp), %rdi
testq %rdi, %rdi
je 0x103a5
callq 0x32f0
leaq 0x2a0(%rsp), %rdi
callq 0x12aa8
movq 0xa0(%rsp), %rdi
testq %rdi, %rdi
je 0x103c4
callq 0x32f0
movq 0xc0(%rsp), %rdi
testq %rdi, %rdi
je 0x103d6
callq 0x32f0
movq 0xe0(%rsp), %rdi
testq %rdi, %rdi
je 0x103e8
callq 0x32f0
leaq 0x2c0(%rsp), %rdi
callq 0x12aa8
leaq 0x2e0(%rsp), %rdi
callq 0x12aa8
movq 0x100(%rsp), %rdi
testq %rdi, %rdi
je 0x10414
callq 0x32f0
leaq 0x300(%rsp), %rdi
callq 0x12aa8
leaq 0x320(%rsp), %rdi
callq 0x12aa8
movq 0x120(%rsp), %rdi
testq %rdi, %rdi
je 0x10440
callq 0x32f0
movq 0x140(%rsp), %rdi
testq %rdi, %rdi
je 0x10452
callq 0x32f0
movq 0x160(%rsp), %rdi
testq %rdi, %rdi
je 0x10464
callq 0x32f0
movq 0x180(%rsp), %rdi
testq %rdi, %rdi
je 0x10476
callq 0x32f0
movq 0x1a0(%rsp), %rdi
testq %rdi, %rdi
je 0x10488
callq 0x32f0
leaq 0x340(%rsp), %rdi
callq 0x12aa8
movq 0x1c0(%rsp), %rdi
testq %rdi, %rdi
je 0x104a7
callq 0x32f0
leaq 0x360(%rsp), %rdi
callq 0x12aa8
leaq 0x380(%rsp), %rdi
callq 0x12aa8
movq 0x1e0(%rsp), %rdi
testq %rdi, %rdi
je 0x104d3
callq 0x32f0
leaq 0x3a0(%rsp), %rdi
callq 0x12aa8
leaq 0x3c0(%rsp), %rdi
callq 0x12aa8
movq 0x200(%rsp), %rdi
testq %rdi, %rdi
je 0x104ff
callq 0x32f0
leaq 0x3e0(%rsp), %rdi
callq 0x12aa8
leaq 0x400(%rsp), %rdi
callq 0x12aa8
movq 0x220(%rsp), %rdi
testq %rdi, %rdi
je 0x1052b
callq 0x32f0
leaq 0x420(%rsp), %rdi
callq 0x12aa8
leaq 0x10(%rsp), %rdi
callq 0x12aec
movq %rbx, %rdi
callq 0x3370