// File: /workspace/github_cpp_makefile_star2_O3/realuptime[P]PolyDetector/main.cpp
// Function: main
int main(int argc, char **argv)
{
    std::vector<PolyLine> lines = {
        { { 0.481273, 19.263916, 0.000000 }, { 2.672669, -20.676010, 0.000000 } },
        { { -2.632347, 18.215017, 0.000000 }, { 5.508471, -21.049944, 0.000000 } },
        { { -17.857944, 5.812509, 0.000000 }, { 20.700626, -5.557483, 0.000000 } },
        { { -20.295795, -2.343559, 0.000000 }, { 19.730148, 2.348336, 0.000000 } },
        { { -20.073170, -2.086306, 0.000000 }, { 20.038513, 2.731704, 0.000000 } },
        { { -23.044189, -3.178784, 0.000000 }, { 16.882099, 3.613972, 0.000000 } },
        { { -23.059996, -7.303123, 0.000000 }, { 14.749506, 7.488816, 0.000000 } },
        { { -24.727707, -3.507834, 0.000000 }, { 15.546275, 2.365544, 0.000000 } },
        { { 18.502918, -8.634955, 0.000000 }, { -20.374165, -21.012856, 0.000000 } },
        { { 9.202598, 4.523481, 0.000000 }, { -7.426190, -32.843529, 0.000000 } },
        { { 20.847351, -7.539667, 0.000000 }, { -18.186256, -20.084688, 0.000000 } },
        { { 17.327255, -5.417993, 0.000000 }, { -19.222294, -24.215343, 0.000000 } },
        { { 15.582670, -8.607574, 0.000000 }, { -23.266512, -22.325489, 0.000000 } },
        { { -1.368334, -31.398386, 0.000000 }, { -13.871298, 7.963598, 0.000000 } },
        { { -1.544255, -29.319807, 0.000000 }, { -14.729448, 9.924440, 0.000000 } },
        { { -2.539731, -27.353601, 0.000000 }, { -13.925552, 12.553957, 0.000000 } },
        { { -3.332984, -26.400829, 0.000000 }, { -15.176960, 13.477487, 0.000000 } },
        { { -4.918091, -22.149073, 0.000000 }, { -14.987379, 18.316957, 0.000000 } },
        { { -4.509918, -21.885679, 0.000000 }, { -14.484156, 18.706865, 0.000000 } },
        { { -3.773709, -22.967257, 0.000000 }, { -16.725311, 16.880781, 0.000000 } },
        { { 11.133360, 1.055563, 0.000000 }, { -29.372477, -10.047474, 0.000000 } },
        { { -27.483515, -14.038325, 0.000000 }, { 9.971365, 5.185147, 0.000000 } },
        { { -6.512562, -22.113499, 0.000000 }, { -14.757652, 19.273197, 0.000000 } },
        { { -29.544163, -5.129999, 0.000000 }, { 11.304194, 5.856430, 0.000000 } },
        { { -29.245459, -2.901008, 0.000000 }, { 12.582209, 4.042094, 0.000000 } },
        { { -26.603186, -5.194456, 0.000000 }, { 14.157106, 6.840844, 0.000000 } },
        { { -26.637554, -3.911626, 0.000000 }, { 14.771155, 6.092309, 0.000000 } },
        { { -0.640467, -20.712761, 0.000000 }, { -9.923534, 20.965946, 0.000000 } },
    };

    PolyDetector pd;
	//pd.verbose = 1;
	
    for (auto &l : lines)
        pd.AddLine(l);

    if (!pd.DetectPolygons())
    {
        logoutf("%s", "WARN: cannot detect polys!");
        return -1;
    }
	
	logoutf("nPolys:%u dissolveSteps:%u lines:%u", uint32_t(pd.polys.size()), pd.dissolveCount + 1, uint32_t(pd.lines.size()));

#if 0
    for (auto &poly : pd.polys)
    {
        for (auto &p : poly.p)
        {
            logoutf("[%u] p:{%f %f}", poly.id, p.x, p.y);
        }
    }
#endif

    return 0;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xfe0, %rsp            # imm = 0xFE0
movaps 0x2069(%rip), %xmm0     # 0x111e0
leaq 0x50(%rsp), %rdx
movaps %xmm0, -0x30(%rdx)
xorps %xmm0, %xmm0
movaps %xmm0, -0x20(%rdx)
xorl %eax, %eax
movq %rax, -0x10(%rdx)
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps 0xe6a(%rip), %xmm1      # 0x10010
movaps %xmm1, 0x30(%rdx)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movups %xmm0, 0x48(%rdx)
movl %eax, 0x58(%rdx)
movaps 0x202d(%rip), %xmm2     # 0x111f0
movaps %xmm2, 0x60(%rdx)
movaps %xmm0, 0x70(%rdx)
movq %rax, 0x80(%rdx)
leaq 0xe0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1ffc(%rip), %xmm2     # 0x11200
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x170(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movups %xmm0, 0x48(%rdx)
movl %eax, 0x58(%rdx)
movaps 0x1fcb(%rip), %xmm2     # 0x11210
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x200(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1f9a(%rip), %xmm2     # 0x11220
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x290(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1f69(%rip), %xmm2     # 0x11230
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x320(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1f38(%rip), %xmm2     # 0x11240
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x3b0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1f07(%rip), %xmm2     # 0x11250
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x440(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1ed6(%rip), %xmm2     # 0x11260
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x4d0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1ea5(%rip), %xmm2     # 0x11270
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x560(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1e74(%rip), %xmm2     # 0x11280
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x5f0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1e43(%rip), %xmm2     # 0x11290
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x680(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1e12(%rip), %xmm2     # 0x112a0
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x710(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1de1(%rip), %xmm2     # 0x112b0
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x7a0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1db0(%rip), %xmm2     # 0x112c0
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x830(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1d7f(%rip), %xmm2     # 0x112d0
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x8c0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1d4e(%rip), %xmm2     # 0x112e0
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x950(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1d1d(%rip), %xmm2     # 0x112f0
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0x9e0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1cec(%rip), %xmm2     # 0x11300
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xa70(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1cbb(%rip), %xmm2     # 0x11310
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xb00(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1c8a(%rip), %xmm2     # 0x11320
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xb90(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1c59(%rip), %xmm2     # 0x11330
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xc20(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1c28(%rip), %xmm2     # 0x11340
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xcb0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1bf7(%rip), %xmm2     # 0x11350
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xd40(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1bc6(%rip), %xmm2     # 0x11360
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xdd0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1b95(%rip), %xmm2     # 0x11370
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xe60(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1b64(%rip), %xmm2     # 0x11380
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xef0(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
movaps 0x1b33(%rip), %xmm2     # 0x11390
movaps %xmm2, 0x60(%rdx)
movq %rax, 0x80(%rdx)
movaps %xmm0, 0x70(%rdx)
leaq 0xf80(%rsp), %rdx
movl %eax, (%rdx)
movq %rax, 0x8(%rdx)
movq %rdx, 0x10(%rdx)
movq %rdx, 0x18(%rdx)
movq %rax, 0x20(%rdx)
movaps %xmm1, 0x30(%rdx)
movl %ecx, 0x40(%rdx)
movb %al, 0x44(%rdx)
movl %eax, 0x58(%rdx)
movups %xmm0, 0x48(%rdx)
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x7(%rsp), %rcx
movl $0x1c, %edx
callq 0xfadc
movq $-0xfc0, %r14           # imm = 0xF040
leaq 0xf78(%rsp), %rbx
movq %rbx, %rdi
callq 0xc2b6
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0xf8d5
callq 0x2140
addq $-0x90, %rbx
addq $0x90, %r14
jne 0xf8bf
leaq 0x90(%rsp), %rcx
xorl %eax, %eax
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
xorps %xmm0, %xmm0
movaps %xmm0, -0x70(%rcx)
movaps %xmm0, -0x60(%rcx)
movaps %xmm0, -0x50(%rcx)
movaps %xmm0, -0x40(%rcx)
movaps %xmm0, -0x30(%rcx)
movaps %xmm0, -0x20(%rcx)
movl %eax, -0x10(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0xc0(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
leaq 0x108(%rsp), %rcx
movl %eax, (%rcx)
movq %rax, 0x8(%rcx)
movaps %xmm0, -0x28(%rcx)
movaps %xmm0, -0x18(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
leaq 0x160(%rsp), %rcx
movq %rcx, -0x30(%rcx)
movq $0x1, -0x28(%rcx)
movaps %xmm0, -0x20(%rcx)
movl $0x3f800000, -0x10(%rcx) # imm = 0x3F800000
movups %xmm0, -0x8(%rcx)
movl %eax, 0x8(%rcx)
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r15
cmpq %r15, %rbx
je 0xf9a8
leaq 0x20(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6f78
addq $0x90, %rbx
cmpq %r15, %rbx
jne 0xf991
leaq 0x20(%rsp), %rdi
callq 0x5ae2
leaq 0x130(%rsp), %r14
testb %al, %al
je 0xfa01
movq 0x58(%rsp), %rax
movq 0x70(%rsp), %rcx
subq 0x68(%rsp), %rcx
shrq $0x4, %rcx
imull $0xb6db6db7, %ecx, %esi # imm = 0xB6DB6DB7
movl 0x168(%rsp), %edx
incl %edx
subq 0x50(%rsp), %rax
shrq $0x4, %rax
imull $0x38e38e39, %eax, %ecx # imm = 0x38E38E39
leaq 0x19c5(%rip), %rdi      # 0x113bb
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x2030
jmp 0xfa12
leaq 0x1998(%rip), %rdi      # 0x113a0
callq 0x21d0
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
movq %r14, %rdi
callq 0xfc18
leaq 0x100(%rsp), %r14
movq %r14, %rdi
callq 0xfc36
movq -0x18(%r14), %rdi
testq %rdi, %rdi
je 0xfa38
callq 0x2140
leaq 0xb8(%rsp), %rdi
callq 0xfc36
leaq 0x88(%rsp), %rdi
callq 0xfc36
leaq 0x68(%rsp), %rdi
callq 0xfbb0
leaq 0x50(%rsp), %rdi
callq 0xfb88
leaq 0x38(%rsp), %rdi
callq 0xfb88
leaq 0x20(%rsp), %rdi
callq 0xfbd8
leaq 0x8(%rsp), %rdi
callq 0xfb88
movl %ebx, %eax
addq $0xfe0, %rsp            # imm = 0xFE0
popq %rbx
popq %r14
popq %r15
retq
jmp 0xfabc
movq %rax, %rbx
movl $0xf30, %r14d           # imm = 0xF30
movq $-0x90, %r15
leaq (%rsp,%r14), %rdi
addq $0x20, %rdi
callq 0xb518
addq %r15, %r14
cmpq %r15, %r14
jne 0xfaa5
jmp 0xfad3
movq %rax, %rbx
leaq 0x20(%rsp), %rdi
callq 0xfb22
leaq 0x8(%rsp), %rdi
callq 0xfb88
movq %rbx, %rdi
callq 0x2200
nop