// File: /workspace/github_cpp_makefile_star2_O1/donfreiday[P]gb/./imgui/imgui_draw.cpp
// Function: ImFontAtlas::Build()
bool    ImFontAtlas::Build()
{
    IM_ASSERT(ConfigData.Size > 0);

    TexID = NULL;
    TexWidth = TexHeight = 0;
    TexUvWhitePixel = ImVec2(0, 0);
    ClearTexData();

    struct ImFontTempBuildData
    {
        stbtt_fontinfo      FontInfo;
        stbrp_rect*         Rects;
        stbtt_pack_range*   Ranges;
        int                 RangesCount;
    };
    ImFontTempBuildData* tmp_array = (ImFontTempBuildData*)ImGui::MemAlloc((size_t)ConfigData.Size * sizeof(ImFontTempBuildData));

    // Initialize font information early (so we can error without any cleanup) + count glyphs
    int total_glyph_count = 0;
    int total_glyph_range_count = 0;
    for (int input_i = 0; input_i < ConfigData.Size; input_i++)
    {
        ImFontConfig& cfg = ConfigData[input_i];
        ImFontTempBuildData& tmp = tmp_array[input_i];

        IM_ASSERT(cfg.DstFont && (!cfg.DstFont->IsLoaded() || cfg.DstFont->ContainerAtlas == this));
        const int font_offset = stbtt_GetFontOffsetForIndex((unsigned char*)cfg.FontData, cfg.FontNo);
        IM_ASSERT(font_offset >= 0);
        if (!stbtt_InitFont(&tmp.FontInfo, (unsigned char*)cfg.FontData, font_offset))
            return false;

        // Count glyphs
        if (!cfg.GlyphRanges)
            cfg.GlyphRanges = GetGlyphRangesDefault();
        for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2)
        {
            total_glyph_count += (in_range[1] - in_range[0]) + 1;
            total_glyph_range_count++;
        }
    }

    // Start packing
    TexWidth = (TexDesiredWidth > 0) ? TexDesiredWidth : (total_glyph_count > 2000) ? 2048 : (total_glyph_count > 1000) ? 1024 : 512;  // Width doesn't actually matters much but some API/GPU have texture size limitations, and increasing width can decrease height.
    TexHeight = 0;
    const int max_tex_height = 1024*32;
    stbtt_pack_context spc;
    stbtt_PackBegin(&spc, NULL, TexWidth, max_tex_height, 0, 1, NULL);

    // Pack our extra data rectangles first, so it will be on the upper-left corner of our texture (UV will have small values).
    ImVector<stbrp_rect> extra_rects;
    RenderCustomTexData(0, &extra_rects);
    stbtt_PackSetOversampling(&spc, 1, 1);
    stbrp_pack_rects((stbrp_context*)spc.pack_info, &extra_rects[0], extra_rects.Size);
    for (int i = 0; i < extra_rects.Size; i++)
        if (extra_rects[i].was_packed)
            TexHeight = ImMax(TexHeight, extra_rects[i].y + extra_rects[i].h);

    // Allocate packing character data and flag packed characters buffer as non-packed (x0=y0=x1=y1=0)
    int buf_packedchars_n = 0, buf_rects_n = 0, buf_ranges_n = 0;
    stbtt_packedchar* buf_packedchars = (stbtt_packedchar*)ImGui::MemAlloc(total_glyph_count * sizeof(stbtt_packedchar));
    stbrp_rect* buf_rects = (stbrp_rect*)ImGui::MemAlloc(total_glyph_count * sizeof(stbrp_rect));
    stbtt_pack_range* buf_ranges = (stbtt_pack_range*)ImGui::MemAlloc(total_glyph_range_count * sizeof(stbtt_pack_range));
    memset(buf_packedchars, 0, total_glyph_count * sizeof(stbtt_packedchar));
    memset(buf_rects, 0, total_glyph_count * sizeof(stbrp_rect));              // Unnecessary but let's clear this for the sake of sanity.
    memset(buf_ranges, 0, total_glyph_range_count * sizeof(stbtt_pack_range));

    // First font pass: pack all glyphs (no rendering at this point, we are working with rectangles in an infinitely tall texture at this point)
    for (int input_i = 0; input_i < ConfigData.Size; input_i++)
    {
        ImFontConfig& cfg = ConfigData[input_i];
        ImFontTempBuildData& tmp = tmp_array[input_i];

        // Setup ranges
        int glyph_count = 0;
        int glyph_ranges_count = 0;
        for (const ImWchar* in_range = cfg.GlyphRanges; in_range[0] && in_range[1]; in_range += 2)
        {
            glyph_count += (in_range[1] - in_range[0]) + 1;
            glyph_ranges_count++;
        }
        tmp.Ranges = buf_ranges + buf_ranges_n;
        tmp.RangesCount = glyph_ranges_count;
        buf_ranges_n += glyph_ranges_count;
        for (int i = 0; i < glyph_ranges_count; i++)
        {
            const ImWchar* in_range = &cfg.GlyphRanges[i * 2];
            stbtt_pack_range& range = tmp.Ranges[i];
            range.font_size = cfg.SizePixels;
            range.first_unicode_codepoint_in_range = in_range[0];
            range.num_chars = (in_range[1] - in_range[0]) + 1;
            range.chardata_for_range = buf_packedchars + buf_packedchars_n;
            buf_packedchars_n += range.num_chars;
        }

        // Pack
        tmp.Rects = buf_rects + buf_rects_n;
        buf_rects_n += glyph_count;
        stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV);
        int n = stbtt_PackFontRangesGatherRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects);
        stbrp_pack_rects((stbrp_context*)spc.pack_info, tmp.Rects, n);

        // Extend texture height
        for (int i = 0; i < n; i++)
            if (tmp.Rects[i].was_packed)
                TexHeight = ImMax(TexHeight, tmp.Rects[i].y + tmp.Rects[i].h);
    }
    IM_ASSERT(buf_rects_n == total_glyph_count);
    IM_ASSERT(buf_packedchars_n == total_glyph_count);
    IM_ASSERT(buf_ranges_n == total_glyph_range_count);

    // Create texture
    TexHeight = ImUpperPowerOfTwo(TexHeight);
    TexPixelsAlpha8 = (unsigned char*)ImGui::MemAlloc(TexWidth * TexHeight);
    memset(TexPixelsAlpha8, 0, TexWidth * TexHeight);
    spc.pixels = TexPixelsAlpha8;
    spc.height = TexHeight;

    // Second pass: render characters
    for (int input_i = 0; input_i < ConfigData.Size; input_i++)
    {
        ImFontConfig& cfg = ConfigData[input_i];
        ImFontTempBuildData& tmp = tmp_array[input_i];
        stbtt_PackSetOversampling(&spc, cfg.OversampleH, cfg.OversampleV);
        stbtt_PackFontRangesRenderIntoRects(&spc, &tmp.FontInfo, tmp.Ranges, tmp.RangesCount, tmp.Rects);
        tmp.Rects = NULL;
    }

    // End packing
    stbtt_PackEnd(&spc);
    ImGui::MemFree(buf_rects);
    buf_rects = NULL;

    // Third pass: setup ImFont and glyphs for runtime
    for (int input_i = 0; input_i < ConfigData.Size; input_i++)
    {
        ImFontConfig& cfg = ConfigData[input_i];
        ImFontTempBuildData& tmp = tmp_array[input_i];
        ImFont* dst_font = cfg.DstFont;

        float font_scale = stbtt_ScaleForPixelHeight(&tmp.FontInfo, cfg.SizePixels);
        int unscaled_ascent, unscaled_descent, unscaled_line_gap;
        stbtt_GetFontVMetrics(&tmp.FontInfo, &unscaled_ascent, &unscaled_descent, &unscaled_line_gap);

        float ascent = unscaled_ascent * font_scale;
        float descent = unscaled_descent * font_scale;
        if (!cfg.MergeMode)
        {
            dst_font->ContainerAtlas = this;
            dst_font->ConfigData = &cfg;
            dst_font->ConfigDataCount = 0;
            dst_font->FontSize = cfg.SizePixels;
            dst_font->Ascent = ascent;
            dst_font->Descent = descent;
            dst_font->Glyphs.resize(0);
        }
        dst_font->ConfigDataCount++;
        float off_y = (cfg.MergeMode && cfg.MergeGlyphCenterV) ? (ascent - dst_font->Ascent) * 0.5f : 0.0f;

        dst_font->FallbackGlyph = NULL; // Always clear fallback so FindGlyph can return NULL. It will be set again in BuildLookupTable()
        for (int i = 0; i < tmp.RangesCount; i++)
        {
            stbtt_pack_range& range = tmp.Ranges[i];
            for (int char_idx = 0; char_idx < range.num_chars; char_idx += 1)
            {
                const stbtt_packedchar& pc = range.chardata_for_range[char_idx];
                if (!pc.x0 && !pc.x1 && !pc.y0 && !pc.y1)
                    continue;

                const int codepoint = range.first_unicode_codepoint_in_range + char_idx;
                if (cfg.MergeMode && dst_font->FindGlyph((unsigned short)codepoint))
                    continue;

                stbtt_aligned_quad q;
                float dummy_x = 0.0f, dummy_y = 0.0f;
                stbtt_GetPackedQuad(range.chardata_for_range, TexWidth, TexHeight, char_idx, &dummy_x, &dummy_y, &q, 0);

                dst_font->Glyphs.resize(dst_font->Glyphs.Size + 1);
                ImFont::Glyph& glyph = dst_font->Glyphs.back();
                glyph.Codepoint = (ImWchar)codepoint;
                glyph.X0 = q.x0; glyph.Y0 = q.y0; glyph.X1 = q.x1; glyph.Y1 = q.y1;
                glyph.U0 = q.s0; glyph.V0 = q.t0; glyph.U1 = q.s1; glyph.V1 = q.t1;
                glyph.Y0 += (float)(int)(dst_font->Ascent + off_y + 0.5f);
                glyph.Y1 += (float)(int)(dst_font->Ascent + off_y + 0.5f);
                glyph.XAdvance = (pc.xadvance + cfg.GlyphExtraSpacing.x);  // Bake spacing into XAdvance
                if (cfg.PixelSnapH)
                    glyph.XAdvance = (float)(int)(glyph.XAdvance + 0.5f);
            }
        }
        cfg.DstFont->BuildLookupTable();
    }

    // Cleanup temporaries
    ImGui::MemFree(buf_packedchars);
    ImGui::MemFree(buf_ranges);
    ImGui::MemFree(tmp_array);

    // Render into our custom data block
    RenderCustomTexData(1, &extra_rects);

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x458, %rsp            # imm = 0x458
cmpl $0x0, 0x40(%rdi)
jle 0x343b2
movq %rdi, %rbx
xorl %r14d, %r14d
movq %r14, (%rdi)
movq %r14, 0x18(%rdi)
movq %r14, 0x24(%rdi)
callq 0x316dc
movslq 0x40(%rbx), %rax
shlq $0x4, %rax
leaq (%rax,%rax,4), %rdi
callq 0x85d9
movq %rax, -0xf0(%rbp)
movslq 0x40(%rbx), %rax
movq %rax, -0x120(%rbp)
testq %rax, %rax
setle %al
movq %rbx, -0x70(%rbp)
jle 0x31cdb
movq 0x48(%rbx), %rsi
xorl %edi, %edi
xorl %r12d, %r12d
xorl %r14d, %r14d
movq %rsi, -0xb0(%rbp)
imulq $0x68, %rdi, %r8
movq 0x60(%rsi,%r8), %rcx
testq %rcx, %rcx
je 0x34374
movq 0x30(%rcx), %rdx
testq %rdx, %rdx
sete %cl
cmpq %rbx, %rdx
sete %dl
orb %cl, %dl
je 0x34374
addq %rsi, %r8
movq (%r8), %r15
movslq 0x10(%r8), %rdx
movzbl (%r15), %ecx
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpl $0x4e, %ecx
jg 0x319a6
testl %ecx, %ecx
je 0x319f9
cmpl $0x31, %ecx
jne 0x31a5a
cmpb $0x0, 0x1(%r15)
jne 0x319a2
cmpb $0x0, 0x2(%r15)
jne 0x319a2
cmpb $0x0, 0x3(%r15)
je 0x31a51
testl %ecx, %ecx
je 0x319f9
cmpl $0x4f, %ecx
je 0x319db
cmpl $0x74, %ecx
jne 0x31a5a
cmpb $0x79, 0x1(%r15)
jne 0x319cd
cmpb $0x70, 0x2(%r15)
jne 0x319cd
cmpb $0x31, 0x3(%r15)
je 0x31a51
testl %ecx, %ecx
je 0x319f9
cmpl $0x74, %ecx
je 0x31a13
cmpl $0x4f, %ecx
jne 0x31a5a
cmpb $0x54, 0x1(%r15)
jne 0x319f0
cmpb $0x54, 0x2(%r15)
jne 0x319f0
cmpb $0x4f, 0x3(%r15)
je 0x31a51
cmpl $0x74, %ecx
je 0x31a13
testl %ecx, %ecx
jne 0x31a5a
cmpb $0x1, 0x1(%r15)
jne 0x31a0e
cmpb $0x0, 0x2(%r15)
jne 0x31a0e
cmpb $0x0, 0x3(%r15)
je 0x31a51
cmpl $0x74, %ecx
jne 0x31a5a
cmpb $0x74, 0x1(%r15)
jne 0x31a5a
cmpb $0x63, 0x2(%r15)
jne 0x31a5a
cmpb $0x66, 0x3(%r15)
jne 0x31a5a
movl 0x4(%r15), %ecx
bswapl %ecx
cmpl $0x20000, %ecx          # imm = 0x20000
je 0x31a3e
cmpl $0x10000, %ecx          # imm = 0x10000
jne 0x31a5a
movl 0x8(%r15), %ecx
bswapl %ecx
cmpl %edx, %ecx
jle 0x31a5a
movl 0xc(%r15,%rdx,4), %ebx
bswapl %ebx
jmp 0x31a5a
negl %edx
movl $0x0, %ebx
sbbl %ebx, %ebx
movq %r8, -0xc0(%rbp)
movq %r12, -0x80(%rbp)
movq %r14, -0x78(%rbp)
movb %al, -0x29(%rbp)
testl %ebx, %ebx
js 0x34393
movq %rdi, -0xa0(%rbp)
leaq (%rdi,%rdi,4), %r13
shlq $0x4, %r13
addq -0xf0(%rbp), %r13
movq %r15, 0x8(%r13)
movl %ebx, 0x10(%r13)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x1520c(%rip), %rdx     # 0x46caa
callq 0x35f58
movq %rax, -0x48(%rbp)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x151fc(%rip), %rdx     # 0x46caf
callq 0x35f58
movl %eax, -0x38(%rbp)
movl %eax, 0x18(%r13)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x151e9(%rip), %rdx     # 0x46cb4
callq 0x35f58
movl %eax, -0x60(%rbp)
movl %eax, 0x1c(%r13)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x151d6(%rip), %rdx     # 0x46cb9
callq 0x35f58
movl %eax, -0x68(%rbp)
movl %eax, 0x20(%r13)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x151c3(%rip), %rdx     # 0x46cbe
callq 0x35f58
movl %eax, %r12d
movl %eax, 0x24(%r13)
movq %r15, %rdi
movl %ebx, %esi
leaq 0x151b0(%rip), %rdx     # 0x46cc3
callq 0x35f58
movl %eax, %r14d
movl %eax, 0x28(%r13)
movq %r15, %rdi
movl %ebx, -0x40(%rbp)
movl %ebx, %esi
leaq 0x1519a(%rip), %rdx     # 0x46cc8
callq 0x35f58
movq -0x48(%rbp), %rcx
movl %eax, 0x2c(%r13)
movb $0x1, %r8b
testl %ecx, %ecx
je 0x31c46
cmpl $0x0, -0x38(%rbp)
je 0x31c46
cmpl $0x0, -0x60(%rbp)
je 0x31c46
cmpl $0x0, -0x68(%rbp)
je 0x31c46
testl %r12d, %r12d
movq -0x70(%rbp), %rbx
je 0x31c4a
testl %r14d, %r14d
movq -0x78(%rbp), %r14
movq -0x80(%rbp), %r12
je 0x31c52
movq %rcx, %rbx
movq %r15, %rdi
movl -0x40(%rbp), %esi
leaq 0x1513b(%rip), %rdx     # 0x46ccd
callq 0x35f58
testl %eax, %eax
je 0x31bac
movl %eax, %eax
movzwl 0x4(%r15,%rax), %eax
rolw $0x8, %ax
movzwl %ax, %eax
jmp 0x31bb1
movl $0xffff, %eax           # imm = 0xFFFF
movq %rbx, %rsi
movl %eax, 0x14(%r13)
movl %esi, %eax
movzwl 0x2(%r15,%rax), %eax
rolw $0x8, %ax
movl $0x0, 0x30(%r13)
testw %ax, %ax
movb $0x1, %r8b
movq -0x70(%rbp), %rbx
je 0x31c25
movzwl %ax, %ecx
leal 0x4(%rsi), %eax
movl %ecx, %ecx
movl %eax, %eax
movzwl (%r15,%rax), %edx
rolw $0x8, %dx
testw %dx, %dx
je 0x31c10
movzwl %dx, %edx
cmpl $0x3, %edx
jne 0x31c1d
movzwl 0x2(%r15,%rax), %edx
rolw $0x8, %dx
cmpw $0xa, %dx
je 0x31c10
movzwl %dx, %edx
cmpl $0x1, %edx
jne 0x31c1d
movl 0x4(%r15,%rax), %edx
bswapl %edx
addl %esi, %edx
movl %edx, 0x30(%r13)
addl $0x8, %eax
decq %rcx
jne 0x31be0
cmpl $0x0, 0x30(%r13)
je 0x31c52
movslq -0x60(%rbp), %rax
movzwl 0x32(%r15,%rax), %eax
rolw $0x8, %ax
movzwl %ax, %eax
movl %eax, 0x34(%r13)
xorl %r8d, %r8d
jmp 0x31c52
movq -0x70(%rbp), %rbx
movq -0x78(%rbp), %r14
movq -0x80(%rbp), %r12
testb %r8b, %r8b
je 0x31c67
movq -0xb0(%rbp), %rsi
movq -0xa0(%rbp), %rdi
jmp 0x31cc1
movq -0xc0(%rbp), %rcx
cmpq $0x0, 0x30(%rcx)
movq -0xb0(%rbp), %rsi
movq -0xa0(%rbp), %rdi
jne 0x31c8e
leaq 0x10cd2(%rip), %rax     # 0x4295c
movq %rax, 0x30(%rcx)
movq 0x30(%rcx), %rax
movzwl (%rax), %ecx
testw %cx, %cx
je 0x31cc1
addq $0x4, %rax
movzwl -0x2(%rax), %edx
testl %edx, %edx
je 0x31cc1
movzwl %cx, %ecx
subl %ecx, %r12d
addl %edx, %r12d
incl %r12d
incl %r14d
movzwl (%rax), %ecx
addq $0x4, %rax
testw %cx, %cx
jne 0x31c9e
testb %r8b, %r8b
jne 0x31ce0
incq %rdi
cmpq -0x120(%rbp), %rdi
setae %al
jne 0x3193a
jmp 0x31ce3
xorl %r12d, %r12d
jmp 0x31ce3
movb -0x29(%rbp), %al
testb $0x1, %al
je 0x34249
movq %r12, -0x80(%rbp)
movq %r14, -0x78(%rbp)
movb %al, -0x29(%rbp)
movl 0x20(%rbx), %r12d
testl %r12d, %r12d
jg 0x31d27
movl $0x800, %r12d           # imm = 0x800
cmpl $0x7d0, -0x80(%rbp)     # imm = 0x7D0
jg 0x31d27
xorl %r12d, %r12d
cmpl $0x3e9, -0x80(%rbp)     # imm = 0x3E9
setge %r12b
shll $0x9, %r12d
addl $0x200, %r12d           # imm = 0x200
movl %r12d, 0x18(%rbx)
movl $0x0, 0x1c(%rbx)
movl $0x48, %edi
callq 0x85d9
movq %rax, %rbx
movslq %r12d, %rdi
shlq $0x4, %rdi
addq $-0x10, %rdi
callq 0x85d9
movq %rax, %r14
movabsq $0x100000001, %r15      # imm = 0x100000001
testq %rbx, %rbx
je 0x31de9
testq %r14, %r14
je 0x31de9
xorl %eax, %eax
movq %rax, -0x178(%rbp)
movl %r12d, -0x168(%rbp)
movl $0x8000, -0x164(%rbp)   # imm = 0x8000
movq %rax, -0x150(%rbp)
movq %rbx, -0x170(%rbp)
movq %r14, -0x148(%rbp)
movl $0x1, -0x15c(%rbp)
movl %r12d, -0x160(%rbp)
movq %r15, -0x158(%rbp)
cmpl $0x10000, %r12d         # imm = 0x10000
ja 0x3444d
leal -0x1(%r12), %ecx
cmpl $0x3, %r12d
jb 0x31e09
leal -0x2(%r12), %edx
movq %r14, %rsi
addq $0x10, %rsi
xorl %eax, %eax
incq %rax
movq %rsi, -0x8(%rsi)
addq $0x10, %rsi
cmpq %rax, %rdx
jne 0x31dd7
jmp 0x31e0b
testq %rbx, %rbx
je 0x31df6
movq %rbx, %rdi
callq 0x9065
testq %r14, %r14
movq -0x80(%rbp), %r12
je 0x31e67
movq %r14, %rdi
callq 0x9065
jmp 0x31e67
xorl %eax, %eax
shlq $0x4, %rax
xorl %esi, %esi
movq %rsi, 0x8(%r14,%rax)
movq $0x1, 0xc(%rbx)
movq %r14, 0x20(%rbx)
leaq 0x28(%rbx), %rax
movq %rax, 0x18(%rbx)
movl %ecx, (%rbx)
movl $0x7fff, 0x4(%rbx)      # imm = 0x7FFF
movl %ecx, 0x14(%rbx)
leal (%r12,%rcx), %eax
addl $-0x2, %eax
cltd
idivl %ecx
movl %eax, 0x8(%rbx)
movl $0x0, 0x28(%rbx)
movq %rbx, %rax
addq $0x38, %rax
movq %rax, 0x30(%rbx)
movw %cx, 0x38(%rbx)
movw $0xffff, 0x3a(%rbx)     # imm = 0xFFFF
movq %rsi, 0x40(%rbx)
movq -0x80(%rbp), %r12
xorps %xmm0, %xmm0
leaq -0x190(%rbp), %rdx
movaps %xmm0, (%rdx)
movq -0x70(%rbp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x34e00
movq %r15, -0x158(%rbp)
movl -0x190(%rbp), %edx
testl %edx, %edx
jle 0x343d1
movq -0x170(%rbp), %rdi
movq -0x188(%rbp), %rsi
callq 0x35166
movslq -0x190(%rbp), %rax
testq %rax, %rax
jle 0x31eee
movl 0x1c(%rbx), %ecx
movq -0x188(%rbp), %rdx
shlq $0x4, %rax
xorl %esi, %esi
cmpl $0x0, 0xc(%rdx,%rsi)
je 0x31ee5
movzwl 0xa(%rdx,%rsi), %edi
movzwl 0x6(%rdx,%rsi), %r8d
addl %edi, %r8d
cmpl %r8d, %ecx
cmovlel %r8d, %ecx
movl %ecx, 0x1c(%rbx)
addq $0x10, %rsi
cmpq %rsi, %rax
jne 0x31ec6
movslq %r12d, %rbx
leaq (%rbx,%rbx,8), %rax
leaq (%rax,%rax,2), %r14
addq %rbx, %r14
movq %r14, %rdi
callq 0x85d9
movq %rax, %r12
shlq $0x4, %rbx
movq %rbx, %rdi
callq 0x85d9
movq %rax, -0x1a0(%rbp)
movslq -0x78(%rbp), %rax
shlq $0x3, %rax
leaq (%rax,%rax,4), %r15
movq %r15, %rdi
callq 0x85d9
movq %rax, -0x198(%rbp)
movq %r12, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x7220
movq -0x1a0(%rbp), %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x7220
movq -0x198(%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
callq 0x7220
xorl %r9d, %r9d
movq -0x70(%rbp), %rdx
cmpl $0x0, 0x40(%rdx)
movl $0x0, %esi
movl $0x0, %r11d
movq %r12, -0x1a8(%rbp)
jle 0x32352
xorl %r10d, %r10d
xorl %r11d, %r11d
movl $0x0, -0x4c(%rbp)
movl $0x0, -0x90(%rbp)
movq 0x48(%rdx), %rax
imulq $0x68, %r10, %rdx
movq 0x30(%rax,%rdx), %rcx
movzwl (%rcx), %esi
movl $0x0, %r8d
movl $0x0, %r9d
testw %si, %si
je 0x31fe9
xorl %r8d, %r8d
xorl %r9d, %r9d
movzwl 0x2(%rcx,%r8,4), %edi
testl %edi, %edi
je 0x31fe9
movzwl %si, %esi
subl %esi, %r9d
addl %edi, %r9d
incl %r9d
movzwl 0x4(%rcx,%r8,4), %esi
incq %r8
testw %si, %si
jne 0x31fc5
movq %r9, -0xf8(%rbp)
addq %rdx, %rax
movq %r10, -0x100(%rbp)
leaq (%r10,%r10,4), %rbx
shlq $0x4, %rbx
addq -0xf0(%rbp), %rbx
movl -0x90(%rbp), %edx
leaq (%rdx,%rdx,4), %rdx
movq -0x198(%rbp), %rsi
leaq (%rsi,%rdx,8), %rdx
movq %rdx, 0x40(%rbx)
movl %r8d, 0x48(%rbx)
testl %r8d, %r8d
movq %r8, -0xc8(%rbp)
je 0x32082
movss 0x14(%rax), %xmm0
movl %r8d, %esi
xorl %edi, %edi
movss %xmm0, (%rdx)
movzwl (%rcx,%rdi,4), %r8d
movl %r8d, 0x4(%rdx)
movzwl 0x2(%rcx,%rdi,4), %r9d
subl %r8d, %r9d
leal 0x1(%r9), %r8d
movl %r8d, 0x10(%rdx)
movslq %r11d, %r8
leaq (%r8,%r8,8), %r10
leaq (%r10,%r10,2), %r10
addq %r12, %r10
addq %r8, %r10
movq %r10, 0x18(%rdx)
leal (%r9,%r8), %r11d
incl %r11d
incq %rdi
addq $0x28, %rdx
cmpq %rdi, %rsi
jne 0x3203c
movl %r11d, -0xa8(%rbp)
movslq -0x4c(%rbp), %rcx
shlq $0x4, %rcx
addq -0x1a0(%rbp), %rcx
movq %rcx, 0x38(%rbx)
movl 0x18(%rax), %esi
movl 0x1c(%rax), %edx
leaq -0x178(%rbp), %rdi
callq 0x35112
movslq 0x48(%rbx), %rax
movq %rax, -0x40(%rbp)
testq %rax, %rax
jle 0x322ac
movq 0x38(%rbx), %rax
movq 0x40(%rbx), %r8
movl -0x15c(%rbp), %ecx
movl -0x158(%rbp), %edx
movq %rdx, -0x60(%rbp)
xorps %xmm0, %xmm0
cvtsi2ss %rdx, %xmm0
movss %xmm0, -0xe0(%rbp)
movl -0x154(%rbp), %edx
xorps %xmm0, %xmm0
cvtsi2ss %rdx, %xmm0
movss %xmm0, -0x84(%rbp)
movq %rcx, -0x38(%rbp)
movq %rdx, -0x120(%rbp)
leal (%rdx,%rcx), %r12d
addq $0x6, %rax
movq %rax, -0xb0(%rbp)
xorl %r9d, %r9d
xorl %r14d, %r14d
movq %r8, -0xd0(%rbp)
leaq (%r9,%r9,4), %rax
movss (%r8,%rax,8), %xmm1
ucomiss 0xb26b(%rip), %xmm1     # 0x3d3a0
jbe 0x3216e
movq 0x8(%rbx), %rcx
movslq 0x24(%rbx), %rdx
movzbl 0x4(%rcx,%rdx), %esi
shll $0x8, %esi
movzbl 0x5(%rcx,%rdx), %edi
movswl %si, %esi
orl %edi, %esi
movzbl 0x6(%rcx,%rdx), %edi
shll $0x8, %edi
movzbl 0x7(%rcx,%rdx), %ecx
movswl %di, %edx
orl %ecx, %edx
subl %edx, %esi
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
jmp 0x32190
xorps 0xb1ab(%rip), %xmm1     # 0x3d320
movq 0x8(%rbx), %rcx
movslq 0x1c(%rbx), %rdx
movzwl 0x12(%rcx,%rdx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
divss %xmm0, %xmm1
leaq (%r8,%rax,8), %r13
movq -0x60(%rbp), %rax
movb %al, 0x20(%r13)
movq -0x120(%rbp), %rax
movb %al, 0x21(%r13)
cmpl $0x0, 0x10(%r13)
jle 0x3229d
movq %r9, -0xc0(%rbp)
movl %r14d, -0x68(%rbp)
movslq %r14d, %r14
movaps %xmm1, %xmm0
mulss -0xe0(%rbp), %xmm0
movss %xmm0, -0x48(%rbp)
mulss -0x84(%rbp), %xmm1
movaps %xmm1, -0xa0(%rbp)
shlq $0x4, %r14
addq -0xb0(%rbp), %r14
xorl %r15d, %r15d
movl 0x4(%r13), %esi
testq %rsi, %rsi
je 0x321ff
addl %r15d, %esi
jmp 0x32207
movq 0x8(%r13), %rax
movl (%rax,%r15,4), %esi
movq %rbx, %rdi
callq 0x36113
movq %rbx, %rdi
movl %eax, %esi
movss -0x48(%rbp), %xmm0
movaps -0xa0(%rbp), %xmm1
leaq -0x480(%rbp), %rdx
leaq -0xe8(%rbp), %rcx
leaq -0x180(%rbp), %r8
leaq -0x104(%rbp), %r9
callq 0x363e7
movl -0x180(%rbp), %eax
addl -0x60(%rbp), %eax
subl -0x480(%rbp), %eax
movq -0x38(%rbp), %rcx
addl %ecx, %eax
decl %eax
movw %ax, -0x2(%r14)
movl -0xe8(%rbp), %eax
movl -0x104(%rbp), %ecx
addl %r12d, %ecx
notl %eax
addl %ecx, %eax
movw %ax, (%r14)
incq %r15
movslq 0x10(%r13), %rax
addq $0x10, %r14
cmpq %rax, %r15
jl 0x321f1
movl -0x68(%rbp), %r14d
addl %r15d, %r14d
movq -0xd0(%rbp), %r8
movq -0xc0(%rbp), %r9
incq %r9
cmpq -0x40(%rbp), %r9
jne 0x32124
jmp 0x322af
xorl %r14d, %r14d
movq -0x170(%rbp), %rdi
movq 0x38(%rbx), %rsi
movl %r14d, %edx
callq 0x35166
testl %r14d, %r14d
movq -0x1a8(%rbp), %r12
movq -0xc8(%rbp), %r9
movq -0x100(%rbp), %r10
movl -0xa8(%rbp), %r11d
jle 0x32323
movq -0x70(%rbp), %rax
movl 0x1c(%rax), %eax
movq 0x38(%rbx), %rcx
movl %r14d, %edx
shlq $0x4, %rdx
xorl %esi, %esi
cmpl $0x0, 0xc(%rcx,%rsi)
je 0x3231a
movzwl 0xa(%rcx,%rsi), %edi
movzwl 0x6(%rcx,%rsi), %r8d
addl %edi, %r8d
cmpl %r8d, %eax
cmovlel %r8d, %eax
movq -0x70(%rbp), %rdi
movl %eax, 0x1c(%rdi)
addq $0x10, %rsi
cmpq %rsi, %rdx
jne 0x322f7
addl -0x90(%rbp), %r9d
movq -0xf8(%rbp), %rsi
addl -0x4c(%rbp), %esi
incq %r10
movq -0x70(%rbp), %rdx
movslq 0x40(%rdx), %rax
movl %esi, -0x4c(%rbp)
movl %r9d, -0x90(%rbp)
cmpq %rax, %r10
jl 0x31f9e
movq -0x80(%rbp), %rax
cmpl %eax, %esi
jne 0x343f0
cmpl %eax, %r11d
jne 0x3440f
cmpl -0x78(%rbp), %r9d
jne 0x3442e
movl 0x1c(%rdx), %eax
decl %eax
movl %eax, %ecx
sarl %ecx
orl %eax, %ecx
movl %ecx, %eax
sarl $0x2, %eax
orl %ecx, %eax
movl %eax, %ecx
sarl $0x4, %ecx
orl %eax, %ecx
movl %ecx, %eax
sarl $0x8, %eax
orl %ecx, %eax
movl %eax, %ecx
sarl $0x10, %ecx
orl %eax, %ecx
movslq %ecx, %rax
incq %rax
movl %eax, 0x1c(%rdx)
movslq 0x18(%rdx), %rdi
imulq %rax, %rdi
callq 0x85d9
movq -0x70(%rbp), %rbx
movq %rax, 0x8(%rbx)
movslq 0x18(%rbx), %rcx
movslq 0x1c(%rbx), %rdx
imulq %rcx, %rdx
movq %rax, %rdi
xorl %esi, %esi
callq 0x7220
movq 0x8(%rbx), %rax
movq %rax, -0x150(%rbp)
movl 0x1c(%rbx), %eax
movl %eax, -0x164(%rbp)
cmpl $0x0, 0x40(%rbx)
jle 0x33ccb
xorl %edx, %edx
movq 0x48(%rbx), %rax
imulq $0x68, %rdx, %rcx
movq %rdx, -0x208(%rbp)
leaq (%rdx,%rdx,4), %rbx
shlq $0x4, %rbx
movq -0xf0(%rbp), %r14
leaq (%r14,%rbx), %rdx
movq %rdx, -0x128(%rbp)
movl 0x18(%rax,%rcx), %esi
movl 0x1c(%rax,%rcx), %edx
leaq -0x178(%rbp), %rdi
callq 0x35112
movslq 0x48(%r14,%rbx), %rax
movl -0x158(%rbp), %ecx
movl %ecx, -0x1b8(%rbp)
movl -0x154(%rbp), %ecx
movl %ecx, -0x1b4(%rbp)
movq %rax, -0x210(%rbp)
testq %rax, %rax
jle 0x33c89
movq -0xf0(%rbp), %rax
movq 0x38(%rax,%rbx), %r8
movq 0x40(%rax,%rbx), %rax
movq %rax, -0x1e0(%rbp)
xorl %eax, %eax
xorl %r9d, %r9d
movq %r8, -0x220(%rbp)
movq %rax, -0x218(%rbp)
leaq (%rax,%rax,4), %rax
movq -0x1e0(%rbp), %rcx
movss (%rcx,%rax,8), %xmm0
ucomiss 0xaf08(%rip), %xmm0     # 0x3d3a0
jbe 0x324db
movq -0x128(%rbp), %rdx
movq 0x8(%rdx), %rcx
movslq 0x24(%rdx), %rdx
movzbl 0x4(%rcx,%rdx), %esi
shll $0x8, %esi
movzbl 0x5(%rcx,%rdx), %edi
movswl %si, %esi
orl %edi, %esi
movzbl 0x6(%rcx,%rdx), %edi
shll $0x8, %edi
movzbl 0x7(%rcx,%rdx), %ecx
movswl %di, %edx
orl %ecx, %edx
subl %edx, %esi
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
jmp 0x32507
xorps 0xae3e(%rip), %xmm0     # 0x3d320
movq -0x128(%rbp), %rdx
movq 0x8(%rdx), %rcx
movslq 0x1c(%rdx), %rdx
movzwl 0x12(%rcx,%rdx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
movaps %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
divss %xmm0, %xmm1
movaps %xmm1, -0x200(%rbp)
movq -0x1e0(%rbp), %rcx
leaq (%rcx,%rax,8), %rdx
movzbl 0x20(%rdx), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movl %eax, -0x158(%rbp)
xorps %xmm1, %xmm1
movss %xmm1, -0x138(%rbp)
movss %xmm1, -0x134(%rbp)
testl %eax, %eax
je 0x32566
movl $0x1, %ecx
subl %eax, %ecx
xorps %xmm2, %xmm2
cvtsi2ss %ecx, %xmm2
movaps %xmm0, %xmm1
addss %xmm0, %xmm1
divss %xmm1, %xmm2
movss %xmm2, -0x134(%rbp)
movzbl 0x21(%rdx), %eax
movl %eax, -0x154(%rbp)
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
testl %eax, %eax
je 0x3259c
movl $0x1, %ecx
subl %eax, %ecx
xorps %xmm3, %xmm3
cvtsi2ss %ecx, %xmm3
movaps %xmm1, %xmm2
addss %xmm1, %xmm2
divss %xmm2, %xmm3
movss %xmm3, -0x138(%rbp)
cmpl $0x0, 0x10(%rdx)
jle 0x33c72
movss 0xadd2(%rip), %xmm2     # 0x3d380
movaps %xmm2, %xmm3
divss %xmm0, %xmm3
movss %xmm3, -0x1c0(%rbp)
divss %xmm1, %xmm2
movss %xmm2, -0x1bc(%rbp)
movslq %r9d, %r9
xorl %ecx, %ecx
movq %rdx, -0x228(%rbp)
movq %r9, %rbx
shlq $0x4, %rbx
cmpl $0x0, 0xc(%r8,%rbx)
je 0x33c5f
movl 0x4(%rdx), %esi
testl %esi, %esi
movq %r9, -0x240(%rbp)
je 0x325fa
addl %ecx, %esi
jmp 0x32601
movq 0x8(%rdx), %rax
movl (%rax,%rcx,4), %esi
addq %r8, %rbx
leaq (%rcx,%rcx,8), %rax
leaq (%rax,%rax,2), %rax
movq %rcx, -0x238(%rbp)
addq %rcx, %rax
addq 0x18(%rdx), %rax
movq %rax, -0x230(%rbp)
movq -0x128(%rbp), %r13
movq %r13, %rdi
callq 0x36113
movl %eax, %r15d
movl -0x15c(%rbp), %eax
movzwl 0x8(%rbx), %r14d
addw %ax, %r14w
movw %r14w, 0x8(%rbx)
movzwl 0xa(%rbx), %ecx
addw %ax, %cx
movw %cx, -0x40(%rbp)
movw %cx, 0xa(%rbx)
movl 0x4(%rbx), %ecx
subl %eax, %ecx
movq %rcx, -0xc8(%rbp)
movw %cx, 0x4(%rbx)
movzwl 0x6(%rbx), %ecx
subl %eax, %ecx
movq %rbx, -0x130(%rbp)
movl %ecx, -0xd4(%rbp)
movw %cx, 0x6(%rbx)
movq 0x8(%r13), %rax
movslq 0x24(%r13), %rcx
movzwl 0x22(%rax,%rcx), %ecx
rolw $0x8, %cx
movzwl %cx, %ecx
movslq 0x28(%r13), %rdx
addq %rax, %rdx
leal (,%r15,4), %eax
cltq
leaq (%rdx,%rax), %rsi
cmpl %r15d, %ecx
leaq -0x4(%rdx,%rcx,4), %rdi
leaq -0x3(%rdx,%rcx,4), %rcx
leaq 0x1(%rax,%rdx), %rax
cmovleq %rcx, %rax
cmovgq %rsi, %rdi
movzbl (%rdi), %ecx
movl %ecx, -0x1c8(%rbp)
movzbl (%rax), %eax
movl %eax, -0x1c4(%rbp)
movl -0x158(%rbp), %r12d
movl -0x154(%rbp), %ebx
cvtsi2ss %r12, %xmm0
movaps -0x200(%rbp), %xmm2
mulss %xmm2, %xmm0
cvtsi2ss %rbx, %xmm1
mulss %xmm2, %xmm1
movq %r13, %rdi
movl %r15d, %esi
movss %xmm0, -0xa0(%rbp)
movaps %xmm1, -0x60(%rbp)
leaq -0x1d0(%rbp), %rdx
leaq -0x1cc(%rbp), %rcx
leaq -0x270(%rbp), %r8
leaq -0x26c(%rbp), %r9
callq 0x363e7
movzwl %r14w, %eax
addq -0x150(%rbp), %rax
movq %rax, -0x1b0(%rbp)
movl -0x160(%rbp), %eax
movl %eax, -0x13c(%rbp)
movq %r13, %rdi
movl %r15d, %esi
leaq -0x180(%rbp), %rdx
callq 0x365c4
movl %eax, -0x38(%rbp)
movl $0xffff, %eax           # imm = 0xFFFF
movq -0xc8(%rbp), %rcx
andl %eax, %ecx
subl %r12d, %ecx
movq %rcx, -0xc8(%rbp)
leal 0x1(%rcx), %r14d
movq -0x128(%rbp), %rdi
movl %r15d, %esi
movss -0xa0(%rbp), %xmm0
movaps -0x60(%rbp), %xmm1
leaq -0x104(%rbp), %rdx
leaq -0x1d4(%rbp), %rcx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0x363e7
movl %r14d, -0xd0(%rbp)
testl %r14d, %r14d
je 0x3368e
movl $0xffff, %eax           # imm = 0xFFFF
movl -0xd4(%rbp), %ecx
andl %eax, %ecx
subl %ebx, %ecx
movl %ecx, -0xd4(%rbp)
incl %ecx
movl %ecx, -0x120(%rbp)
je 0x3368e
movq -0x180(%rbp), %r13
movl -0x104(%rbp), %eax
movl %eax, -0xb0(%rbp)
movl -0x1d4(%rbp), %eax
movl %eax, -0xd8(%rbp)
movl $0x0, -0x480(%rbp)
movl -0x38(%rbp), %eax
movl %eax, %ebx
testl %eax, %eax
jle 0x32832
leaq (%rbx,%rbx), %rax
leaq (%rax,%rax,4), %rax
xorl %ecx, %ecx
xorl %esi, %esi
xorl %edx, %edx
cmpb $0x1, 0x8(%r13,%rcx)
sete %dl
addl %edx, %esi
addq $0xa, %rcx
cmpq %rcx, %rax
jne 0x3281a
jmp 0x32834
xorl %esi, %esi
testl %esi, %esi
movq %rsi, -0xc0(%rbp)
je 0x32a71
movslq %esi, %rdi
shlq $0x2, %rdi
callq 0x85d9
movq %rax, %r15
testq %rax, %rax
je 0x32a73
movq %r15, -0xa8(%rbp)
movaps -0x60(%rbp), %xmm0
minss -0xa0(%rbp), %xmm0
movss 0xffd6(%rip), %xmm1     # 0x4284c
divss %xmm0, %xmm1
mulss %xmm1, %xmm1
movss %xmm1, -0x48(%rbp)
addq %rbx, %rbx
leaq (%rbx,%rbx,4), %r15
xorl %ebx, %ebx
xorl %esi, %esi
xorl %r14d, %r14d
testl %ebx, %ebx
je 0x328b7
movq %rsi, %r12
movslq -0x480(%rbp), %rdi
shlq $0x3, %rdi
callq 0x85d9
movq %rax, %r14
testq %rax, %rax
movq %r12, %rsi
je 0x32a52
movl $0x0, -0x480(%rbp)
cmpl $0x0, -0x38(%rbp)
jle 0x32a35
movq %rbx, -0x68(%rbp)
movq %r14, -0x90(%rbp)
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
xorps %xmm1, %xmm1
xorl %r12d, %r12d
xorps %xmm0, %xmm0
movzbl 0x8(%r13,%r12), %eax
cmpl $0x3, %eax
je 0x329a4
cmpl $0x2, %eax
je 0x3295d
cmpl $0x1, %eax
jne 0x32a18
testl %r14d, %r14d
js 0x3291c
movl -0x480(%rbp), %eax
subl %esi, %eax
movl %r14d, %ecx
movq -0xa8(%rbp), %rdx
movl %eax, (%rdx,%rcx,4)
incl %r14d
movswl (%r13,%r12), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movswl 0x2(%r13,%r12), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movl -0x480(%rbp), %esi
leal 0x1(%rsi), %eax
movl %eax, -0x480(%rbp)
movq -0x90(%rbp), %rcx
testq %rcx, %rcx
je 0x32a18
movslq %esi, %rax
jmp 0x32997
movswl (%r13,%r12), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movswl 0x2(%r13,%r12), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movslq -0x480(%rbp), %rax
leal 0x1(%rax), %ecx
movl %ecx, -0x480(%rbp)
movq -0x90(%rbp), %rcx
testq %rcx, %rcx
je 0x32a18
movss %xmm0, (%rcx,%rax,8)
movss %xmm1, 0x4(%rcx,%rax,8)
jmp 0x32a18
movswl 0x4(%r13,%r12), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
movswl 0x6(%r13,%r12), %eax
xorps %xmm3, %xmm3
cvtsi2ss %eax, %xmm3
movswl (%r13,%r12), %eax
xorps %xmm4, %xmm4
cvtsi2ss %eax, %xmm4
movswl 0x2(%r13,%r12), %eax
xorps %xmm5, %xmm5
cvtsi2ss %eax, %xmm5
movq -0x90(%rbp), %rdi
movq %r15, %rbx
movq %rsi, %r15
leaq -0x480(%rbp), %rsi
movss -0x48(%rbp), %xmm6
xorl %edx, %edx
callq 0x36f10
movq %r15, %rsi
movq %rbx, %r15
movswl (%r13,%r12), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movswl 0x2(%r13,%r12), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
addq $0xa, %r12
cmpq %r12, %r15
jne 0x328e5
movslq %r14d, %rax
movq -0x90(%rbp), %r14
movq -0x68(%rbp), %rbx
jmp 0x32a3c
movq $-0x1, %rax
movl -0x480(%rbp), %ecx
subl %esi, %ecx
movq -0xa8(%rbp), %rdx
movl %ecx, (%rdx,%rax,4)
movb $0x1, %al
jmp 0x32a57
xorl %r14d, %r14d
xorl %eax, %eax
testb %al, %al
je 0x32a80
leal 0x1(%rbx), %eax
testl %ebx, %ebx
movl %eax, %ebx
je 0x32891
movq -0xa8(%rbp), %r15
jmp 0x32aa5
jmp 0x32aa2
movq $0x0, -0xc0(%rbp)
jmp 0x32aa2
movq %r14, %rdi
callq 0x9065
movq -0xa8(%rbp), %rdi
callq 0x9065
movq $0x0, -0xc0(%rbp)
xorl %r15d, %r15d
xorl %r14d, %r14d
testq %r14, %r14
je 0x3368e
movq -0xc0(%rbp), %rax
movl %eax, %ebx
testl %eax, %eax
jle 0x32adf
xorl %eax, %eax
xorl %ecx, %ecx
movslq (%r15,%rax,4), %rdx
movslq %ecx, %rcx
addq %rdx, %rcx
incq %rax
cmpq %rax, %rbx
jne 0x32abf
leaq (%rcx,%rcx,4), %rax
leaq 0x14(,%rax,4), %rdi
jmp 0x32ae4
movl $0x14, %edi
callq 0x85d9
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
je 0x3367e
cmpl $0x0, -0xc0(%rbp)
movq %r14, -0x90(%rbp)
jle 0x32c39
movaps -0x60(%rbp), %xmm0
xorps 0xa809(%rip), %xmm0     # 0x3d320
movaps %xmm0, -0x60(%rbp)
leaq 0x4(%r14), %rax
movq %rax, -0x48(%rbp)
xorl %ecx, %ecx
xorl %r13d, %r13d
xorl %edx, %edx
movl (%r15,%rcx,4), %esi
testl %esi, %esi
jle 0x32c22
movslq %edx, %r8
leaq (%r14,%r8,8), %rdi
leal -0x1(%rsi), %r10d
movq -0x48(%rbp), %rax
leaq (%rax,%r8,8), %r8
xorl %r9d, %r9d
movslq %r10d, %r11
movss 0x4(%rdi,%r11,8), %xmm0
movss (%r8,%r9,8), %xmm1
ucomiss %xmm1, %xmm0
jne 0x32b67
jnp 0x32c0b
movq %r15, %rax
xorl %r14d, %r14d
ucomiss %xmm1, %xmm0
seta %r15b
ja 0x32b7b
movl %r9d, %r12d
jmp 0x32b81
movl %r10d, %r12d
movl %r9d, %r10d
movslq %r13d, %r13
leaq (,%r13,4), %r11
addq %r13, %r11
movb %r15b, %r14b
movq -0x78(%rbp), %r15
movl %r14d, 0x10(%r15,%r11,4)
movslq %r12d, %r14
movss (%rdi,%r14,8), %xmm0
movss -0xa0(%rbp), %xmm2
mulss %xmm2, %xmm0
xorps %xmm1, %xmm1
addss %xmm1, %xmm0
movss %xmm0, (%r15,%r11,4)
movss 0x4(%rdi,%r14,8), %xmm0
movaps -0x60(%rbp), %xmm3
mulss %xmm3, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x4(%r15,%r11,4)
movslq %r10d, %r10
movss (%rdi,%r10,8), %xmm0
mulss %xmm2, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0x8(%r15,%r11,4)
movss 0x4(%rdi,%r10,8), %xmm0
mulss %xmm3, %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xc(%r15,%r11,4)
incl %r13d
movq %rax, %r15
movl %r9d, %r10d
leaq 0x1(%r9), %r11
movslq (%r15,%rcx,4), %r14
movq %r11, %r9
cmpq %r14, %r11
jl 0x32b4c
addl %esi, %edx
incq %rcx
cmpq %rbx, %rcx
movq -0x90(%rbp), %r14
jne 0x32b2a
jmp 0x32c3c
xorl %r13d, %r13d
movq -0x78(%rbp), %rbx
movq %rbx, %rdi
movl %r13d, %esi
callq 0x37070
cmpl $0x2, %r13d
jl 0x32cec
movl %r13d, %eax
movl $0x1, %ecx
leaq (%rcx,%rcx,4), %rdx
movss (%rbx,%rdx,4), %xmm0
movss 0x4(%rbx,%rdx,4), %xmm1
movl 0x10(%rbx,%rdx,4), %esi
movl %esi, -0x478(%rbp)
movq 0x8(%rbx,%rdx,4), %rdx
movq %rdx, -0x480(%rbp)
movl %ecx, %edx
testl %edx, %edx
jle 0x32cb1
movl %edx, %esi
leaq (%rsi,%rsi,4), %rsi
movss -0x10(%rbx,%rsi,4), %xmm2
ucomiss %xmm1, %xmm2
jbe 0x32cac
leaq (%rbx,%rsi,4), %rsi
movl -0x4(%rsi), %edi
movl %edi, 0x10(%rsi)
movups -0x14(%rsi), %xmm3
movups %xmm3, (%rsi)
decl %edx
ucomiss %xmm1, %xmm2
ja 0x32c84
movl %edx, %esi
cmpq %rsi, %rcx
je 0x32ce0
movslq %edx, %rdx
leaq (%rdx,%rdx,4), %rdx
movss %xmm0, (%rbx,%rdx,4)
movss %xmm1, 0x4(%rbx,%rdx,4)
movq -0x480(%rbp), %rsi
movq %rsi, 0x8(%rbx,%rdx,4)
movl -0x478(%rbp), %esi
movl %esi, 0x10(%rbx,%rdx,4)
incq %rcx
cmpq %rax, %rcx
jne 0x32c5d
movq $0x0, -0xe8(%rbp)
leaq -0x480(%rbp), %r12
cmpl $0x41, -0xd0(%rbp)
jl 0x32d21
movl -0xd0(%rbp), %eax
leaq 0x4(,%rax,8), %rdi
callq 0x85d9
movq %rax, %r12
movq -0x78(%rbp), %rbx
movq %r15, -0xa8(%rbp)
movl -0x120(%rbp), %eax
addl -0xd8(%rbp), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
addss 0xa63d(%rip), %xmm0     # 0x3d380
movslq %r13d, %rax
leaq (%rax,%rax,4), %rax
movss %xmm0, 0x4(%rbx,%rax,4)
cmpl $0x7ffffffe, -0xd4(%rbp) # imm = 0x7FFFFFFE
ja 0x3363a
movzwl -0x40(%rbp), %eax
imull -0x13c(%rbp), %eax
cltq
movq -0x1b0(%rbp), %r15
addq %rax, %r15
xorps %xmm0, %xmm0
cvtsi2ssl -0xb0(%rbp), %xmm0
movss %xmm0, -0x80(%rbp)
movl -0xd0(%rbp), %ecx
movslq %ecx, %rax
leaq (%r12,%rax,4), %rdx
movq %rdx, -0x100(%rbp)
addq $0x4, %rdx
movq %rdx, -0x1e8(%rbp)
movq %rax, -0x248(%rbp)
leaq (,%rax,4), %rax
movq %rax, -0x258(%rbp)
movq -0xc8(%rbp), %rax
addl $0x2, %eax
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
movss %xmm0, -0x84(%rbp)
movl -0xd8(%rbp), %ecx
cltq
shlq $0x2, %rax
movq %rax, -0x250(%rbp)
movq $0x0, -0xf8(%rbp)
movq %rbx, -0xe0(%rbp)
xorl %eax, %eax
xorl %r13d, %r13d
movl $0x0, -0x4c(%rbp)
xorl %r14d, %r14d
leaq 0xfb00(%rip), %rbx      # 0x42910
movq %r15, -0x1b0(%rbp)
movq %rax, -0x268(%rbp)
movl %ecx, -0xd8(%rbp)
xorps %xmm0, %xmm0
cvtsi2ss %ecx, %xmm0
movss %xmm0, -0x60(%rbp)
addss 0xa548(%rip), %xmm0     # 0x3d380
movss %xmm0, -0x40(%rbp)
movq %r12, %rdi
xorl %esi, %esi
movq -0x258(%rbp), %rdx
callq 0x7220
movq -0x100(%rbp), %rdi
xorl %esi, %esi
movq -0x250(%rbp), %rdx
callq 0x7220
movq -0xe8(%rbp), %rax
testq %rax, %rax
je 0x32eb5
leaq -0xe8(%rbp), %rcx
movss -0x60(%rbp), %xmm0
ucomiss 0x1c(%rax), %xmm0
jae 0x32e86
movq %rax, %rcx
jmp 0x32ead
movq (%rax), %rdx
movq %rdx, (%rcx)
movss 0x14(%rax), %xmm0
ucomiss 0xa508(%rip), %xmm0     # 0x3d3a0
jne 0x32ea0
jnp 0x342d9
movl $0x0, 0x14(%rax)
movq %r14, (%rax)
movq %rax, %r14
movq (%rcx), %rax
testq %rax, %rax
jne 0x32e76
movq -0xe0(%rbp), %rax
movss -0x40(%rbp), %xmm0
ucomiss 0x4(%rax), %xmm0
jae 0x3342d
movq %r13, -0x260(%rbp)
movq -0xe8(%rbp), %r13
testq %r13, %r13
je 0x3355b
movss 0x1c(%r13), %xmm0
ucomiss -0x60(%rbp), %xmm0
jb 0x3429b
movss 0x8(%r13), %xmm6
movss 0xc(%r13), %xmm4
ucomiss 0xa49b(%rip), %xmm4     # 0x3d3a0
jne 0x32f43
jp 0x32f43
movss -0x84(%rbp), %xmm0
ucomiss %xmm6, %xmm0
jbe 0x33424
ucomiss 0xa47f(%rip), %xmm6     # 0x3d3a0
jae 0x3324c
movq -0x100(%rbp), %rdi
xorl %esi, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movaps %xmm6, %xmm2
jmp 0x33295
movss 0x18(%r13), %xmm1
movss -0x40(%rbp), %xmm2
ucomiss %xmm1, %xmm2
jb 0x342f8
movaps %xmm4, %xmm8
addss %xmm6, %xmm8
movaps %xmm1, %xmm2
movss -0x60(%rbp), %xmm5
subss %xmm5, %xmm2
mulss %xmm4, %xmm2
addss %xmm6, %xmm2
cmpltss %xmm1, %xmm5
andps %xmm5, %xmm2
andnps %xmm6, %xmm5
orps %xmm2, %xmm5
ucomiss 0xa417(%rip), %xmm5     # 0x3d3a0
jb 0x33055
movaps %xmm0, %xmm2
subss -0x60(%rbp), %xmm2
mulss %xmm4, %xmm2
addss %xmm6, %xmm2
movaps %xmm0, %xmm3
cmpltss -0x40(%rbp), %xmm3
andps %xmm3, %xmm2
andnps %xmm8, %xmm3
orps %xmm2, %xmm3
ucomiss 0xa3e7(%rip), %xmm3     # 0x3d3a0
jb 0x33055
movss -0x84(%rbp), %xmm2
ucomiss %xmm5, %xmm2
jbe 0x33055
movss -0x84(%rbp), %xmm2
ucomiss %xmm3, %xmm2
jbe 0x33055
maxss -0x60(%rbp), %xmm1
cvttss2si %xmm5, %eax
minss -0x40(%rbp), %xmm0
cvttss2si %xmm3, %ecx
cmpl %ecx, %eax
jne 0x332a4
testl %eax, %eax
js 0x34336
cmpl %eax, -0xd0(%rbp)
jle 0x34336
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
subss %xmm1, %xmm0
subss %xmm2, %xmm5
subss %xmm2, %xmm3
addss %xmm5, %xmm3
mulss 0xa3a2(%rip), %xmm3     # 0x3d3cc
addss 0xa34e(%rip), %xmm3     # 0x3d380
mulss 0x14(%r13), %xmm3
movl %eax, %eax
mulss %xmm0, %xmm3
addss (%r12,%rax,4), %xmm3
movss %xmm3, (%r12,%rax,4)
mulss 0x14(%r13), %xmm0
jmp 0x33413
cmpl $0x7ffffffe, -0xc8(%rbp) # imm = 0x7FFFFFFE
ja 0x33424
xorl %ebx, %ebx
movaps %xmm6, -0x120(%rbp)
movaps %xmm8, -0xc0(%rbp)
movss %xmm4, -0xb0(%rbp)
movl %ebx, %r15d
xorps %xmm5, %xmm5
cvtsi2ss %ebx, %xmm5
leal 0x1(%r15), %ebx
xorps %xmm2, %xmm2
cvtsi2ss %ebx, %xmm2
movaps %xmm5, %xmm7
subss %xmm6, %xmm7
divss %xmm4, %xmm7
movss -0x60(%rbp), %xmm0
addss %xmm0, %xmm7
movaps %xmm2, %xmm3
subss %xmm6, %xmm3
divss %xmm4, %xmm3
addss %xmm0, %xmm3
ucomiss %xmm6, %xmm5
movss %xmm7, -0xa0(%rbp)
movss %xmm5, -0x48(%rbp)
jbe 0x33131
ucomiss %xmm2, %xmm8
jbe 0x33131
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movss %xmm2, -0x38(%rbp)
movaps %xmm5, %xmm2
movss %xmm3, -0x68(%rbp)
movaps %xmm7, %xmm3
callq 0x3720f
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movss -0x48(%rbp), %xmm0
movss -0xa0(%rbp), %xmm1
movss -0x38(%rbp), %xmm2
movss -0x68(%rbp), %xmm3
callq 0x3720f
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movss -0x38(%rbp), %xmm0
movss -0x68(%rbp), %xmm1
jmp 0x331c6
ucomiss %xmm8, %xmm5
jbe 0x3317e
ucomiss %xmm2, %xmm6
jbe 0x3317e
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movss %xmm2, -0x38(%rbp)
movss %xmm3, -0x68(%rbp)
callq 0x3720f
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movss -0x38(%rbp), %xmm0
movss -0x68(%rbp), %xmm1
movss -0x48(%rbp), %xmm2
movss -0xa0(%rbp), %xmm3
jmp 0x331ab
ucomiss %xmm6, %xmm5
jbe 0x33189
ucomiss %xmm5, %xmm8
ja 0x33194
ucomiss %xmm8, %xmm5
jbe 0x331ff
ucomiss %xmm5, %xmm6
jbe 0x331ff
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movaps %xmm5, %xmm2
movaps %xmm7, %xmm3
callq 0x3720f
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movss -0x48(%rbp), %xmm0
movss -0xa0(%rbp), %xmm1
movaps -0xc0(%rbp), %xmm2
movss -0x40(%rbp), %xmm3
callq 0x3720f
cmpl %ebx, -0xd0(%rbp)
movaps -0x120(%rbp), %xmm6
movaps -0xc0(%rbp), %xmm8
movss -0xb0(%rbp), %xmm4
jne 0x3307e
jmp 0x33424
ucomiss %xmm6, %xmm2
jbe 0x3320a
ucomiss %xmm2, %xmm8
ja 0x33215
ucomiss %xmm8, %xmm2
jbe 0x33235
ucomiss %xmm2, %xmm6
jbe 0x33235
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movss %xmm2, -0x38(%rbp)
movss %xmm3, -0x68(%rbp)
jmp 0x33114
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movaps %xmm8, %xmm2
jmp 0x331cd
cvttss2si %xmm6, %r15d
movq %r12, %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps %xmm6, %xmm0
movss -0x60(%rbp), %xmm1
movaps %xmm6, %xmm2
movss -0x40(%rbp), %xmm3
movaps %xmm6, -0x120(%rbp)
callq 0x3720f
incl %r15d
movq -0x100(%rbp), %rdi
movl %r15d, %esi
movq %r13, %rdx
movaps -0x120(%rbp), %xmm0
movss -0x60(%rbp), %xmm1
movaps %xmm0, %xmm2
movss -0x40(%rbp), %xmm3
callq 0x3720f
jmp 0x33424
movss 0x10(%r13), %xmm2
ucomiss %xmm3, %xmm5
jbe 0x332de
movss -0x60(%rbp), %xmm6
movaps %xmm6, %xmm4
subss %xmm1, %xmm4
movss -0x40(%rbp), %xmm7
addss %xmm7, %xmm4
movaps %xmm6, %xmm1
subss %xmm0, %xmm1
addss %xmm7, %xmm1
xorps 0xa04a(%rip), %xmm2     # 0x3d320
movaps %xmm4, %xmm0
movaps %xmm5, %xmm4
jmp 0x332ed
movaps %xmm3, %xmm4
movaps %xmm5, %xmm3
movaps %xmm6, %xmm8
movss -0x60(%rbp), %xmm6
cvttss2si %xmm3, %ecx
cvttss2si %xmm4, %eax
leal 0x1(%rcx), %esi
xorps %xmm7, %xmm7
cvtsi2ss %esi, %xmm7
subss %xmm8, %xmm7
mulss %xmm2, %xmm7
addss %xmm6, %xmm7
movss 0x14(%r13), %xmm5
movaps %xmm7, %xmm6
subss %xmm1, %xmm6
mulss %xmm5, %xmm6
cvttps2dq %xmm3, %xmm8
cvtdq2ps %xmm8, %xmm8
subss %xmm8, %xmm3
movss 0xa04c(%rip), %xmm8     # 0x3d380
addss %xmm8, %xmm3
mulss 0xa08b(%rip), %xmm3     # 0x3d3cc
addss %xmm8, %xmm3
movslq %ecx, %rdx
mulss %xmm6, %xmm3
addss (%r12,%rdx,4), %xmm3
movss %xmm3, (%r12,%rdx,4)
movl %eax, %ecx
subl %esi, %ecx
jle 0x33398
movaps %xmm2, %xmm3
mulss %xmm5, %xmm3
movaps %xmm3, %xmm8
mulss 0xa049(%rip), %xmm8     # 0x3d3bc
leal -0x1(%rax), %esi
movaps %xmm8, %xmm9
addss %xmm6, %xmm9
addss 0x4(%r12,%rdx,4), %xmm9
movss %xmm9, 0x4(%r12,%rdx,4)
addss %xmm3, %xmm6
incq %rdx
cmpl %edx, %esi
jne 0x33376
movaps %xmm6, %xmm3
andps 0x9f2e(%rip), %xmm3     # 0x3d2d0
movss 0xf4a5(%rip), %xmm8     # 0x42850
ucomiss %xmm3, %xmm8
jb 0x34317
xorps %xmm3, %xmm3
cvtsi2ss %ecx, %xmm3
xorps %xmm8, %xmm8
cvtsi2ss %eax, %xmm8
mulss %xmm3, %xmm2
addss %xmm7, %xmm2
subss %xmm8, %xmm4
addss 0x9fc6(%rip), %xmm4     # 0x3d3a0
mulss 0x9fea(%rip), %xmm4     # 0x3d3cc
addss 0x9f96(%rip), %xmm4     # 0x3d380
mulss %xmm5, %xmm4
movaps %xmm0, %xmm3
subss %xmm2, %xmm3
mulss %xmm4, %xmm3
addss %xmm6, %xmm3
cltq
addss (%r12,%rax,4), %xmm3
movss %xmm3, (%r12,%rax,4)
subss %xmm1, %xmm0
mulss %xmm5, %xmm0
movq -0x1e8(%rbp), %rcx
addss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rcx,%rax,4)
movq (%r13), %r13
jmp 0x32ed9
testq %r14, %r14
je 0x33437
movq (%r14), %rax
jmp 0x33477
cmpl $0x0, -0x4c(%rbp)
jne 0x3345d
movl $0x6408, %edi           # imm = 0x6408
callq 0x85d9
testq %rax, %rax
je 0x33550
movq %r13, (%rax)
movl $0x320, -0x4c(%rbp)     # imm = 0x320
movq %rax, %r13
movl -0x4c(%rbp), %eax
movslq %eax, %rcx
decl %eax
movl %eax, -0x4c(%rbp)
shlq $0x5, %rcx
movq %r14, %rax
leaq (%rcx,%r13), %r14
addq $-0x20, %r14
testq %r14, %r14
movss -0x60(%rbp), %xmm5
je 0x33507
movq -0xe0(%rbp), %rdx
movss 0x8(%rdx), %xmm0
movss (%rdx), %xmm1
movss 0x4(%rdx), %xmm2
subss %xmm1, %xmm0
movss 0xc(%rdx), %xmm3
movaps %xmm3, %xmm4
subss %xmm2, %xmm4
divss %xmm4, %xmm0
movss %xmm0, 0xc(%r14)
movss 0x9ec4(%rip), %xmm4     # 0x3d380
divss %xmm0, %xmm4
movss %xmm4, 0x10(%r14)
movaps %xmm5, %xmm4
subss %xmm2, %xmm4
mulss %xmm0, %xmm4
addss %xmm1, %xmm4
subss -0x80(%rbp), %xmm4
movss %xmm4, 0x8(%r14)
xorl %ecx, %ecx
cmpl $0x0, 0x10(%rdx)
sete %cl
movss (%rbx,%rcx,4), %xmm0
movss %xmm0, 0x14(%r14)
movss %xmm2, 0x18(%r14)
movss %xmm3, 0x1c(%r14)
movq $0x0, (%r14)
movss 0x1c(%r14), %xmm0
ucomiss %xmm5, %xmm0
jb 0x342ba
movq -0xe8(%rbp), %rcx
movq %rcx, (%r14)
movq %r14, -0xe8(%rbp)
movq -0xe0(%rbp), %rcx
movss -0x40(%rbp), %xmm0
ucomiss 0x18(%rcx), %xmm0
leaq 0x14(%rcx), %rcx
movq %rcx, -0xe0(%rbp)
movq %rax, %r14
jae 0x3342d
jmp 0x32ecb
movq %r14, %rax
xorl %r14d, %r14d
jmp 0x33477
cmpl $0x7ffffffe, -0xc8(%rbp) # imm = 0x7FFFFFFE
movaps 0x9d64(%rip), %xmm2     # 0x3d2d0
movss 0x9e14(%rip), %xmm3     # 0x3d388
movss 0x9e40(%rip), %xmm4     # 0x3d3bc
movl $0xff, %edi
movq -0x1b0(%rbp), %r15
movq -0x260(%rbp), %r13
movq -0x248(%rbp), %r8
ja 0x335dc
xorps %xmm0, %xmm0
movq %r12, %rax
movq -0xf8(%rbp), %rcx
movq %r8, %rdx
addss (%rax,%r8,4), %xmm0
movss (%rax), %xmm1
addss %xmm0, %xmm1
andps %xmm2, %xmm1
mulss %xmm3, %xmm1
addss %xmm4, %xmm1
cvttss2si %xmm1, %esi
cmpl %edi, %esi
cmovgel %edi, %esi
movslq %ecx, %rcx
movb %sil, (%r15,%rcx)
incl %ecx
addq $0x4, %rax
decq %rdx
jne 0x335a8
movq -0xe8(%rbp), %rax
testq %rax, %rax
leaq 0xf323(%rip), %rbx      # 0x42910
je 0x33606
movss 0xc(%rax), %xmm0
addss 0x8(%rax), %xmm0
movss %xmm0, 0x8(%rax)
movq (%rax), %rax
testq %rax, %rax
jne 0x335ef
movl -0xd8(%rbp), %ecx
incl %ecx
movq -0x268(%rbp), %rsi
leal 0x1(%rsi), %eax
movq -0xf8(%rbp), %rdx
addl -0x13c(%rbp), %edx
movq %rdx, -0xf8(%rbp)
cmpl -0xd4(%rbp), %esi
jne 0x32e17
jmp 0x3363d
xorl %r13d, %r13d
testq %r13, %r13
movq -0xa8(%rbp), %r15
movq -0x90(%rbp), %r14
je 0x33661
movq %r13, %rdi
movq (%r13), %r13
callq 0x9065
testq %r13, %r13
jne 0x33650
leaq -0x480(%rbp), %rax
cmpq %rax, %r12
je 0x33675
movq %r12, %rdi
callq 0x9065
movq -0x78(%rbp), %rdi
callq 0x9065
movq %r15, %rdi
callq 0x9065
movq %r14, %rdi
callq 0x9065
movq -0x180(%rbp), %rdi
callq 0x9065
movl -0x158(%rbp), %ebx
cmpq $0x2, %rbx
jb 0x338ed
movq -0x130(%rbp), %rax
movzwl 0x6(%rax), %eax
movl %eax, -0xa0(%rbp)
testl %eax, %eax
je 0x338ed
movq -0x130(%rbp), %rcx
movzwl 0x8(%rcx), %eax
movzwl 0xa(%rcx), %r15d
movslq -0x160(%rbp), %rdx
addq -0x150(%rbp), %rax
movzwl 0x4(%rcx), %r13d
movq %rdx, -0x38(%rbp)
imulq %rdx, %r15
addq %rax, %r15
movl %r13d, %eax
subl %ebx, %eax
movq %rax, -0x48(%rbp)
leal 0x1(%rax), %r14d
xorl %eax, %eax
leal -0x2(%rbx), %r12d
movl %eax, -0x60(%rbp)
leaq -0x480(%rbp), %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x7220
cmpl $0x3, %r12d
ja 0x33860
leaq 0xf1f7(%rip), %rcx      # 0x42920
movslq (%rcx,%r12,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x0, -0x48(%rbp)
js 0x338a1
xorl %esi, %esi
xorl %ecx, %ecx
movzbl (%r15,%rsi), %eax
movl %esi, %edx
andl $0x7, %edx
movzbl -0x480(%rbp,%rdx), %edx
leal 0x2(%rsi), %edi
andl $0x7, %edi
movb %al, -0x480(%rbp,%rdi)
subl %edx, %eax
addl %eax, %ecx
movl %ecx, %eax
shrl %eax
movb %al, (%r15,%rsi)
incq %rsi
cmpq %rsi, %r14
jne 0x33740
jmp 0x338a5
cmpl $0x0, -0x48(%rbp)
js 0x338a1
xorl %esi, %esi
xorl %ecx, %ecx
movzbl (%r15,%rsi), %eax
movl %esi, %edx
andl $0x7, %edx
movzbl -0x480(%rbp,%rdx), %edi
xorq $0x4, %rdx
movb %al, -0x480(%rbp,%rdx)
subl %edi, %eax
addl %eax, %ecx
movl %ecx, %eax
shrl $0x2, %eax
movb %al, (%r15,%rsi)
incq %rsi
cmpq %rsi, %r14
jne 0x33786
jmp 0x338a5
cmpl $0x0, -0x48(%rbp)
js 0x338a1
xorl %esi, %esi
xorl %ecx, %ecx
movl $0xcccccccd, %r8d       # imm = 0xCCCCCCCD
movzbl (%r15,%rsi), %eax
movl %esi, %edx
andl $0x7, %edx
movzbl -0x480(%rbp,%rdx), %edx
leal 0x5(%rsi), %edi
andl $0x7, %edi
movb %al, -0x480(%rbp,%rdi)
subl %edx, %eax
addl %eax, %ecx
movq %rcx, %rax
imulq %r8, %rax
shrq $0x22, %rax
movb %al, (%r15,%rsi)
incq %rsi
cmpq %rsi, %r14
jne 0x337d1
jmp 0x338a5
cmpl $0x0, -0x48(%rbp)
js 0x338a1
xorl %esi, %esi
xorl %ecx, %ecx
movl $0xaaaaaaab, %r8d       # imm = 0xAAAAAAAB
movzbl (%r15,%rsi), %eax
movl %esi, %edx
andl $0x7, %edx
movzbl -0x480(%rbp,%rdx), %edx
leal 0x3(%rsi), %edi
andl $0x7, %edi
movb %al, -0x480(%rbp,%rdi)
subl %edx, %eax
addl %eax, %ecx
movq %rcx, %rax
imulq %r8, %rax
shrq $0x21, %rax
movb %al, (%r15,%rsi)
incq %rsi
cmpq %rsi, %r14
jne 0x33824
jmp 0x338a5
cmpl $0x0, -0x48(%rbp)
js 0x338a1
xorl %esi, %esi
xorl %ecx, %ecx
movzbl (%r15,%rsi), %eax
leal (%rbx,%rsi), %edx
movl %esi, %edi
andl $0x7, %edi
movzbl -0x480(%rbp,%rdi), %edi
andl $0x7, %edx
movb %al, -0x480(%rbp,%rdx)
subl %edi, %eax
addl %eax, %ecx
movl %ecx, %eax
xorl %edx, %edx
divl %ebx
movb %al, (%r15,%rsi)
incq %rsi
cmpq %rsi, %r14
jne 0x3386a
jmp 0x338a5
xorl %esi, %esi
xorl %ecx, %ecx
cmpl %r13d, %esi
jge 0x338d8
movl %esi, %esi
cmpb $0x0, (%r15,%rsi)
jne 0x3425d
movl %esi, %eax
andl $0x7, %eax
movzbl -0x480(%rbp,%rax), %eax
subl %eax, %ecx
movl %ecx, %eax
xorl %edx, %edx
divl %ebx
movb %al, (%r15,%rsi)
incq %rsi
cmpl %r13d, %esi
jl 0x338ac
addq -0x38(%rbp), %r15
movl -0x60(%rbp), %eax
incl %eax
cmpl -0xa0(%rbp), %eax
jne 0x33704
movl -0x154(%rbp), %ebx
cmpq $0x2, %rbx
jb 0x33b62
movq -0x130(%rbp), %rax
movzwl 0x4(%rax), %eax
movl %eax, -0xa0(%rbp)
testl %eax, %eax
je 0x33b62
movq -0x130(%rbp), %rcx
movzwl 0x8(%rcx), %eax
movzwl 0xa(%rcx), %r15d
movslq -0x160(%rbp), %r12
addq -0x150(%rbp), %rax
movzwl 0x6(%rcx), %ecx
imulq %r12, %r15
addq %rax, %r15
movl %ecx, -0x48(%rbp)
movl %ecx, %eax
subl %ebx, %eax
movq %rax, -0x38(%rbp)
leal 0x1(%rax), %r13d
xorl %eax, %eax
leal -0x2(%rbx), %r14d
movl %eax, -0x60(%rbp)
leaq -0x480(%rbp), %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x7220
cmpl $0x3, %r14d
ja 0x33ac3
leaq 0xefb7(%rip), %rcx      # 0x42930
movslq (%rcx,%r14,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x0, -0x38(%rbp)
js 0x33b0a
xorl %esi, %esi
movq %r15, %rax
xorl %ecx, %ecx
movzbl (%rax), %edx
movl %esi, %edi
andl $0x7, %edi
movzbl -0x480(%rbp,%rdi), %edi
leal 0x2(%rsi), %r8d
andl $0x7, %r8d
movb %dl, -0x480(%rbp,%r8)
subl %edi, %edx
addl %edx, %ecx
movl %ecx, %edx
shrl %edx
movb %dl, (%rax)
incq %rsi
addq %r12, %rax
cmpq %rsi, %r13
jne 0x33993
jmp 0x33b0e
cmpl $0x0, -0x38(%rbp)
js 0x33b0a
xorl %esi, %esi
movq %r15, %rax
xorl %ecx, %ecx
movzbl (%rax), %edx
movl %esi, %edi
andl $0x7, %edi
movzbl -0x480(%rbp,%rdi), %r8d
xorq $0x4, %rdi
movb %dl, -0x480(%rbp,%rdi)
subl %r8d, %edx
addl %edx, %ecx
movl %ecx, %edx
shrl $0x2, %edx
movb %dl, (%rax)
incq %rsi
addq %r12, %rax
cmpq %rsi, %r13
jne 0x339de
jmp 0x33b0e
cmpl $0x0, -0x38(%rbp)
js 0x33b0a
xorl %esi, %esi
movq %r15, %rax
xorl %ecx, %ecx
movl $0xcccccccd, %r9d       # imm = 0xCCCCCCCD
movzbl (%rax), %edx
movl %esi, %edi
andl $0x7, %edi
movzbl -0x480(%rbp,%rdi), %edi
leal 0x5(%rsi), %r8d
andl $0x7, %r8d
movb %dl, -0x480(%rbp,%r8)
subl %edi, %edx
addl %edx, %ecx
movq %rcx, %rdx
imulq %r9, %rdx
shrq $0x22, %rdx
movb %dl, (%rax)
incq %rsi
addq %r12, %rax
cmpq %rsi, %r13
jne 0x33a2d
jmp 0x33b0e
cmpl $0x0, -0x38(%rbp)
js 0x33b0a
xorl %esi, %esi
movq %r15, %rax
xorl %ecx, %ecx
movl $0xaaaaaaab, %r9d       # imm = 0xAAAAAAAB
movzbl (%rax), %edx
movl %esi, %edi
andl $0x7, %edi
movzbl -0x480(%rbp,%rdi), %edi
leal 0x3(%rsi), %r8d
andl $0x7, %r8d
movb %dl, -0x480(%rbp,%r8)
subl %edi, %edx
addl %edx, %ecx
movq %rcx, %rdx
imulq %r9, %rdx
shrq $0x21, %rdx
movb %dl, (%rax)
incq %rsi
addq %r12, %rax
cmpq %rsi, %r13
jne 0x33a85
jmp 0x33b0e
cmpl $0x0, -0x38(%rbp)
js 0x33b0a
xorl %esi, %esi
movq %r15, %rdi
xorl %ecx, %ecx
movzbl (%rdi), %eax
leal (%rbx,%rsi), %edx
movl %esi, %r8d
andl $0x7, %r8d
movzbl -0x480(%rbp,%r8), %r8d
andl $0x7, %edx
movb %al, -0x480(%rbp,%rdx)
subl %r8d, %eax
addl %eax, %ecx
movl %ecx, %eax
xorl %edx, %edx
divl %ebx
movb %al, (%rdi)
incq %rsi
addq %r12, %rdi
cmpq %rsi, %r13
jne 0x33ad0
jmp 0x33b0e
xorl %esi, %esi
xorl %ecx, %ecx
movl -0x48(%rbp), %edi
subl %esi, %edi
jle 0x33b4e
movslq %esi, %rsi
movq %r12, %r8
imulq %rsi, %r8
addq %r15, %r8
cmpb $0x0, (%r8)
jne 0x3427c
movl %esi, %eax
andl $0x7, %eax
movzbl -0x480(%rbp,%rax), %eax
subl %eax, %ecx
movl %ecx, %eax
xorl %edx, %edx
divl %ebx
movb %al, (%r8)
incq %rsi
addq %r12, %r8
decl %edi
jne 0x33b22
incq %r15
movl -0x60(%rbp), %eax
incl %eax
cmpl -0xa0(%rbp), %eax
jne 0x33954
movl -0x1c8(%rbp), %r8d
shll $0x8, %r8d
addl -0x1c4(%rbp), %r8d
movq -0x130(%rbp), %rsi
movl 0x8(%rsi), %eax
movq -0x230(%rbp), %rdi
movw %ax, (%rdi)
movzwl 0xa(%rsi), %edx
movw %dx, 0x2(%rdi)
movzwl 0x4(%rsi), %ecx
addl %ecx, %eax
movw %ax, 0x4(%rdi)
movzwl 0x6(%rsi), %eax
movswl %r8w, %esi
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
addl %eax, %edx
movw %dx, 0x6(%rdi)
mulss -0x200(%rbp), %xmm0
movss %xmm0, 0x10(%rdi)
movl -0x1d0(%rbp), %edx
xorps %xmm0, %xmm0
cvtsi2ss %edx, %xmm0
movss -0x1c0(%rbp), %xmm4
mulss %xmm4, %xmm0
movss -0x134(%rbp), %xmm3
addss %xmm3, %xmm0
movss %xmm0, 0x8(%rdi)
movl -0x1cc(%rbp), %esi
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
movss -0x1bc(%rbp), %xmm5
mulss %xmm5, %xmm0
addl %ecx, %edx
xorps %xmm1, %xmm1
cvtsi2ss %edx, %xmm1
movss -0x138(%rbp), %xmm2
addss %xmm2, %xmm0
movss %xmm0, 0xc(%rdi)
mulss %xmm4, %xmm1
addss %xmm3, %xmm1
addl %eax, %esi
xorps %xmm0, %xmm0
cvtsi2ss %esi, %xmm0
movss %xmm1, 0x14(%rdi)
mulss %xmm5, %xmm0
addss %xmm2, %xmm0
movss %xmm0, 0x18(%rdi)
movq -0x1a8(%rbp), %r12
movq -0x220(%rbp), %r8
movq -0x240(%rbp), %r9
movq -0x228(%rbp), %rdx
movq -0x238(%rbp), %rcx
incq %r9
incq %rcx
movslq 0x10(%rdx), %rax
cmpq %rax, %rcx
jl 0x325d5
movq -0x218(%rbp), %rax
incq %rax
cmpq -0x210(%rbp), %rax
jne 0x3247a
movl -0x1b8(%rbp), %eax
movl %eax, -0x158(%rbp)
movl -0x1b4(%rbp), %eax
movl %eax, -0x154(%rbp)
movq -0x128(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x208(%rbp), %rdx
incq %rdx
movq -0x70(%rbp), %rbx
movslq 0x40(%rbx), %rax
cmpq %rax, %rdx
jl 0x323ec
movq -0x148(%rbp), %rdi
callq 0x9065
movq -0x170(%rbp), %rdi
callq 0x9065
movq -0x1a0(%rbp), %rdi
callq 0x9065
movq -0x70(%rbp), %rbx
cmpl $0x0, 0x40(%rbx)
jle 0x34205
xorl %r15d, %r15d
movq 0x48(%rbx), %rax
imulq $0x68, %r15, %rcx
leaq (%rax,%rcx), %r9
leaq (%r15,%r15,4), %r12
shlq $0x4, %r12
movq 0x60(%rax,%rcx), %r10
movss 0x14(%rax,%rcx), %xmm0
movq -0xf0(%rbp), %rsi
movq 0x8(%rsi,%r12), %rdx
movslq 0x24(%rsi,%r12), %rsi
movzbl 0x4(%rdx,%rsi), %edi
shll $0x8, %edi
movzbl 0x5(%rdx,%rsi), %r8d
movswl %di, %edi
orl %r8d, %edi
movzbl 0x6(%rdx,%rsi), %r8d
shll $0x8, %r8d
movzbl 0x7(%rdx,%rsi), %esi
movswl %r8w, %edx
orl %esi, %edx
xorps %xmm3, %xmm3
cvtsi2ss %edi, %xmm3
subl %edx, %edi
xorps %xmm2, %xmm2
cvtsi2ss %edi, %xmm2
movaps %xmm0, %xmm1
divss %xmm2, %xmm1
mulss %xmm1, %xmm3
cmpb $0x0, 0x38(%rax,%rcx)
movq %r9, -0x68(%rbp)
jne 0x33e2c
movswl %dx, %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
mulss %xmm2, %xmm1
movq %rbx, 0x30(%r10)
movq %r9, 0x18(%r10)
movl $0x0, 0x20(%r10)
movss %xmm0, (%r10)
movss %xmm3, 0x24(%r10)
movss %xmm1, 0x28(%r10)
movl 0x3c(%r10), %eax
testl %eax, %eax
jns 0x33e24
movss %xmm3, -0x60(%rbp)
movl %eax, %ebx
shrl $0x1f, %ebx
addl %eax, %ebx
sarl %ebx
addl %eax, %ebx
testl %ebx, %ebx
movl $0x0, %eax
cmovlel %eax, %ebx
leaq (,%rbx,8), %rax
leaq (%rax,%rax,4), %rdi
movq %r10, %r13
callq 0x85d9
movq %rax, %r14
movq 0x40(%r13), %rsi
movslq 0x38(%r13), %rax
shlq $0x3, %rax
leaq (%rax,%rax,4), %rdx
movq %r14, %rdi
callq 0x7080
movq 0x40(%r13), %rdi
callq 0x9065
movq %r14, 0x40(%r13)
movl %ebx, 0x3c(%r13)
movq -0x70(%rbp), %rbx
movq -0x68(%rbp), %r9
movq %r13, %r10
movss -0x60(%rbp), %xmm3
movl $0x0, 0x38(%r10)
incl 0x20(%r10)
xorps %xmm0, %xmm0
movss %xmm0, -0x38(%rbp)
cmpb $0x1, 0x38(%r9)
movq %r15, -0xf8(%rbp)
jne 0x33e60
cmpb $0x1, 0x39(%r9)
jne 0x33e60
subss 0x24(%r10), %xmm3
mulss 0x9561(%rip), %xmm3     # 0x3d3bc
movss %xmm3, -0x38(%rbp)
addq -0xf0(%rbp), %r12
movq $0x0, 0x48(%r10)
cmpl $0x0, 0x48(%r12)
jle 0x341de
xorl %ecx, %ecx
movq %r12, -0xa8(%rbp)
movq 0x40(%r12), %rax
movq %rcx, -0x100(%rbp)
leaq (%rcx,%rcx,4), %rcx
cmpl $0x0, 0x10(%rax,%rcx,8)
jle 0x341bf
leaq (%rax,%rcx,8), %rdx
xorl %r12d, %r12d
xorl %r13d, %r13d
movq %rdx, -0x48(%rbp)
movq 0x18(%rdx), %rsi
cmpw $0x0, (%rsi,%r12)
jne 0x33ed8
cmpw $0x0, 0x4(%rsi,%r12)
jne 0x33ed8
cmpw $0x0, 0x2(%rsi,%r12)
jne 0x33ed8
cmpw $0x0, 0x6(%rsi,%r12)
je 0x341ab
movl 0x4(%rdx), %edi
cmpb $0x1, 0x38(%r9)
jne 0x33f22
leal (%rdi,%r13), %eax
movq %rsi, -0xa0(%rbp)
movzwl %ax, %esi
movq %rbx, %r15
movq %rdi, %rbx
movq %r10, %rdi
movq %r10, %r14
callq 0x35582
movq %rbx, %rdi
movq %r15, %rbx
movq -0xa0(%rbp), %rsi
movq -0x48(%rbp), %rdx
movq %r14, %r10
movq -0x68(%rbp), %r9
testq %rax, %rax
jne 0x341ab
movq 0x18(%rdx), %rax
movss 0x8(%rax,%r12), %xmm8
xorps %xmm0, %xmm0
addss %xmm0, %xmm8
movss 0xc(%rax,%r12), %xmm6
addss %xmm0, %xmm6
movss 0x14(%rax,%r12), %xmm9
addss %xmm0, %xmm9
movss 0x18(%rax,%r12), %xmm7
xorps %xmm1, %xmm1
cvtsi2ssl 0x1c(%rbx), %xmm1
addss %xmm0, %xmm7
xorps %xmm4, %xmm4
cvtsi2ssl 0x18(%rbx), %xmm4
movzwl (%rax,%r12), %ecx
movl %ecx, -0x60(%rbp)
movzwl 0x2(%rax,%r12), %ebx
movzwl 0x4(%rax,%r12), %r11d
movzwl 0x6(%rax,%r12), %r8d
movl 0x38(%r10), %r14d
movl 0x3c(%r10), %eax
leal 0x1(%r14), %ecx
cmpl %r14d, %eax
jg 0x340b7
testl %eax, %eax
je 0x33fac
movl %eax, %r15d
shrl $0x1f, %r15d
addl %eax, %r15d
sarl %r15d
addl %eax, %r15d
jmp 0x33fb2
movl $0x8, %r15d
cmpl %ecx, %r15d
cmovlel %ecx, %r15d
cmpl %r15d, %eax
jge 0x340b7
movss %xmm1, -0xc8(%rbp)
movl %ebx, -0x78(%rbp)
movl %r11d, -0x80(%rbp)
movss %xmm4, -0x90(%rbp)
movl %r8d, -0x4c(%rbp)
movl %ecx, -0x84(%rbp)
movss %xmm9, -0xe0(%rbp)
movss %xmm8, -0xd0(%rbp)
movss %xmm7, -0xb0(%rbp)
movss %xmm6, -0x120(%rbp)
movq %rdi, -0x40(%rbp)
movq %rsi, -0xa0(%rbp)
movslq %r15d, %rax
shlq $0x3, %rax
leaq (%rax,%rax,4), %rdi
movq %r10, %rbx
callq 0x85d9
movq 0x40(%rbx), %rsi
movslq 0x38(%rbx), %rcx
shlq $0x3, %rcx
leaq (%rcx,%rcx,4), %rdx
movq %rax, -0xc0(%rbp)
movq -0xc0(%rbp), %rdi
callq 0x7080
movq 0x40(%rbx), %rdi
callq 0x9065
movq -0xc0(%rbp), %rax
movq %rax, 0x40(%rbx)
movl %r15d, 0x3c(%rbx)
movq -0x68(%rbp), %r9
movq %rbx, %r10
movq -0x48(%rbp), %rdx
movq -0xa0(%rbp), %rsi
movq -0x40(%rbp), %rdi
movss -0x120(%rbp), %xmm6
movss -0xb0(%rbp), %xmm7
movss -0xd0(%rbp), %xmm8
movss -0xe0(%rbp), %xmm9
movl -0x84(%rbp), %ecx
movl -0x4c(%rbp), %r8d
movss -0x90(%rbp), %xmm4
movl -0x80(%rbp), %r11d
movl -0x78(%rbp), %ebx
movss -0xc8(%rbp), %xmm1
movl %ecx, 0x38(%r10)
testl %r14d, %r14d
js 0x34355
movss 0x92b4(%rip), %xmm2     # 0x3d380
movaps %xmm2, %xmm0
divss %xmm1, %xmm0
xorps %xmm1, %xmm1
cvtsi2ssl -0x60(%rbp), %xmm1
xorps %xmm3, %xmm3
cvtsi2ss %ebx, %xmm3
divss %xmm4, %xmm2
xorps %xmm4, %xmm4
cvtsi2ss %r11d, %xmm4
mulss %xmm2, %xmm1
cvtsi2ss %r8d, %xmm5
mulss %xmm2, %xmm4
mulss %xmm0, %xmm3
mulss %xmm0, %xmm5
movq 0x40(%r10), %rax
movl %ecx, %ecx
leaq (%rcx,%rcx,4), %rcx
addl %r13d, %edi
movw %di, -0x28(%rax,%rcx,8)
movss %xmm8, -0x20(%rax,%rcx,8)
movss %xmm6, -0x1c(%rax,%rcx,8)
movss %xmm9, -0x18(%rax,%rcx,8)
movss %xmm7, -0x14(%rax,%rcx,8)
movss %xmm1, -0x10(%rax,%rcx,8)
movss %xmm3, -0xc(%rax,%rcx,8)
movss %xmm4, -0x8(%rax,%rcx,8)
movss %xmm5, -0x4(%rax,%rcx,8)
movss 0x24(%r10), %xmm0
addss -0x38(%rbp), %xmm0
addss 0x9262(%rip), %xmm0     # 0x3d3bc
cvttps2dq %xmm0, %xmm0
cvtdq2ps %xmm0, %xmm0
addss %xmm0, %xmm6
movss %xmm6, -0x1c(%rax,%rcx,8)
addss %xmm0, %xmm7
movss %xmm7, -0x14(%rax,%rcx,8)
movss 0x10(%rsi,%r12), %xmm0
addss 0x24(%r9), %xmm0
movss %xmm0, -0x24(%rax,%rcx,8)
cmpb $0x1, 0x20(%r9)
movq -0x70(%rbp), %rbx
jne 0x341ab
leaq (%rax,%rcx,8), %rax
addss 0x921d(%rip), %xmm0     # 0x3d3bc
cvttps2dq %xmm0, %xmm0
cvtdq2ps %xmm0, %xmm0
movss %xmm0, -0x24(%rax)
incq %r13
movslq 0x10(%rdx), %rax
addq $0x1c, %r12
cmpq %rax, %r13
jl 0x33ead
movq -0x100(%rbp), %rcx
incq %rcx
movq -0xa8(%rbp), %r12
movslq 0x48(%r12), %rax
cmpq %rax, %rcx
jl 0x33e84
movq 0x60(%r9), %rdi
callq 0x355da
movq -0xf8(%rbp), %r15
incq %r15
movslq 0x40(%rbx), %rax
cmpq %rax, %r15
movq -0x1a8(%rbp), %r12
jl 0x33d00
movq %r12, %rdi
callq 0x9065
movq -0x198(%rbp), %rdi
callq 0x9065
movq -0xf0(%rbp), %rdi
callq 0x9065
leaq -0x190(%rbp), %rdx
movq -0x70(%rbp), %rdi
movl $0x1, %esi
callq 0x34e00
leaq -0x190(%rbp), %rdi
callq 0x3755c
movb -0x29(%rbp), %al
andb $0x1, %al
addq $0x458, %rsp            # imm = 0x458
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x12f0f(%rip), %rdi     # 0x47173
leaq 0x12afa(%rip), %rsi     # 0x46d65
leaq 0x12f10(%rip), %rcx     # 0x47182
movl $0xab7, %edx            # imm = 0xAB7
callq 0x7140
leaq 0x12f45(%rip), %rdi     # 0x471c8
leaq 0x12adb(%rip), %rsi     # 0x46d65
leaq 0x12f56(%rip), %rcx     # 0x471e7
movl $0xaf4, %edx            # imm = 0xAF4
callq 0x7140
leaq 0x12dde(%rip), %rdi     # 0x47080
leaq 0x12abc(%rip), %rsi     # 0x46d65
leaq 0x12d65(%rip), %rcx     # 0x47015
movl $0x765, %edx            # imm = 0x765
callq 0x7140
leaq 0x12d40(%rip), %rdi     # 0x47001
leaq 0x12a9d(%rip), %rsi     # 0x46d65
leaq 0x12cd3(%rip), %rcx     # 0x46fa2
movl $0x82c, %edx            # imm = 0x82C
callq 0x7140
leaq 0x12cb5(%rip), %rdi     # 0x46f95
leaq 0x12a7e(%rip), %rsi     # 0x46d65
leaq 0x12cb4(%rip), %rcx     # 0x46fa2
movl $0x821, %edx            # imm = 0x821
callq 0x7140
leaq 0x12d6c(%rip), %rdi     # 0x4706b
leaq 0x12a5f(%rip), %rsi     # 0x46d65
leaq 0x12d08(%rip), %rcx     # 0x47015
movl $0x778, %edx            # imm = 0x778
callq 0x7140
leaq 0x12d83(%rip), %rdi     # 0x470a1
leaq 0x12a40(%rip), %rsi     # 0x46d65
leaq 0x12ce9(%rip), %rcx     # 0x47015
movl $0x7b9, %edx            # imm = 0x7B9
callq 0x7140
leaq 0x12d52(%rip), %rdi     # 0x4708f
leaq 0x12a21(%rip), %rsi     # 0x46d65
leaq 0x12cca(%rip), %rcx     # 0x47015
movl $0x794, %edx            # imm = 0x794
callq 0x7140
leaq 0x12859(%rip), %rdi     # 0x46bb5
leaq 0xa730(%rip), %rsi      # 0x3ea93
leaq 0x13139(%rip), %rcx     # 0x474a3
movl $0x326, %edx            # imm = 0x326
callq 0x7140
leaq 0x1285d(%rip), %rdi     # 0x46bd8
leaq 0x12494(%rip), %rsi     # 0x46816
leaq 0x12835(%rip), %rcx     # 0x46bbe
movl $0x49d, %edx            # imm = 0x49D
callq 0x7140
leaq 0x1288f(%rip), %rdi     # 0x46c29
leaq 0x12475(%rip), %rsi     # 0x46816
leaq 0x12816(%rip), %rcx     # 0x46bbe
movl $0x49f, %edx            # imm = 0x49F
callq 0x7140
leaq 0x127f1(%rip), %rdi     # 0x46baa
leaq 0x12456(%rip), %rsi     # 0x46816
leaq 0x127f7(%rip), %rcx     # 0x46bbe
movl $0x485, %edx            # imm = 0x485
callq 0x7140
leaq 0xa9d8(%rip), %rdi      # 0x3edb0
leaq 0xa6b4(%rip), %rsi      # 0x3ea93
leaq 0x1307a(%rip), %rcx     # 0x47460
movl $0x31c, %edx            # imm = 0x31C
callq 0x7140
leaq 0x12843(%rip), %rdi     # 0x46c3a
leaq 0x12418(%rip), %rsi     # 0x46816
leaq 0x127b9(%rip), %rcx     # 0x46bbe
movl $0x4ee, %edx            # imm = 0x4EE
callq 0x7140
leaq 0x12845(%rip), %rdi     # 0x46c5b
leaq 0x123f9(%rip), %rsi     # 0x46816
leaq 0x1279a(%rip), %rcx     # 0x46bbe
movl $0x4ef, %edx            # imm = 0x4EF
callq 0x7140
leaq 0x1284d(%rip), %rdi     # 0x46c82
leaq 0x123da(%rip), %rsi     # 0x46816
leaq 0x1277b(%rip), %rcx     # 0x46bbe
movl $0x4f0, %edx            # imm = 0x4F0
callq 0x7140
leaq 0x1287e(%rip), %rdi     # 0x46cd2
leaq 0x1289b(%rip), %rsi     # 0x46cf6
leaq 0x128ac(%rip), %rcx     # 0x46d0e
movl $0xdc, %edx
callq 0x7140
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
jmp 0x34482
movq %rax, %rbx
leaq -0x190(%rbp), %rdi
callq 0x3755c
movq %rbx, %rdi
callq 0x74d0
nop