// File: /workspace/github_cpp_makefile_star2_O3/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 $0x11d8, %rsp           # imm = 0x11D8
callq 0x2f2cd
xorl %edi, %edi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x2d6d9
leaq 0x1ddbb(%rip), %rdi     # 0x48470
callq 0x31fe4
callq 0x32f3c
leaq 0x1dd9a(%rip), %rax     # 0x48460
cmpl $0x0, (%rax)
jle 0x2ac8f
leaq 0xe6fa(%rip), %r14      # 0x38dd0
movss (%r14), %xmm0
movss %xmm0, 0xf0(%rsp)
leaq 0x2013d39(%rip), %rbp   # 0x203e424
leaq 0xcfa1(%rip), %r13      # 0x37693
leaq 0x108fe(%rip), %r15     # 0x3aff7
xorl %edx, %edx
leaq 0x1c0(%rsp), %rdi
leaq 0xd068(%rip), %rsi      # 0x37772
movl %edx, 0x4(%rsp)
xorl %eax, %eax
callq 0x40a0
cmpl $0x0, (%rbp)
jle 0x2ac7a
xorl %r12d, %r12d
movq %r12, %rbx
shlq $0x5, %rbx
addq 0x1c8a0(%rip), %rbx     # 0x46fd0
movq %rbx, %rdi
leaq 0xd03c(%rip), %rsi      # 0x37776
callq 0x752d
movq %rax, %rdi
leaq 0x1c0(%rsp), %rsi
callq 0x4430
testl %eax, %eax
jne 0x2ac22
movq %rbx, %rdi
leaq 0x13e4c(%rip), %rsi     # 0x3e5ad
leaq 0xb0(%rsp), %rdx
callq 0x8084
movq %rbx, %rdi
leaq 0x13e2f(%rip), %rsi     # 0x3e5a7
callq 0x752d
cmpb $0x0, (%rax)
je 0x2a80a
movq %rbx, %rdi
leaq 0x13e24(%rip), %rsi     # 0x3e5b4
callq 0x752d
cmpb $0x0, (%rax)
je 0x2a80a
movq %rbx, %rdi
leaq 0x13e03(%rip), %rsi     # 0x3e5a7
callq 0x752d
movq %rax, %rdi
callq 0x7ff7
testq %rax, %rax
je 0x2a80a
movq %rax, %rdi
leaq 0x13ded(%rip), %rsi     # 0x3e5ad
leaq 0x20(%rsp), %rdx
callq 0x8084
movq %rbx, %rdi
leaq 0x13de0(%rip), %rsi     # 0x3e5b4
leaq 0x10(%rsp), %rdx
callq 0x8084
movsd 0x20(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
subps %xmm1, %xmm0
movlps %xmm0, 0xb0(%rsp)
movss 0x28(%rsp), %xmm0
subss 0x18(%rsp), %xmm0
movss %xmm0, 0xb8(%rsp)
movq %rbx, 0x50(%rsp)
cmpb $0x1, 0x1dbce(%rip)     # 0x483e4
movq %r12, 0x40(%rsp)
jne 0x2a83f
movq 0x50(%rsp), %rbx
movq %rbx, %rdi
leaq 0x13d95(%rip), %rsi     # 0x3e5c1
callq 0x7663
andl $0x2, %eax
shrl %eax
movl %eax, 0x90(%rsp)
jmp 0x2a84f
movl $0x0, 0x90(%rsp)
movq 0x50(%rsp), %rbx
movq $0x0, 0x20(%rsp)
movl $0x0, 0x28(%rsp)
movq %rbx, %rdi
leaq 0x13d67(%rip), %rsi     # 0x3e5d1
callq 0x752d
cmpb $0x0, (%rax)
je 0x2a922
movq %rax, %rbx
movabsq $0x3ff0000000000000, %rax # imm = 0x3FF0000000000000
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%rsp)
movq %rax, 0x148(%rsp)
movq %rax, 0x140(%rsp)
movq %rbx, %rdi
leaq 0x106d3(%rip), %rsi     # 0x3af7c
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
leaq 0x148(%rsp), %r8
xorl %eax, %eax
callq 0x42c0
cmpl $0x3, %eax
jne 0x2a94c
xorps %xmm0, %xmm0
maxsd 0x148(%rsp), %xmm0
movsd 0x10(%rsp), %xmm1
movhpd 0x8(%rsp), %xmm1        # xmm1 = xmm1[0],mem[0]
xorpd %xmm2, %xmm2
maxpd %xmm1, %xmm2
cvtpd2ps %xmm2, %xmm3
movlpd %xmm3, 0x20(%rsp)
cvtsd2ss %xmm0, %xmm0
movapd %xmm3, %xmm1
shufps $0x55, %xmm3, %xmm1     # xmm1 = xmm1[1,1],xmm3[1,1]
movaps %xmm1, 0x120(%rsp)
movaps 0xfa30(%rip), %xmm1     # 0x3a340
movsd 0x10190(%rip), %xmm2    # 0x3aaa8
movq 0x40(%rsp), %r12
jmp 0x2a9b6
xorps %xmm0, %xmm0
movss %xmm0, 0x60(%rsp)
movaps %xmm0, 0x120(%rsp)
xorps %xmm3, %xmm3
movaps 0xfa03(%rip), %xmm1     # 0x3a340
movsd 0x10163(%rip), %xmm2    # 0x3aaa8
movq 0x40(%rsp), %r12
jmp 0x2a9c2
movq %rbx, %rdi
leaq 0x1062e(%rip), %rsi     # 0x3af84
leaq 0x140(%rsp), %rdx
xorl %eax, %eax
callq 0x42c0
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
movaps %xmm1, 0x120(%rsp)
xorps %xmm3, %xmm3
cmpl $0x1, %eax
movaps 0xf9c0(%rip), %xmm1     # 0x3a340
movsd 0x10120(%rip), %xmm2    # 0x3aaa8
movq 0x40(%rsp), %r12
jne 0x2a9bc
xorps %xmm0, %xmm0
maxsd 0x140(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x20(%rsp)
movss %xmm0, 0x24(%rsp)
movaps %xmm0, %xmm3
movaps %xmm0, 0x120(%rsp)
movss %xmm0, 0x28(%rsp)
movss %xmm0, 0x60(%rsp)
movaps %xmm3, %xmm0
subss 0xf0(%rsp), %xmm0
andps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
ucomisd %xmm2, %xmm0
jbe 0x2a9e5
movl $0x0, 0x30(%rsp)
jmp 0x2aa19
xorl %ecx, %ecx
movq %rcx, %rax
cmpq $0x2, %rcx
je 0x2aa0e
movss 0x24(%rsp,%rax,4), %xmm0
subss 0x4(%r14,%rax,4), %xmm0
andps %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x1(%rax), %rcx
ucomisd %xmm2, %xmm0
jbe 0x2a9e7
cmpq $0x2, %rax
setae %al
movl %eax, 0x30(%rsp)
movaps %xmm3, 0x100(%rsp)
movl $0xffffffff, 0x80(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, (%rbp)
jle 0x2aabb
leaq 0x20139f3(%rip), %r14   # 0x203e430
xorl %ebx, %ebx
movq %r14, %rdi
leaq 0xcbba(%rip), %rsi      # 0x37603
callq 0x752d
movq %rax, %rdi
movq %r13, %rsi
callq 0x4430
testl %eax, %eax
jne 0x2aaa6
movq %r14, %rdi
movq %r15, %rsi
callq 0x752d
cmpb $0x0, (%rax)
je 0x2aaa6
movq %r14, %rdi
movq %r15, %rsi
callq 0x752d
movq %rax, %r12
movq 0x50(%rsp), %rdi
leaq 0xcce0(%rip), %rsi      # 0x37767
callq 0x752d
movq %r12, %rdi
leaq 0x10561(%rip), %r15     # 0x3aff7
movq %rax, %rsi
callq 0x4430
testl %eax, %eax
je 0x2ac34
incq %rbx
movslq (%rbp), %rax
addq $0x20, %r14
cmpq %rax, %rbx
jl 0x2aa3f
movq 0x40(%rsp), %r12
cmpl $0x0, 0x1d94e(%rip)     # 0x48410
je 0x2aaee
movq 0x50(%rsp), %rdi
leaq 0x13af1(%rip), %rsi     # 0x3e5c1
callq 0x7663
andl $0x8, %eax
movl 0x80(%rsp), %ecx
notl %ecx
orl %eax, %ecx
sete %r14b
andb 0x30(%rsp), %r14b
jmp 0x2aaf1
xorl %r14d, %r14d
cmpb $0x0, 0x90(%rsp)
je 0x2ac1b
movl 0x54cef4a(%rip), %r15d  # 0x54f9a50
cmpl 0x54cef47(%rip), %r15d  # 0x54f9a54
jne 0x2ab4e
addl $0x400, %r15d           # imm = 0x400
movl %r15d, 0x54cef37(%rip)  # 0x54f9a54
movq 0x54cef24(%rip), %rdi   # 0x54f9a48
imulq $0x2c, %r15, %rsi
callq 0x4560
movq %rax, 0x54cef14(%rip)   # 0x54f9a48
xorl %edi, %edi
testq %rax, %rax
setne %dil
movl $0x1, %esi
callq 0xa6ed
movl 0x54cef02(%rip), %r15d  # 0x54f9a50
movss 0x60(%rsp), %xmm0
movaps 0x100(%rsp), %xmm1
movl 0x80(%rsp), %esi
movq 0x54ceede(%rip), %rbx   # 0x54f9a48
leal 0x1(%r15), %eax
movl %eax, 0x54ceedc(%rip)   # 0x54f9a50
cmpl $-0x1, %esi
sete %al
orb 0x30(%rsp), %al
jne 0x2aba1
leaq 0x13a7f(%rip), %rdi     # 0x3e606
xorl %eax, %eax
callq 0xa2a6
movaps 0x100(%rsp), %xmm1
movss 0x60(%rsp), %xmm0
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
movl 0x30(%rsp), %ecx
xorb $0x1, %cl
movl %r15d, %eax
imulq $0x2c, %rax, %rax
movss %xmm1, 0x14(%rbx,%rax)
movaps 0x120(%rsp), %xmm1
movss %xmm1, 0x18(%rbx,%rax)
movss %xmm0, 0x1c(%rbx,%rax)
movb %cl, 0x20(%rbx,%rax)
movq 0x40(%rsp), %r12
movl %r12d, (%rbx,%rax)
movl 0x4(%rsp), %ecx
movl %ecx, 0x4(%rbx,%rax)
movss 0xb0(%rsp), %xmm0
movss %xmm0, 0x8(%rbx,%rax)
movss 0xb4(%rsp), %xmm0
movss %xmm0, 0xc(%rbx,%rax)
movss 0xb8(%rsp), %xmm0
movss %xmm0, 0x10(%rbx,%rax)
movl %esi, 0x24(%rbx,%rax)
movb %r14b, 0x28(%rbx,%rax)
leaq 0x103dc(%rip), %r15     # 0x3aff7
leaq 0xe1ae(%rip), %r14      # 0x38dd0
incq %r12
movslq (%rbp), %rax
cmpq %rax, %r12
jl 0x2a722
jmp 0x2ac7a
movq %r14, %rdi
leaq 0x102eb(%rip), %rsi     # 0x3af29
callq 0x7663
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %esi
cmpl $0x40, %esi
movq 0x40(%rsp), %r12
movl %esi, 0x80(%rsp)
jb 0x2aabb
leaq 0x102d7(%rip), %rdi     # 0x3af40
movl $0x40, %edx
xorl %eax, %eax
callq 0x9f34
jmp 0x2aabb
movl 0x4(%rsp), %edx
incl %edx
leaq 0x1d7d9(%rip), %rax     # 0x48460
cmpl (%rax), %edx
jl 0x2a6fb
movl 0x54cedbb(%rip), %esi   # 0x54f9a50
leaq 0x13947(%rip), %rdi     # 0x3e5e3
xorl %eax, %eax
callq 0x9c46
cmpl $0x0, 0x54ceda6(%rip)   # 0x54f9a50
movl $0x0, %ebp
je 0x2acdf
xorl %ebx, %ebx
movl $0x4, %r14d
xorl %ebp, %ebp
movq 0x54ced86(%rip), %rax   # 0x54f9a48
movl (%rax,%r14), %edi
callq 0x33a77
addl %eax, %ebp
incq %rbx
movl 0x54ced7a(%rip), %eax   # 0x54f9a50
addq $0x2c, %r14
cmpq %rax, %rbx
jb 0x2acbb
leaq 0x1390f(%rip), %rdi     # 0x3e5f5
movl %ebp, %esi
xorl %eax, %eax
callq 0x9c46
leaq 0x1b856fe(%rip), %rax   # 0x1bb03f4
movl (%rax), %esi
leaq 0x13944(%rip), %rdi     # 0x3e643
xorl %eax, %eax
callq 0x9c46
leaq 0x13940(%rip), %rdi     # 0x3e64d
xorl %eax, %eax
callq 0x9c46
movl $0x137fec80, %edi       # imm = 0x137FEC80
callq 0x491c
movq %rax, 0x538ccbb(%rip)   # 0x53b79e0
leaq 0x1d734(%rip), %rax     # 0x48460
cmpl $0x0, (%rax)
jle 0x2ca83
leaq 0xe094(%rip), %rax      # 0x38dd0
movsd (%rax), %xmm0
movaps %xmm0, 0x160(%rsp)
movss 0x8(%rax), %xmm0
movss %xmm0, 0xe8(%rsp)
leaq 0x20136c7(%rip), %r14   # 0x203e424
leaq 0x540cc8c(%rip), %rsi   # 0x54379f0
leaq 0x1c0(%rsp), %r15
xorl %r13d, %r13d
movq %rsi, %r12
movl %r13d, %edi
callq 0x819f
movq %rax, 0xa8(%rsp)
movq %rax, %rdi
leaq 0x13835(%rip), %rsi     # 0x3e5c1
callq 0x752d
cmpb $0x0, (%rax)
movl $0x0, 0xec(%rsp)
je 0x2adb0
movq %rax, %rdi
callq 0x44f0
movl %eax, 0xec(%rsp)
movq 0xa8(%rsp), %rdi
leaq 0x137ee(%rip), %rsi     # 0x3e5ad
callq 0x752d
cmpb $0x0, (%rax)
movss 0xe8(%rsp), %xmm0
movapd 0x160(%rsp), %xmm1
je 0x2ae32
movq %rax, %rdi
leaq 0x10197(%rip), %rsi     # 0x3af7c
movq %r15, %rdx
leaq 0xb0(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
callq 0x42c0
movss 0xe8(%rsp), %xmm0
movapd 0x160(%rsp), %xmm1
cmpl $0x3, %eax
jne 0x2ae32
movsd 0x1c0(%rsp), %xmm0
movhpd 0xb0(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss 0x20(%rsp), %xmm0
movapd %xmm1, 0x50(%rsp)
movss %xmm0, 0x4(%rsp)
movq 0xa8(%rsp), %rdi
leaq 0x1375a(%rip), %rsi     # 0x3e5a7
callq 0x752d
movb $0x1, %bl
cmpb $0x0, (%rax)
je 0x2aed7
movq %rax, %rdi
callq 0x7ff7
testq %rax, %rax
je 0x2aed7
movq %rax, %rdi
leaq 0x1373d(%rip), %rsi     # 0x3e5ad
callq 0x752d
cmpb $0x0, (%rax)
je 0x2aed7
movq %rax, %rdi
leaq 0x100f8(%rip), %rsi     # 0x3af7c
movq %r15, %rdx
leaq 0xb0(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
callq 0x42c0
cmpl $0x3, %eax
setne %bpl
jne 0x2aeda
movsd 0x1c0(%rsp), %xmm0
movhpd 0xb0(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm0
movapd %xmm0, 0x190(%rsp)
xorps %xmm0, %xmm0
cvtsd2ss 0x20(%rsp), %xmm0
movss %xmm0, 0x110(%rsp)
jmp 0x2aeda
movb $0x1, %bpl
movq 0xa8(%rsp), %rdi
leaq 0x136cb(%rip), %rsi     # 0x3e5b4
callq 0x752d
cmpb $0x0, (%rax)
je 0x2af4d
movq %rax, %rdi
leaq 0x1007f(%rip), %rsi     # 0x3af7c
movq %r15, %rdx
leaq 0xb0(%rsp), %rcx
leaq 0x20(%rsp), %r8
xorl %eax, %eax
callq 0x42c0
cmpl $0x3, %eax
setne %bl
jne 0x2af4d
movsd 0x1c0(%rsp), %xmm0
movhpd 0xb0(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
cvtpd2ps %xmm0, %xmm0
movapd %xmm0, 0x1a0(%rsp)
xorps %xmm0, %xmm0
cvtsd2ss 0x20(%rsp), %xmm0
movss %xmm0, 0x114(%rsp)
movss 0x4(%rsp), %xmm0
orb %bl, %bpl
jne 0x2af6a
movss 0x110(%rsp), %xmm0
subss 0x114(%rsp), %xmm0
movss %xmm0, 0x4(%rsp)
movq 0xa8(%rsp), %rdi
leaq 0xffaa(%rip), %rsi      # 0x3af29
callq 0x752d
cmpb $0x0, (%rax)
je 0x2afb7
movq %rax, %rdi
callq 0x44f0
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %ebx
cmpl $0x40, %ebx
jb 0x2afb9
leaq 0xff99(%rip), %rdi      # 0x3af40
movl %ebx, %esi
movl $0x40, %edx
xorl %eax, %eax
callq 0x9f34
jmp 0x2afb9
xorl %ebx, %ebx
movss 0x4(%rsp), %xmm2
movl %ebx, 0x11c(%rsp)
movl $0xffffffff, 0x7c(%rsp) # imm = 0xFFFFFFFF
cmpl $0x0, (%r14)
jle 0x2b071
leaq 0x2013451(%rip), %rbx   # 0x203e430
xorl %r15d, %r15d
movq %rbx, %rdi
leaq 0xc617(%rip), %rsi      # 0x37603
callq 0x752d
movq %rax, %rdi
leaq 0xc6a5(%rip), %rsi      # 0x376a0
callq 0x4430
testl %eax, %eax
jne 0x2b058
movq %rbx, %rdi
leaq 0xffe9(%rip), %rsi      # 0x3aff7
callq 0x752d
cmpb $0x0, (%rax)
je 0x2b058
movq %rbx, %rdi
leaq 0xffd5(%rip), %rsi      # 0x3aff7
callq 0x752d
movq %rax, %r14
movq 0xa8(%rsp), %rdi
leaq 0xc72e(%rip), %rsi      # 0x37767
callq 0x752d
movq %r14, %rdi
leaq 0x20133dc(%rip), %r14   # 0x203e424
movq %rax, %rsi
callq 0x4430
testl %eax, %eax
je 0x2ca45
incq %r15
movslq (%r14), %rax
addq $0x20, %rbx
cmpq %rax, %r15
jl 0x2afe2
movss 0x4(%rsp), %xmm2
movq %r12, %rsi
movq %r13, 0x180(%rsp)
shlq $0x6, %r13
addq 0x1bf31(%rip), %r13     # 0x46fb8
cmpl $0x0, 0x3c(%r13)
jle 0x2ca1d
movaps 0x190(%rsp), %xmm0
subps 0x1a0(%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 0x50(%rsp), %xmm3
pand %xmm1, %xmm3
pandn %xmm0, %xmm1
xorl %ecx, %ecx
movl 0x7c(%rsp), %eax
cmpl $0x1, %eax
movl $0x0, %edx
sbbl %edx, %edx
por %xmm3, %xmm1
orl %eax, %edx
movl %edx, 0x118(%rsp)
movdqa %xmm1, %xmm3
shufps $0x55, %xmm1, %xmm3     # xmm3 = xmm3[1,1],xmm1[1,1]
movq %r13, 0x188(%rsp)
movaps %xmm1, 0x150(%rsp)
movaps %xmm3, 0x1b0(%rsp)
movq %r14, %rbx
movslq 0x38(%r13), %rax
movl %ecx, 0x120(%rsp)
movslq %ecx, %r15
addq %rax, %r15
leaq 0x52cc8c1(%rip), %rcx   # 0x52f79e0
movq 0xa8(%rsp), %rax
movq %rax, (%rcx,%r15,8)
leaq (%r15,%r15,2), %r12
movlpd %xmm1, (%rsi,%r12,4)
movss %xmm2, 0x8(%rsi,%r12,4)
leaq (%r15,%r15,4), %rax
leaq 0x1b852b9(%rip), %rcx   # 0x1bb0400
leaq (%rcx,%rax,4), %r14
movq %rsi, %rbp
movq %r14, %rdi
callq 0x2f342
movq %rax, %r13
movswl 0xa(%r14), %edi
callq 0x637e
movq %rax, 0x40(%rsp)
movq %r15, 0x30(%rsp)
leaq 0x52cc86c(%rip), %rax   # 0x52f79e0
movq (%rax,%r15,8), %rax
movq %rax, 0x60(%rsp)
movl $0x20, %edi
callq 0x42e0
movq %rax, %r15
movq %rax, %rdi
movq %r14, 0x80(%rsp)
movq %r14, %rsi
movss 0xf894(%rip), %xmm0     # 0x3aa34
callq 0xc54a
movq %r12, 0x138(%rsp)
leaq (%rbp,%r12,4), %rbp
movq %r15, %rdi
leaq 0x1c0(%rsp), %rsi
callq 0xbb2c
movq (%r15), %rax
movq %r15, %rdi
callq *0x8(%rax)
movsd 0x1c0(%rsp), %xmm0
movsd (%rbp), %xmm1
addps %xmm0, %xmm1
movlps %xmm1, 0x1c0(%rsp)
movss 0x1c8(%rsp), %xmm0
addss 0x8(%rbp), %xmm0
movss %xmm0, 0x1c8(%rsp)
movq %rbx, %r14
cmpl $0x0, (%rbx)
jle 0x2b48a
leaq 0x2013222(%rip), %r15   # 0x203e430
xorl %r12d, %r12d
movq $0x0, 0x100(%rsp)
movss 0xf15b(%rip), %xmm0     # 0x3a380
movss %xmm0, 0xf0(%rsp)
movq 0x40(%rsp), %rbx
movq %r15, %rdi
leaq 0xc3c6(%rip), %rsi      # 0x37603
callq 0x752d
movq %rax, %rdi
leaq 0xc42d(%rip), %rsi      # 0x37679
callq 0x4430
testl %eax, %eax
jne 0x2b475
movq %r15, %rdi
leaq 0xc407(%rip), %rsi      # 0x3766a
callq 0x752d
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4310
testl %eax, %eax
jne 0x2b475
movq %r15, %rdi
leaq 0x13328(%rip), %rsi     # 0x3e5ad
leaq 0xb0(%rsp), %rdx
callq 0x8084
movsd 0xb0(%rsp), %xmm0
movsd 0x1c0(%rsp), %xmm1
subps %xmm1, %xmm0
movlps %xmm0, 0xb0(%rsp)
movss 0xb8(%rsp), %xmm1
subss 0x1c8(%rsp), %xmm1
movss %xmm1, 0xb8(%rsp)
mulps %xmm0, %xmm0
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
cvtss2sd %xmm0, %xmm0
addsd %xmm2, %xmm0
mulss %xmm1, %xmm1
cvtss2sd %xmm1, %xmm1
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
sqrtsd %xmm1, %xmm0
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x50(%rsp)
movq %r15, %rdi
leaq 0x1338e(%rip), %rbx     # 0x3e695
movq %rbx, %rsi
callq 0x752d
cmpb $0x0, (%rax)
je 0x2b32e
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7fb3
movss 0x50(%rsp), %xmm1
ucomiss %xmm0, %xmm1
ja 0x2b470
movq %r15, %rdi
leaq 0x13365(%rip), %rbx     # 0x3e69d
movq %rbx, %rsi
callq 0x752d
cmpb $0x0, (%rax)
je 0x2b3a5
movss 0xb0(%rsp), %xmm0
movss 0xb4(%rsp), %xmm1
mulss 0x4(%r13), %xmm1
mulss (%r13), %xmm0
addss %xmm1, %xmm0
movss 0xb8(%rsp), %xmm1
mulss 0x8(%r13), %xmm1
addss %xmm0, %xmm1
andps 0xefbf(%rip), %xmm1     # 0x3a340
movaps %xmm1, 0x90(%rsp)
movq %r15, %rdi
movq %rbx, %rsi
callq 0x7fb3
movaps 0x90(%rsp), %xmm1
ucomiss %xmm0, %xmm1
ja 0x2b470
movq %r15, %rdi
leaq 0x132f5(%rip), %rbx     # 0x3e6a4
movq %rbx, %rsi
callq 0x752d
cmpb $0x0, (%rax)
je 0x2b3f1
movq 0x60(%rsp), %rdi
leaq 0xc23b(%rip), %rsi      # 0x37603
callq 0x752d
movq %rax, %r14
movq %r15, %rdi
movq %rbx, %rsi
callq 0x752d
movq %r14, %rdi
leaq 0x201303f(%rip), %r14   # 0x203e424
movq %rax, %rsi
callq 0x4430
testl %eax, %eax
jne 0x2b470
movq %r15, %rdi
leaq 0x132b1(%rip), %rbx     # 0x3e6ac
movq %rbx, %rsi
callq 0x752d
cmpb $0x0, (%rax)
je 0x2b43d
movq 0x60(%rsp), %rdi
leaq 0xc353(%rip), %rsi      # 0x37767
callq 0x752d
movq %rax, %r14
movq %r15, %rdi
movq %rbx, %rsi
callq 0x752d
movq %r14, %rdi
leaq 0x2012ff3(%rip), %r14   # 0x203e424
movq %rax, %rsi
callq 0x4430
testl %eax, %eax
jne 0x2b470
movss 0xf0(%rsp), %xmm0
ucomiss 0xbc63(%rip), %xmm0     # 0x370b0
movss 0x50(%rsp), %xmm0
jb 0x2b45f
ucomiss 0xf0(%rsp), %xmm0
ja 0x2b470
movss %xmm0, 0xf0(%rsp)
movq %r15, 0x100(%rsp)
movq 0x40(%rsp), %rbx
incq %r12
movslq (%r14), %rax
addq $0x20, %r15
cmpq %rax, %r12
jl 0x2b233
jmp 0x2b496
movq $0x0, 0x100(%rsp)
leaq 0x538c553(%rip), %r13   # 0x53b79f0
movq 0x30(%rsp), %rdx
movq 0x100(%rsp), %rax
movq %rax, (%r13,%rdx,8)
leaq 0x534c52a(%rip), %rax   # 0x53779e0
movl 0xec(%rsp), %ecx
movl %ecx, (%rax,%rdx,4)
movl $0x20, %edi
callq 0x42e0
movq %rax, %r15
movq %rax, %rdi
movq 0x80(%rsp), %rbx
movq %rbx, %rsi
movss 0xf551(%rip), %xmm0     # 0x3aa34
callq 0xc54a
cmpl $0x0, 0x8(%r15)
movss 0x4(%rsp), %xmm2
movaps 0x150(%rsp), %xmm1
movaps 0x1b0(%rsp), %xmm3
je 0x2b553
xorl %eax, %eax
xorl %ecx, %ecx
movq 0x10(%r15), %rdx
movss (%rdx,%rax), %xmm0
addss %xmm1, %xmm0
movss %xmm0, (%rdx,%rax)
movq 0x10(%r15), %rdx
movss 0x4(%rdx,%rax), %xmm0
addss %xmm3, %xmm0
movss %xmm0, 0x4(%rdx,%rax)
movq 0x10(%r15), %rdx
movss 0x8(%rdx,%rax), %xmm0
addss %xmm2, %xmm0
movss %xmm0, 0x8(%rdx,%rax)
incq %rcx
movl 0x8(%r15), %edx
addq $0xc, %rax
cmpq %rdx, %rcx
jb 0x2b509
movswq 0xa(%rbx), %rax
leaq (%rax,%rax,4), %rax
leaq 0x1184e8d(%rip), %rcx   # 0x11b03f0
testb $0x1, 0x24(%rcx,%rax,8)
leaq 0x540c481(%rip), %rsi   # 0x54379f0
jne 0x2ca02
movq 0x30(%rsp), %rax
movq (%r13,%rax,8), %rdi
movl 0x11c(%rsp), %ebx
testq %rdi, %rdi
je 0x2b5bb
leaq 0xf997(%rip), %rsi      # 0x3af29
callq 0x7663
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %ebx
cmpl $0x40, %ebx
jb 0x2b5bb
leaq 0xf993(%rip), %rdi      # 0x3af40
movl %ebx, %esi
movl $0x40, %edx
xorl %eax, %eax
callq 0x9f34
movl 0x8(%r15), %ecx
cmpl $0x2, %ecx
jg 0x2b5ec
movl $0x2, %edi
leaq 0x130e3(%rip), %rsi     # 0x3e6b3
movq 0x30(%rsp), %rdx
xorl %eax, %eax
callq 0xa446
movaps 0x150(%rsp), %xmm1
movss 0x4(%rsp), %xmm2
jmp 0x2b612
cmpl $0x81, %ecx
jb 0x2b61e
leaq 0x130df(%rip), %rdi     # 0x3e6da
movl %ecx, %esi
xorl %eax, %eax
callq 0x9f34
movss 0x4(%rsp), %xmm2
movaps 0x150(%rsp), %xmm1
leaq 0x540c3d7(%rip), %rsi   # 0x54379f0
jmp 0x2ca02
movq %rbp, 0x50(%rsp)
movq 0x538c3b6(%rip), %r12   # 0x53b79e0
movl 0x540c3b8(%rip), %eax   # 0x54379e8
xorl %edi, %edi
cmpq $0xffff0, %rax          # imm = 0xFFFF0
setb %dil
movq %r13, %r14
imulq $0x138, %rax, %r13      # imm = 0x138
leaq (%r12,%r13), %rbp
movl $0x1b, %esi
callq 0xa6ed
movl $0x138, %edx            # imm = 0x138
movq %rbp, %rdi
xorl %esi, %esi
callq 0x4190
movq %r12, 0x40(%rsp)
movq %r13, 0x90(%rsp)
addq %r12, %r13
addq $0x8, %r13
movq %r15, 0x20(%r13)
movq %r15, %rdi
callq 0xb942
movss %xmm0, 0xc(%r13)
movq 0x20(%r13), %rdi
movq %r13, %rsi
callq 0xbb2c
movq 0x30(%rsp), %rax
movl %eax, 0x50(%r13)
movq %r13, 0x100(%rsp)
movss 0xc(%r13), %xmm0
addss 0x550e4fc(%rip), %xmm0  # 0x5539bb0
movss %xmm0, 0x550e4f4(%rip)  # 0x5539bb0
movq (%r14,%rax,8), %rdi
testq %rdi, %rdi
je 0x2b72e
leaq 0xf945(%rip), %rsi      # 0x3b011
callq 0x752d
movq %rax, %rdi
leaq 0xf89d(%rip), %rsi      # 0x3af78
leaq 0xb0(%rsp), %rdx
leaq 0x20(%rsp), %rcx
leaq 0x10(%rsp), %r8
leaq 0x8(%rsp), %r9
xorl %eax, %eax
callq 0x42c0
xorps %xmm2, %xmm2
xorps %xmm1, %xmm1
incl %eax
cmpl $0x5, %eax
ja 0x2b7cb
leaq 0x105df(%rip), %rcx     # 0x3bcf0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movsd 0xb0(%rsp), %xmm1
movaps %xmm1, %xmm2
movlhps %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0]
jmp 0x2b8bb
movq 0x550e42b(%rip), %r12   # 0x5539b60
movq 0x550e42c(%rip), %r14   # 0x5539b68
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
cmpq %r14, %r12
leaq 0x1184ca4(%rip), %rdx   # 0x11b03f0
je 0x2b7b7
movq 0x80(%rsp), %rax
movswq 0xa(%rax), %rax
leaq 0x824d36(%rip), %rcx    # 0x850498
movq (%rcx), %rcx
leaq (%rax,%rax,4), %rax
movslq 0x20(%rdx,%rax,8), %rax
movslq 0x4(%rcx,%rax,4), %r15
addq %rcx, %r15
movq (%r12), %rsi
movq %r15, %rdi
callq 0x4310
testl %eax, %eax
je 0x2b7a9
addq $0x38, %r12
cmpq %r14, %r12
jne 0x2b776
leaq 0xd63a(%rip), %r14      # 0x38dd0
leaq 0x1c0(%rsp), %r15
xorps %xmm0, %xmm0
xorps %xmm1, %xmm1
jmp 0x2b8e2
movsd 0x20(%r12), %xmm0
movss 0x28(%r12), %xmm1
leaq 0xd612(%rip), %r14      # 0x38dd0
leaq 0x1c0(%rsp), %r15
jmp 0x2b8e2
leaq 0x538c21e(%rip), %r14   # 0x53b79f0
movq 0x30(%rsp), %r13
movq (%r14,%r13,8), %rdi
leaq 0x12dcb(%rip), %rsi     # 0x3e5ad
leaq 0x1c0(%rsp), %r15
movq %r15, %rdx
callq 0x8084
xorps %xmm0, %xmm0
cvtss2sd 0x1c0(%rsp), %xmm0
movsd %xmm0, 0x60(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x1c4(%rsp), %xmm0
movsd %xmm0, 0xf0(%rsp)
xorps %xmm0, %xmm0
cvtss2sd 0x1c8(%rsp), %xmm0
movsd %xmm0, 0x178(%rsp)
movq (%r14,%r13,8), %rdi
leaq 0xf7d8(%rip), %rsi      # 0x3b011
callq 0x752d
leaq 0xf743(%rip), %rdi      # 0x3af88
movsd 0x60(%rsp), %xmm0
movsd 0xf0(%rsp), %xmm1
movsd 0x178(%rsp), %xmm2
movq %rax, %rsi
movb $0x3, %al
callq 0x9c46
xorps %xmm2, %xmm2
xorps %xmm1, %xmm1
leaq 0xd55c(%rip), %r14      # 0x38dd0
jmp 0x2b8ca
movsd 0x10(%rsp), %xmm1
movsd 0xb0(%rsp), %xmm2
movhps 0x20(%rsp), %xmm2       # xmm2 = xmm2[0,1],mem[0,1]
jmp 0x2b8bb
movsd 0x8(%rsp), %xmm1
divsd 0x1034e(%rip), %xmm1    # 0x3bbe8
movsd 0xb0(%rsp), %xmm0
movhpd 0x20(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
movapd %xmm1, %xmm2
unpcklpd %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0]
mulpd %xmm0, %xmm2
mulsd 0x10(%rsp), %xmm1
leaq 0xd50e(%rip), %r14      # 0x38dd0
leaq 0x1c0(%rsp), %r15
maxsd 0xed9e(%rip), %xmm1     # 0x3a670
maxpd 0xedd6(%rip), %xmm2     # 0x3a6b0
cvtpd2ps %xmm2, %xmm0
cvtsd2ss %xmm1, %xmm1
movlpd %xmm0, 0xf8(%rbp)
movss %xmm1, 0x100(%rbp)
movb %bl, 0xf4(%rbp)
leaq 0x52460a9(%rip), %rsi   # 0x52719a8
movq (%rsi), %rax
movq 0x80(%rsp), %rdi
movswq 0xa(%rdi), %rcx
leaq (%rcx,%rcx,4), %rcx
leaq 0x1184ad6(%rip), %rdx   # 0x11b03f0
movslq 0x20(%rdx,%rcx,8), %rcx
imulq $0x330, %rcx, %rcx      # imm = 0x330
movss 0x320(%rax,%rcx), %xmm0
movss %xmm0, 0x70(%rbp)
movq (%rsi), %rax
movswq 0xa(%rdi), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rdx,%rcx,8), %rcx
imulq $0x330, %rcx, %rcx      # imm = 0x330
movss 0x324(%rax,%rcx), %xmm0
movss %xmm0, 0x74(%rbp)
movq (%rsi), %rax
movswq 0xa(%rdi), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%rdx,%rcx,8), %rcx
imulq $0x330, %rcx, %rcx      # imm = 0x330
movss 0x328(%rax,%rcx), %xmm0
movss %xmm0, 0x78(%rbp)
leaq 0x538c069(%rip), %rax   # 0x53b79f0
movq 0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
testq %rdi, %rdi
je 0x2bbf9
leaq 0x12d5f(%rip), %rsi     # 0x3e6ff
callq 0x752d
cmpb $0x0, (%rax)
je 0x2bbf9
leaq 0x538c03b(%rip), %rax   # 0x53b79f0
movq 0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x12d3a(%rip), %rsi     # 0x3e6ff
movq %r15, %rdx
callq 0x8084
xorl %ebx, %ebx
xorps %xmm0, %xmm0
cvtss2sd 0x1c0(%rsp,%rbx,4), %xmm0
addsd 0x1025d(%rip), %xmm0    # 0x3bc40
callq 0x4570
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x1c0(%rsp,%rbx,4)
incq %rbx
cmpq $0x3, %rbx
jne 0x2b9cf
movsd 0x1c0(%rsp), %xmm1
movaps %xmm1, %xmm2
shufps $0x55, %xmm1, %xmm2     # xmm2 = xmm2[1,1],xmm1[1,1]
movss 0x1c8(%rsp), %xmm0
movaps %xmm2, %xmm3
minss %xmm0, %xmm3
movaps %xmm1, %xmm4
minss %xmm3, %xmm4
xorps %xmm3, %xmm3
cvtss2sd %xmm4, %xmm3
movsd 0x10214(%rip), %xmm4    # 0x3bc48
ucomisd %xmm3, %xmm4
leaq 0x11849b1(%rip), %r15   # 0x11b03f0
ja 0x2ba61
maxss %xmm0, %xmm2
movaps %xmm1, %xmm3
maxss %xmm2, %xmm3
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
ucomisd 0x101f5(%rip), %xmm2    # 0x3bc50
jbe 0x2baea
leaq 0x538bf88(%rip), %rax   # 0x53b79f0
movq 0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rdi
leaq 0x12b35(%rip), %rsi     # 0x3e5ad
leaq 0xb0(%rsp), %rdx
callq 0x8084
xorps %xmm0, %xmm0
cvtss2sd 0xb0(%rsp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xb4(%rsp), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0xb8(%rsp), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0x1c0(%rsp), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x1c4(%rsp), %xmm4
cvtss2sd 0x1c8(%rsp), %xmm5
leaq 0x12c38(%rip), %rdi     # 0x3e709
movb $0x6, %al
callq 0x9f34
movsd 0x1c0(%rsp), %xmm1
movss 0x1c8(%rsp), %xmm0
cvtps2pd %xmm1, %xmm1
mulpd 0xfa2b(%rip), %xmm1     # 0x3b520
cvtpd2ps %xmm1, %xmm1
movlpd %xmm1, 0xb0(%rsp)
cvtss2sd %xmm0, %xmm0
mulsd 0xfa72(%rip), %xmm0     # 0x3b580
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0xb8(%rsp)
xorl %ebx, %ebx
movss 0xb0(%rsp,%rbx,4), %xmm0
movss 0x1c8e6(%rip), %xmm1    # 0x48414
callq 0x4500
movss %xmm0, 0xb0(%rsp,%rbx,4)
incq %rbx
cmpq $0x3, %rbx
jne 0x2bb1d
movss 0x1c8cb(%rip), %xmm3    # 0x48418
movsd 0xb0(%rsp), %xmm0
movaps %xmm3, %xmm4
shufps $0x0, %xmm3, %xmm4      # xmm4 = xmm4[0,0],xmm3[0,0]
mulps %xmm0, %xmm4
movaps %xmm4, %xmm1
mulss 0xb8(%rsp), %xmm3
shufps $0x55, %xmm4, %xmm1     # xmm1 = xmm1[1,1],xmm4[1,1]
movaps %xmm1, %xmm0
maxss %xmm3, %xmm0
movaps %xmm4, %xmm2
maxss %xmm0, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
ucomisd 0xf9fb(%rip), %xmm0     # 0x3b588
jbe 0x2bbf0
movq 0x80(%rsp), %rax
movswq 0xa(%rax), %rax
leaq (%rax,%rax,4), %rax
movslq 0x20(%r15,%rax,8), %rax
imulq $0x330, %rax, %rsi      # imm = 0x330
leaq 0x5245df5(%rip), %rax   # 0x52719a8
addq (%rax), %rsi
xorps %xmm0, %xmm0
cvtss2sd %xmm4, %xmm0
cvtss2sd %xmm1, %xmm1
xorps %xmm2, %xmm2
cvtss2sd %xmm3, %xmm2
leaq 0xfcf6(%rip), %rdi      # 0x3b8c5
movb $0x3, %al
movaps %xmm3, 0x60(%rsp)
movaps %xmm4, 0xf0(%rsp)
callq 0xa2a6
movaps 0xf0(%rsp), %xmm4
movaps 0x60(%rsp), %xmm3
movlps %xmm4, 0x70(%rbp)
movss %xmm3, 0x78(%rbp)
leaq 0x52cbde0(%rip), %rax   # 0x52f79e0
movq 0x30(%rsp), %rcx
movq (%rax,%rcx,8), %rsi
movss 0xb493(%rip), %xmm1     # 0x370a4
subq 0x1b3b8(%rip), %rsi     # 0x46fd0
leaq 0xf2e9(%rip), %rbx      # 0x3af08
je 0x2bcdc
movl 0x54cde25(%rip), %eax   # 0x54f9a50
xorps %xmm0, %xmm0
testq %rax, %rax
je 0x2bc5d
movq 0x54cde0e(%rip), %rdx   # 0x54f9a48
sarq $0x5, %rsi
addq $0x24, %rdx
xorl %ecx, %ecx
movslq -0x24(%rdx), %rdi
cmpq %rdi, %rsi
je 0x2bc61
incq %rcx
addq $0x2c, %rdx
cmpq %rcx, %rax
jne 0x2bc44
movl %eax, %ecx
jmp 0x2bcc3
xorl %ecx, %ecx
jmp 0x2bcc3
cmpb $0x1, -0x4(%rdx)
movss 0xb437(%rip), %xmm1     # 0x370a4
jne 0x2bcae
movss -0x10(%rdx), %xmm0
addss -0xc(%rdx), %xmm0
addss -0x8(%rdx), %xmm0
divss 0xff4a(%rip), %xmm0     # 0x3bbd0
movss 0xb416(%rip), %xmm3     # 0x370a4
addss %xmm3, %xmm0
xorpd %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, (%rdx)
xorps %xmm0, %xmm0
jne 0x2bcb9
movaps %xmm1, %xmm0
cmpl $-0x1, 0x7c(%rsp)
je 0x2bcc3
movaps %xmm1, %xmm0
movss 0xb3d9(%rip), %xmm1     # 0x370a4
cmpl %eax, %ecx
je 0x2bcd2
movaps %xmm0, %xmm1
cmpl $-0x1, 0x7c(%rsp)
jne 0x2bcdc
movaps %xmm0, %xmm1
movsd 0x70(%rbp), %xmm0
movaps %xmm1, %xmm2
unpcklps %xmm1, %xmm2            # xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
mulps %xmm0, %xmm2
movlps %xmm2, 0x7c(%rbp)
movss 0x78(%rbp), %xmm2
mulss %xmm2, %xmm1
movss %xmm1, 0x84(%rbp)
movl 0x118(%rsp), %eax
movl %eax, 0xf0(%rbp)
movaps %xmm0, %xmm1
shufps $0x55, %xmm0, %xmm1     # xmm1 = xmm1[1,1],xmm0[1,1]
mulss 0xfc(%rbp), %xmm1
mulss 0xf8(%rbp), %xmm0
addss %xmm1, %xmm0
mulss 0x100(%rbp), %xmm2
addss %xmm0, %xmm2
divss 0xed05(%rip), %xmm2     # 0x3aa40
movslq 0x58(%rbp), %rax
leaq 0x538bcaa(%rip), %rcx   # 0x53b79f0
movq (%rcx,%rax,8), %rdi
testq %rdi, %rdi
je 0x2bd87
movaps %xmm2, 0x60(%rsp)
movq %rbx, %rsi
callq 0x752d
cmpb $0x0, (%rax)
movl 0x58(%rbp), %eax
je 0x2bd90
cltq
leaq 0x538bc83(%rip), %r15   # 0x53b79f0
movq (%r15,%rax,8), %rdi
movq %rbx, %rsi
callq 0x7fb3
movaps 0x60(%rsp), %xmm2
mulss %xmm0, %xmm2
movl 0x58(%rbp), %eax
jmp 0x2bd9c
leaq 0x538bc62(%rip), %r15   # 0x53b79f0
jmp 0x2bd9c
leaq 0x538bc59(%rip), %r15   # 0x53b79f0
movaps 0x60(%rsp), %xmm2
movss 0x1c62c(%rip), %xmm0    # 0x483d0
xorps %xmm1, %xmm1
cmpltps %xmm2, %xmm1
cmpnltps %xmm0, %xmm2
andps %xmm1, %xmm2
movd %xmm2, %ebx
cltq
movq (%r15,%rax,8), %rdi
testq %rdi, %rdi
je 0x2bde2
leaq 0xf1aa(%rip), %rsi      # 0x3af72
callq 0x7663
cmpl $0x2, %eax
leaq 0x1184619(%rip), %r15   # 0x11b03f0
je 0x2bdeb
cmpl $0x1, %eax
jne 0x2bded
xorl %ebx, %ebx
jmp 0x2bded
leaq 0x1184607(%rip), %r15   # 0x11b03f0
jmp 0x2bded
movb $0x1, %bl
andb $0x1, %bl
movb %bl, 0x104(%rbp)
movl 0x58(%rbp), %edi
callq 0x2d73d
movss %xmm0, 0x30(%rbp)
movslq 0x58(%rbp), %rdi
leaq 0x538bbe2(%rip), %rax   # 0x53b79f0
movq (%rax,%rdi,8), %rax
testq %rax, %rax
je 0x2be58
movq %rax, %rdi
leaq 0x12993(%rip), %rbx     # 0x3e7b4
movq %rbx, %rsi
callq 0x752d
cmpb $0x0, (%rax)
movl 0x58(%rbp), %edi
je 0x2be58
movslq %edi, %rax
leaq 0x538bbb5(%rip), %rcx   # 0x53b79f0
movq (%rcx,%rax,8), %rdi
movq %rbx, %rsi
callq 0x7fb3
movaps %xmm0, %xmm1
movss 0xb252(%rip), %xmm0     # 0x370a4
maxss %xmm1, %xmm0
jmp 0x2beb0
cmpb $0x0, 0x104(%rbp)
leaq 0x1c5c2(%rip), %rax     # 0x48428
leaq 0x1c5bf(%rip), %rcx     # 0x4842c
cmovneq %rcx, %rax
movss (%rax), %xmm0
movss %xmm0, 0x60(%rsp)
callq 0x2d73d
mulss 0x60(%rsp), %xmm0
movslq 0x58(%rbp), %rax
movq 0x550dce7(%rip), %rcx   # 0x5539b78
leaq (%rax,%rax,4), %rax
leaq 0x1b84564(%rip), %rdx   # 0x1bb0400
movswq 0xa(%rdx,%rax,4), %rax
leaq (%rax,%rax,4), %rax
movslq 0x20(%r15,%rax,8), %rax
mulss (%rcx,%rax,4), %xmm0
movss %xmm0, 0x34(%rbp)
movq 0x54cdca4(%rip), %rax   # 0x54f9b60
movq 0x80(%rsp), %rdx
movswq 0xa(%rdx), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%r15,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movss (%rax,%rcx,4), %xmm0
movss %xmm0, 0x64(%rbp)
movq 0x54cdc79(%rip), %rax   # 0x54f9b60
movswq 0xa(%rdx), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%r15,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x4(%rax,%rcx,4), %xmm1
movss %xmm1, 0x68(%rbp)
movq 0x54cdc55(%rip), %rax   # 0x54f9b60
movswq 0xa(%rdx), %rcx
leaq (%rcx,%rcx,4), %rcx
movslq 0x20(%r15,%rcx,8), %rcx
leaq (%rcx,%rcx,2), %rcx
movss 0x8(%rax,%rcx,4), %xmm1
movss %xmm1, 0x6c(%rbp)
subss 0x160(%rsp), %xmm0
andps 0xe408(%rip), %xmm0     # 0x3a340
cvtss2sd %xmm0, %xmm0
movb $0x1, %al
ucomisd 0xeb62(%rip), %xmm0     # 0x3aaa8
leaq 0x1d044b3(%rip), %rbx   # 0x1d30400
leaq 0x10044ac(%rip), %r15   # 0x1030400
ja 0x2bfa1
movq 0x40(%rsp), %rax
movq 0x90(%rsp), %rcx
addq %rcx, %rax
addq $0x68, %rax
xorl %edx, %edx
movq %rdx, %rcx
cmpq $0x2, %rdx
je 0x2bf9a
movss (%rax,%rcx,4), %xmm0
subss 0x4(%r14,%rcx,4), %xmm0
andps 0xe3b8(%rip), %xmm0     # 0x3a340
cvtss2sd %xmm0, %xmm0
leaq 0x1(%rcx), %rdx
ucomisd 0xeb10(%rip), %xmm0     # 0x3aaa8
jbe 0x2bf6c
cmpq $0x2, %rcx
setb %al
movb %al, 0x60(%rbp)
movq %rbp, %rdi
callq 0x2d89d
movq %rbp, %rdi
callq 0x2dcfe
incl 0x540ba2e(%rip)         # 0x54379e8
leaq 0x524ba1f(%rip), %rax   # 0x52779e0
movq 0x30(%rsp), %rcx
movq %rbp, (%rax,%rcx,8)
movq 0x80(%rsp), %rcx
movswl 0x8(%rcx), %eax
testl %eax, %eax
jle 0x2c06d
movslq 0x4(%rcx), %rcx
movl %eax, %edx
shlq $0x2, %rcx
addq 0x1afa1(%rip), %rcx     # 0x46f90
xorps %xmm1, %xmm1
xorps %xmm0, %xmm0
xorl %esi, %esi
leaq 0x2012426(%rip), %r14   # 0x203e424
movq 0x138(%rsp), %r11
movslq (%rcx,%rsi,4), %rdi
movl %edi, %r8d
negl %r8d
testq %rdi, %rdi
leaq (%rbx,%r8,4), %r9
leaq 0x2(%rbx,%r8,4), %r8
leaq (%rbx,%rdi,4), %r10
leaq 0x2(%rbx,%rdi,4), %rdi
cmovleq %r9, %rdi
cmovleq %r8, %r10
movzwl (%r10), %r8d
leaq (%r8,%r8,2), %r8
addss 0x8(%r15,%r8,4), %xmm0
movzwl (%rdi), %edi
leaq (%rdi,%rdi,2), %rdi
movsd (%r15,%r8,4), %xmm2
addps %xmm1, %xmm2
movsd (%r15,%rdi,4), %xmm1
addps %xmm2, %xmm1
addss 0x8(%r15,%rdi,4), %xmm0
incq %rsi
cmpq %rsi, %rdx
jne 0x2c006
cvtps2pd %xmm1, %xmm1
cvtss2sd %xmm0, %xmm0
jmp 0x2c082
xorps %xmm1, %xmm1
xorps %xmm0, %xmm0
leaq 0x20123aa(%rip), %r14   # 0x203e424
movq 0x138(%rsp), %r11
addl %eax, %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movsd 0xe0d5(%rip), %xmm3     # 0x3a168
divsd %xmm2, %xmm3
mulsd %xmm3, %xmm0
cvtsd2ss %xmm0, %xmm0
unpcklpd %xmm3, %xmm3            # xmm3 = xmm3[0,0]
mulpd %xmm1, %xmm3
cvtpd2ps %xmm3, %xmm1
movq 0x50(%rsp), %rcx
movsd (%rcx), %xmm2
addps %xmm1, %xmm2
leaq 0x4c17852(%rip), %rax   # 0x4c43910
movlps %xmm2, (%rax,%r11,4)
addss 0x8(%rcx), %xmm0
movss %xmm0, 0x8(%rax,%r11,4)
movq 0x28(%rbp), %rdi
leaq 0xb0(%rsp), %rsi
leaq 0x20(%rsp), %rdx
callq 0xba48
cmpb $0x1, 0x1c33a(%rip)     # 0x48426
leaq 0x540b8fd(%rip), %rsi   # 0x54379f0
jne 0x2c9f4
movss 0x28(%rsp), %xmm0
subss 0xb8(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
movsd 0xb0(%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
sqrtsd %xmm0, %xmm0
cvtsd2ss %xmm0, %xmm0
ucomiss 0x34(%rbp), %xmm0
jbe 0x2c9f4
movss 0x14(%rbp), %xmm2
movss 0xaf4d(%rip), %xmm0     # 0x370a4
ucomiss %xmm2, %xmm0
jbe 0x2c19d
xorps %xmm0, %xmm0
cvtss2sd 0x8(%rbp), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0xc(%rbp), %xmm1
xorps %xmm3, %xmm3
cvtss2sd %xmm2, %xmm3
xorps %xmm2, %xmm2
cvtss2sd 0x10(%rbp), %xmm2
movl 0x58(%rbp), %edx
movl $0x2, %edi
leaq 0x125df(%rip), %rsi     # 0x3e769
movb $0x4, %al
callq 0xa446
leaq 0x540b858(%rip), %rsi   # 0x54379f0
jmp 0x2c9f4
movl $0x20000, %edx          # imm = 0x20000
leaq 0x550da17(%rip), %rdi   # 0x5539bc0
xorl %esi, %esi
callq 0x4190
movl $0x0, 0x552da06(%rip)   # 0x5559bc0
movslq 0x58(%rbp), %rdi
leaq (%rdi,%rdi,4), %rax
leaq 0x1b84237(%rip), %rcx   # 0x1bb0400
movswq 0xa(%rcx,%rax,4), %rax
leaq (%rax,%rax,4), %rbx
shlq $0x3, %rbx
addq 0x1ad92(%rip), %rbx     # 0x46f70
callq 0x2f29b
movss 0x8(%rbp), %xmm0
movss 0xc(%rbp), %xmm1
movss 0x10(%rbp), %xmm2
movsd (%rax), %xmm3
movss 0x8(%rax), %xmm4
movl $0x1, %edx
movb $0x1, %cl
leaq 0x1c0(%rsp), %r15
movq %r15, %rax
shlq $0x4, %rdx
movss 0x8(%rbx,%rdx), %xmm5
movsd (%rbx,%rdx), %xmm6
movaps %xmm3, %xmm7
mulps %xmm6, %xmm7
shufps $0x55, %xmm7, %xmm7     # xmm7 = xmm7[1,1,1,1]
movaps %xmm3, %xmm8
mulss %xmm6, %xmm8
addss %xmm7, %xmm8
movaps %xmm4, %xmm7
mulss %xmm5, %xmm7
addss %xmm8, %xmm7
movaps %xmm7, %xmm8
shufps $0x0, %xmm7, %xmm8      # xmm8 = xmm8[0,0],xmm7[0,0]
mulps %xmm3, %xmm8
subps %xmm8, %xmm6
movlps %xmm6, (%rax)
mulss %xmm4, %xmm7
subss %xmm7, %xmm5
movaps %xmm6, %xmm7
mulps %xmm6, %xmm7
shufps $0x55, %xmm7, %xmm7     # xmm7 = xmm7[1,1,1,1]
movaps %xmm6, %xmm8
mulss %xmm6, %xmm8
addss %xmm7, %xmm8
movaps %xmm5, %xmm7
mulss %xmm5, %xmm7
addss %xmm8, %xmm7
cvtss2sd %xmm7, %xmm7
sqrtsd %xmm7, %xmm7
movsd 0xae87(%rip), %xmm8     # 0x37118
ucomisd %xmm7, %xmm8
jbe 0x2c2a0
xorps %xmm6, %xmm6
xorps %xmm5, %xmm5
jmp 0x2c2c2
cvtps2pd %xmm6, %xmm6
movapd %xmm7, %xmm8
unpcklpd %xmm7, %xmm8            # xmm8 = xmm8[0],xmm7[0]
divpd %xmm8, %xmm6
cvtpd2ps %xmm6, %xmm6
cvtss2sd %xmm5, %xmm5
divsd %xmm7, %xmm5
cvtsd2ss %xmm5, %xmm5
movss %xmm5, 0x8(%rax)
movlpd %xmm6, (%rax)
movapd %xmm6, %xmm7
shufps $0x55, %xmm6, %xmm7     # xmm7 = xmm7[1,1],xmm6[1,1]
mulss %xmm1, %xmm7
mulss %xmm0, %xmm6
addss %xmm7, %xmm6
mulss %xmm2, %xmm5
addss %xmm6, %xmm5
movss %xmm5, 0xc(%rax)
addq $0x14, %rax
xorl %edx, %edx
testb $0x1, %cl
movl $0x0, %ecx
jne 0x2c20d
movl $0x20, %edi
callq 0x42e0
movq %rax, %r14
movq 0x28(%rbp), %rsi
movq %rax, %rdi
callq 0xc1f2
movl 0x8(%r14), %ecx
movaps 0xf93c(%rip), %xmm5     # 0x3bc60
testq %rcx, %rcx
je 0x2c3e0
movq 0x10(%r14), %rax
movaps 0x1c0(%rsp), %xmm2
movups 0x1c4(%rsp), %xmm3
movups 0x1c8(%rsp), %xmm1
movss 0x1dc(%rsp), %xmm0
movlhps %xmm1, %xmm0            # xmm0 = xmm0[0],xmm1[0]
shufps $0xe2, %xmm1, %xmm0     # xmm0 = xmm0[2,0],xmm1[2,3]
movss 0x1d4(%rsp), %xmm1
movlhps %xmm2, %xmm1            # xmm1 = xmm1[0],xmm2[0]
shufps $0xe2, %xmm2, %xmm1     # xmm1 = xmm1[2,0],xmm2[2,3]
movss 0x1d8(%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 0xf8d6(%rip), %xmm3     # 0x3bc60
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 0x2c38a
movss 0xacbc(%rip), %xmm1     # 0x370a4
maxss 0x34(%rbp), %xmm1
movaps %xmm5, %xmm0
unpckhpd %xmm5, %xmm0            # xmm0 = xmm0[1],xmm5[1]
movaps %xmm0, 0x60(%rsp)
movaps %xmm5, 0x30(%rsp)
subps %xmm5, %xmm0
movaps %xmm0, 0x50(%rsp)
addps 0xf863(%rip), %xmm0     # 0x3bc70
movaps %xmm1, 0x40(%rsp)
shufps $0x0, %xmm1, %xmm1      # xmm1 = xmm1[0,0,0,0]
divps %xmm1, %xmm0
movaps %xmm0, 0x90(%rsp)
callq 0x41a0
movaps %xmm0, 0x80(%rsp)
movaps 0x90(%rsp), %xmm0
shufps $0x55, %xmm0, %xmm0     # xmm0 = xmm0[1,1,1,1]
callq 0x41a0
movaps 0x80(%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 0xf816(%rip), %xmm1     # 0x3bc80
movmskpd %xmm1, %ecx
testb $0x1, %cl
jne 0x2c487
movaps 0x40(%rsp), %xmm1
movaps %xmm1, 0x90(%rsp)
movaps 0x50(%rsp), %xmm3
jmp 0x2c4a4
movaps 0x50(%rsp), %xmm3
movaps %xmm3, %xmm1
mulss 0xf73d(%rip), %xmm1     # 0x3bbd4
movaps %xmm1, 0x90(%rsp)
movaps 0x40(%rsp), %xmm1
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, 0x80(%rsp)
cmovgel %esi, %r12d
testb $0x2, %cl
movaps 0x30(%rsp), %xmm2
je 0x2c4e9
shufps $0x55, %xmm3, %xmm3     # xmm3 = xmm3[1,1,1,1]
mulss 0xf6ee(%rip), %xmm3     # 0x3bbd4
movaps %xmm3, %xmm1
leaq 0x1d4(%rsp), %rsi
movaps %xmm1, 0x40(%rsp)
cmpl $0x40, %r12d
cmovgel %edx, %r12d
movl $0x0, 0x552d6b8(%rip)   # 0x5559bc0
cmpl $0x2, %eax
jl 0x2c65f
movaps 0x60(%rsp), %xmm0
addss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
xorps %xmm1, %xmm1
cvtsi2sd %ebx, %xmm1
mulsd 0xddd3(%rip), %xmm0     # 0x3a300
xorps %xmm2, %xmm2
cvtss2sd 0x90(%rsp), %xmm2
mulsd 0xe0cf(%rip), %xmm1     # 0x3a610
mulsd %xmm2, %xmm1
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss %xmm0, 0x60(%rsp)
movl $0x1, %r13d
xorps %xmm0, %xmm0
cvtsi2ss %r13d, %xmm0
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%rsp)
mulss 0x90(%rsp), %xmm0
addss 0x60(%rsp), %xmm0
movq %r14, %rdi
movq %r15, %rsi
movss %xmm0, 0x50(%rsp)
leaq 0x10(%rsp), %rdx
leaq 0x8(%rsp), %rcx
movss 0xe497(%rip), %xmm1     # 0x3aa34
callq 0xc808
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2c697
movq %r15, %rsi
movss 0x50(%rsp), %xmm0
movss 0xf617(%rip), %xmm1     # 0x3bbd8
callq 0xce80
cmpl $0x2, %eax
je 0x2c67e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2c5f4
movq %r15, %rsi
movss 0x50(%rsp), %xmm0
movss 0xf5ee(%rip), %xmm1     # 0x3bbd8
callq 0xce80
cmpl $0x2, %eax
jne 0x2c61f
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2c60d
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2c64c
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2c64c
movq (%r14), %rax
movq %r14, %rdi
callq *0x8(%rax)
movq 0x8(%rsp), %rax
movl 0x552d58d(%rip), %ecx   # 0x5559bc0
leaq 0x550d586(%rip), %rdx   # 0x5539bc0
movq %rax, (%rdx,%rcx,8)
leal 0x1(%rcx), %eax
movl %eax, 0x552d579(%rip)   # 0x5559bc0
movq 0x10(%rsp), %r14
movaps 0x30(%rsp), %xmm2
incl %r13d
cmpl %r13d, %ebx
jne 0x2c55c
jmp 0x2c6ac
movq %r14, 0x550d55a(%rip)   # 0x5539bc0
movl $0x1, 0x552d550(%rip)   # 0x5559bc0
movl $0x1, %eax
leaq 0x550d544(%rip), %r15   # 0x5539bc0
jmp 0x2c6db
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2c697
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2c6a7
movq (%rdi), %rax
callq *0x8(%rax)
movaps 0x30(%rsp), %xmm2
movl 0x552d50e(%rip), %ecx   # 0x5559bc0
leal 0x1(%rcx), %eax
leaq 0x550d504(%rip), %r15   # 0x5539bc0
movq %r14, (%r15,%rcx,8)
movl %eax, 0x552d4fa(%rip)   # 0x5559bc0
cmpq $0x7ffffffe, %rcx       # imm = 0x7FFFFFFE
leaq 0x1d4(%rsp), %rsi
ja 0x2c8c4
movaps %xmm2, %xmm0
shufps $0xff, %xmm2, %xmm0     # xmm0 = xmm0[3,3],xmm2[3,3]
shufps $0x55, %xmm2, %xmm2     # xmm2 = xmm2[1,1,1,1]
addss %xmm0, %xmm2
xorps %xmm0, %xmm0
cvtss2sd %xmm2, %xmm0
mulsd 0xdc07(%rip), %xmm0     # 0x3a300
xorps %xmm1, %xmm1
cvtsi2sd %r12d, %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x40(%rsp), %xmm2
mulsd 0xdefe(%rip), %xmm1     # 0x3a610
mulsd %xmm2, %xmm1
movaps 0x40(%rsp), %xmm2
addsd %xmm0, %xmm1
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss %xmm0, 0x30(%rsp)
movl %eax, %eax
movq %rax, 0x90(%rsp)
xorl %r13d, %r13d
movq (%r15,%r13,8), %rbx
movq $0x0, (%r15,%r13,8)
cmpl $0x2, 0x80(%rsp)
jl 0x2c89a
movl $0x1, %r15d
xorps %xmm0, %xmm0
cvtsi2ss %r15d, %xmm0
xorl %eax, %eax
movq %rax, 0x10(%rsp)
movq %rax, 0x8(%rsp)
mulss %xmm2, %xmm0
addss 0x30(%rsp), %xmm0
movq %rbx, %rdi
movss %xmm0, 0x50(%rsp)
leaq 0x10(%rsp), %rdx
movq %rsi, %r14
leaq 0x8(%rsp), %rcx
movss 0xe29f(%rip), %xmm1     # 0x3aa34
callq 0xc808
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2c87d
movq %r14, %rsi
movss 0x50(%rsp), %xmm0
movss 0xf41f(%rip), %xmm1     # 0x3bbd8
callq 0xce80
cmpl $0x2, %eax
je 0x2c864
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2c7f1
leaq 0x1d4(%rsp), %rsi
movss 0x50(%rsp), %xmm0
movss 0xf3f1(%rip), %xmm1     # 0x3bbd8
callq 0xce80
cmpl $0x2, %eax
jne 0x2c81c
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2c80a
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2c849
movq (%rdi), %rax
callq *0x8(%rax)
jmp 0x2c849
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x8(%rax)
movq 0x8(%rsp), %rax
movl 0x552d390(%rip), %ecx   # 0x5559bc0
leaq 0x550d389(%rip), %rdx   # 0x5539bc0
movq %rax, (%rdx,%rcx,8)
leal 0x1(%rcx), %eax
movl %eax, 0x552d37c(%rip)   # 0x5559bc0
movq 0x10(%rsp), %rbx
leaq 0x1d4(%rsp), %rsi
movaps 0x40(%rsp), %xmm2
incl %r15d
cmpl %r15d, %r12d
jne 0x2c759
jmp 0x2c89a
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x2c87d
movq (%rdi), %rax
callq *0x8(%rax)
movq $0x0, 0x10(%rsp)
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x2c88d
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x1d4(%rsp), %rsi
movaps 0x40(%rsp), %xmm2
movl 0x552d320(%rip), %eax   # 0x5559bc0
leaq 0x550d319(%rip), %r15   # 0x5539bc0
movq %rbx, (%r15,%rax,8)
incl %eax
movl %eax, 0x552d30d(%rip)   # 0x5559bc0
incq %r13
cmpq 0x90(%rsp), %r13
jne 0x2c739
movq 0x28(%rbp), %rdi
testq %rdi, %rdi
je 0x2c8d3
movq (%rdi), %rax
callq *0x8(%rax)
xorl %eax, %eax
movq %rax, 0x28(%rbp)
movq %rax, (%rbp)
movq 0x550d2dc(%rip), %rdi   # 0x5539bc0
movl $0x1, %r14d
testq %rdi, %rdi
leaq 0x540b0fc(%rip), %r12   # 0x54379f0
jne 0x2c90d
leaq 0x550d2c3(%rip), %r15   # 0x5539bc0
movq 0x8(%r15), %rdi
addq $0x8, %r15
incl %r14d
testq %rdi, %rdi
je 0x2c8fd
movq %rdi, 0x28(%rbp)
callq 0xb942
movss %xmm0, 0x14(%rbp)
movq 0x28(%rbp), %rdi
movq 0x100(%rsp), %rsi
callq 0xbb2c
movq %rbp, %rdi
callq 0x2d89d
movq %rbp, %rdi
callq 0x2dcfe
movl 0x552d27e(%rip), %eax   # 0x5559bc0
cmpl %eax, %r14d
movq %r12, %rsi
jae 0x2c9ed
movl 0x540b094(%rip), %ecx   # 0x54379e8
imulq $0x138, %rcx, %rbx      # imm = 0x138
addq 0x538b07e(%rip), %rbx   # 0x53b79e0
addq $0x8, %r15
cmpq $0x0, (%r15)
je 0x2c9dd
movl $0x138, %edx            # imm = 0x138
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x4240
movq (%r15), %rdi
movq %rdi, 0x28(%rbx)
callq 0xb942
movss %xmm0, 0x14(%rbx)
movq 0x28(%rbx), %rdi
leaq 0x8(%rbx), %rsi
callq 0xbb2c
movq %rbx, %rdi
callq 0x2d89d
movq %rbx, %rdi
callq 0x2dcfe
addq $0x138, %rbx            # imm = 0x138
movl 0x540b031(%rip), %eax   # 0x54379e8
incl %eax
movl %eax, 0x540b029(%rip)   # 0x54379e8
xorl %edi, %edi
cmpl $0xffff0, %eax          # imm = 0xFFFF0
setb %dil
movl $0x1b, %esi
callq 0xa6ed
movq %r12, %rsi
movl 0x552d1e3(%rip), %eax   # 0x5559bc0
incl %r14d
addq $0x8, %r15
cmpl %eax, %r14d
jb 0x2c966
leaq 0x2011a30(%rip), %r14   # 0x203e424
movss 0x4(%rsp), %xmm2
movaps 0x150(%rsp), %xmm1
movl 0x120(%rsp), %ecx
incl %ecx
movq 0x188(%rsp), %r13
cmpl 0x3c(%r13), %ecx
jl 0x2b104
movq 0x180(%rsp), %r13
incq %r13
leaq 0x1ba31(%rip), %rax     # 0x48460
movslq (%rax), %rax
cmpq %rax, %r13
leaq 0x1c0(%rsp), %r15
jl 0x2ad6f
jmp 0x2ca83
movq %rbx, %rdi
leaq 0xe4da(%rip), %rsi      # 0x3af29
callq 0x7663
movl %eax, %ecx
negl %ecx
cmovsl %eax, %ecx
movzbl %cl, %esi
cmpl $0x40, %esi
movl %esi, 0x7c(%rsp)
jb 0x2b06b
leaq 0xe4ce(%rip), %rdi      # 0x3af40
movl $0x40, %edx
xorl %eax, %eax
callq 0x9f34
jmp 0x2b06b
movl 0x540af5f(%rip), %esi   # 0x54379e8
leaq 0x11bcf(%rip), %rdi     # 0x3e65f
xorl %eax, %eax
callq 0x9c46
movss 0x550d111(%rip), %xmm1  # 0x5539bb0
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
divss 0xf12e(%rip), %xmm1     # 0x3bbdc
cvttss2si %xmm1, %esi
leaq 0x11bb7(%rip), %rdi     # 0x3e670
movb $0x1, %al
callq 0x9c46
cmpb $0x1, 0x54ccf65(%rip)   # 0x54f9a2c
jne 0x2cbf2
leaq 0x11a12(%rip), %rsi     # 0x3e4e6
leaq 0x1a875(%rip), %rdx     # 0x47350
leaq 0x1c0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x40a0
leaq 0xe892(%rip), %rdi      # 0x3b386
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9c46
leaq 0x11277(%rip), %rsi     # 0x3dd7c
movq %rbx, %rdi
callq 0x4360
testq %rax, %rax
je 0x2cbe4
movq %rax, %rbx
movl 0x540aec9(%rip), %eax   # 0x54379e8
testl %eax, %eax
je 0x2cbd3
xorl %ebp, %ebp
movq 0x538aeb0(%rip), %r15   # 0x53b79e0
leaq 0xf1e9(%rip), %r12      # 0x3bd20
leaq 0xe85a(%rip), %r14      # 0x3b398
cmpl $0x1, 0x5c(%r15)
je 0x2cbc2
movss 0x8(%r15), %xmm0
movss %xmm0, 0x50(%rsp)
movss 0xc(%r15), %xmm0
movss %xmm0, 0x40(%rsp)
movss 0x10(%r15), %xmm0
movss %xmm0, 0x30(%rsp)
movl $0x8, %r13d
movss -0x8(%r13,%r12), %xmm0
addss 0x50(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x4(%r13,%r12), %xmm1
addss 0x40(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
movss (%r13,%r12), %xmm2
addss 0x30(%rsp), %xmm2
cvtss2sd %xmm2, %xmm2
movq %rbx, %rdi
movq %r14, %rsi
movb $0x3, %al
callq 0x4450
addq $0xc, %r13
cmpq $0xbc, %r13
jne 0x2cb6f
movl 0x540ae26(%rip), %eax   # 0x54379e8
incl %ebp
addq $0x138, %r15            # imm = 0x138
cmpl %eax, %ebp
jb 0x2cb3e
movq %rbx, %rdi
callq 0x42d0
leaq 0xe7c0(%rip), %rdi      # 0x3b3a2
jmp 0x2cbeb
leaq 0xe7bc(%rip), %rdi      # 0x3b3a7
xorl %eax, %eax
callq 0x9c46
movl 0x1b7c0(%rip), %eax     # 0x483b8
cmpq $0x2, %rax
ja 0x2cc1e
leaq 0xf1cf(%rip), %rcx      # 0x3bdd4
movl 0x540addd(%rip), %edx   # 0x54379e8
xorl %edi, %edi
cmpl (%rcx,%rax,4), %edx
setb %dil
movl $0x1b, %esi
callq 0xa6ed
movq 0x538adbb(%rip), %rbx   # 0x53b79e0
movl 0x540adbd(%rip), %eax   # 0x54379e8
incl %eax
imulq $0x138, %rax, %rdi      # imm = 0x138
callq 0x491c
movq %rax, 0x538ada0(%rip)   # 0x53b79e0
movl 0x540ada2(%rip), %ecx   # 0x54379e8
imulq $0x138, %rcx, %rdx      # imm = 0x138
movq %rax, %rdi
movq %rbx, %rsi
callq 0x4240
movq %rbx, %rdi
callq 0x4941
movq 0x538ad79(%rip), %rdi   # 0x53b79e0
movl 0x540ad7b(%rip), %esi   # 0x54379e8
leaq 0x11b4(%rip), %rcx      # 0x2de28
movl $0x138, %edx            # imm = 0x138
callq 0x4600
leaq 0x524ad5b(%rip), %rbx   # 0x52779e0
movl $0x7fff8, %edx          # imm = 0x7FFF8
movq %rbx, %rdi
xorl %esi, %esi
callq 0x4190
movq 0x538ad45(%rip), %rax   # 0x53b79e0
movslq 0x58(%rax), %rcx
movq %rax, (%rbx,%rcx,8)
movl 0x540ad3f(%rip), %ecx   # 0x54379e8
cmpl $0x2, %ecx
jb 0x2ccd9
decl %ecx
movslq 0x190(%rax), %rsi
movq %rax, %rdx
cmpl 0x58(%rax), %esi
je 0x2ccca
movq $0x0, (%rax)
leaq (%rbx,%rsi,8), %rdx
addq $0x138, %rax            # imm = 0x138
movq %rax, (%rdx)
decl %ecx
jne 0x2ccb0
jmp 0x2ccdd
testl %ecx, %ecx
je 0x2cd2f
movl $0x130, %r14d           # imm = 0x130
xorl %r15d, %r15d
leaq 0xa237d3(%rip), %r12    # 0xa504c0
movq 0x538acec(%rip), %rax   # 0x53b79e0
leaq (%rax,%r14), %rbx
addq $-0x128, %rbx           # imm = 0xFED8
movq %rbx, %rdi
callq 0x2f1aa
subq %r12, %rax
shrq $0x2, %rax
imull $0xb6db6db7, %eax, %eax # imm = 0xB6DB6DB7
movl %eax, 0x128(%rbx)
incq %r15
movl 0x540acc5(%rip), %eax   # 0x54379e8
addq $0x138, %r14            # imm = 0x138
cmpq %rax, %r15
jb 0x2cced
callq 0x1603c
cmpb $0x1, 0x54ccd05(%rip)   # 0x54f9a40
jne 0x2cee7
leaq 0x117ab(%rip), %rsi     # 0x3e4f3
leaq 0x1a601(%rip), %rdx     # 0x47350
leaq 0x1c0(%rsp), %rbx
movq %rbx, %rdi
xorl %eax, %eax
callq 0x40a0
leaq 0xe61e(%rip), %rdi      # 0x3b386
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9c46
leaq 0x11003(%rip), %rsi     # 0x3dd7c
movq %rbx, %rdi
callq 0x4360
testq %rax, %rax
je 0x2ced9
movq %rax, %rbx
leaq 0x211eb7c(%rip), %r15   # 0x214b910
xorl %r12d, %r12d
leaq 0xef82(%rip), %r13      # 0x3bd20
leaq 0xe5f3(%rip), %r14      # 0x3b398
cmpb $0x1, 0x39(%r15)
jne 0x2ceb1
leaq 0x1d03649(%rip), %rcx   # 0x1d30400
movzwl (%rcx,%r12,4), %eax
movzwl 0x2(%rcx,%r12,4), %ecx
leaq (%rax,%rax,2), %rax
leaq (%rcx,%rcx,2), %rcx
leaq 0x100362f(%rip), %rdx   # 0x1030400
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 0xdc5d(%rip), %xmm0     # 0x3aa58
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 0x1a1c5(%rip), %rax     # 0x46fe8
shrq $0x2, %rax
movabsq $-0x6666666666666664, %rcx # imm = 0x999999999999999C
imulq %rcx, %rax
leaq 0x540abb4(%rip), %rcx   # 0x54379f0
addss (%rax,%rcx), %xmm1
movss %xmm1, 0x50(%rsp)
addss 0x4(%rax,%rcx), %xmm2
movss %xmm2, 0x40(%rsp)
addss 0x8(%rax,%rcx), %xmm3
movss %xmm3, 0x30(%rsp)
movl $0x8, %ebp
movss -0x8(%rbp,%r13), %xmm0
addss 0x50(%rsp), %xmm0
cvtss2sd %xmm0, %xmm0
movss -0x4(%rbp,%r13), %xmm1
addss 0x40(%rsp), %xmm1
cvtss2sd %xmm1, %xmm1
movss (%rbp,%r13), %xmm2
addss 0x30(%rsp), %xmm2
cvtss2sd %xmm2, %xmm2
movq %rbx, %rdi
movq %r14, %rsi
movb $0x3, %al
callq 0x4450
addq $0xc, %rbp
cmpq $0xbc, %rbp
jne 0x2ce64
incq %r12
addq $0xb0, %r15
cmpq $0x3e800, %r12          # imm = 0x3E800
jne 0x2cda5
movq %rbx, %rdi
callq 0x42d0
leaq 0xe4cb(%rip), %rdi      # 0x3b3a2
jmp 0x2cee0
leaq 0xe4c7(%rip), %rdi      # 0x3b3a7
xorl %eax, %eax
callq 0x9c46
callq 0x197ed
callq 0x17c82
leaq 0xbd80(%rip), %rdi      # 0x38c78
xorl %eax, %eax
callq 0x9c46
leaq 0x115f9(%rip), %rdi     # 0x3e4ff
callq 0x9d92
leaq 0xe7ad(%rip), %rbx      # 0x3b6bf
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9c46
leaq 0x1b834ce(%rip), %r14   # 0x1bb03f4
movl (%r14), %edi
movzbl 0x1b4f4(%rip), %esi     # 0x48424
leaq 0x2feb(%rip), %rdx      # 0x2ff22
callq 0xb343
leaq 0x115cf(%rip), %rdi     # 0x3e512
callq 0x9d92
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9c46
movl (%r14), %edi
movzbl 0x1b4c5(%rip), %esi     # 0x48424
leaq -0x100af(%rip), %rdx    # 0x1ceb7
callq 0xb343
callq 0x30942
callq 0x19453
cmpl $0x0, 0x1b448(%rip)     # 0x483c4
je 0x2d47e
movl 0x1b430(%rip), %eax     # 0x483b8
cmpl $0x2, %eax
je 0x2cfa4
cmpl $0x1, %eax
je 0x2cf9d
testl %eax, %eax
jne 0x2cfa9
callq 0x34804
jmp 0x2cfa9
callq 0x314dc
jmp 0x2cfa9
callq 0x2654b
movl 0x540aa39(%rip), %eax   # 0x54379e8
incl %eax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rdi
callq 0x491c
movq %rax, 0x550cbd3(%rip)   # 0x5539b98
movl 0x540aa1d(%rip), %eax   # 0x54379e8
incl %eax
shlq $0x4, %rax
leaq (%rax,%rax,2), %rdi
callq 0x491c
movq %rax, 0x550cbbf(%rip)   # 0x5539ba0
movl 0x540aa01(%rip), %edi   # 0x54379e8
incl %edi
shlq $0x2, %rdi
callq 0x491c
movq %rax, 0x550cbaf(%rip)   # 0x5539ba8
cmpl $0x0, 0x540a9e8(%rip)   # 0x54379e8
je 0x2d089
movq 0x550cb8b(%rip), %rax   # 0x5539b98
addq $0x8, %rax
movl $0x98, %ecx
movl $0x88, %edx
xorl %esi, %esi
movl $0x138, %edi            # imm = 0x138
movq 0x538a9b7(%rip), %r8    # 0x53b79e0
leaq (%r8,%rcx), %r9
addq %rdx, %r8
xorl %r10d, %r10d
cmpb $-0x1, (%r8)
je 0x2d06e
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 0x2d033
incq %rsi
movl 0x540a970(%rip), %r8d   # 0x54379e8
addq $0x30, %rax
addq %rdi, %rcx
addq %rdi, %rdx
cmpq %r8, %rsi
jb 0x2d022
jmp 0x2d08c
xorl %r8d, %r8d
cmpl $0x0, 0x1b331(%rip)     # 0x483c4
je 0x2d3c3
leaq 0x117b2(%rip), %r13     # 0x3e852
xorl %r14d, %r14d
leal 0x1(%r14), %esi
leaq 0x11737(%rip), %rdi     # 0x3e7e5
movl %esi, 0x50(%rsp)
xorl %eax, %eax
callq 0x9c46
cmpb $0x0, 0x54cc969(%rip)   # 0x54f9a29
leaq 0x11739(%rip), %rdi     # 0x3e800
leaq 0x11722(%rip), %rax     # 0x3e7f0
cmovneq %rax, %rdi
leaq 0x1499(%rip), %r12      # 0x2e572
leaq 0xd5c(%rip), %rax       # 0x2de3c
cmovneq %rax, %r12
callq 0x9d92
leaq 0xe5cf(%rip), %rdi      # 0x3b6bf
movq %rax, %rsi
xorl %eax, %eax
callq 0x9c46
movl 0x540a8e8(%rip), %edi   # 0x54379e8
movzbl 0x1b31d(%rip), %esi     # 0x48424
movq %r12, %rdx
callq 0xb356
cmpl $0x0, 0x540a8d2(%rip)   # 0x54379e8
je 0x2d26b
movq 0x538a8bd(%rip), %rax   # 0x53b79e0
movq 0x550ca7e(%rip), %rcx   # 0x5539ba8
movq 0x550ca6f(%rip), %rdx   # 0x5539ba0
movq 0x550ca60(%rip), %rsi   # 0x5539b98
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 0x2d1c2
leaq (%r10,%r10,2), %rbx
leaq (%rsp,%rbx,4), %rbx
addq $0xb0, %rbx
movl $0x0, 0x8(%rbx)
movq $0x0, (%rbx)
movl $0x88, %r12d
movq %rdi, %r15
movb (%rax,%r12), %bpl
cmpb $-0x1, %bpl
je 0x2d1b9
cmpb %r11b, %bpl
je 0x2d1a5
addq $0xc, %r15
incq %r12
cmpq $0x8c, %r12
jne 0x2d184
jmp 0x2d1b9
movsd -0x8(%r15), %xmm0
movsd %xmm0, (%rbx)
movss (%r15), %xmm0
movss %xmm0, 0x8(%rbx)
incq %r10
cmpq $0x4, %r10
jne 0x2d150
movl $0x88, %r10d
xorl %r11d, %r11d
movb -0x88(%r8,%r10), %bl
cmpb $-0x1, %bl
je 0x2d22e
movb %bl, (%rax,%r10)
movsd 0xb0(%rsp,%r11), %xmm0
movsd %xmm0, 0x90(%rax,%r11)
movss 0xb8(%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 0x2d233
movb $-0x1, (%rax,%r10)
addq $0xc, %r11
incq %r10
cmpq $0x30, %r11
jne 0x2d1cb
incq %r9
movl $0x138, %r11d           # imm = 0x138
addq %r11, %rax
movl 0x540a795(%rip), %r10d  # 0x54379e8
addq %r11, %rdi
addq $0x30, %rsi
addq $0x30, %rdx
addq $0x4, %r8
cmpq %r10, %r9
jb 0x2d14d
cmpb $0x1, 0x550c91e(%rip)   # 0x5539b90
jne 0x2d3a9
leaq 0x1c0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x11583(%rip), %rsi     # 0x3e80d
movl %r14d, %edx
xorl %eax, %eax
callq 0x40a0
movq %rbx, %rdi
leaq 0x10ade(%rip), %rsi     # 0x3dd7c
callq 0x4360
movq %rax, 0x40(%rsp)
testq %rax, %rax
jne 0x2d2c3
leaq 0xe300(%rip), %rdi      # 0x3b5b4
leaq 0x1c0(%rsp), %rsi
xorl %eax, %eax
callq 0x9f34
cmpl $0x0, 0x540a71e(%rip)   # 0x54379e8
je 0x2d39f
xorl %r12d, %r12d
movq 0x538a706(%rip), %r14   # 0x53b79e0
movq 0x28(%r14), %rbp
movl 0x8(%rbp), %esi
leaq 0xce60(%rip), %rdi      # 0x3a148
xorl %eax, %eax
callq 0x9c46
cmpl $0x0, 0x8(%rbp)
movss 0xd789(%rip), %xmm6     # 0x3aa84
je 0x2d37a
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 0x9c46
movss 0xd719(%rip), %xmm6     # 0x3aa84
incq %rbx
movl 0x8(%rbp), %eax
addq $0xc, %r15
cmpq %rax, %rbx
jb 0x2d305
leaq 0xb8f7(%rip), %rdi      # 0x38c78
xorl %eax, %eax
callq 0x9c46
incl %r12d
addq $0x138, %r14            # imm = 0x138
cmpl 0x540a64f(%rip), %r12d  # 0x54379e8
jb 0x2d2da
movq 0x40(%rsp), %rdi
callq 0x42d0
movl 0x50(%rsp), %eax
movl %eax, %r14d
cmpl 0x1b00e(%rip), %eax     # 0x483c4
jb 0x2d0a3
movl 0x540a625(%rip), %r8d   # 0x54379e8
movq 0x550c7ce(%rip), %rdi   # 0x5539b98
testl %r8d, %r8d
je 0x2d44a
leaq 0x8(%rdi), %rax
movl $0x98, %ecx
movl $0x88, %edx
xorl %esi, %esi
movl $0x138, %r8d            # imm = 0x138
movq 0x538a5f4(%rip), %r9    # 0x53b79e0
leaq (%r9,%rcx), %r10
addq %rdx, %r9
xorl %r11d, %r11d
cmpb $-0x1, (%r9)
je 0x2d431
movss -0x8(%rax,%r11), %xmm0
movss %xmm0, -0x8(%r10,%r11)
movss -0x4(%rax,%r11), %xmm0
movss %xmm0, -0x4(%r10,%r11)
movss (%rax,%r11), %xmm0
movss %xmm0, (%r10,%r11)
addq $0xc, %r11
incq %r9
cmpq $0x30, %r11
jne 0x2d3f6
incq %rsi
movl 0x540a5ad(%rip), %r9d   # 0x54379e8
addq $0x30, %rax
addq %r8, %rcx
addq %r8, %rdx
cmpq %r9, %rsi
jb 0x2d3e5
callq 0x4941
xorl %ebx, %ebx
movq %rbx, 0x550c740(%rip)   # 0x5539b98
movq 0x550c741(%rip), %rdi   # 0x5539ba0
callq 0x4941
movq %rbx, 0x550c735(%rip)   # 0x5539ba0
movq 0x550c736(%rip), %rdi   # 0x5539ba8
callq 0x4941
movq %rbx, 0x550c72a(%rip)   # 0x5539ba8
cmpl $0x0, 0x540a563(%rip)   # 0x54379e8
je 0x2d4e5
movq 0x538a552(%rip), %rbx   # 0x53b79e0
addq $0x50, %rbx
xorl %ebp, %ebp
movq -0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x2d4aa
callq 0x4941
movq $0x0, -0x8(%rbx)
movq (%rbx), %rdi
testq %rdi, %rdi
je 0x2d4be
callq 0x4941
movq $0x0, (%rbx)
movq -0x10(%rbx), %rdi
testq %rdi, %rdi
je 0x2d4d4
callq 0x4941
movq $0x0, -0x10(%rbx)
incl %ebp
addq $0x138, %rbx            # imm = 0x138
cmpl 0x540a505(%rip), %ebp   # 0x54379e8
jb 0x2d494
callq 0x3477c
leaq 0x11032(%rip), %rdi     # 0x3e523
callq 0x9d92
leaq 0xe1c2(%rip), %rbx      # 0x3b6bf
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9c46
leaq 0x1b82ee3(%rip), %r14   # 0x1bb03f4
movl (%r14), %edi
movzbl 0x1af09(%rip), %esi     # 0x48424
leaq -0x1defe(%rip), %rdx    # 0xf624
callq 0xb343
callq 0x1fb1b
callq 0x20d23
callq 0x20b9a
leaq 0x10ffc(%rip), %rdi     # 0x3e539
callq 0x9d92
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9c46
movl (%r14), %edi
movzbl 0x1aecb(%rip), %esi     # 0x48424
leaq -0xc760(%rip), %rdx     # 0x20e00
callq 0xb343
callq 0x20ce5
callq 0x123d2
leaq 0x10fd3(%rip), %rdi     # 0x3e549
callq 0x9d92
movq %rbx, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x9c46
movl (%r14), %edi
movzbl 0x1ae92(%rip), %esi     # 0x48424
leaq -0xc56c(%rip), %rdx     # 0x2102d
callq 0xb343
xorps %xmm0, %xmm0
cvtss2sd 0x550c5a7(%rip), %xmm0  # 0x5539b50
ucomisd 0xd037(%rip), %xmm0     # 0x3a5e8
jbe 0x2d5d9
cvtss2sd 0x550c599(%rip), %xmm1  # 0x5539b54
cvtss2sd 0x550c595(%rip), %xmm2  # 0x5539b58
cvtss2sd 0x550c591(%rip), %xmm3  # 0x5539b5c
leaq 0x10f87(%rip), %rdi     # 0x3e559
movb $0x4, %al
callq 0xa387
callq 0x20a72
callq 0x2004a
leaq 0x822e9a(%rip), %rbx    # 0x850484
cmpl $0x0, (%rbx)
jne 0x2d602
movl $0x1, (%rbx)
leaq 0x822e8c(%rip), %rax    # 0x850488
movq (%rax), %rax
movb $0x0, (%rax)
leaq 0x1b82deb(%rip), %rax   # 0x1bb03f4
movslq (%rax), %rax
testq %rax, %rax
jle 0x2d662
leaq 0x1b82de8(%rip), %rcx   # 0x1bb0400
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 0x2d654
leal 0xd8c(%rdi), %r8d
xorl %r9d, %r9d
cmpb $-0x1, (%rdx,%r9)
je 0x2d64f
addl $0x363, %edi            # imm = 0x363
incq %r9
cmpq $0x4, %r9
jne 0x2d636
movl %r8d, %edi
cmpl %ebp, %edi
cmovgl %edi, %ebp
incq %rsi
addq $0x14, %rdx
cmpq %rax, %rsi
jne 0x2d620
jmp 0x2d664
xorl %ebp, %ebp
cmpl (%rbx), %ebp
jl 0x2d6a0
leaq 0x19cc5(%rip), %rax     # 0x47334
xorl %edi, %edi
cmpl (%rax), %ebp
setle %dil
movl $0x38, %esi
callq 0xa6ed
leaq 0x822e00(%rip), %rax    # 0x850488
movslq (%rbx), %rcx
movq (%rax), %rdi
addq %rcx, %rdi
movslq %ebp, %rdx
subq %rcx, %rdx
xorl %esi, %esi
callq 0x4190
movl %ebp, (%rbx)
addq $0x11d8, %rsp           # imm = 0x11D8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movl $0x20, %esi
movq %r14, %rdi
jmp 0x2d6cc
jmp 0x2d6c1
movq %rax, %rbx
movl $0x20, %esi
movq %r15, %rdi
callq 0x42f0
movq %rbx, %rdi
callq 0x4580