// File: /workspace/github_cpp_makefile_star2_O2/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
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movq %rdi, 0x78(%rsp)
xorl %ecx, %ecx
movb %cl, (%rax)
leaq 0x38(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb %cl, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x8(%rsp), %rdi
movl $0x3e8, %esi            # imm = 0x3E8
movq %r14, %rdx
xorl %ecx, %ecx
callq 0x125da
leaq 0x20(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3e9, %esi            # imm = 0x3E9
xorl %ecx, %ecx
callq 0x125da
leaq 0x40(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3ea, %esi            # imm = 0x3EA
xorl %ecx, %ecx
callq 0x125da
leaq 0x60(%r14), %rdx
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rcx
movl $0x3ec, %esi            # imm = 0x3EC
callq 0x125da
leaq 0x80(%r14), %rdx
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rcx
movl $0x3ed, %esi            # imm = 0x3ED
callq 0x125da
leaq 0xa8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3ef, %esi            # imm = 0x3EF
xorl %ecx, %ecx
callq 0x125da
movl 0xa0(%r14), %edx
leaq 0x8(%rsp), %rdi
movl $0x3ee, %esi            # imm = 0x3EE
callq 0x1263a
leaq 0xc8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3f6, %esi            # imm = 0x3F6
xorl %ecx, %ecx
callq 0x125da
leaq 0xe8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3f7, %esi            # imm = 0x3F7
xorl %ecx, %ecx
callq 0x125da
leaq 0x108(%r14), %rdx
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rcx
movl $0x3f8, %esi            # imm = 0x3F8
callq 0x125da
leaq 0x128(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3fc, %esi            # imm = 0x3FC
xorl %ecx, %ecx
callq 0x125da
leaq 0x148(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3fd, %esi            # imm = 0x3FD
xorl %ecx, %ecx
callq 0x125da
leaq 0x168(%r14), %rbx
leaq 0x8(%rsp), %rdi
movl $0x3fe, %esi            # imm = 0x3FE
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x125da
leaq 0x8(%rsp), %rdi
movl $0x46b, %esi            # imm = 0x46B
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x125da
leaq 0x188(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x464, %esi            # imm = 0x464
xorl %ecx, %ecx
callq 0x125da
leaq 0x1a8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x465, %esi            # imm = 0x465
xorl %ecx, %ecx
callq 0x125da
leaq 0x1e8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x46c, %esi            # imm = 0x46C
xorl %ecx, %ecx
callq 0x125da
cmpq $0x0, 0x230(%r14)
je 0x100f4
leaq 0x228(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x414, %esi            # imm = 0x414
xorl %ecx, %ecx
callq 0x125da
leaq 0x8da7(%rip), %rsi      # 0x18ea2
movq %rbx, %rdi
callq 0x126ab
testb %al, %al
je 0x10119
leaq 0x8(%rsp), %rdi
pushq $0x1
popq %rdx
movl $0x452, %esi            # imm = 0x452
callq 0x1263a
leaq 0x208(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x462, %esi            # imm = 0x462
xorl %ecx, %ecx
callq 0x125da
leaq 0x248(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x428, %esi            # imm = 0x428
xorl %ecx, %ecx
callq 0x125da
leaq 0x2c8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x3ff, %esi            # imm = 0x3FF
xorl %ecx, %ecx
callq 0x125da
leaq 0x2a8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x43d, %esi            # imm = 0x43D
xorl %ecx, %ecx
callq 0x125da
leaq 0x308(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x400, %esi            # imm = 0x400
xorl %ecx, %ecx
callq 0x125da
leaq 0x2e8(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x43e, %esi            # imm = 0x43E
xorl %ecx, %ecx
callq 0x125da
leaq 0x348(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x401, %esi            # imm = 0x401
xorl %ecx, %ecx
callq 0x125da
leaq 0x328(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x43f, %esi            # imm = 0x43F
xorl %ecx, %ecx
callq 0x125da
leaq 0x388(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x402, %esi            # imm = 0x402
xorl %ecx, %ecx
callq 0x125da
leaq 0x368(%r14), %rdx
leaq 0x8(%rsp), %rdi
movl $0x440, %esi            # imm = 0x440
xorl %ecx, %ecx
callq 0x125da
xorps %xmm0, %xmm0
leaq 0x3e0(%rsp), %rbx
movaps %xmm0, (%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x3c0(%rsp), %r15
andq $0x0, 0x10(%r15)
leaq 0x3a0(%rsp), %r12
andq $0x0, 0x10(%r12)
movaps %xmm0, (%r15)
movaps %xmm0, (%r12)
movq 0x3a8(%r14), %r13
movq 0x3b0(%r14), %rbp
cmpq %rbp, %r13
je 0x10282
movq %rbx, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x126e4
addq $0x8, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
jmp 0x1024e
leaq 0x8(%rsp), %rdi
leaq 0x3e0(%rsp), %rdx
movl $0x417, %esi            # imm = 0x417
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x3a0(%rsp), %rdx
movl $0x459, %esi            # imm = 0x459
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x3c0(%rsp), %rdx
movl $0x458, %esi            # imm = 0x458
callq 0x12788
xorps %xmm0, %xmm0
leaq 0x380(%rsp), %rbx
movaps %xmm0, (%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x360(%rsp), %r15
andq $0x0, 0x10(%r15)
leaq 0x340(%rsp), %r12
andq $0x0, 0x10(%r12)
movaps %xmm0, (%r15)
movaps %xmm0, (%r12)
movq 0x3c0(%r14), %r13
movq 0x3c8(%r14), %rbp
cmpq %rbp, %r13
je 0x10340
movq %rbx, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x126e4
addq $0x8, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
jmp 0x1030c
leaq 0x8(%rsp), %rdi
leaq 0x380(%rsp), %rdx
movl $0x419, %esi            # imm = 0x419
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x340(%rsp), %rdx
movl $0x41a, %esi            # imm = 0x41A
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x360(%rsp), %rdx
movl $0x418, %esi            # imm = 0x418
callq 0x12788
xorps %xmm0, %xmm0
leaq 0x320(%rsp), %rbx
movaps %xmm0, (%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x300(%rsp), %r15
andq $0x0, 0x10(%r15)
leaq 0x2e0(%rsp), %r12
andq $0x0, 0x10(%r12)
movaps %xmm0, (%r15)
movaps %xmm0, (%r12)
movq 0x3d8(%r14), %r13
movq 0x3e0(%r14), %rbp
cmpq %rbp, %r13
je 0x103fe
movq %rbx, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x126e4
addq $0x8, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
jmp 0x103ca
leaq 0x8(%rsp), %rdi
leaq 0x320(%rsp), %rdx
movl $0x41e, %esi            # imm = 0x41E
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x2e0(%rsp), %rdx
movl $0x41f, %esi            # imm = 0x41F
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x300(%rsp), %rdx
movl $0x41d, %esi            # imm = 0x41D
callq 0x12788
xorps %xmm0, %xmm0
leaq 0x2c0(%rsp), %rbx
movaps %xmm0, (%rbx)
andq $0x0, 0x10(%rbx)
leaq 0x2a0(%rsp), %r15
andq $0x0, 0x10(%r15)
leaq 0x280(%rsp), %r12
andq $0x0, 0x10(%r12)
movaps %xmm0, (%r15)
movaps %xmm0, (%r12)
movq 0x3f0(%r14), %r13
movq 0x3f8(%r14), %rbp
cmpq %rbp, %r13
je 0x104bc
movq %rbx, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
movq %r15, %rdi
movq %r13, %rsi
callq 0x126e4
addq $0x8, %r13
movq %r12, %rdi
movq %r13, %rsi
callq 0x126b8
addq $0x20, %r13
jmp 0x10488
leaq 0x8(%rsp), %rdi
leaq 0x2c0(%rsp), %rdx
movl $0x442, %esi            # imm = 0x442
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x280(%rsp), %rdx
movl $0x45b, %esi            # imm = 0x45B
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x2a0(%rsp), %rdx
movl $0x45a, %esi            # imm = 0x45A
callq 0x12788
movq 0x408(%r14), %r15
movq 0x410(%r14), %rbx
xorl %r14d, %r14d
movq %r15, %rax
cmpq %rbx, %rax
je 0x1052d
cmpq $0x0, 0x8(%rax)
setne %cl
orb %cl, %r14b
addq $0xd0, %rax
jmp 0x10515
xorps %xmm0, %xmm0
leaq 0x260(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x240(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x220(%rsp), %rax
andq $0x0, 0x10(%rax)
leaq 0x200(%rsp), %rcx
andq $0x0, 0x10(%rcx)
movaps %xmm0, (%rax)
movaps %xmm0, (%rcx)
leaq 0x1e0(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x1c0(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x1a0(%rsp), %rax
andq $0x0, 0x10(%rax)
leaq 0x180(%rsp), %rcx
andq $0x0, 0x10(%rcx)
movaps %xmm0, (%rax)
movaps %xmm0, (%rcx)
leaq 0x160(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x140(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0x120(%rsp), %rax
andq $0x0, 0x10(%rax)
leaq 0x100(%rsp), %rcx
andq $0x0, 0x10(%rcx)
movaps %xmm0, (%rax)
movaps %xmm0, (%rcx)
leaq 0xe0(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0xc0(%rsp), %rax
movaps %xmm0, (%rax)
andq $0x0, 0x10(%rax)
leaq 0xa0(%rsp), %rax
andq $0x0, 0x10(%rax)
leaq 0x408(%rsp), %rcx
andl $0x0, (%rcx)
andq $0x0, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
andq $0x0, 0x20(%rcx)
leaq 0x80(%rsp), %rcx
andq $0x0, 0x10(%rcx)
movaps %xmm0, (%rax)
movaps %xmm0, (%rcx)
movq $0x0, 0x50(%rsp)
leaq 0x450(%rsp), %rbp
movl $0x0, 0x4(%rsp)
cmpq %rbx, %r15
je 0x108ce
testb $0x1, %r14b
je 0x10699
leaq 0x8(%r15), %r12
leaq 0x240(%rsp), %rdi
movq %r12, %rsi
callq 0x12826
movq 0x50(%rsp), %rax
addq (%r12), %rax
movq %rax, 0x50(%rsp)
jmp 0x106b4
leaq 0x260(%rsp), %rdi
movq %r15, %rsi
callq 0x126e4
movl 0x4(%rsp), %eax
addl (%r15), %eax
movl %eax, 0x4(%rsp)
leaq 0x10(%r15), %rsi
leaq 0x220(%rsp), %rdi
callq 0x12846
leaq 0x12(%r15), %rsi
leaq 0x200(%rsp), %rdi
callq 0x12846
leaq 0x14(%r15), %rsi
leaq 0x1e0(%rsp), %rdi
callq 0x126e4
leaq 0x18(%r15), %rsi
leaq 0x1c0(%rsp), %rdi
callq 0x126b8
leaq 0x38(%r15), %rsi
leaq 0x1a0(%rsp), %rdi
callq 0x126b8
leaq 0x58(%r15), %rsi
leaq 0x180(%rsp), %rdi
callq 0x126e4
leaq 0x60(%r15), %rsi
leaq 0x160(%rsp), %rdi
callq 0x126b8
leaq 0x80(%r15), %rsi
leaq 0x140(%rsp), %rdi
callq 0x126b8
leaq 0xa0(%r15), %rsi
leaq 0x120(%rsp), %rdi
callq 0x126e4
leaq 0xa4(%r15), %rsi
leaq 0x100(%rsp), %rdi
callq 0x126e4
leaq 0xa8(%r15), %rsi
leaq 0xe0(%rsp), %rdi
callq 0x126e4
leaq 0xb0(%r15), %r12
movq %r12, %rdi
pushq $0x2f
popq %rsi
pushq $-0x1
popq %rdx
callq 0x3250
movq %rax, %r13
leaq 0x430(%rsp), %rdi
movq %r12, %rsi
callq 0x32e0
leaq 0x68(%rsp), %rax
movq %rax, 0x58(%rsp)
andq $0x0, 0x60(%rsp)
movb $0x0, 0x68(%rsp)
cmpq $-0x1, %r13
je 0x1080e
leaq 0x1(%r13), %rdx
movq %rbp, %rdi
movq %r12, %rsi
pushq $-0x1
popq %rcx
callq 0x3580
leaq 0x430(%rsp), %rdi
movq %rbp, %rsi
callq 0x32d0
movq %rbp, %rdi
callq 0x33a0
movq %rbp, %rdi
movq %r12, %rsi
pushq $0x1
popq %rdx
movq %r13, %rcx
callq 0x3580
leaq 0x58(%rsp), %rdi
movq %rbp, %rsi
callq 0x32d0
movq %rbp, %rdi
callq 0x33a0
leaq 0x400(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x1407c
movq %rax, %r12
leaq 0x408(%rsp), %rax
cmpq %rax, %r12
jne 0x10882
movq 0x428(%rsp), %r12
movq %rbp, %rdi
leaq 0x58(%rsp), %rsi
callq 0x32e0
movq %r12, 0x470(%rsp)
leaq 0x400(%rsp), %rdi
leaq 0x408(%rsp), %rsi
movq %rbp, %rdx
callq 0x14112
movq %rax, %r12
movq %rbp, %rdi
callq 0x33a0
leaq 0x80(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x126b8
leaq 0xc0(%rsp), %rdi
leaq 0x430(%rsp), %rsi
callq 0x126b8
addq $0x40, %r12
leaq 0xa0(%rsp), %rdi
movq %r12, %rsi
callq 0x126e4
leaq 0x58(%rsp), %rdi
callq 0x33a0
leaq 0x430(%rsp), %rdi
callq 0x33a0
addq $0xd0, %r15
jmp 0x10666
leaq 0x8(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
movl $0x45d, %esi            # imm = 0x45D
callq 0x12702
movq 0x78(%rsp), %rbx
leaq 0x8(%rsp), %rdi
leaq 0xa0(%rsp), %rdx
movl $0x45c, %esi            # imm = 0x45C
callq 0x12788
leaq 0x8(%rsp), %rdi
leaq 0x80(%rsp), %rdx
movl $0x45e, %esi            # imm = 0x45E
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x240(%rsp), %rdx
movl $0x1390, %esi           # imm = 0x1390
callq 0x12866
leaq 0x8(%rsp), %rdi
leaq 0x260(%rsp), %rdx
movl $0x404, %esi            # imm = 0x404
callq 0x12788
leaq 0x8(%rsp), %rdi
leaq 0x220(%rsp), %rdx
movl $0x406, %esi            # imm = 0x406
callq 0x12900
leaq 0x8(%rsp), %rdi
leaq 0x200(%rsp), %rdx
movl $0x409, %esi            # imm = 0x409
callq 0x12900
leaq 0x8(%rsp), %rdi
leaq 0x1e0(%rsp), %rdx
movl $0x40a, %esi            # imm = 0x40A
callq 0x12788
leaq 0x8(%rsp), %rdi
leaq 0x1c0(%rsp), %rdx
movl $0x40b, %esi            # imm = 0x40B
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x1a0(%rsp), %rdx
movl $0x40c, %esi            # imm = 0x40C
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x180(%rsp), %rdx
movl $0x40d, %esi            # imm = 0x40D
callq 0x12788
leaq 0x8(%rsp), %rdi
leaq 0x160(%rsp), %rdx
movl $0x40f, %esi            # imm = 0x40F
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x140(%rsp), %rdx
movl $0x410, %esi            # imm = 0x410
callq 0x12702
leaq 0x8(%rsp), %rdi
leaq 0x120(%rsp), %rdx
movl $0x415, %esi            # imm = 0x415
callq 0x12788
leaq 0x8(%rsp), %rdi
leaq 0x100(%rsp), %rdx
movl $0x447, %esi            # imm = 0x447
callq 0x12788
leaq 0x8(%rsp), %rdi
leaq 0xe0(%rsp), %rdx
movl $0x448, %esi            # imm = 0x448
callq 0x12788
movq 0x50(%rsp), %rdx
testq %rdx, %rdx
je 0x10a5e
leaq 0x8(%rsp), %rdi
movl $0x1391, %esi           # imm = 0x1391
callq 0x12996
jmp 0x10a71
leaq 0x8(%rsp), %rdi
movl $0x3f1, %esi            # imm = 0x3F1
movl 0x4(%rsp), %edx
callq 0x1263a
leaq 0x8(%rsp), %rsi
pushq $0x3f
popq %rdx
movq %rbx, %rdi
callq 0x129fc
leaq 0x80(%rsp), %rdi
callq 0x12bc0
leaq 0x400(%rsp), %rdi
callq 0x135be
leaq 0xa0(%rsp), %rdi
callq 0x13ac4
leaq 0xc0(%rsp), %rdi
callq 0x12bc0
leaq 0xe0(%rsp), %rdi
callq 0x13ac4
leaq 0x100(%rsp), %rdi
callq 0x13ac4
leaq 0x120(%rsp), %rdi
callq 0x13ac4
leaq 0x140(%rsp), %rdi
callq 0x12bc0
leaq 0x160(%rsp), %rdi
callq 0x12bc0
leaq 0x180(%rsp), %rdi
callq 0x13ac4
leaq 0x1a0(%rsp), %rdi
callq 0x12bc0
leaq 0x1c0(%rsp), %rdi
callq 0x12bc0
leaq 0x1e0(%rsp), %rdi
callq 0x13ac4
leaq 0x200(%rsp), %rdi
callq 0x13dec
leaq 0x220(%rsp), %rdi
callq 0x13dec
leaq 0x240(%rsp), %rdi
callq 0x13dde
leaq 0x260(%rsp), %rdi
callq 0x13ac4
leaq 0x280(%rsp), %rdi
callq 0x12bc0
leaq 0x2a0(%rsp), %rdi
callq 0x13ac4
leaq 0x2c0(%rsp), %rdi
callq 0x12bc0
leaq 0x2e0(%rsp), %rdi
callq 0x12bc0
leaq 0x300(%rsp), %rdi
callq 0x13ac4
leaq 0x320(%rsp), %rdi
callq 0x12bc0
leaq 0x340(%rsp), %rdi
callq 0x12bc0
leaq 0x360(%rsp), %rdi
callq 0x13ac4
leaq 0x380(%rsp), %rdi
callq 0x12bc0
leaq 0x3a0(%rsp), %rdi
callq 0x12bc0
leaq 0x3c0(%rsp), %rdi
callq 0x13ac4
leaq 0x3e0(%rsp), %rdi
callq 0x12bc0
leaq 0x8(%rsp), %rdi
callq 0x12be2
movq %rbx, %rax
addq $0x478, %rsp            # imm = 0x478
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10c45
jmp 0x10c4d
jmp 0x10c55
jmp 0x10c5d
movq %rax, %rbx
leaq 0x450(%rsp), %rdi
callq 0x33a0
jmp 0x10c68
jmp 0x10c65
jmp 0x10c81
jmp 0x10c65
jmp 0x10c65
movq %rax, %rbx
jmp 0x10dfd
jmp 0x10c81
movq %rax, %rbx
jmp 0x10d61
movq %rax, %rbx
jmp 0x10d88
movq %rax, %rbx
jmp 0x10daf
movq %rax, %rbx
jmp 0x10dd6
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x33a0
leaq 0x430(%rsp), %rdi
callq 0x33a0
jmp 0x10c84
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x12bc0
leaq 0x400(%rsp), %rdi
callq 0x135be
leaq 0xa0(%rsp), %rdi
callq 0x13ac4
leaq 0xc0(%rsp), %rdi
callq 0x12bc0
leaq 0xe0(%rsp), %rdi
callq 0x13ac4
leaq 0x100(%rsp), %rdi
callq 0x13ac4
leaq 0x120(%rsp), %rdi
callq 0x13ac4
leaq 0x140(%rsp), %rdi
callq 0x12bc0
leaq 0x160(%rsp), %rdi
callq 0x12bc0
leaq 0x180(%rsp), %rdi
callq 0x13ac4
leaq 0x1a0(%rsp), %rdi
callq 0x12bc0
leaq 0x1c0(%rsp), %rdi
callq 0x12bc0
leaq 0x1e0(%rsp), %rdi
callq 0x13ac4
leaq 0x200(%rsp), %rdi
callq 0x13dec
leaq 0x220(%rsp), %rdi
callq 0x13dec
leaq 0x240(%rsp), %rdi
callq 0x13dde
leaq 0x260(%rsp), %rdi
callq 0x13ac4
leaq 0x280(%rsp), %rdi
callq 0x12bc0
leaq 0x2a0(%rsp), %rdi
callq 0x13ac4
leaq 0x2c0(%rsp), %rdi
callq 0x12bc0
leaq 0x2e0(%rsp), %rdi
callq 0x12bc0
leaq 0x300(%rsp), %rdi
callq 0x13ac4
leaq 0x320(%rsp), %rdi
callq 0x12bc0
leaq 0x340(%rsp), %rdi
callq 0x12bc0
leaq 0x360(%rsp), %rdi
callq 0x13ac4
leaq 0x380(%rsp), %rdi
callq 0x12bc0
leaq 0x3a0(%rsp), %rdi
callq 0x12bc0
leaq 0x3c0(%rsp), %rdi
callq 0x13ac4
leaq 0x3e0(%rsp), %rdi
callq 0x12bc0
leaq 0x8(%rsp), %rdi
callq 0x12be2
movq %rbx, %rdi
callq 0x3360