// File: /workspace/github_cpp_makefile_star2_O1/FreeSlave[P]vhlt/hlrad/qrad.cpp
// Function: RadWorld()
static void     RadWorld()
{
    unsigned        i;
#ifdef ZHLT_TEXLIGHT
    unsigned        j;
#endif

    MakeBackplanes();
    MakeParents(0, -1);
    MakeTnodes(&g_dmodels[0]);
#ifdef HLRAD_OPAQUE_NODE
	CreateOpaqueNodes();
	LoadOpaqueEntities();
#endif

    // turn each face into a single patch
    MakePatches();
#ifdef HLRAD_DEBUG_DRAWPOINTS
	if (g_drawpatch)
	{
		char name[_MAX_PATH+20];
		sprintf (name, "%s_patch.pts", g_Mapname);
		Log ("Writing '%s' ...\n", name);
		FILE *f;
		f = fopen(name, "w");
		if (f)
		{
			const int pos_count = 15;
			const vec3_t pos[pos_count] = {{0,0,0},{1,0,0},{0,1,0},{-1,0,0},{0,-1,0},{1,0,0},{0,0,1},{-1,0,0},{0,0,-1},{0,-1,0},{0,0,1},{0,1,0},{0,0,-1},{1,0,0},{0,0,0}};
			int j, k;
			patch_t *patch;
			vec3_t v;
			for (j = 0, patch = g_patches; j < g_num_patches; j++, patch++)
			{
				if (patch->flags == ePatchFlagOutside)
					continue;
				VectorCopy (patch->origin, v);
				for (k = 0; k < pos_count; ++k)
					fprintf (f, "%g %g %g\n", v[0]+pos[k][0], v[1]+pos[k][1], v[2]+pos[k][2]);
			}
			fclose(f);
			Log ("OK.\n");
		}
		else
			Log ("Error.\n");
	}
#endif
    CheckMaxPatches();                                     // Check here for exceeding max patches, to prevent a lot of work from occuring before an error occurs
    SortPatches();                                         // Makes the runs in the Transfer Compression really good
    PairEdges();
#ifdef HLRAD_DEBUG_DRAWPOINTS
	if (g_drawedge)
	{
		char name[_MAX_PATH+20];
		sprintf (name, "%s_edge.pts", g_Mapname);
		Log ("Writing '%s' ...\n", name);
		FILE *f;
		f = fopen(name, "w");
		if (f)
		{
			const int pos_count = 15;
			const vec3_t pos[pos_count] = {{0,0,0},{1,0,0},{0,1,0},{-1,0,0},{0,-1,0},{1,0,0},{0,0,1},{-1,0,0},{0,0,-1},{0,-1,0},{0,0,1},{0,1,0},{0,0,-1},{1,0,0},{0,0,0}};
			int j, k;
			edgeshare_t *es;
			vec3_t v;
			for (j = 0, es = g_edgeshare; j < MAX_MAP_EDGES; j++, es++)
			{
#ifdef HLRAD_GetPhongNormal_VL
				if (es->smooth)
#else
				if (es->coplanar || !VectorCompare (es->interface_normal, vec3_origin))
#endif
				{
					int v0 = g_dedges[j].v[0], v1 = g_dedges[j].v[1];
					VectorAdd (g_dvertexes[v0].point, g_dvertexes[v1].point, v);
					VectorScale (v, 0.5, v);
					VectorAdd (v, es->interface_normal, v);
					VectorAdd (v, g_face_offset[es->faces[0] - g_dfaces], v);
					for (k = 0; k < pos_count; ++k)
						fprintf (f, "%g %g %g\n", v[0]+pos[k][0], v[1]+pos[k][1], v[2]+pos[k][2]);
				}
			}
			fclose(f);
			Log ("OK.\n");
		}
		else
			Log ("Error.\n");
	}
#endif

#ifdef HLRAD_SOFTSKY
	BuildDiffuseNormals ();
#endif
    // create directlights out of g_patches and lights
    CreateDirectLights();

    Log("\n");
	
#ifdef HLRAD_GROWSAMPLE
	// generate a position map for each face
	NamedRunThreadsOnIndividual(g_numfaces, g_estimate, FindFacePositions);

#endif
    // build initial facelights
    NamedRunThreadsOnIndividual(g_numfaces, g_estimate, BuildFacelights);

#ifdef HLRAD_GROWSAMPLE
	FreePositionMaps ();

#endif
    // free up the direct lights now that we have facelights
    DeleteDirectLights();

    if (g_numbounce > 0)
    {
        // build transfer lists
        MakeScalesStub();

#ifdef HLRAD_MORE_PATCHES
		// these arrays are only used in CollectLight, GatherLight and BounceLight
	#ifdef ZHLT_TEXLIGHT
		emitlight = (vec3_t (*)[MAXLIGHTMAPS])AllocBlock ((g_num_patches + 1) * sizeof (vec3_t [MAXLIGHTMAPS]));
		addlight = (vec3_t (*)[MAXLIGHTMAPS])AllocBlock ((g_num_patches + 1) * sizeof (vec3_t [MAXLIGHTMAPS]));
	#ifdef ZHLT_XASH
		emitlight_direction = (vec3_t (*)[MAXLIGHTMAPS])AllocBlock ((g_num_patches + 1) * sizeof (vec3_t [MAXLIGHTMAPS]));
		addlight_direction = (vec3_t (*)[MAXLIGHTMAPS])AllocBlock ((g_num_patches + 1) * sizeof (vec3_t [MAXLIGHTMAPS]));
	#endif
	#ifdef HLRAD_AUTOCORING
		newstyles = (unsigned char (*)[MAXLIGHTMAPS])AllocBlock ((g_num_patches + 1) * sizeof (unsigned char [MAXLIGHTMAPS]));
	#endif
	#else
		emitlight = (vec3_t *)AllocBlock ((g_num_patches + 1) * sizeof (vec3_t));
		addlight = (vec3_t *)AllocBlock ((g_num_patches + 1) * sizeof (vec3_t));
	#endif
#endif
        // spread light around
        BounceLight();

#ifndef HLRAD_AUTOCORING
        for (i = 0; i < g_num_patches; i++)
        {
#ifdef ZHLT_TEXLIGHT// AJM
            for (j = 0; j < MAXLIGHTMAPS && g_patches[i].totalstyle[j] != 255; j++)
			{
	            VectorSubtract(g_patches[i].totallight[j], g_patches[i].directlight[j], g_patches[i].totallight[j]);
			}
#else
            VectorSubtract(g_patches[i].totallight, g_patches[i].directlight, g_patches[i].totallight);
#endif
        }
#endif
#ifdef HLRAD_MORE_PATCHES
	#ifdef ZHLT_TEXLIGHT
		FreeBlock (emitlight);
		emitlight = NULL;
		FreeBlock (addlight);
		addlight = NULL;
	#ifdef ZHLT_XASH
		FreeBlock (emitlight_direction);
		emitlight_direction = NULL;
		FreeBlock (addlight_direction);
		addlight_direction = NULL;
	#endif
	#ifdef HLRAD_AUTOCORING
		FreeBlock (newstyles);
		newstyles = NULL;
	#endif
	#else
		FreeBlock (emitlight);
		emitlight = NULL;
		FreeBlock (addlight);
		addlight = NULL;
	#endif
#endif
    }
#ifndef HLRAD_AUTOCORING
#ifdef HLRAD_GatherPatchLight
	if (g_numbounce <= 0)
	{
        for (i = 0; i < g_num_patches; i++)
        {
#ifdef ZHLT_TEXLIGHT// AJM
            for (j = 0; j < MAXLIGHTMAPS && g_patches[i].totalstyle[j] != 255; j++)
			{
	            VectorSubtract(g_patches[i].totallight[j], g_patches[i].directlight[j], g_patches[i].totallight[j]);
			}
#else
            VectorSubtract(g_patches[i].totallight, g_patches[i].directlight, g_patches[i].totallight);
#endif
        }
	}
#endif
#endif

    FreeTransfers();
#ifdef HLRAD_OPAQUE_STYLE_BOUNCE
	FreeStyleArrays ();
#endif
	
#ifdef HLRAD_LOCALTRIANGULATION
	NamedRunThreadsOnIndividual (g_numfaces, g_estimate, CreateTriangulations);

#endif
    // blend bounced light into direct light and save
    PrecompLightmapOffsets();

#ifdef ZHLT_XASH
#ifdef HLRAD_WHOME
	g_directionscale = FindDirectionScale (VectorAvg (g_colour_qgamma));
#else
	g_directionscale = FindDirectionScale (g_qgamma);
#endif
#endif
#ifdef HLRAD_GROWSAMPLE

	ScaleDirectLights ();

#ifndef HLRAD_GatherPatchLight
    if (g_numbounce)
#endif
	{

		CreateFacelightDependencyList ();

		NamedRunThreadsOnIndividual (g_numfaces, g_estimate, AddPatchLights);

		FreeFacelightDependencyList ();
	}

#endif
#ifdef HLRAD_LOCALTRIANGULATION
	FreeTriangulations ();

#endif
    NamedRunThreadsOnIndividual(g_numfaces, g_estimate, FinalLightFace);
#ifdef HLRAD_AUTOCORING
	if (g_maxdiscardedlight > 0.01)
	{
		Verbose ("Maximum brightness loss (too many light styles on a face) = %f @(%f, %f, %f)\n", g_maxdiscardedlight, g_maxdiscardedpos[0], g_maxdiscardedpos[1], g_maxdiscardedpos[2]);
	}
#endif
#ifdef HLRAD_MDL_LIGHT_HACK
	MdlLightHack ();
#endif
#ifdef HLRAD_REDUCELIGHTMAP
	ReduceLightmap();
	if (g_lightdatasize == 0)
	{
		g_lightdatasize = 1;
		g_dlightdata[0] = 0;
	#ifdef ZHLT_XASH
		g_dlitdatasize = 1;
		g_ddlitdata[0] = 0;
	#endif
	}
#endif
#ifdef ZHLT_EMBEDLIGHTMAP
	ExtendLightmapBuffer (); // expand the size of lightdata array (for a few KB) to ensure that game engine reads within its valid range
#endif
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x11b8, %rsp           # imm = 0x11B8
callq 0x30350
xorl %edi, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x2e555
leaq 0x1df5f(%rip), %rdi     # 0x49470
callq 0x33064
callq 0x33f97
leaq 0x1df3e(%rip), %rax     # 0x49460
cmpl $0x0, (%rax)
jle 0x2bac9
leaq 0xe89e(%rip), %r14      # 0x39dd0
movss (%r14), %xmm0
movss %xmm0, 0x70(%rsp)
leaq 0x1a0(%rsp), %rbx
leaq 0x2013ee4(%rip), %r13   # 0x203f430
leaq 0xd22b(%rip), %rbp      # 0x3877e
xorl %edx, %edx
movq %rbx, %rdi
leaq 0xd21b(%rip), %rsi      # 0x3877a
movl %edx, 0xc8(%rsp)
xorl %eax, %eax
callq 0x40a0
leaq 0x2013eb0(%rip), %rax   # 0x203f424
cmpl $0x0, (%rax)
jle 0x2bab1
xorl %r12d, %r12d
movq %r12, %r15
shlq $0x5, %r15
addq %r13, %r15
movq %r15, %rdi
movq %rbp, %rsi
callq 0x7571
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4440
testl %eax, %eax
jne 0x2ba9b
movq %r12, 0x30(%rsp)
movq %r15, %rdi
leaq 0x14079(%rip), %rsi     # 0x3f630
leaq 0x90(%rsp), %rdx
callq 0x814e
movq %r15, %rdi
leaq 0x1405c(%rip), %rsi     # 0x3f62a
callq 0x7571
cmpb $0x0, (%rax)
je 0x2b660
movq %r15, %rdi
leaq 0x14051(%rip), %rsi     # 0x3f637
callq 0x7571
cmpb $0x0, (%rax)
je 0x2b660
movq %r15, %rdi
leaq 0x14030(%rip), %rsi     # 0x3f62a
callq 0x7571
movq %rax, %rdi
callq 0x80c1
testq %rax, %rax
je 0x2b660
movq %rax, %rdi
leaq 0x1401a(%rip), %rsi     # 0x3f630
leaq 0x20(%rsp), %rdx
callq 0x814e
movq %r15, %rdi
leaq 0x1400d(%rip), %rsi     # 0x3f637
leaq 0x10(%rsp), %rdx
callq 0x814e
movsd 0x20(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
subps %xmm1, %xmm0
movlps %xmm0, 0x90(%rsp)
movss 0x28(%rsp), %xmm0
subss 0x18(%rsp), %xmm0
movss %xmm0, 0x98(%rsp)
cmpb $0x1, 0x1dd7d(%rip)     # 0x493e4
leaq 0xcf9d(%rip), %r13      # 0x3860b
jne 0x2b68a
movq %r15, %rdi
leaq 0x13fca(%rip), %rsi     # 0x3f644
callq 0x76a7
andl $0x2, %eax
shrl %eax
movl %eax, 0x50(%rsp)
jmp 0x2b692
movl $0x0, 0x50(%rsp)
movq $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movq %r15, %rdi
leaq 0x13fa7(%rip), %rsi     # 0x3f654
callq 0x7571
cmpb $0x0, (%rax)
je 0x2b7c0
movq %rax, %rbx
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%rsp)
movq %rax, 0xf8(%rsp)
movq %rax, 0xf0(%rsp)
movq %rbx, %rdi
leaq 0x10910(%rip), %rsi     # 0x3bffc
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
leaq 0xf8(%rsp), %r8
xorl %eax, %eax
callq 0x42d0
cmpl $0x3, %eax
jne 0x2b76a
xorps %xmm0, %xmm0
ucomisd 0x10(%rsp), %xmm0
jbe 0x2b71e
movq $0x0, 0x10(%rsp)
ucomisd 0x8(%rsp), %xmm0
jbe 0x2b72f
movq $0x0, 0x8(%rsp)
ucomisd 0xf8(%rsp), %xmm0
jbe 0x2b746
movq $0x0, 0xf8(%rsp)
movsd 0x10(%rsp), %xmm0
movhpd 0x8(%rsp), %xmm0        # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm0
movlpd %xmm0, 0x20(%rsp)
xorps %xmm0, %xmm0
cvtsd2ss 0xf8(%rsp), %xmm0
jmp 0x2b7ba
movq %rbx, %rdi
leaq 0x10890(%rip), %rsi     # 0x3c004
leaq 0xf0(%rsp), %rdx
xorl %eax, %eax
callq 0x42d0
cmpl $0x1, %eax
jne 0x2b7c0
xorps %xmm0, %xmm0
ucomisd 0xf0(%rsp), %xmm0
jbe 0x2b7a2
movq $0x0, 0xf0(%rsp)
xorps %xmm0, %xmm0
cvtsd2ss 0xf0(%rsp), %xmm0
movss %xmm0, 0x20(%rsp)
movss %xmm0, 0x24(%rsp)
movss %xmm0, 0x28(%rsp)
movss 0x20(%rsp), %xmm0
movss %xmm0, 0x80(%rsp)
subss 0x70(%rsp), %xmm0
movaps 0xfb64(%rip), %xmm1     # 0x3b340
andps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1030d(%rip), %xmm2    # 0x3baf8
ucomisd %xmm2, %xmm0
jbe 0x2b7fe
movl $0x0, 0xd0(%rsp)
jmp 0x2b83b
xorl %eax, %eax
cmpq $0x2, %rax
je 0x2b828
movss 0x24(%rsp,%rax,4), %xmm0
subss 0x4(%r14,%rax,4), %xmm0
andps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
incq %rax
ucomisd %xmm2, %xmm0
jbe 0x2b800
decq %rax
jmp 0x2b82d
movl $0x2, %eax
cmpq $0x2, %rax
setae %al
movl %eax, 0xd0(%rsp)
leaq 0x2013be2(%rip), %rax   # 0x203f424
cmpl $0x0, (%rax)
jle 0x2b933
movl $0xffffffff, 0x40(%rsp) # imm = 0xFFFFFFFF
movl $0x1, %ebp
leaq 0x2013bd1(%rip), %r14   # 0x203f430
movq %r14, %rdi
movq %r13, %rsi
callq 0x7571
movq %rax, %rdi
leaq 0xce27(%rip), %rsi      # 0x3869b
callq 0x4440
movb $0x1, %bl
testl %eax, %eax
je 0x2b8a6
testb %bl, %bl
je 0x2b93b
leaq 0x2013b96(%rip), %rax   # 0x203f424
movslq (%rax), %rax
leaq 0x1(%rbp), %rcx
addq $0x20, %r14
cmpq %rax, %rbp
movq %rcx, %rbp
jl 0x2b85f
jmp 0x2b93b
movq %r14, %rdi
leaq 0x107c7(%rip), %r12     # 0x3c077
movq %r12, %rsi
callq 0x7571
cmpb $0x0, (%rax)
je 0x2b87f
movq %r14, %rdi
movq %r12, %rsi
callq 0x7571
movq %rax, %r12
movq %r15, %rdi
leaq 0xce9a(%rip), %rsi      # 0x3876f
callq 0x7571
movq %r12, %rdi
leaq 0xcd27(%rip), %r13      # 0x3860b
movq %rax, %rsi
callq 0x4440
testl %eax, %eax
jne 0x2b87f
movq %r14, %rdi
leaq 0x106af(%rip), %rsi     # 0x3bfa9
callq 0x76a7
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %esi
cmpl $0x40, %esi
movl %esi, 0x40(%rsp)
jb 0x2b92c
xorl %ebx, %ebx
leaq 0x106a5(%rip), %rdi     # 0x3bfc0
movl $0x40, %edx
xorl %eax, %eax
callq 0xa01c
jmp 0x2b87f
xorl %ebx, %ebx
jmp 0x2b87f
movl $0xffffffff, 0x40(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, 0x1dace(%rip)     # 0x49410
je 0x2b973
movq %r15, %rdi
leaq 0x13cf6(%rip), %rsi     # 0x3f644
callq 0x76a7
andl $0x8, %eax
movl 0x40(%rsp), %ecx
notl %ecx
orl %eax, %ecx
sete %bpl
movl 0xd0(%rsp), %r15d
andb %r15b, %bpl
movl 0x50(%rsp), %eax
jmp 0x2b981
xorl %ebp, %ebp
movl 0x50(%rsp), %eax
movl 0xd0(%rsp), %r15d
testb %al, %al
je 0x2ba79
movl 0x54cf0c5(%rip), %eax   # 0x54faa54
cmpl %eax, 0x54cf0bb(%rip)   # 0x54faa50
jne 0x2b9cc
addl $0x400, %eax            # imm = 0x400
movl %eax, 0x54cf0b2(%rip)   # 0x54faa54
movq 0x54cf09f(%rip), %rdi   # 0x54faa48
imulq $0x2c, %rax, %rsi
callq 0x4570
movq %rax, 0x54cf08f(%rip)   # 0x54faa48
xorl %edi, %edi
testq %rax, %rax
setne %dil
movl $0x1, %esi
callq 0xa7c9
movq 0x54cf075(%rip), %rbx   # 0x54faa48
movl 0x54cf076(%rip), %r14d  # 0x54faa50
leal 0x1(%r14), %eax
movl %eax, 0x54cf06c(%rip)   # 0x54faa50
movl 0x40(%rsp), %ecx
cmpl $-0x1, %ecx
sete %al
orb %r15b, %al
jne 0x2ba06
leaq 0x13c8f(%rip), %rdi     # 0x3f689
xorl %eax, %eax
callq 0xa38e
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
xorb $0x1, %r15b
imulq $0x2c, %r14, %rax
movss 0x80(%rsp), %xmm0
movss %xmm0, 0x14(%rbx,%rax)
movsd 0x24(%rsp), %xmm0
movsd %xmm0, 0x18(%rbx,%rax)
movb %r15b, 0x20(%rbx,%rax)
movl %ecx, %edx
movq 0x30(%rsp), %rcx
movl %ecx, (%rbx,%rax)
movl 0xc8(%rsp), %ecx
movl %ecx, 0x4(%rbx,%rax)
movss 0x90(%rsp), %xmm0
movss %xmm0, 0x8(%rbx,%rax)
movss 0x94(%rsp), %xmm0
movss %xmm0, 0xc(%rbx,%rax)
movss 0x98(%rsp), %xmm0
movss %xmm0, 0x10(%rbx,%rax)
movl %edx, 0x24(%rbx,%rax)
movb %bpl, 0x28(%rbx,%rax)
leaq 0xe350(%rip), %r14      # 0x39dd0
leaq 0x1a0(%rsp), %rbx
leaq 0x20139a1(%rip), %r13   # 0x203f430
leaq 0xcce8(%rip), %rbp      # 0x3877e
movq 0x30(%rsp), %r12
incq %r12
leaq 0x201397f(%rip), %rax   # 0x203f424
movslq (%rax), %rax
cmpq %rax, %r12
jl 0x2b580
movl 0xc8(%rsp), %edx
incl %edx
leaq 0x1d99f(%rip), %rax     # 0x49460
cmpl (%rax), %edx
jl 0x2b555
movl 0x54cef81(%rip), %esi   # 0x54faa50
leaq 0x13b90(%rip), %rdi     # 0x3f666
xorl %eax, %eax
callq 0x9d2e
cmpl $0x0, 0x54cef6c(%rip)   # 0x54faa50
movl $0x0, %ebp
je 0x2bb19
xorl %ebx, %ebx
movl $0x4, %r14d
xorl %ebp, %ebp
movq 0x54cef4c(%rip), %rax   # 0x54faa48
movl (%rax,%r14), %edi
callq 0x34ae8
addl %eax, %ebp
incq %rbx
movl 0x54cef40(%rip), %eax   # 0x54faa50
addq $0x2c, %r14
cmpq %rax, %rbx
jb 0x2baf5
leaq 0x13b58(%rip), %rdi     # 0x3f678
movl %ebp, %esi
xorl %eax, %eax
callq 0x9d2e
leaq 0x1b858c4(%rip), %rax   # 0x1bb13f4
movl (%rax), %esi
leaq 0x13b8d(%rip), %rdi     # 0x3f6c6
xorl %eax, %eax
callq 0x9d2e
leaq 0x13b89(%rip), %rdi     # 0x3f6d0
xorl %eax, %eax
callq 0x9d2e
movl $0x137fec80, %edi       # imm = 0x137FEC80
callq 0x492c
movq %rax, 0x538ce81(%rip)   # 0x53b89e0
leaq 0x1d8fa(%rip), %rax     # 0x49460
cmpl $0x0, (%rax)
jle 0x2d901
leaq 0xe25a(%rip), %rax      # 0x39dd0
movsd (%rax), %xmm0
movaps %xmm0, 0x150(%rsp)
movss 0x8(%rax), %xmm0
movss %xmm0, 0xe8(%rsp)
leaq 0xcb11(%rip), %r13      # 0x386a8
leaq 0x104d9(%rip), %r14     # 0x3c077
xorl %edi, %edi
movq %rdi, 0x130(%rsp)
callq 0x8269
movq %rax, 0xc0(%rsp)
movq %rax, %rdi
leaq 0x13a85(%rip), %rsi     # 0x3f644
callq 0x7571
cmpb $0x0, (%rax)
movl $0x0, 0xec(%rsp)
je 0x2bbe3
movq %rax, %rdi
callq 0x4500
movl %eax, 0xec(%rsp)
movq 0xc0(%rsp), %rdi
leaq 0x13a3e(%rip), %rsi     # 0x3f630
callq 0x7571
cmpb $0x0, (%rax)
movss 0xe8(%rsp), %xmm0
movapd 0x150(%rsp), %xmm1
je 0x2bc6a
movq %rax, %rdi
leaq 0x103e4(%rip), %rsi     # 0x3bffc
leaq 0x1a0(%rsp), %rdx
leaq 0x90(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
callq 0x42d0
movss 0xe8(%rsp), %xmm0
movapd 0x150(%rsp), %xmm1
cmpl $0x3, %eax
jne 0x2bc6a
movsd 0x1a0(%rsp), %xmm0
movhpd 0x90(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss 0x20(%rsp), %xmm0
movapd %xmm1, 0x40(%rsp)
movss %xmm0, 0x2c(%rsp)
movq 0xc0(%rsp), %rdi
leaq 0x139a5(%rip), %rsi     # 0x3f62a
callq 0x7571
movb $0x1, %bl
cmpb $0x0, (%rax)
je 0x2bd18
movq %rax, %rdi
callq 0x80c1
testq %rax, %rax
je 0x2bd18
movq %rax, %rdi
leaq 0x13984(%rip), %rsi     # 0x3f630
callq 0x7571
cmpb $0x0, (%rax)
je 0x2bd18
movq %rax, %rdi
leaq 0x1033c(%rip), %rsi     # 0x3bffc
leaq 0x1a0(%rsp), %rdx
leaq 0x90(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
callq 0x42d0
cmpl $0x3, %eax
setne %bpl
jne 0x2bd1b
movsd 0x1a0(%rsp), %xmm0
movhpd 0x90(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm0
movapd %xmm0, 0x170(%rsp)
xorps %xmm0, %xmm0
cvtsd2ss 0x20(%rsp), %xmm0
movss %xmm0, 0x11c(%rsp)
jmp 0x2bd1b
movb $0x1, %bpl
movq 0xc0(%rsp), %rdi
leaq 0x1390d(%rip), %rsi     # 0x3f637
callq 0x7571
cmpb $0x0, (%rax)
je 0x2bd93
movq %rax, %rdi
leaq 0x102be(%rip), %rsi     # 0x3bffc
leaq 0x1a0(%rsp), %rdx
leaq 0x90(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
callq 0x42d0
cmpl $0x3, %eax
setne %bl
jne 0x2bd93
movsd 0x1a0(%rsp), %xmm0
movhpd 0x90(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm0
movapd %xmm0, 0x180(%rsp)
xorps %xmm0, %xmm0
cvtsd2ss 0x20(%rsp), %xmm0
movss %xmm0, 0x120(%rsp)
movss 0x2c(%rsp), %xmm0
orb %bl, %bpl
jne 0x2bdb0
movss 0x11c(%rsp), %xmm0
subss 0x120(%rsp), %xmm0
movss %xmm0, 0x2c(%rsp)
movq 0xc0(%rsp), %rdi
leaq 0x101e4(%rip), %rsi     # 0x3bfa9
callq 0x7571
cmpb $0x0, (%rax)
leaq 0x2013650(%rip), %rbx   # 0x203f424
je 0x2bdeb
movq %rax, %rdi
callq 0x4500
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %r15d
jmp 0x2bdee
xorl %r15d, %r15d
cmpl $0x40, %r15d
jb 0x2be0a
leaq 0x101c5(%rip), %rdi     # 0x3bfc0
movl %r15d, %esi
movl $0x40, %edx
xorl %eax, %eax
callq 0xa01c
cmpl $0x0, (%rbx)
movl %r15d, 0x128(%rsp)
jle 0x2bf06
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
movl $0x1, %r15d
leaq 0x2013600(%rip), %rbx   # 0x203f430
movq %rbx, %rdi
leaq 0xc7d1(%rip), %rsi      # 0x3860b
callq 0x7571
movq %rax, %rdi
movq %r13, %rsi
callq 0x4440
movb $0x1, %r12b
testl %eax, %eax
je 0x2be79
testb %r12b, %r12b
je 0x2bf0e
leaq 0x20135c3(%rip), %rax   # 0x203f424
movslq (%rax), %rax
leaq 0x1(%r15), %rcx
addq $0x20, %rbx
cmpq %rax, %r15
movq %rcx, %r15
jl 0x2be30
jmp 0x2bf0e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7571
cmpb $0x0, (%rax)
je 0x2be51
movq %rbx, %rdi
movq %r14, %rsi
callq 0x7571
movq %rax, %r14
movq 0xc0(%rsp), %rdi
leaq 0xc8c9(%rip), %rsi      # 0x3876f
callq 0x7571
movq %r14, %rdi
leaq 0x101c2(%rip), %r14     # 0x3c077
movq %rax, %rsi
callq 0x4440
testl %eax, %eax
jne 0x2be51
movq %rbx, %rdi
leaq 0x100de(%rip), %rsi     # 0x3bfa9
callq 0x76a7
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %esi
cmpl $0x40, %esi
movl %esi, 0x6c(%rsp)
jb 0x2befe
xorl %r12d, %r12d
leaq 0x100d3(%rip), %rdi     # 0x3bfc0
movl $0x40, %edx
xorl %eax, %eax
callq 0xa01c
jmp 0x2be51
xorl %r12d, %r12d
jmp 0x2be51
movl $0xffffffff, 0x6c(%rsp) # imm = 0xFFFFFFFF
movq 0x130(%rsp), %rcx
shlq $0x6, %rcx
addq 0x1c08f(%rip), %rcx     # 0x47fb0
cmpl $0x0, 0x3c(%rcx)
movss 0x2c(%rsp), %xmm2
jle 0x2d8d5
movaps 0x170(%rsp), %xmm0
subps 0x180(%rsp), %xmm0
movzbl %bpl, %eax
movd %eax, %xmm1
pshufd $0x50, %xmm1, %xmm1     # xmm1 = xmm1[0,0,1,1]
pslld $0x1f, %xmm1
psrad $0x1f, %xmm1
movdqa 0x40(%rsp), %xmm3
pand %xmm1, %xmm3
pandn %xmm0, %xmm1
xorl %edx, %edx
movl 0x6c(%rsp), %eax
cmpl $0x1, %eax
movl $0x0, %esi
sbbl %esi, %esi
por %xmm3, %xmm1
orl %eax, %esi
movl %esi, 0x124(%rsp)
movdqa %xmm1, %xmm3
shufps $0x55, %xmm1, %xmm3     # xmm3 = xmm3[1,1],xmm1[1,1]
movq %rcx, 0x168(%rsp)
movaps %xmm1, 0x140(%rsp)
movaps %xmm3, 0x190(%rsp)
movslq 0x38(%rcx), %rax
movl %edx, 0x12c(%rsp)
movslq %edx, %r13
addq %rax, %r13
leaq 0x52cca25(%rip), %r12   # 0x52f89e0
movq 0xc0(%rsp), %rax
movq %rax, (%r12,%r13,8)
leaq (,%r13,2), %r15
addq %r13, %r15
leaq 0x540ca17(%rip), %r14   # 0x54389f0
movlpd %xmm1, (%r14,%r15,4)
movss %xmm2, 0x8(%r14,%r15,4)
leaq (%r13,%r13,4), %rcx
leaq 0x1b8540e(%rip), %rax   # 0x1bb1400
movq %rcx, 0x50(%rsp)
leaq (%rax,%rcx,4), %rbx
movq %rbx, %rdi
callq 0x303c5
movq %rax, 0xc8(%rsp)
movswl 0xa(%rbx), %edi
callq 0x637c
movq %rax, %rbp
movq %r13, 0x30(%rsp)
movq (%r12,%r13,8), %rax
movq %rax, 0x80(%rsp)
movl $0x20, %edi
callq 0x42f0
movq %rax, %r13
movq %rax, %rdi
movq %rbx, %rsi
movss 0xfa41(%rip), %xmm0     # 0x3ba84
callq 0xc700
movq %r15, 0x138(%rsp)
leaq (%r14,%r15,4), %r15
movq %r13, %rdi
leaq 0x1a0(%rsp), %rsi
callq 0xbcc8
movq (%r13), %rax
movq %r13, %rdi
callq *0x8(%rax)
movsd 0x1a0(%rsp), %xmm0
movsd (%r15), %xmm1
addps %xmm0, %xmm1
movlps %xmm1, 0x1a0(%rsp)
movss 0x1a8(%rsp), %xmm0
addss 0x8(%r15), %xmm0
movss %xmm0, 0x1a8(%rsp)
leaq 0x201337e(%rip), %rbx   # 0x203f424
cmpl $0x0, (%rbx)
jle 0x2c348
leaq 0x201337a(%rip), %r13   # 0x203f430
xorl %r12d, %r12d
movq $0x0, 0x70(%rsp)
movss 0xf2a6(%rip), %xmm0     # 0x3b370
movss %xmm0, 0x100(%rsp)
movq %r13, %rdi
leaq 0xc52e(%rip), %rsi      # 0x3860b
callq 0x7571
movq %rax, %rdi
leaq 0xc595(%rip), %rsi      # 0x38681
callq 0x4440
testl %eax, %eax
jne 0x2c113
movq %r13, %rdi
leaq 0xc573(%rip), %rsi      # 0x38672
callq 0x7571
movq %rax, %rdi
movq %rbp, %rsi
callq 0x4320
testl %eax, %eax
je 0x2c127
incq %r12
movslq (%rbx), %rax
addq $0x20, %r13
cmpq %rax, %r12
jl 0x2c0d3
jmp 0x2c351
movq %r13, %rdi
leaq 0x134ff(%rip), %rsi     # 0x3f630
leaq 0x90(%rsp), %rdx
callq 0x814e
movsd 0x90(%rsp), %xmm0
movsd 0x1a0(%rsp), %xmm1
subps %xmm1, %xmm0
movlps %xmm0, 0x90(%rsp)
movss 0x98(%rsp), %xmm1
subss 0x1a8(%rsp), %xmm1
movss %xmm1, 0x98(%rsp)
mulps %xmm0, %xmm0
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
xorps %xmm3, %xmm3
cvtss2sd %xmm0, %xmm3
addsd %xmm2, %xmm3
mulss %xmm1, %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
addsd %xmm3, %xmm0
ucomisd 0xf162(%rip), %xmm0     # 0x3b308
jb 0x2c1ae
sqrtsd %xmm0, %xmm0
jmp 0x2c1b3
callq 0x4240
leaq 0x1355e(%rip), %rsi     # 0x3f718
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x40(%rsp)
movq %r13, %rdi
movq %rsi, %r14
callq 0x7571
cmpb $0x0, (%rax)
je 0x2c1ee
movq %r13, %rdi
movq %r14, %rsi
callq 0x807d
movss 0x40(%rsp), %xmm1
ucomiss %xmm0, %xmm1
ja 0x2c113
movq %r13, %rdi
leaq 0x13528(%rip), %r14     # 0x3f720
movq %r14, %rsi
callq 0x7571
cmpb $0x0, (%rax)
je 0x2c269
movss 0x90(%rsp), %xmm0
movss 0x94(%rsp), %xmm1
movq 0xc8(%rsp), %rax
mulss 0x4(%rax), %xmm1
mulss (%rax), %xmm0
addss %xmm1, %xmm0
movss 0x98(%rsp), %xmm1
mulss 0x8(%rax), %xmm1
addss %xmm0, %xmm1
andps 0xf0fb(%rip), %xmm1     # 0x3b340
movaps %xmm1, 0xd0(%rsp)
movq %r13, %rdi
movq %r14, %rsi
callq 0x807d
movaps 0xd0(%rsp), %xmm1
ucomiss %xmm0, %xmm1
ja 0x2c113
movq %r13, %rdi
leaq 0x134b4(%rip), %r14     # 0x3f727
movq %r14, %rsi
callq 0x7571
cmpb $0x0, (%rax)
je 0x2c2bc
movq 0x80(%rsp), %rdi
leaq 0xc37c(%rip), %rsi      # 0x3860b
callq 0x7571
movq %rax, %rbx
movq %r13, %rdi
movq %r14, %rsi
callq 0x7571
movq %rbx, %rdi
leaq 0x2013178(%rip), %rbx   # 0x203f424
movq %rax, %rsi
callq 0x4440
testl %eax, %eax
jne 0x2c113
movq %r13, %rdi
leaq 0x13469(%rip), %r14     # 0x3f72f
movq %r14, %rsi
callq 0x7571
cmpb $0x0, (%rax)
je 0x2c30f
movq 0x80(%rsp), %rdi
leaq 0xc48d(%rip), %rsi      # 0x3876f
callq 0x7571
movq %rax, %rbx
movq %r13, %rdi
movq %r14, %rsi
callq 0x7571
movq %rbx, %rdi
leaq 0x2013125(%rip), %rbx   # 0x203f424
movq %rax, %rsi
callq 0x4440
testl %eax, %eax
jne 0x2c113
movss 0x100(%rsp), %xmm0
ucomiss 0xbe25(%rip), %xmm0     # 0x38144
movss 0x40(%rsp), %xmm0
jb 0x2c335
ucomiss 0x100(%rsp), %xmm0
ja 0x2c113
movss %xmm0, 0x100(%rsp)
movq %r13, 0x70(%rsp)
jmp 0x2c113
movq $0x0, 0x70(%rsp)
leaq 0x538c698(%rip), %r14   # 0x53b89f0
movq 0x30(%rsp), %rdx
movq 0x70(%rsp), %rax
movq %rax, (%r14,%rdx,8)
leaq 0x534c673(%rip), %rax   # 0x53789e0
movl 0xec(%rsp), %ecx
movl %ecx, (%rax,%rdx,4)
movq 0x50(%rsp), %r12
shlq $0x2, %r12
addq 0x1bc59(%rip), %r12     # 0x47fe0
movl $0x20, %edi
callq 0x42f0
movq %rax, %r13
movq %rax, %rdi
movq %r12, %rsi
movss 0xf6e2(%rip), %xmm0     # 0x3ba84
callq 0xc700
cmpl $0x0, 0x8(%r13)
movss 0x2c(%rsp), %xmm2
movaps 0x140(%rsp), %xmm1
movaps 0x190(%rsp), %xmm3
je 0x2c412
xorl %eax, %eax
xorl %ecx, %ecx
movq 0x10(%r13), %rdx
movss (%rdx,%rax), %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rdx,%rax)
movq 0x10(%r13), %rdx
movss 0x4(%rdx,%rax), %xmm0
addss %xmm3, %xmm0
movss %xmm0, 0x4(%rdx,%rax)
movq 0x10(%r13), %rdx
movss 0x8(%rdx,%rax), %xmm0
addss %xmm2, %xmm0
movss %xmm0, 0x8(%rdx,%rax)
incq %rcx
movl 0x8(%r13), %edx
addq $0xc, %rax
cmpq %rdx, %rcx
jb 0x2c3c8
movswq 0xa(%r12), %rax
leaq (%rax,%rax,4), %rax
leaq 0x1184fcd(%rip), %rbp   # 0x11b13f0
testb $0x1, 0x24(%rbp,%rax,8)
jne 0x2d8bb
movq 0x30(%rsp), %rax
movq (%r14,%rax,8), %rdi
movl 0x128(%rsp), %ebx
testq %rdi, %rdi
je 0x2c473
leaq 0xfb5f(%rip), %rsi      # 0x3bfa9
callq 0x76a7
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %ebx
cmpl $0x40, %ebx
jb 0x2c473
leaq 0xfb5b(%rip), %rdi      # 0x3bfc0
movl %ebx, %esi
movl $0x40, %edx
xorl %eax, %eax
callq 0xa01c
movl 0x8(%r13), %ecx
cmpl $0x2, %ecx
jg 0x2c4a7
movl $0x2, %edi
leaq 0x132ae(%rip), %rsi     # 0x3f736
movq 0x30(%rsp), %rdx
xorl %eax, %eax
callq 0xa52e
movaps 0x140(%rsp), %xmm1
movss 0x2c(%rsp), %xmm2
jmp 0x2d8bb
cmpl $0x81, %ecx
jl 0x2c4c4
leaq 0x132a7(%rip), %rdi     # 0x3f75d
movl %ecx, %esi
xorl %eax, %eax
callq 0xa01c
jmp 0x2d8ad
movq %r12, 0x50(%rsp)
movq %r15, 0x40(%rsp)
movq 0x538c50b(%rip), %r12   # 0x53b89e0
movl 0x540c50d(%rip), %eax   # 0x54389e8
xorl %edi, %edi
cmpq $0xffff0, %rax          # imm = 0xFFFF0
setb %dil
imulq $0x138, %rax, %rbp      # imm = 0x138
leaq (%r12,%rbp), %r15
movl $0x1b, %esi
callq 0xa7c9
movl $0x138, %edx            # imm = 0x138
movq %r15, %rdi
xorl %esi, %esi
callq 0x4190
movq %r12, 0xd0(%rsp)
movq %rbp, 0x80(%rsp)
addq %rbp, %r12
addq $0x8, %r12
movq %r13, 0x20(%r12)
movq %r13, %rdi
callq 0xbab6
movss %xmm0, 0xc(%r12)
movq 0x20(%r12), %rdi
movq %r12, %rsi
callq 0xbcc8
movq 0x30(%rsp), %rax
movl %eax, 0x50(%r12)
movss 0xc(%r12), %xmm0
addss 0x550e654(%rip), %xmm0  # 0x553abb0
movss %xmm0, 0x550e64c(%rip)  # 0x553abb0
movq (%r14,%rax,8), %rdi
testq %rdi, %rdi
movq %r12, 0xc8(%rsp)
je 0x2c5ea
leaq 0xfb15(%rip), %rsi      # 0x3c091
callq 0x7571
movq %rax, %rdi
leaq 0xfa6d(%rip), %rsi      # 0x3bff8
leaq 0x90(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x10(%rsp), %r8
leaq 0x8(%rsp), %r9
xorl %eax, %eax
callq 0x42d0
incl %eax
cmpl $0x5, %eax
ja 0x2c69e
leaq 0x107b5(%rip), %rcx     # 0x3cd70
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq $0x0, 0x90(%rsp)
movsd 0x90(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd %xmm0, 0x20(%rsp)
jmp 0x2c786
movq 0x550e56f(%rip), %r12   # 0x553ab60
movq 0x550e570(%rip), %rbp   # 0x553ab68
xorps %xmm1, %xmm1
xorps %xmm0, %xmm0
cmpq %rbp, %r12
je 0x2c67d
movq 0x50(%rsp), %rax
movswq 0xa(%rax), %rax
leaq 0x824e84(%rip), %rcx    # 0x851498
movq (%rcx), %rcx
leaq (%rax,%rax,4), %rax
leaq 0x1184dce(%rip), %rdx   # 0x11b13f0
movslq 0x20(%rdx,%rax,8), %rax
movslq 0x4(%rcx,%rax,4), %r13
addq %rcx, %r13
movq (%r12), %rsi
movq %r13, %rdi
callq 0x4320
testl %eax, %eax
je 0x2c66f
addq $0x38, %r12
cmpq %rbp, %r12
jne 0x2c62f
leaq 0xd781(%rip), %r12      # 0x39dd0
leaq 0x538c39a(%rip), %r14   # 0x53b89f0
leaq 0x1184d93(%rip), %rbp   # 0x11b13f0
leaq 0x1004d9c(%rip), %r13   # 0x1031400
xorps %xmm1, %xmm1
xorps %xmm0, %xmm0
jmp 0x2c7c8
movsd 0x20(%r12), %xmm1
movss 0x28(%r12), %xmm0
leaq 0xd74c(%rip), %r12      # 0x39dd0
leaq 0x538c365(%rip), %r14   # 0x53b89f0
leaq 0x1184d5e(%rip), %rbp   # 0x11b13f0
leaq 0x1004d67(%rip), %r13   # 0x1031400
jmp 0x2c7c8
movq 0x30(%rsp), %r12
movq (%r14,%r12,8), %rdi
leaq 0x12f82(%rip), %rsi     # 0x3f630
leaq 0x1a0(%rsp), %rdx
callq 0x814e
xorps %xmm0, %xmm0
cvtss2sd 0x1a0(%rsp), %xmm0
movsd %xmm0, 0x70(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x1a4(%rsp), %xmm0
movsd %xmm0, 0x100(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x1a8(%rsp), %xmm0
movsd %xmm0, 0x160(%rsp)
movq (%r14,%r12,8), %rdi
leaq 0xf98f(%rip), %rsi      # 0x3c091
callq 0x7571
leaq 0xf8fa(%rip), %rdi      # 0x3c008
movsd 0x70(%rsp), %xmm0
movsd 0x100(%rsp), %xmm1
movsd 0x160(%rsp), %xmm2
movq %rax, %rsi
movb $0x3, %al
callq 0x9d2e
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x20(%rsp)
movq %rax, 0x90(%rsp)
jmp 0x2c786
movsd 0x8(%rsp), %xmm0
divsd 0x105ac(%rip), %xmm0    # 0x3cd00
movsd 0x90(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0x90(%rsp)
movsd 0x20(%rsp), %xmm1
mulsd %xmm0, %xmm1
movsd %xmm1, 0x20(%rsp)
mulsd 0x10(%rsp), %xmm0
movsd %xmm0, 0x10(%rsp)
movsd 0x90(%rsp), %xmm0
movhpd 0x20(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
maxpd 0xef63(%rip), %xmm0     # 0x3b700
cvtpd2ps %xmm0, %xmm1
movsd 0x10(%rsp), %xmm0
maxsd 0xeb59(%rip), %xmm0     # 0x3b308
cvtsd2ss %xmm0, %xmm0
leaq 0xd616(%rip), %r12      # 0x39dd0
leaq 0x1004c3f(%rip), %r13   # 0x1031400
leaq 0x1184c28(%rip), %rbp   # 0x11b13f0
movlpd %xmm1, 0xf8(%r15)
movss %xmm0, 0x100(%r15)
movb %bl, 0xf4(%r15)
leaq 0x52461c0(%rip), %rdx   # 0x52729a8
movq (%rdx), %rax
movq 0x50(%rsp), %rsi
movswq 0xa(%rsi), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rbp,%rcx,8), %rcx
imulq $0x330, %rcx, %rcx      # imm = 0x330
movss 0x320(%rax,%rcx), %xmm0
movss %xmm0, 0x70(%r15)
movq (%rdx), %rax
movswq 0xa(%rsi), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rbp,%rcx,8), %rcx
imulq $0x330, %rcx, %rcx      # imm = 0x330
movss 0x324(%rax,%rcx), %xmm0
movss %xmm0, 0x74(%r15)
movq (%rdx), %rax
movswq 0xa(%rsi), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rbp,%rcx,8), %rcx
imulq $0x330, %rcx, %rcx      # imm = 0x330
movss 0x328(%rax,%rcx), %xmm0
movss %xmm0, 0x78(%r15)
movq 0x30(%rsp), %rax
movq (%r14,%rax,8), %rdi
testq %rdi, %rdi
je 0x2cac7
leaq 0x12f07(%rip), %rsi     # 0x3f782
callq 0x7571
cmpb $0x0, (%rax)
je 0x2cac7
movq 0x30(%rsp), %rax
movq (%r14,%rax,8), %rdi
leaq 0x12ee9(%rip), %rsi     # 0x3f782
leaq 0x1a0(%rsp), %rdx
callq 0x814e
xorl %ebx, %ebx
xorps %xmm0, %xmm0
cvtss2sd 0x1a0(%rsp,%rbx,4), %xmm0
addsd 0x1049c(%rip), %xmm0    # 0x3cd58
callq 0x4580
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x1a0(%rsp,%rbx,4)
incq %rbx
cmpq $0x3, %rbx
jne 0x2c8a8
movss 0x1a0(%rsp), %xmm0
movss 0x1a4(%rsp), %xmm1
movss 0x1a8(%rsp), %xmm2
movaps %xmm1, %xmm3
minss %xmm2, %xmm3
movaps %xmm0, %xmm4
minss %xmm3, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
movsd 0x10451(%rip), %xmm4    # 0x3cd60
ucomisd %xmm3, %xmm4
ja 0x2c92b
maxss %xmm2, %xmm1
maxss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd 0x1043f(%rip), %xmm0    # 0x3cd68
jbe 0x2c99b
movq 0x30(%rsp), %rax
movq (%r14,%rax,8), %rdi
leaq 0x12cf5(%rip), %rsi     # 0x3f630
leaq 0x90(%rsp), %rdx
callq 0x814e
xorps %xmm0, %xmm0
cvtss2sd 0x90(%rsp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x94(%rsp), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x98(%rsp), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0x1a0(%rsp), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x1a4(%rsp), %xmm4
cvtss2sd 0x1a8(%rsp), %xmm5
leaq 0x12df8(%rip), %rdi     # 0x3f78c
movb $0x6, %al
callq 0xa01c
cvtps2pd 0x1a0(%rsp), %xmm0
mulpd 0xfbf5(%rip), %xmm0     # 0x3c5a0
cvtpd2ps %xmm0, %xmm0
movlpd %xmm0, 0x90(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x1a8(%rsp), %xmm0
mulsd 0xfc74(%rip), %xmm0     # 0x3c640
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x98(%rsp)
xorl %ebx, %ebx
movss 0x90(%rsp,%rbx,4), %xmm0
movss 0x1ca28(%rip), %xmm1    # 0x49414
callq 0x4510
movss %xmm0, 0x90(%rsp,%rbx,4)
incq %rbx
cmpq $0x3, %rbx
jne 0x2c9db
movss 0x1ca0d(%rip), %xmm3    # 0x49418
movsd 0x90(%rsp), %xmm0
movaps %xmm3, %xmm4
shufps $0x0, %xmm3, %xmm4      # xmm4 = xmm4[0,0],xmm3[0,0]
mulps %xmm0, %xmm4
movaps %xmm4, %xmm1
shufps $0x55, %xmm4, %xmm1     # xmm1 = xmm1[1,1],xmm4[1,1]
movlps %xmm4, 0x90(%rsp)
mulss 0x98(%rsp), %xmm3
movss %xmm3, 0x98(%rsp)
movaps %xmm1, %xmm0
maxss %xmm3, %xmm0
movaps %xmm4, %xmm2
maxss %xmm0, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
ucomisd 0xfbec(%rip), %xmm0     # 0x3c648
jbe 0x2cabc
movq 0x50(%rsp), %rax
movswq 0xa(%rax), %rax
leaq (%rax,%rax,4), %rax
movslq 0x20(%rbp,%rax,8), %rax
imulq $0x330, %rax, %rsi      # imm = 0x330
leaq 0x5245f29(%rip), %rax   # 0x52729a8
addq (%rax), %rsi
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
cvtss2sd %xmm1, %xmm1
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
leaq 0xfeea(%rip), %rdi      # 0x3c985
movb $0x3, %al
movaps %xmm3, 0x70(%rsp)
movaps %xmm4, 0x100(%rsp)
callq 0xa38e
movaps 0x100(%rsp), %xmm4
movaps 0x70(%rsp), %xmm3
movlps %xmm4, 0x70(%r15)
movss %xmm3, 0x78(%r15)
leaq 0x52cbf12(%rip), %rax   # 0x52f89e0
movq 0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rcx
movss 0xb659(%rip), %xmm1     # 0x38138
subq 0x1b4e2(%rip), %rcx     # 0x47fc8
leaq 0xf49b(%rip), %rbx      # 0x3bf88
je 0x2cbb3
movl 0x54cdf57(%rip), %eax   # 0x54faa50
testq %rax, %rax
je 0x2cb95
movq 0x54cdf3f(%rip), %rsi   # 0x54faa48
sarq $0x5, %rcx
addq $0x24, %rsi
xorps %xmm0, %xmm0
xorl %edx, %edx
movslq -0x24(%rsi), %rdi
cmpq %rdi, %rcx
jne 0x2cb80
cmpb $0x1, -0x4(%rsi)
movss 0xb60d(%rip), %xmm1     # 0x38138
jne 0x2cb6b
movss -0x10(%rsi), %xmm0
addss -0xc(%rsi), %xmm0
addss -0x8(%rsi), %xmm0
divss 0x1014c(%rip), %xmm0    # 0x3cc90
movss 0xb5ec(%rip), %xmm3     # 0x38138
addss %xmm3, %xmm0
xorps %xmm2, %xmm2
maxss %xmm0, %xmm2
movaps %xmm3, %xmm1
cmpltss %xmm0, %xmm1
movaps %xmm1, %xmm0
andnps %xmm2, %xmm0
andps %xmm3, %xmm1
orps %xmm0, %xmm1
cmpl $-0x1, (%rsi)
xorps %xmm0, %xmm0
jne 0x2cb76
movaps %xmm1, %xmm0
cmpl $-0x1, 0x6c(%rsp)
je 0x2cb80
movaps %xmm1, %xmm0
cmpq %rdi, %rcx
je 0x2cb9a
incq %rdx
addq $0x2c, %rsi
cmpq %rdx, %rax
jne 0x2cb16
movl %eax, %edx
jmp 0x2cb9a
xorl %edx, %edx
xorps %xmm0, %xmm0
movss 0xb596(%rip), %xmm1     # 0x38138
cmpl %eax, %edx
je 0x2cba9
movaps %xmm0, %xmm1
cmpl $-0x1, 0x6c(%rsp)
jne 0x2cbb3
movaps %xmm0, %xmm1
movsd 0x70(%r15), %xmm0
movaps %xmm1, %xmm2
unpcklps %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
mulps %xmm0, %xmm2
movlps %xmm2, 0x7c(%r15)
movss 0x78(%r15), %xmm2
mulss %xmm2, %xmm1
movss %xmm1, 0x84(%r15)
movl 0x124(%rsp), %eax
movl %eax, 0xf0(%r15)
movaps %xmm0, %xmm1
shufps $0x55, %xmm0, %xmm1     # xmm1 = xmm1[1,1],xmm0[1,1]
mulss 0xfc(%r15), %xmm1
mulss 0xf8(%r15), %xmm0
addss %xmm1, %xmm0
mulss 0x100(%r15), %xmm2
addss %xmm0, %xmm2
divss 0xee76(%rip), %xmm2     # 0x3ba90
movslq 0x58(%r15), %rax
movq (%r14,%rax,8), %rdi
testq %rdi, %rdi
je 0x2cc59
movaps %xmm2, 0x70(%rsp)
movq %rbx, %rsi
callq 0x7571
cmpb $0x0, (%rax)
je 0x2cc54
movslq 0x58(%r15), %rax
movq (%r14,%rax,8), %rdi
movq %rbx, %rsi
callq 0x807d
movaps 0x70(%rsp), %xmm2
mulss %xmm0, %xmm2
jmp 0x2cc59
movaps 0x70(%rsp), %xmm2
movss 0x1c76f(%rip), %xmm0    # 0x493d0
xorps %xmm1, %xmm1
cmpltps %xmm2, %xmm1
cmpnltps %xmm0, %xmm2
andps %xmm1, %xmm2
movd %xmm2, %ebx
movslq 0x58(%r15), %rax
movq (%r14,%rax,8), %rdi
testq %rdi, %rdi
je 0x2cc9c
leaq 0xf36b(%rip), %rsi      # 0x3bff2
callq 0x76a7
cmpl $0x2, %eax
je 0x2cc9a
cmpl $0x1, %eax
jne 0x2cc9c
xorl %ebx, %ebx
jmp 0x2cc9c
movb $0x1, %bl
andb $0x1, %bl
movb %bl, 0x104(%r15)
movq %r15, %rdi
callq 0x2e5b5
movss %xmm0, 0x30(%r15)
movslq 0x58(%r15), %rax
movq (%r14,%rax,8), %rdi
testq %rdi, %rdi
je 0x2ccf7
leaq 0x12b6f(%rip), %rsi     # 0x3f837
callq 0x7571
cmpb $0x0, (%rax)
je 0x2ccf7
movslq 0x58(%r15), %rax
movq (%r14,%rax,8), %rdi
leaq 0x12b56(%rip), %rsi     # 0x3f837
callq 0x807d
movaps %xmm0, %xmm1
movss 0xb447(%rip), %xmm0     # 0x38138
maxss %xmm1, %xmm0
jmp 0x2cd53
cmpb $0x0, 0x104(%r15)
leaq 0x1c722(%rip), %rax     # 0x49428
leaq 0x1c71f(%rip), %rcx     # 0x4942c
cmovneq %rcx, %rax
movss (%rax), %xmm0
movss %xmm0, 0x70(%rsp)
movq %r15, %rdi
callq 0x2e5b5
mulss 0x70(%rsp), %xmm0
movslq 0x58(%r15), %rax
movq 0x550de44(%rip), %rcx   # 0x553ab78
leaq (%rax,%rax,4), %rax
leaq 0x1b846c1(%rip), %rdx   # 0x1bb1400
movswq 0xa(%rdx,%rax,4), %rax
leaq (%rax,%rax,4), %rax
movslq 0x20(%rbp,%rax,8), %rax
mulss (%rcx,%rax,4), %xmm0
movq 0x138(%rsp), %rbx
movss %xmm0, 0x34(%r15)
movq 0x54cddf8(%rip), %rax   # 0x54fab60
movq 0x50(%rsp), %rdx
movswq 0xa(%rdx), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rbp,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, 0x64(%r15)
movq 0x54cddcf(%rip), %rax   # 0x54fab60
movswq 0xa(%rdx), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rbp,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x4(%rax,%rcx,4), %xmm1
movss %xmm1, 0x68(%r15)
movq 0x54cddaa(%rip), %rax   # 0x54fab60
movswq 0xa(%rdx), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rbp,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x8(%rax,%rcx,4), %xmm1
movss %xmm1, 0x6c(%r15)
subss 0x150(%rsp), %xmm0
andps 0xe55c(%rip), %xmm0     # 0x3b340
cvtss2sd %xmm0, %xmm0
movb $0x1, %al
movsd 0xed06(%rip), %xmm1     # 0x3baf8
ucomisd %xmm1, %xmm0
ja 0x2ce48
movq 0xd0(%rsp), %rax
movq 0x80(%rsp), %rcx
addq %rax, %rcx
addq $0x68, %rcx
xorl %eax, %eax
cmpq $0x2, %rax
je 0x2ce3c
movss (%rcx,%rax,4), %xmm0
subss 0x4(%r12,%rax,4), %xmm0
andps 0xe516(%rip), %xmm0     # 0x3b340
cvtss2sd %xmm0, %xmm0
incq %rax
ucomisd %xmm1, %xmm0
jbe 0x2ce11
decq %rax
jmp 0x2ce41
movl $0x2, %eax
cmpq $0x2, %rax
setb %al
movb %al, 0x60(%r15)
movq %r15, %rdi
callq 0x2e869
movq %r15, %rdi
callq 0x2ecf7
incl 0x540bb86(%rip)         # 0x54389e8
leaq 0x524bb77(%rip), %rax   # 0x52789e0
movq 0x30(%rsp), %rcx
movq %r15, (%rax,%rcx,8)
movq 0x50(%rsp), %rcx
movswl 0x8(%rcx), %eax
testl %eax, %eax
jle 0x2cf0d
movslq 0x4(%rcx), %rcx
movl %eax, %edx
shlq $0x2, %rcx
addq 0x1b0fc(%rip), %rcx     # 0x47f90
xorpd %xmm1, %xmm1
xorps %xmm0, %xmm0
xorl %esi, %esi
leaq 0x1d0455c(%rip), %r11   # 0x1d31400
movslq (%rcx,%rsi,4), %rdi
movl %edi, %r8d
negl %r8d
testq %rdi, %rdi
leaq (%r11,%r8,4), %r9
leaq 0x2(%r11,%r8,4), %r8
leaq (%r11,%rdi,4), %r10
leaq 0x2(%r11,%rdi,4), %rdi
cmovleq %r9, %rdi
cmovleq %r8, %r10
movzwl (%r10), %r8d
leaq (%r8,%r8,2), %r8
movsd (%r13,%r8,4), %xmm2
addps %xmm1, %xmm2
addss 0x8(%r13,%r8,4), %xmm0
movzwl (%rdi), %edi
leaq (%rdi,%rdi,2), %rdi
movsd (%r13,%rdi,4), %xmm1
addps %xmm2, %xmm1
addss 0x8(%r13,%rdi,4), %xmm0
incq %rsi
cmpq %rsi, %rdx
jne 0x2cea4
cvtps2pd %xmm1, %xmm1
cvtss2sd %xmm0, %xmm0
jmp 0x2cf14
xorpd %xmm1, %xmm1
xorps %xmm0, %xmm0
addl %eax, %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movsd 0xe243(%rip), %xmm3     # 0x3b168
divsd %xmm2, %xmm3
mulsd %xmm3, %xmm0
cvtsd2ss %xmm0, %xmm0
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
mulpd %xmm1, %xmm3
cvtpd2ps %xmm3, %xmm1
movq 0x40(%rsp), %rcx
movsd (%rcx), %xmm2
addps %xmm1, %xmm2
leaq 0x4c179c0(%rip), %rax   # 0x4c44910
movlps %xmm2, (%rax,%rbx,4)
addss 0x8(%rcx), %xmm0
movss %xmm0, 0x8(%rax,%rbx,4)
movq 0x28(%r15), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xbbe4
cmpb $0x1, 0x1c4aa(%rip)     # 0x49426
jne 0x2d8ad
movss 0x28(%rsp), %xmm0
subss 0x98(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
movsd 0x90(%rsp), %xmm2
subps %xmm2, %xmm1
mulps %xmm1, %xmm1
cvtps2pd %xmm1, %xmm1
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
addsd %xmm1, %xmm2
mulss %xmm0, %xmm0
cvtss2sd %xmm0, %xmm0
addsd %xmm2, %xmm0
ucomisd 0xe33f(%rip), %xmm0     # 0x3b308
jb 0x2cfd1
sqrtsd %xmm0, %xmm0
jmp 0x2cfd6
callq 0x4240
cvtsd2ss %xmm0, %xmm0
ucomiss 0x34(%r15), %xmm0
jbe 0x2d8ad
movss 0x14(%r15), %xmm2
movss 0xb145(%rip), %xmm0     # 0x38138
ucomiss %xmm2, %xmm0
jbe 0x2d036
xorps %xmm0, %xmm0
cvtss2sd 0x8(%r15), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xc(%r15), %xmm1
xorps %xmm3, %xmm3
cvtss2sd %xmm2, %xmm3
xorps %xmm2, %xmm2
cvtss2sd 0x10(%r15), %xmm2
movl 0x58(%r15), %edx
movl $0x2, %edi
leaq 0x127c2(%rip), %rsi     # 0x3f7ec
movb $0x4, %al
callq 0xa52e
jmp 0x2d8ad
movq %rbp, %rbx
xorl %ebp, %ebp
movl $0x20000, %edx          # imm = 0x20000
leaq 0x550db79(%rip), %rdi   # 0x553abc0
xorl %esi, %esi
callq 0x4190
movl $0x0, 0x552db68(%rip)   # 0x555abc0
movslq 0x58(%r15), %rdi
leaq (%rdi,%rdi,4), %rax
leaq 0x1b84399(%rip), %rcx   # 0x1bb1400
movswq 0xa(%rcx,%rax,4), %rax
leaq (%rax,%rax,4), %r14
shlq $0x3, %r14
addq %rbx, %r14
callq 0x3031e
movq %rax, %rbx
leaq 0x1a0(%rsp), %r12
movss (%rbx), %xmm2
movl %ebp, %eax
xorl $0x1, %eax
shlq $0x4, %rax
movss (%r14,%rax), %xmm0
movss 0x4(%r14,%rax), %xmm1
movss 0x4(%rbx), %xmm3
mulss %xmm1, %xmm3
movaps %xmm2, %xmm4
mulss %xmm0, %xmm4
addss %xmm3, %xmm4
movss 0x8(%r14,%rax), %xmm3
movss 0x8(%rbx), %xmm5
mulss %xmm3, %xmm5
addss %xmm4, %xmm5
mulss %xmm5, %xmm2
subss %xmm2, %xmm0
movss %xmm0, (%r12)
movss 0x4(%rbx), %xmm2
mulss %xmm5, %xmm2
subss %xmm2, %xmm1
movss %xmm1, 0x4(%r12)
mulss 0x8(%rbx), %xmm5
subss %xmm5, %xmm3
movss %xmm3, 0x8(%r12)
mulss %xmm1, %xmm1
mulss %xmm0, %xmm0
addss %xmm1, %xmm0
mulss %xmm3, %xmm3
addss %xmm0, %xmm3
xorps %xmm0, %xmm0
cvtss2sd %xmm3, %xmm0
ucomisd 0xe1e9(%rip), %xmm0     # 0x3b308
jb 0x2d127
sqrtsd %xmm0, %xmm0
jmp 0x2d12c
callq 0x4240
movsd 0xafdc(%rip), %xmm1     # 0x38110
ucomisd %xmm0, %xmm1
jbe 0x2d14d
movl $0x0, 0x8(%r12)
movq $0x0, (%r12)
jmp 0x2d184
cvtps2pd (%r12), %xmm1
movapd %xmm0, %xmm2
unpcklpd %xmm0, %xmm2            # xmm2 = xmm2[0],xmm0[0]
divpd %xmm2, %xmm1
cvtpd2ps %xmm1, %xmm1
movlpd %xmm1, (%r12)
xorps %xmm1, %xmm1
cvtss2sd 0x8(%r12), %xmm1
divsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss %xmm0, 0x8(%r12)
movss 0x4(%r12), %xmm0
mulss 0xc(%r15), %xmm0
movss (%r12), %xmm1
mulss 0x8(%r15), %xmm1
addss %xmm0, %xmm1
movss 0x8(%r12), %xmm0
mulss 0x10(%r15), %xmm0
addss %xmm1, %xmm0
movss %xmm0, 0xc(%r12)
incl %ebp
addq $0x14, %r12
cmpl $0x1, %ebp
je 0x2d088
movl $0x20, %edi
callq 0x42f0
movq %rax, %r14
movq 0x28(%r15), %rsi
movq %rax, %rdi
callq 0xc3be
movl 0x8(%r14), %ecx
movaps 0xfad4(%rip), %xmm5     # 0x3ccc0
testq %rcx, %rcx
je 0x2d2a8
movq 0x10(%r14), %rax
movaps 0x1a0(%rsp), %xmm2
movups 0x1a4(%rsp), %xmm3
movups 0x1a8(%rsp), %xmm1
movss 0x1bc(%rsp), %xmm0
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
shufps $0xe2, %xmm1, %xmm0     # xmm0 = xmm0[2,0],xmm1[2,3]
movss 0x1b4(%rsp), %xmm1
movlhps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0]
shufps $0xe2, %xmm2, %xmm1     # xmm1 = xmm1[2,0],xmm2[2,3]
movss 0x1b8(%rsp), %xmm2
movlhps %xmm3, %xmm2            # xmm2 = xmm2[0],xmm3[0]
shufps $0xe2, %xmm3, %xmm2     # xmm2 = xmm2[2,0],xmm3[2,3]
shlq $0x2, %rcx
leaq (%rcx,%rcx,2), %rcx
xorl %edx, %edx
movaps 0xfa6e(%rip), %xmm3     # 0x3ccc0
movss (%rax,%rdx), %xmm4
movss 0x4(%rax,%rdx), %xmm5
movss 0x8(%rax,%rdx), %xmm6
shufps $0x0, %xmm5, %xmm5      # xmm5 = xmm5[0,0,0,0]
mulps %xmm2, %xmm5
shufps $0x0, %xmm4, %xmm4      # xmm4 = xmm4[0,0,0,0]
mulps %xmm1, %xmm4
addps %xmm5, %xmm4
shufps $0x0, %xmm6, %xmm6      # xmm6 = xmm6[0,0,0,0]
mulps %xmm0, %xmm6
addps %xmm4, %xmm6
movlhps %xmm6, %xmm6            # xmm6 = xmm6[0,0]
movaps %xmm3, %xmm4
cmpltps %xmm6, %xmm4
movaps %xmm6, %xmm5
cmpltps %xmm3, %xmm5
movsd %xmm4, %xmm5            # xmm5 = xmm4[0],xmm5[1]
andps %xmm5, %xmm3
andnps %xmm6, %xmm5
orps %xmm3, %xmm5
addq $0xc, %rdx
movaps %xmm5, %xmm3
cmpq %rdx, %rcx
jne 0x2d252
movss 0xae88(%rip), %xmm1     # 0x38138
maxss 0x34(%r15), %xmm1
movaps %xmm5, %xmm0
unpckhpd %xmm5, %xmm0            # xmm0 = xmm0[1],xmm5[1]
movaps %xmm0, 0x70(%rsp)
movaps %xmm5, 0x50(%rsp)
subps %xmm5, %xmm0
movaps %xmm0, 0x40(%rsp)
addps 0xf9fa(%rip), %xmm0     # 0x3ccd0
movaps %xmm1, 0x30(%rsp)
shufps $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
divps %xmm1, %xmm0
movaps %xmm0, 0x80(%rsp)
callq 0x41a0
movaps %xmm0, 0xd0(%rsp)
movaps 0x80(%rsp), %xmm0
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
callq 0x41a0
movaps 0xd0(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvttps2dq %xmm1, %xmm0
movd %xmm0, %eax
cmpl $0x2, %eax
movl $0x1, %ebx
cmovgel %eax, %ebx
pshufd $0x50, %xmm0, %xmm1     # xmm1 = xmm0[0,0,1,1]
pcmpgtd 0xf9ad(%rip), %xmm1     # 0x3cce0
movmskpd %xmm1, %ecx
testb $0x1, %cl
jne 0x2d350
movaps 0x30(%rsp), %xmm3
movaps %xmm3, 0x80(%rsp)
movaps 0x40(%rsp), %xmm2
jmp 0x2d36d
movaps 0x40(%rsp), %xmm2
movaps %xmm2, %xmm1
mulss 0xf934(%rip), %xmm1     # 0x3cc94
movaps %xmm1, 0x80(%rsp)
movaps 0x30(%rsp), %xmm3
movl $0x40, %esi
cmpl %esi, %ebx
movl $0x40, %edx
cmovgel %esi, %ebx
pshufd $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
movd %xmm0, %esi
cmpl $0x2, %esi
movl $0x1, %r12d
movl %esi, 0xd0(%rsp)
cmovgel %esi, %r12d
testb $0x2, %cl
movaps 0x50(%rsp), %xmm1
je 0x2d3b2
shufps $0x55, %xmm2, %xmm2     # xmm2 = xmm2[1,1,1,1]
mulss 0xf8e5(%rip), %xmm2     # 0x3cc94
movaps %xmm2, %xmm3
cmpl $0x40, %r12d
cmovgel %edx, %r12d
movl $0x0, 0x552d7fc(%rip)   # 0x555abc0
cmpl $0x2, %eax
movaps %xmm3, 0x30(%rsp)
jl 0x2d572
movaps 0x70(%rsp), %xmm0
addss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
mulsd 0xdf12(%rip), %xmm0     # 0x3b300
xorps %xmm2, %xmm2
cvtss2sd 0x80(%rsp), %xmm2
mulsd 0xe25e(%rip), %xmm1     # 0x3b660
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss %xmm0, 0x70(%rsp)
movl $0x1, %r13d
xorps %xmm0, %xmm0
cvtsi2ss %r13d, %xmm0
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%rsp)
mulss 0x80(%rsp), %xmm0
addss 0x70(%rsp), %xmm0
movq %r14, %rdi
leaq 0x1a0(%rsp), %rbp
movq %rbp, %rsi
movss %xmm0, 0x40(%rsp)
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movss 0xe61e(%rip), %xmm1     # 0x3ba84
callq 0xc9b6
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2d490
movq %rbp, %rsi
movss 0x40(%rsp), %xmm0
movss 0xf812(%rip), %xmm1     # 0x3cc98
callq 0xd02a
cmpl $0x2, %eax
jne 0x2d4b5
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2d4a9
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movl $0x5, %ebp
jmp 0x2d502
movss 0x40(%rsp), %xmm0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2d4df
leaq 0x1a0(%rsp), %rsi
movss 0xf7c3(%rip), %xmm1     # 0x3cc98
callq 0xd02a
cmpl $0x2, %eax
jne 0x2d537
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2d4f8
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movl $0x7, %ebp
testq %rdi, %rdi
je 0x2d516
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
movaps 0x30(%rsp), %xmm3
movaps 0x50(%rsp), %xmm1
cmpl $0x7, %ebp
je 0x2d529
testl %ebp, %ebp
jne 0x2d572
incl %r13d
cmpl %r13d, %ebx
jne 0x2d41d
jmp 0x2d572
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movq 0x8(%rsp), %rax
movl 0x552d675(%rip), %ecx   # 0x555abc0
leaq 0x550d66e(%rip), %rdx   # 0x553abc0
movq %rax, (%rdx,%rcx,8)
leal 0x1(%rcx), %eax
movl %eax, 0x552d661(%rip)   # 0x555abc0
xorl %ebp, %ebp
movq %rbp, 0x8(%rsp)
movq 0x10(%rsp), %r14
movq %rbp, 0x10(%rsp)
jmp 0x2d516
movl 0x552d648(%rip), %ecx   # 0x555abc0
leal 0x1(%rcx), %eax
leaq 0x550d63e(%rip), %rdx   # 0x553abc0
movq %r14, (%rdx,%rcx,8)
movl %eax, 0x552d634(%rip)   # 0x555abc0
cmpq $0x7ffffffe, %rcx       # imm = 0x7FFFFFFE
movq %rdx, %rcx
leaq 0x1b4(%rsp), %r14
ja 0x2d795
movaps %xmm1, %xmm0
shufps $0xff, %xmm1, %xmm0     # xmm0 = xmm0[3,3],xmm1[3,3]
shufps $0x55, %xmm1, %xmm1     # xmm1 = xmm1[1,1,1,1]
addss %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
mulsd 0xdd3e(%rip), %xmm0     # 0x3b300
xorps %xmm1, %xmm1
cvtsi2sd %r12d, %xmm1
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
mulsd 0xe087(%rip), %xmm1     # 0x3b660
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss %xmm0, 0x50(%rsp)
movl %eax, %eax
movq %rax, 0x80(%rsp)
xorl %r13d, %r13d
movq (%rcx,%r13,8), %rbx
movq $0x0, (%rcx,%r13,8)
cmpl $0x2, 0xd0(%rsp)
jl 0x2d76b
movl $0x1, %ebp
xorps %xmm0, %xmm0
cvtsi2ss %ebp, %xmm0
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%rsp)
mulss %xmm3, %xmm0
addss 0x50(%rsp), %xmm0
movq %rbx, %rdi
movq %r14, %rsi
movss %xmm0, 0x40(%rsp)
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movss 0xe42f(%rip), %xmm1     # 0x3ba84
callq 0xc9b6
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2d67f
movq %r14, %rsi
movss 0x40(%rsp), %xmm0
movss 0xf623(%rip), %xmm1     # 0x3cc98
callq 0xd02a
cmpl $0x2, %eax
jne 0x2d6a5
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2d698
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movl $0xb, %r14d
jmp 0x2d6ee
movss 0x40(%rsp), %xmm0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2d6ca
movq %r14, %rsi
movss 0xf5d8(%rip), %xmm1     # 0x3cc98
callq 0xd02a
cmpl $0x2, %eax
jne 0x2d727
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2d6e3
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
movl $0xd, %r14d
testq %rdi, %rdi
je 0x2d702
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x8(%rsp)
movaps 0x30(%rsp), %xmm3
cmpl $0xd, %r14d
je 0x2d712
testl %r14d, %r14d
jne 0x2d763
incl %ebp
cmpl %ebp, %r12d
leaq 0x1b4(%rsp), %r14
jne 0x2d61a
jmp 0x2d76b
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
movq 0x8(%rsp), %rax
movl 0x552d485(%rip), %ecx   # 0x555abc0
leaq 0x550d47e(%rip), %rdx   # 0x553abc0
movq %rax, (%rdx,%rcx,8)
leal 0x1(%rcx), %eax
movl %eax, 0x552d471(%rip)   # 0x555abc0
xorl %r14d, %r14d
movq %r14, 0x8(%rsp)
movq 0x10(%rsp), %rbx
movq %r14, 0x10(%rsp)
jmp 0x2d702
leaq 0x1b4(%rsp), %r14
movl 0x552d44f(%rip), %eax   # 0x555abc0
leaq 0x550d448(%rip), %rcx   # 0x553abc0
movq %rbx, (%rcx,%rax,8)
incl %eax
movl %eax, 0x552d43c(%rip)   # 0x555abc0
incq %r13
cmpq 0x80(%rsp), %r13
jne 0x2d5fb
movq 0x28(%r15), %rdi
testq %rdi, %rdi
je 0x2d7ab
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x550d415(%rip), %rcx   # 0x553abc0
xorl %eax, %eax
movq %rax, 0x28(%r15)
movq %rax, (%r15)
movq 0x550d405(%rip), %rdi   # 0x553abc0
movl $0x1, %ebp
movq %rcx, %r14
testq %rdi, %rdi
movq 0xc8(%rsp), %rbx
jne 0x2d7e2
movq %rcx, %r14
movq 0x8(%r14), %rdi
addq $0x8, %r14
incl %ebp
testq %rdi, %rdi
je 0x2d7d3
movq %rdi, 0x28(%r15)
callq 0xbab6
movss %xmm0, 0x14(%r15)
movq 0x28(%r15), %rdi
movq %rbx, %rsi
callq 0xbcc8
movq %r15, %rdi
callq 0x2e869
movq %r15, %rdi
callq 0x2ecf7
cmpl 0x552d3ad(%rip), %ebp   # 0x555abc0
jae 0x2d8ad
movl 0x540b1c9(%rip), %eax   # 0x54389e8
imulq $0x138, %rax, %rbx      # imm = 0x138
addq 0x538b1b3(%rip), %rbx   # 0x53b89e0
addq $0x8, %r14
cmpq $0x0, (%r14)
je 0x2d89f
movl $0x138, %edx            # imm = 0x138
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4250
movq (%r14), %rdi
movq %rdi, 0x28(%rbx)
callq 0xbab6
movss %xmm0, 0x14(%rbx)
movq 0x28(%rbx), %rdi
leaq 0x8(%rbx), %rsi
callq 0xbcc8
movq %rbx, %rdi
callq 0x2e869
movq %rbx, %rdi
callq 0x2ecf7
addq $0x138, %rbx            # imm = 0x138
movl 0x540b166(%rip), %eax   # 0x54389e8
incl %eax
movl %eax, 0x540b15e(%rip)   # 0x54389e8
xorl %edi, %edi
cmpl $0xffff0, %eax          # imm = 0xFFFF0
setb %dil
movl $0x1b, %esi
callq 0xa7c9
incl %ebp
addq $0x8, %r14
cmpl 0x552d315(%rip), %ebp   # 0x555abc0
jb 0x2d831
movss 0x2c(%rsp), %xmm2
movaps 0x140(%rsp), %xmm1
movl 0x12c(%rsp), %edx
incl %edx
movq 0x168(%rsp), %rcx
cmpl 0x3c(%rcx), %edx
jl 0x2bfa3
movq 0x130(%rsp), %rdi
incq %rdi
leaq 0x1bb79(%rip), %rax     # 0x49460
movslq (%rax), %rax
cmpq %rax, %rdi
leaq 0xadb4(%rip), %r13      # 0x386a8
leaq 0xe77c(%rip), %r14      # 0x3c077
jl 0x2bba0
movl 0x540b0e1(%rip), %esi   # 0x54389e8
leaq 0x11dd4(%rip), %rdi     # 0x3f6e2
xorl %eax, %eax
callq 0x9d2e
movss 0x550d293(%rip), %xmm1  # 0x553abb0
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
divss 0xf370(%rip), %xmm1     # 0x3cc9c
cvttss2si %xmm1, %esi
leaq 0x11dbc(%rip), %rdi     # 0x3f6f3
movb $0x1, %al
callq 0x9d2e
cmpb $0x1, 0x54cd0e7(%rip)   # 0x54faa2c
jne 0x2da6d
leaq 0x11c17(%rip), %rsi     # 0x3f569
leaq 0x1a9f7(%rip), %rdx     # 0x48350
leaq 0x1a0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x40a0
leaq 0xea94(%rip), %rdi      # 0x3c406
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9d2e
leaq 0x1147c(%rip), %rsi     # 0x3edff
movq %rbx, %rdi
callq 0x4370
testq %rax, %rax
je 0x2da5f
movq %rax, %rbx
cmpl $0x0, 0x540b04a(%rip)   # 0x54389e8
je 0x2da4e
xorl %ebp, %ebp
movq 0x538b033(%rip), %r15   # 0x53b89e0
leaq 0xf3ec(%rip), %r12      # 0x3cda0
leaq 0xea5d(%rip), %r14      # 0x3c418
cmpl $0x1, 0x5c(%r15)
je 0x2da39
movss 0x8(%r15), %xmm0
movss %xmm0, 0x40(%rsp)
movss 0xc(%r15), %xmm0
movss %xmm0, 0x30(%rsp)
movss 0x10(%r15), %xmm0
movss %xmm0, 0x50(%rsp)
movl $0x8, %r13d
movss -0x8(%r13,%r12), %xmm0
addss 0x40(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x4(%r13,%r12), %xmm1
addss 0x30(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
movss (%r13,%r12), %xmm2
addss 0x50(%rsp), %xmm2
cvtss2sd %xmm2, %xmm2
movq %rbx, %rdi
movq %r14, %rsi
movb $0x3, %al
callq 0x4460
addq $0xc, %r13
cmpq $0xbc, %r13
jne 0x2d9ec
incl %ebp
addq $0x138, %r15            # imm = 0x138
cmpl 0x540afa0(%rip), %ebp   # 0x54389e8
jb 0x2d9bb
movq %rbx, %rdi
callq 0x42e0
leaq 0xe9c5(%rip), %rdi      # 0x3c422
jmp 0x2da66
leaq 0xe9c1(%rip), %rdi      # 0x3c427
xorl %eax, %eax
callq 0x9d2e
movl 0x1b945(%rip), %eax     # 0x493b8
cmpq $0x2, %rax
ja 0x2da99
leaq 0xf3d4(%rip), %rcx      # 0x3ce54
movl 0x540af62(%rip), %edx   # 0x54389e8
xorl %edi, %edi
cmpl (%rcx,%rax,4), %edx
setb %dil
movl $0x1b, %esi
callq 0xa7c9
movq 0x538af40(%rip), %rbx   # 0x53b89e0
movl 0x540af42(%rip), %eax   # 0x54389e8
incl %eax
imulq $0x138, %rax, %rdi      # imm = 0x138
callq 0x492c
movq %rax, 0x538af25(%rip)   # 0x53b89e0
movl 0x540af27(%rip), %ecx   # 0x54389e8
imulq $0x138, %rcx, %rdx      # imm = 0x138
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4250
movq %rbx, %rdi
callq 0x4951
movq 0x538aefe(%rip), %rdi   # 0x53b89e0
movl 0x540af00(%rip), %esi   # 0x54389e8
leaq 0x1371(%rip), %rcx      # 0x2ee60
movl $0x138, %edx            # imm = 0x138
callq 0x4610
leaq 0x524aee0(%rip), %rbx   # 0x52789e0
movl $0x7fff8, %edx          # imm = 0x7FFF8
movq %rbx, %rdi
xorl %esi, %esi
callq 0x4190
movq 0x538aeca(%rip), %rax   # 0x53b89e0
movslq 0x58(%rax), %rcx
movq %rax, (%rbx,%rcx,8)
movl 0x540aec4(%rip), %ecx   # 0x54389e8
cmpl $0x2, %ecx
jb 0x2db53
leal -0x1(%rcx), %edx
movslq 0x190(%rax), %rdi
movq %rax, %rsi
cmpl 0x58(%rax), %edi
je 0x2db46
movq $0x0, (%rax)
leaq (%rbx,%rdi,8), %rsi
addq $0x138, %rax            # imm = 0x138
movq %rax, (%rsi)
decl %edx
jne 0x2db2c
testl %ecx, %ecx
je 0x2dba9
movl $0x130, %r14d           # imm = 0x130
xorl %r15d, %r15d
leaq 0xa23959(%rip), %r12    # 0xa514c0
movq 0x538ae72(%rip), %rax   # 0x53b89e0
leaq (%rax,%r14), %rbx
addq $-0x128, %rbx           # imm = 0xFED8
movq %rbx, %rdi
callq 0x3022d
subq %r12, %rax
shrq $0x2, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
movl %eax, 0x128(%rbx)
incq %r15
movl 0x540ae4b(%rip), %eax   # 0x54389e8
addq $0x138, %r14            # imm = 0x138
cmpq %rax, %r15
jb 0x2db67
callq 0x1687d
cmpb $0x1, 0x54cce8b(%rip)   # 0x54faa40
jne 0x2dd61
leaq 0x119b4(%rip), %rsi     # 0x3f576
leaq 0x1a787(%rip), %rdx     # 0x48350
leaq 0x1a0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x40a0
leaq 0xe824(%rip), %rdi      # 0x3c406
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9d2e
leaq 0x1120c(%rip), %rsi     # 0x3edff
movq %rbx, %rdi
callq 0x4370
testq %rax, %rax
je 0x2dd53
movq %rax, %rbx
leaq 0x211ed02(%rip), %r15   # 0x214c910
xorl %r12d, %r12d
leaq 0xf188(%rip), %r13      # 0x3cda0
leaq 0xe7f9(%rip), %r14      # 0x3c418
cmpb $0x1, 0x39(%r15)
jne 0x2dd2b
leaq 0x1d037cf(%rip), %rcx   # 0x1d31400
movzwl (%rcx,%r12,4), %eax
movzwl 0x2(%rcx,%r12,4), %ecx
leaq (%rax,%rax,2), %rax
leaq (%rcx,%rcx,2), %rcx
leaq 0x10037b5(%rip), %rdx   # 0x1031400
movss (%rdx,%rax,4), %xmm1
movss 0x4(%rdx,%rax,4), %xmm2
addss (%rdx,%rcx,4), %xmm1
addss 0x4(%rdx,%rcx,4), %xmm2
movss 0x8(%rdx,%rax,4), %xmm3
addss 0x8(%rdx,%rcx,4), %xmm3
movss 0xde33(%rip), %xmm0     # 0x3baa8
mulss %xmm0, %xmm1
mulss %xmm0, %xmm2
mulss %xmm0, %xmm3
addss 0x10(%r15), %xmm1
addss 0x14(%r15), %xmm2
addss 0x18(%r15), %xmm3
movq (%r15), %rax
subq 0x1a343(%rip), %rax     # 0x47fe0
shrq $0x2, %rax
movabsq $-0x6666666666666664, %rcx # imm = 0x999999999999999C
imulq %rcx, %rax
leaq 0x540ad3a(%rip), %rcx   # 0x54389f0
addss (%rax,%rcx), %xmm1
movss %xmm1, 0x40(%rsp)
addss 0x4(%rax,%rcx), %xmm2
movss %xmm2, 0x30(%rsp)
addss 0x8(%rax,%rcx), %xmm3
movss %xmm3, 0x50(%rsp)
movl $0x8, %ebp
movss -0x8(%rbp,%r13), %xmm0
addss 0x40(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x4(%rbp,%r13), %xmm1
addss 0x30(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
movss (%rbp,%r13), %xmm2
addss 0x50(%rsp), %xmm2
cvtss2sd %xmm2, %xmm2
movq %rbx, %rdi
movq %r14, %rsi
movb $0x3, %al
callq 0x4460
addq $0xc, %rbp
cmpq $0xbc, %rbp
jne 0x2dcde
incq %r12
addq $0xb0, %r15
cmpq $0x3e800, %r12          # imm = 0x3E800
jne 0x2dc1f
movq %rbx, %rdi
callq 0x42e0
leaq 0xe6d1(%rip), %rdi      # 0x3c422
jmp 0x2dd5a
leaq 0xe6cd(%rip), %rdi      # 0x3c427
xorl %eax, %eax
callq 0x9d2e
callq 0x1a1b1
callq 0x18648
leaq 0xbf06(%rip), %rdi      # 0x39c78
xorl %eax, %eax
callq 0x9d2e
leaq 0x11802(%rip), %rdi     # 0x3f582
callq 0x9e7a
leaq 0xe9f3(%rip), %rbx      # 0x3c77f
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9d2e
leaq 0x1b83654(%rip), %r14   # 0x1bb13f4
movl (%r14), %edi
movzbl 0x1b67a(%rip), %esi     # 0x49424
leaq 0x3201(%rip), %rdx      # 0x30fb2
callq 0xb433
leaq 0x117d8(%rip), %rdi     # 0x3f595
callq 0x9e7a
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9d2e
movl (%r14), %edi
movzbl 0x1b64b(%rip), %esi     # 0x49424
leaq -0x1031f(%rip), %rdx    # 0x1dac1
callq 0xb433
callq 0x319cc
callq 0x19e21
cmpl $0x0, 0x1b5ce(%rip)     # 0x493c4
je 0x2e2fa
movl 0x1b5b6(%rip), %eax     # 0x493b8
cmpl $0x2, %eax
je 0x2de1e
cmpl $0x1, %eax
je 0x2de17
testl %eax, %eax
jne 0x2de23
callq 0x35904
jmp 0x2de23
callq 0x3254c
jmp 0x2de23
callq 0x27437
movl 0x540abbf(%rip), %eax   # 0x54389e8
incl %eax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rdi
callq 0x492c
movq %rax, 0x550cd59(%rip)   # 0x553ab98
movl 0x540aba3(%rip), %eax   # 0x54389e8
incl %eax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rdi
callq 0x492c
movq %rax, 0x550cd45(%rip)   # 0x553aba0
movl 0x540ab87(%rip), %edi   # 0x54389e8
incl %edi
shlq $0x2, %rdi
callq 0x492c
movq %rax, 0x550cd35(%rip)   # 0x553aba8
cmpl $0x0, 0x540ab6e(%rip)   # 0x54389e8
je 0x2df01
movq 0x550cd11(%rip), %rax   # 0x553ab98
addq $0x8, %rax
movl $0x98, %ecx
movl $0x88, %edx
xorl %esi, %esi
movl $0x138, %edi            # imm = 0x138
movq 0x538ab3d(%rip), %r8    # 0x53b89e0
leaq (%r8,%rcx), %r9
addq %rdx, %r8
xorl %r10d, %r10d
cmpb $-0x1, (%r8)
je 0x2dee8
movss -0x8(%r9,%r10), %xmm0
movss %xmm0, -0x8(%rax,%r10)
movss -0x4(%r9,%r10), %xmm0
movss %xmm0, -0x4(%rax,%r10)
movss (%r9,%r10), %xmm0
movss %xmm0, (%rax,%r10)
addq $0xc, %r10
incq %r8
cmpq $0x30, %r10
jne 0x2dead
incq %rsi
movl 0x540aaf6(%rip), %r8d   # 0x54389e8
addq $0x30, %rax
addq %rdi, %rcx
addq %rdi, %rdx
cmpq %r8, %rsi
jb 0x2de9c
cmpl $0x0, 0x1b4bc(%rip)     # 0x493c4
je 0x2e231
leaq 0x119c0(%rip), %r13     # 0x3f8d5
xorl %r14d, %r14d
leal 0x1(%r14), %esi
leaq 0x11945(%rip), %rdi     # 0x3f868
movl %esi, 0x40(%rsp)
xorl %eax, %eax
callq 0x9d2e
cmpb $0x0, 0x54ccaf4(%rip)   # 0x54faa29
leaq 0x11947(%rip), %rdi     # 0x3f883
leaq 0x11930(%rip), %rax     # 0x3f873
cmovneq %rax, %rdi
leaq 0x1697(%rip), %r12      # 0x2f5e5
leaq 0xf1f(%rip), %rax       # 0x2ee74
cmovneq %rax, %r12
callq 0x9e7a
leaq 0xe81a(%rip), %rdi      # 0x3c77f
movq %rax, %rsi
xorl %eax, %eax
callq 0x9d2e
movl 0x540aa73(%rip), %edi   # 0x54389e8
movzbl 0x1b4a8(%rip), %esi     # 0x49424
movq %r12, %rdx
callq 0xb446
cmpl $0x0, 0x540aa5d(%rip)   # 0x54389e8
je 0x2e0e0
movq 0x538aa48(%rip), %rax   # 0x53b89e0
movq 0x550cc09(%rip), %rcx   # 0x553aba8
movq 0x550cbfa(%rip), %rdx   # 0x553aba0
movq 0x550cbeb(%rip), %rsi   # 0x553ab98
leaq 0x98(%rax), %rdi
addq $0x8, %rsi
addq $0x8, %rdx
movq %rcx, %r8
xorl %r9d, %r9d
xorl %r10d, %r10d
leaq (%rcx,%r9,4), %r11
movb (%r10,%r11), %r11b
cmpb $-0x1, %r11b
je 0x2e037
leaq (%r10,%r10,2), %rbx
leaq (%rsp,%rbx,4), %rbx
addq $0x90, %rbx
movl $0x0, 0x8(%rbx)
movq $0x0, (%rbx)
movl $0x88, %r12d
movq %rdi, %r15
movb (%rax,%r12), %bpl
cmpb $-0x1, %bpl
je 0x2e02e
cmpb %r11b, %bpl
je 0x2e01a
addq $0xc, %r15
incq %r12
cmpq $0x8c, %r12
jne 0x2dff9
jmp 0x2e02e
movsd -0x8(%r15), %xmm0
movsd %xmm0, (%rbx)
movss (%r15), %xmm0
movss %xmm0, 0x8(%rbx)
incq %r10
cmpq $0x4, %r10
jne 0x2dfc5
movl $0x88, %r10d
xorl %r11d, %r11d
movb -0x88(%r8,%r10), %bl
cmpb $-0x1, %bl
je 0x2e0a3
movb %bl, (%rax,%r10)
movsd 0x90(%rsp,%r11), %xmm0
movsd %xmm0, 0x90(%rax,%r11)
movss 0x98(%rsp,%r11), %xmm0
movss %xmm0, 0x98(%rax,%r11)
movss -0x8(%rdx,%r11), %xmm0
movss %xmm0, -0x8(%rsi,%r11)
movss -0x4(%rdx,%r11), %xmm0
movss %xmm0, -0x4(%rsi,%r11)
movss (%rdx,%r11), %xmm0
movss %xmm0, (%rsi,%r11)
jmp 0x2e0a8
movb $-0x1, (%rax,%r10)
incq %r10
addq $0xc, %r11
cmpq $0x30, %r11
jne 0x2e040
incq %r9
movl $0x138, %r11d           # imm = 0x138
addq %r11, %rax
movl 0x540a920(%rip), %r10d  # 0x54389e8
addq %r11, %rdi
addq $0x30, %rsi
addq $0x30, %rdx
addq $0x4, %r8
cmpq %r10, %r9
jb 0x2dfc2
cmpb $0x1, 0x550caa9(%rip)   # 0x553ab90
jne 0x2e21e
leaq 0x1a0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x11791(%rip), %rsi     # 0x3f890
movl %r14d, %edx
xorl %eax, %eax
callq 0x40a0
movq %rbx, %rdi
leaq 0x10cec(%rip), %rsi     # 0x3edff
callq 0x4370
movq %rax, 0x30(%rsp)
testq %rax, %rax
jne 0x2e138
leaq 0xe54b(%rip), %rdi      # 0x3c674
leaq 0x1a0(%rsp), %rsi
xorl %eax, %eax
callq 0xa01c
cmpl $0x0, 0x540a8a9(%rip)   # 0x54389e8
je 0x2e214
xorl %r12d, %r12d
movq 0x538a891(%rip), %r14   # 0x53b89e0
movq 0x28(%r14), %rbp
movl 0x8(%rbp), %esi
leaq 0xcfeb(%rip), %rdi      # 0x3b148
xorl %eax, %eax
callq 0x9d2e
cmpl $0x0, 0x8(%rbp)
movss 0xd964(%rip), %xmm6     # 0x3bad4
je 0x2e1ef
movl $0x8, %r15d
xorl %ebx, %ebx
movq 0x10(%rbp), %rax
xorps %xmm0, %xmm0
cvtss2sd -0x8(%rax,%r15), %xmm0
xorps %xmm1, %xmm1
cvtss2sd -0x4(%rax,%r15), %xmm1
xorps %xmm2, %xmm2
cvtss2sd (%rax,%r15), %xmm2
movss 0x90(%r14), %xmm3
mulss %xmm6, %xmm3
cvtss2sd %xmm3, %xmm3
movss 0x94(%r14), %xmm4
mulss %xmm6, %xmm4
cvtss2sd %xmm4, %xmm4
movss 0x98(%r14), %xmm5
mulss %xmm6, %xmm5
cvtss2sd %xmm5, %xmm5
movq %r13, %rdi
movb $0x6, %al
callq 0x9d2e
movss 0xd8f4(%rip), %xmm6     # 0x3bad4
incq %rbx
movl 0x8(%rbp), %eax
addq $0xc, %r15
cmpq %rax, %rbx
jb 0x2e17a
leaq 0xba82(%rip), %rdi      # 0x39c78
xorl %eax, %eax
callq 0x9d2e
incl %r12d
addq $0x138, %r14            # imm = 0x138
cmpl 0x540a7da(%rip), %r12d  # 0x54389e8
jb 0x2e14f
movq 0x30(%rsp), %rdi
callq 0x42e0
movl 0x40(%rsp), %eax
movl %eax, %r14d
cmpl 0x1b199(%rip), %eax     # 0x493c4
jb 0x2df18
cmpl $0x0, 0x540a7b0(%rip)   # 0x54389e8
je 0x2e2bf
movq 0x550c953(%rip), %rax   # 0x553ab98
addq $0x8, %rax
movl $0x98, %ecx
movl $0x88, %edx
xorl %esi, %esi
movl $0x138, %edi            # imm = 0x138
movq 0x538a77f(%rip), %r8    # 0x53b89e0
leaq (%r8,%rcx), %r9
addq %rdx, %r8
xorl %r10d, %r10d
cmpb $-0x1, (%r8)
je 0x2e2a6
movss -0x8(%rax,%r10), %xmm0
movss %xmm0, -0x8(%r9,%r10)
movss -0x4(%rax,%r10), %xmm0
movss %xmm0, -0x4(%r9,%r10)
movss (%rax,%r10), %xmm0
movss %xmm0, (%r9,%r10)
addq $0xc, %r10
incq %r8
cmpq $0x30, %r10
jne 0x2e26b
incq %rsi
movl 0x540a738(%rip), %r8d   # 0x54389e8
addq $0x30, %rax
addq %rdi, %rcx
addq %rdi, %rdx
cmpq %r8, %rsi
jb 0x2e25a
movq 0x550c8d2(%rip), %rdi   # 0x553ab98
callq 0x4951
xorl %ebx, %ebx
movq %rbx, 0x550c8c4(%rip)   # 0x553ab98
movq 0x550c8c5(%rip), %rdi   # 0x553aba0
callq 0x4951
movq %rbx, 0x550c8b9(%rip)   # 0x553aba0
movq 0x550c8ba(%rip), %rdi   # 0x553aba8
callq 0x4951
movq %rbx, 0x550c8ae(%rip)   # 0x553aba8
cmpl $0x0, 0x540a6e7(%rip)   # 0x54389e8
je 0x2e361
movq 0x538a6d6(%rip), %rbx   # 0x53b89e0
addq $0x50, %rbx
xorl %ebp, %ebp
movq -0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x2e326
callq 0x4951
movq $0x0, -0x8(%rbx)
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x2e33a
callq 0x4951
movq $0x0, (%rbx)
movq -0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x2e350
callq 0x4951
movq $0x0, -0x10(%rbx)
incl %ebp
addq $0x138, %rbx            # imm = 0x138
cmpl 0x540a689(%rip), %ebp   # 0x54389e8
jb 0x2e310
callq 0x35869
leaq 0x11239(%rip), %rdi     # 0x3f5a6
callq 0x9e7a
leaq 0xe406(%rip), %rbx      # 0x3c77f
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9d2e
leaq 0x1b83067(%rip), %r14   # 0x1bb13f4
movl (%r14), %edi
movzbl 0x1b08d(%rip), %esi     # 0x49424
leaq -0x1e7f8(%rip), %rdx    # 0xfba6
callq 0xb433
callq 0x207d8
callq 0x219b4
callq 0x2182c
leaq 0x11203(%rip), %rdi     # 0x3f5bc
callq 0x9e7a
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9d2e
movl (%r14), %edi
movzbl 0x1b04f(%rip), %esi     # 0x49424
leaq -0xc951(%rip), %rdx     # 0x21a8b
callq 0xb433
callq 0x21976
callq 0x12a2f
leaq 0x111da(%rip), %rdi     # 0x3f5cc
callq 0x9e7a
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9d2e
movl (%r14), %edi
movzbl 0x1b016(%rip), %esi     # 0x49424
leaq -0xc761(%rip), %rdx     # 0x21cb4
callq 0xb433
xorps %xmm0, %xmm0
cvtss2sd 0x550c72b(%rip), %xmm0  # 0x553ab50
ucomisd 0xd20b(%rip), %xmm0     # 0x3b638
jbe 0x2e455
cvtss2sd 0x550c71d(%rip), %xmm1  # 0x553ab54
cvtss2sd 0x550c719(%rip), %xmm2  # 0x553ab58
cvtss2sd 0x550c715(%rip), %xmm3  # 0x553ab5c
leaq 0x1118e(%rip), %rdi     # 0x3f5dc
movb $0x4, %al
callq 0xa46f
callq 0x216f7
callq 0x20d0d
leaq 0x82301e(%rip), %rbx    # 0x851484
cmpl $0x0, (%rbx)
jne 0x2e47e
movl $0x1, (%rbx)
leaq 0x823010(%rip), %rax    # 0x851488
movq (%rax), %rax
movb $0x0, (%rax)
leaq 0x1b82f6f(%rip), %rax   # 0x1bb13f4
movslq (%rax), %rax
testq %rax, %rax
jle 0x2e4de
leaq 0x1b82f6c(%rip), %rcx   # 0x1bb1400
leaq 0xc(%rcx), %rdx
xorl %esi, %esi
xorl %ebp, %ebp
leaq (%rsi,%rsi,4), %rdi
movl 0x10(%rcx,%rdi,4), %edi
testl %edi, %edi
js 0x2e4d0
leal 0xd8c(%rdi), %r8d
xorl %r9d, %r9d
cmpb $-0x1, (%rdx,%r9)
je 0x2e4cb
addl $0x363, %edi            # imm = 0x363
incq %r9
cmpq $0x4, %r9
jne 0x2e4b2
movl %r8d, %edi
cmpl %ebp, %edi
cmovgl %edi, %ebp
incq %rsi
addq $0x14, %rdx
cmpq %rax, %rsi
jne 0x2e49c
jmp 0x2e4e0
xorl %ebp, %ebp
cmpl (%rbx), %ebp
jl 0x2e51c
leaq 0x19e49(%rip), %rax     # 0x48334
xorl %edi, %edi
cmpl (%rax), %ebp
setle %dil
movl $0x38, %esi
callq 0xa7c9
leaq 0x822f84(%rip), %rax    # 0x851488
movslq (%rbx), %rcx
movq (%rax), %rdi
addq %rcx, %rdi
movslq %ebp, %rdx
subq %rcx, %rdx
xorl %esi, %esi
callq 0x4190
movl %ebp, (%rbx)
addq $0x11b8, %rsp           # imm = 0x11B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movl $0x20, %esi
movq %r14, %rdi
jmp 0x2e548
jmp 0x2e53d
movq %rax, %rbx
movl $0x20, %esi
movq %r13, %rdi
callq 0x4300
movq %rbx, %rdi
callq 0x4590