// File: /workspace/github_cpp_makefile_star2_O3/FreeSlave[P]vhlt/hlbsp/qbsp.cpp
// Function: main
int             main(const int argc, char** argv)
{
    int             i;
    double          start, end;
    const char*     mapname_from_arg = NULL;

    g_Program = "hlbsp";

#ifdef ZHLT_PARAMFILE
	int argcold = argc;
	char ** argvold = argv;
	{
		int argc;
		char ** argv;
		ParseParamFile (argcold, argvold, argc, argv);
		{
#endif
#ifdef ZHLT_CONSOLE
	if (InitConsole (argc, argv) < 0)
		Usage();
#endif
    // if we dont have any command line argvars, print out usage and die
    if (argc == 1)
        Usage();

    // check command line args
    for (i = 1; i < argc; i++)
    {
        if (!strcasecmp(argv[i], "-threads"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                int             g_numthreads = atoi(argv[++i]);

                if (g_numthreads < 1)
                {
                    Log("Expected value of at least 1 for '-threads'\n");
                    Usage();
                }
            }
            else
            {
                Usage();
            }
        }
#ifdef ZHLT_CONSOLE
		else if (!strcasecmp(argv[i], "-console"))
		{
#ifndef SYSTEM_WIN32
			Warning("The option '-console #' is only valid for Windows.");
#endif
			if (i + 1 < argc)
				++i;
			else
				Usage();
		}
#endif
        else if (!strcasecmp(argv[i], "-notjunc"))
        {
            g_notjunc = true;
        }
#ifdef HLBSP_BRINKHACK
		else if (!strcasecmp (argv[i], "-nobrink"))
		{
			g_nobrink = true;
		}
#endif
        else if (!strcasecmp(argv[i], "-noclip"))
        {
            g_noclip = true;
        }
        else if (!strcasecmp(argv[i], "-nofill"))
        {
            g_nofill = true;
        }
#ifdef HLBSP_FILL
        else if (!strcasecmp(argv[i], "-noinsidefill"))
        {
            g_noinsidefill = true;
        }
#endif

#ifdef SYSTEM_WIN32
        else if (!strcasecmp(argv[i], "-estimate"))
        {
            g_estimate = true;
        }
#endif

#ifdef SYSTEM_POSIX
        else if (!strcasecmp(argv[i], "-noestimate"))
        {
            g_estimate = false;
        }
#endif

#ifdef ZHLT_NETVIS
        else if (!strcasecmp(argv[i], "-client"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                g_clientid = atoi(argv[++i]);
            }
            else
            {
                Usage();
            }
        }
#endif

#ifdef ZHLT_PROGRESSFILE // AJM
        else if (!strcasecmp(argv[i], "-progressfile"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                g_progressfile = argv[++i];
            }
            else
            {
            	Log("Error: -progressfile: expected path to progress file following parameter\n");
                Usage();
            }
        }
#endif

        else if (!strcasecmp(argv[i], "-dev"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                g_developer = (developer_level_t)atoi(argv[++i]);
            }
            else
            {
                Usage();
            }
        }
        else if (!strcasecmp(argv[i], "-verbose"))
        {
            g_verbose = true;
        }
        else if (!strcasecmp(argv[i], "-noinfo"))
        {
            g_info = false;
        }
        else if (!strcasecmp(argv[i], "-leakonly"))
        {
            g_bLeakOnly = true;
        }
        else if (!strcasecmp(argv[i], "-chart"))
        {
            g_chart = true;
        }
        else if (!strcasecmp(argv[i], "-low"))
        {
            g_threadpriority = eThreadPriorityLow;
        }
        else if (!strcasecmp(argv[i], "-high"))
        {
            g_threadpriority = eThreadPriorityHigh;
        }
        else if (!strcasecmp(argv[i], "-nolog"))
        {
            g_log = false;
        }

#ifdef ZHLT_NULLTEX // AJM
        else if (!strcasecmp(argv[i], "-nonulltex"))
        {
            g_bUseNullTex = false;
        }
#endif

#ifdef ZHLT_DETAIL // AJM
        else if (!strcasecmp(argv[i], "-nodetail"))
        {
            g_bDetailBrushes = false;
        }
#endif

#ifdef HLBSP_REMOVEHULL2
		else if (!strcasecmp (argv[i], "-nohull2"))
		{
			g_nohull2 = true;
		}
#endif

		else if (!strcasecmp(argv[i], "-noopt"))
		{
			g_noopt = true;
		}
#ifdef HLBSP_MERGECLIPNODE
		else if (!strcasecmp (argv[i], "-noclipnodemerge"))
		{
			g_noclipnodemerge = true;
		}
#endif
        else if (!strcasecmp(argv[i], "-subdivide"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                g_subdivide_size = atoi(argv[++i]);
                if (g_subdivide_size > MAX_SUBDIVIDE_SIZE)
                {
                    Warning
                        ("Maximum value for subdivide size is %i, '-subdivide %i' ignored",
                         MAX_SUBDIVIDE_SIZE, g_subdivide_size);
                    g_subdivide_size = MAX_SUBDIVIDE_SIZE;
                }
                else if (g_subdivide_size < MIN_SUBDIVIDE_SIZE)
                {
                    Warning
                        ("Mininum value for subdivide size is %i, '-subdivide %i' ignored",
                         MIN_SUBDIVIDE_SIZE, g_subdivide_size);
                    g_subdivide_size = MIN_SUBDIVIDE_SIZE; //MAX_SUBDIVIDE_SIZE; //--vluzacn
                }
            }
            else
            {
                Usage();
            }
        }
        else if (!strcasecmp(argv[i], "-maxnodesize"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                g_maxnode_size = atoi(argv[++i]);
                if (g_maxnode_size > MAX_MAXNODE_SIZE)
                {
                    Warning
                        ("Maximum value for max node size is %i, '-maxnodesize %i' ignored",
                         MAX_MAXNODE_SIZE, g_maxnode_size);
                    g_maxnode_size = MAX_MAXNODE_SIZE;
                }
                else if (g_maxnode_size < MIN_MAXNODE_SIZE)
                {
                    Warning
                        ("Mininimum value for max node size is %i, '-maxnodesize %i' ignored",
                         MIN_MAXNODE_SIZE, g_maxnode_size);
                    g_maxnode_size = MIN_MAXNODE_SIZE; //MAX_MAXNODE_SIZE; //vluzacn
                }
            }
            else
            {
                Usage();
            }
        }
#ifdef HLBSP_VIEWPORTAL
		else if (!strcasecmp (argv[i], "-viewportal"))
		{
			g_viewportal = true;
		}
#endif
        else if (!strcasecmp(argv[i], "-texdata"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                int             x = atoi(argv[++i]) * 1024;

                //if (x > g_max_map_miptex) //--vluzacn
                {
                    g_max_map_miptex = x;
                }
            }
            else
            {
                Usage();
            }
        }
        else if (!strcasecmp(argv[i], "-lightdata"))
        {
            if (i + 1 < argc)	//added "1" .--vluzacn
            {
                int             x = atoi(argv[++i]) * 1024;

                //if (x > g_max_map_lightdata) //--vluzacn
                {
                    g_max_map_lightdata = x;
                }
            }
            else
            {
                Usage();
            }
        }
#ifdef ZHLT_LANGFILE
		else if (!strcasecmp (argv[i], "-lang"))
		{
			if (i + 1 < argc)
			{
				char tmp[_MAX_PATH];
#ifdef SYSTEM_WIN32
				GetModuleFileName (NULL, tmp, _MAX_PATH);
#else
				safe_strncpy (tmp, argv[0], _MAX_PATH);
#endif
				LoadLangFile (argv[++i], tmp);
			}
			else
			{
				Usage();
			}
		}
#endif
        else if (argv[i][0] == '-')
        {
            Log("Unknown option \"%s\"\n", argv[i]);
            Usage();
        }
        else if (!mapname_from_arg)
        {
            mapname_from_arg = argv[i];
        }
        else
        {
            Log("Unknown option \"%s\"\n", argv[i]);
            Usage();
        }
    }
#ifdef HLBSP_SUBDIVIDE_INMID
	if (g_subdivide_size % TEXTURE_STEP != 0)
	{
		Warning ("Subdivide size must be a multiple of %d", (int)TEXTURE_STEP);
		g_subdivide_size = TEXTURE_STEP * (g_subdivide_size / TEXTURE_STEP);
	}
#endif

    if (!mapname_from_arg)
    {
        Log("No mapfile specified\n");
        Usage();
    }

    safe_strncpy(g_Mapname, mapname_from_arg, _MAX_PATH);
    FlipSlashes(g_Mapname);
    StripExtension(g_Mapname);
    OpenLog(g_clientid);
    atexit(CloseLog);
    ThreadSetDefault();
    ThreadSetPriority(g_threadpriority);
#ifdef ZHLT_PARAMFILE
    LogStart(argcold, argvold);
	{
		int			 i;
		Log("Arguments: ");
		for (i = 1; i < argc; i++)
		{
			if (strchr(argv[i], ' '))
			{
				Log("\"%s\" ", argv[i]);
			}
			else
			{
				Log("%s ", argv[i]);
			}
		}
		Log("\n");
	}
#else
    LogStart(argc, argv);
#endif

    CheckForErrorLog();

#ifdef ZHLT_64BIT_FIX
#ifdef PLATFORM_CAN_CALC_EXTENT
	hlassume (CalcFaceExtents_test (), assume_first);
#endif
#endif
    dtexdata_init();
    atexit(dtexdata_free);
    //Settings();
    // END INIT

    // Load the .void files for allowable entities in the void
    {
#ifndef ZHLT_DEFAULTEXTENSION_FIX
        char            g_source[_MAX_PATH];
#endif
        char            strSystemEntitiesVoidFile[_MAX_PATH];
        char            strMapEntitiesVoidFile[_MAX_PATH];

#ifndef ZHLT_DEFAULTEXTENSION_FIX
        safe_strncpy(g_source, mapname_from_arg, _MAX_PATH);
        StripExtension(g_source);
#endif

        // try looking in the current directory
        safe_strncpy(strSystemEntitiesVoidFile, ENTITIES_VOID, _MAX_PATH);
        if (!q_exists(strSystemEntitiesVoidFile))
        {
            char tmp[_MAX_PATH];
            // try looking in the directory we were run from
#ifdef SYSTEM_WIN32
            GetModuleFileName(NULL, tmp, _MAX_PATH);
#else
            safe_strncpy(tmp, argv[0], _MAX_PATH);
#endif
            ExtractFilePath(tmp, strSystemEntitiesVoidFile);
            safe_strncat(strSystemEntitiesVoidFile, ENTITIES_VOID, _MAX_PATH);
        }

        // Set the optional level specific lights filename
#ifdef ZHLT_DEFAULTEXTENSION_FIX
		safe_snprintf(strMapEntitiesVoidFile, _MAX_PATH, "%s" ENTITIES_VOID_EXT, g_Mapname);
#else
        safe_strncpy(strMapEntitiesVoidFile, g_source, _MAX_PATH);
        DefaultExtension(strMapEntitiesVoidFile, ENTITIES_VOID_EXT);
#endif

        LoadAllowableOutsideList(strSystemEntitiesVoidFile);    // default entities.void
        if (*strMapEntitiesVoidFile)
        {
            LoadAllowableOutsideList(strMapEntitiesVoidFile);   // automatic mapname.void
        }
    }

    // BEGIN BSP
    start = I_FloatTime();

    ProcessFile(g_Mapname);

    end = I_FloatTime();
    LogTimeElapsed(end - start);
    // END BSP

    FreeAllowableOutsideList();

#ifdef ZHLT_PARAMFILE
		}
	}
#endif
    return 0;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2078, %rsp           # imm = 0x2078
movq %rsi, %r15
movl %edi, %ebp
leaq 0xbf6d(%rip), %rax      # 0x2156b
leaq 0x14cfb(%rip), %rcx     # 0x2a300
movq %rax, (%rcx)
leaq 0x4(%rsp), %rbx
leaq 0x28(%rsp), %r14
movq %rbx, %rdx
movq %r14, %rcx
callq 0x92a9
movl (%rbx), %edi
movq (%r14), %rsi
callq 0xa79f
testl %eax, %eax
js 0x16e55
movl 0x4(%rsp), %ebx
cmpl $0x1, %ebx
je 0x16e55
movl %ebp, 0x30(%rsp)
movq %r15, 0x38(%rsp)
jle 0x16e6d
movl $0x1, %r12d
leaq 0xbfc1(%rip), %r14      # 0x21619
leaq 0xbff0(%rip), %r15      # 0x2164f
movq $0x0, 0x8(%rsp)
movq 0x28(%rsp), %r13
movslq %r12d, %rax
movq (%r13,%rax,8), %rbp
movq %rbp, %rdi
movq %r14, %rsi
callq 0x4320
testl %eax, %eax
je 0x158e3
movq %rbp, %rdi
movq %r15, %rsi
callq 0x4320
testl %eax, %eax
je 0x15909
movq %rbp, %rdi
leaq 0xbfe6(%rip), %rsi      # 0x2168b
callq 0x4320
testl %eax, %eax
je 0x1592a
movq %rbp, %rdi
leaq 0xbfd8(%rip), %rsi      # 0x21694
callq 0x4320
testl %eax, %eax
je 0x15936
movq %rbp, %rdi
leaq 0xbfca(%rip), %rsi      # 0x2169d
callq 0x4320
testl %eax, %eax
je 0x15942
movq %rbp, %rdi
leaq 0xbfbb(%rip), %rsi      # 0x216a5
callq 0x4320
testl %eax, %eax
je 0x1594e
movq %rbp, %rdi
leaq 0xbfac(%rip), %rsi      # 0x216ad
callq 0x4320
testl %eax, %eax
je 0x1595a
movq %rbp, %rdi
leaq 0xbfa3(%rip), %rsi      # 0x216bb
callq 0x4320
testl %eax, %eax
je 0x15966
movq %rbp, %rdi
leaq 0xbf98(%rip), %rsi      # 0x216c7
callq 0x4320
testl %eax, %eax
je 0x15972
movq %rbp, %rdi
leaq 0xbf86(%rip), %rsi      # 0x216cc
callq 0x4320
testl %eax, %eax
je 0x15999
movq %rbp, %rdi
leaq 0xbf78(%rip), %rsi      # 0x216d5
callq 0x4320
testl %eax, %eax
je 0x159a8
movq %rbp, %rdi
leaq 0xbf69(%rip), %rsi      # 0x216dd
callq 0x4320
testl %eax, %eax
je 0x159b4
movq %rbp, %rdi
leaq 0xbf5c(%rip), %rsi      # 0x216e7
callq 0x4320
testl %eax, %eax
je 0x159c0
movq %rbp, %rdi
leaq 0xbf4c(%rip), %rsi      # 0x216ee
callq 0x4320
testl %eax, %eax
je 0x159cc
movq %rbp, %rdi
leaq 0xbf3a(%rip), %rsi      # 0x216f3
callq 0x4320
testl %eax, %eax
je 0x159de
movq %rbp, %rdi
leaq 0xbf29(%rip), %rsi      # 0x216f9
callq 0x4320
testl %eax, %eax
je 0x159f0
movq %rbp, %rdi
leaq 0xbf19(%rip), %rsi      # 0x21700
callq 0x4320
testl %eax, %eax
je 0x159ff
movq %rbp, %rdi
leaq 0xbf0d(%rip), %rsi      # 0x2170b
callq 0x4320
testl %eax, %eax
je 0x15a0b
movq %rbp, %rdi
leaq 0xbeff(%rip), %rsi      # 0x21714
callq 0x4320
testl %eax, %eax
je 0x15a17
movq %rbp, %rdi
leaq 0xbeef(%rip), %rsi      # 0x2171b
callq 0x4320
testl %eax, %eax
je 0x15a23
movq %rbp, %rdi
leaq 0xbee9(%rip), %rsi      # 0x2172c
callq 0x4320
testl %eax, %eax
je 0x15a2f
movq %rbp, %rdi
leaq 0xbf5d(%rip), %rsi      # 0x217b7
callq 0x4320
testl %eax, %eax
je 0x15a79
movq %rbp, %rdi
leaq 0xbfd7(%rip), %rsi      # 0x21848
callq 0x4320
testl %eax, %eax
je 0x15aef
movq %rbp, %rdi
leaq 0xbfcc(%rip), %rsi      # 0x21854
callq 0x4320
testl %eax, %eax
je 0x15b24
movq %rbp, %rdi
leaq 0xbfbe(%rip), %rsi      # 0x2185d
callq 0x4320
testl %eax, %eax
je 0x15b4c
movq %rbp, %rdi
leaq 0xbfb2(%rip), %rsi      # 0x21868
callq 0x4320
testl %eax, %eax
je 0x15b74
cmpb $0x2d, (%rbp)
je 0x16e76
cmpq $0x0, 0x8(%rsp)
jne 0x16e76
movq %rbp, 0x8(%rsp)
jmp 0x15bad
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movslq %r12d, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
testl %eax, %eax
jg 0x15bad
jmp 0x16e5a
leaq 0xbd48(%rip), %rdi      # 0x21658
xorl %eax, %eax
callq 0xa20e
incl %r12d
cmpl 0x4(%rsp), %r12d
jl 0x15bad
jmp 0x16e55
movb $0x1, 0x20be0d3(%rip)   # 0x20d3a04
jmp 0x15bad
movb $0x1, 0x20be0c8(%rip)   # 0x20d3a05
jmp 0x15bad
movb $0x1, 0x20be0bd(%rip)   # 0x20d3a06
jmp 0x15bad
movb $0x1, 0x20be0ad(%rip)   # 0x20d3a02
jmp 0x15bad
movb $0x1, 0x20be0a2(%rip)   # 0x20d3a03
jmp 0x15bad
movb $0x0, 0x15a83(%rip)     # 0x2b3f0
jmp 0x15bad
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movslq %r12d, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
leaq 0x20aba6e(%rip), %rcx   # 0x20c1400
movl %eax, (%rcx)
jmp 0x15bad
leaq 0x20aba64(%rip), %rax   # 0x20c1404
movb $0x1, (%rax)
jmp 0x15bad
movb $0x0, 0x15a42(%rip)     # 0x2b3f1
jmp 0x15bad
movb $0x1, 0x20be04d(%rip)   # 0x20d3a08
jmp 0x15bad
movb $0x1, 0x20be040(%rip)   # 0x20d3a07
jmp 0x15bad
leaq 0x20b8b8d(%rip), %rax   # 0x20ce560
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
jmp 0x15bad
leaq 0x20b8b7b(%rip), %rax   # 0x20ce560
movl $0x1, (%rax)
jmp 0x15bad
leaq 0x15919(%rip), %rax     # 0x2b310
movb $0x0, (%rax)
jmp 0x15bad
movb $0x0, 0x159f2(%rip)     # 0x2b3f8
jmp 0x15bad
movb $0x1, 0x20bdff8(%rip)   # 0x20d3a0a
jmp 0x15bad
movb $0x1, 0x20bdfe2(%rip)   # 0x20d3a00
jmp 0x15bad
movb $0x1, 0x20bdfd7(%rip)   # 0x20d3a01
jmp 0x15bad
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movslq %r12d, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
movl %eax, 0x159a6(%rip)     # 0x2b3f4
cmpl $0x201, %eax            # imm = 0x201
jl 0x15ac2
leaq 0xbcdb(%rip), %rdi      # 0x21737
movl $0x200, %esi            # imm = 0x200
movl %eax, %edx
xorl %eax, %eax
callq 0xa20e
movl $0x200, 0x15980(%rip)   # imm = 0x200
jmp 0x15bad
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movslq %r12d, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
leaq 0x15963(%rip), %rbx     # 0x2b3fc
movl %eax, (%rbx)
cmpl $0x10001, %eax          # imm = 0x10001
jl 0x15afb
leaq 0xbd1b(%rip), %rdi      # 0x217c4
movl $0x10000, %esi          # imm = 0x10000
movl %eax, %edx
xorl %eax, %eax
callq 0xa20e
movl $0x10000, (%rbx)        # imm = 0x10000
jmp 0x15bad
cmpl $0x3f, %eax
jg 0x15bad
leaq 0xbca5(%rip), %rdi      # 0x21777
movl $0x40, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0xa20e
movl $0x40, 0x1590a(%rip)    # 0x2b3f4
jmp 0x15bad
movb $0x1, 0x20bdf15(%rip)   # 0x20d3a0b
jmp 0x15bad
cmpl $0x3f, %eax
jg 0x15bad
leaq 0xbcfa(%rip), %rdi      # 0x21805
movl $0x40, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0xa20e
movl $0x40, (%rbx)
jmp 0x15bad
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movslq %r12d, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
shll $0xa, %eax
leaq 0x147a9(%rip), %rcx     # 0x2a2f0
jmp 0x15992
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movslq %r12d, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
shll $0xa, %eax
leaq 0x14785(%rip), %rcx     # 0x2a2f4
jmp 0x15992
incl %r12d
cmpl %ebx, %r12d
jge 0x16e55
movq (%r13), %rsi
movl $0x1000, %edx           # imm = 0x1000
leaq 0x1070(%rsp), %rbx
movq %rbx, %rdi
callq 0x8821
movq 0x28(%rsp), %rax
movslq %r12d, %rcx
movq (%rax,%rcx,8), %rdi
movq %rbx, %rsi
callq 0xa998
incl %r12d
movl 0x4(%rsp), %ebx
cmpl %ebx, %r12d
jl 0x15668
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
je 0x16e6d
leaq 0x1473e(%rip), %rbx     # 0x2a310
movl $0x1000, %edx           # imm = 0x1000
movq %rbx, %rdi
callq 0x8821
movq %rbx, %rdi
callq 0x82f5
movq %rbx, %rdi
callq 0x841d
leaq 0x20ab812(%rip), %rax   # 0x20c1408
movl (%rax), %edi
callq 0x9d4e
leaq -0xbe57(%rip), %rdi     # 0x9dad
callq 0x1cde0
callq 0xb4bd
leaq 0x20b894b(%rip), %rax   # 0x20ce560
movl (%rax), %edi
callq 0xb496
movl 0x30(%rsp), %edi
movq 0x38(%rsp), %rsi
callq 0xa496
leaq 0xbc68(%rip), %rdi      # 0x21899
xorl %eax, %eax
callq 0x9bae
cmpl $0x2, 0x4(%rsp)
jl 0x15c8a
movl $0x1, %r14d
leaq 0x913d(%rip), %r15      # 0x1ed89
leaq 0x9130(%rip), %r12      # 0x1ed83
movq 0x28(%rsp), %rax
movq (%rax,%r14,8), %rbx
movq %rbx, %rdi
movl $0x20, %esi
callq 0x4110
testq %rax, %rax
movq %r12, %rdi
cmoveq %r15, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9bae
incq %r14
movslq 0x4(%rsp), %rax
cmpq %rax, %r14
jl 0x15c53
leaq 0x8fe7(%rip), %rdi      # 0x1ec78
xorl %eax, %eax
callq 0x9bae
callq 0x9b49
callq 0x5b22
movzbl %al, %edi
xorl %esi, %esi
callq 0xa655
callq 0x8080
leaq -0xdbea(%rip), %rdi     # 0x80ce
callq 0x1cde0
leaq 0xbbe1(%rip), %rsi      # 0x218a5
leaq 0x1070(%rsp), %rbx
movl $0x1000, %edx           # imm = 0x1000
movq %rbx, %rdi
callq 0x8821
movq %rbx, %rdi
callq 0x96d3
testb %al, %al
jne 0x15d26
movq 0x28(%rsp), %rax
movq (%rax), %rsi
leaq 0x70(%rsp), %rbx
movl $0x1000, %edx           # imm = 0x1000
movq %rbx, %rdi
callq 0x8821
leaq 0x1070(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x8485
leaq 0xbb8c(%rip), %rsi      # 0x218a5
movl $0x1000, %edx           # imm = 0x1000
movq %r14, %rdi
callq 0x8838
leaq 0xbb86(%rip), %rdx      # 0x218b3
leaq 0x145dc(%rip), %rcx     # 0x2a310
leaq 0x70(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x877f
leaq 0x1070(%rsp), %rdi
callq 0x12d1f
cmpb $0x0, (%rbx)
je 0x15d64
leaq 0x70(%rsp), %rdi
callq 0x12d1f
callq 0x81b0
movsd %xmm0, 0x30(%rsp)
leaq 0x20bbc8a(%rip), %r14   # 0x20d1a00
leaq 0x8ca0(%rip), %rdx      # 0x1ea1d
leaq 0x1458c(%rip), %rbx     # 0x2a310
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x877f
movq %r14, %rdi
callq 0x4150
leaq 0x20b9c5b(%rip), %r14   # 0x20cfa00
leaq 0x8c78(%rip), %rdx      # 0x1ea24
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x877f
movq %r14, %rdi
callq 0x4150
leaq 0x20bac33(%rip), %r14   # 0x20d0a00
leaq 0x8c57(%rip), %rdx      # 0x1ea2b
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x877f
movq %r14, %rdi
callq 0x4150
leaq 0x20bcc0b(%rip), %r14   # 0x20d2a00
leaq 0x8c63(%rip), %rdx      # 0x1ea5f
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x877f
movq %r14, %rdi
callq 0x4150
leaq 0x1070(%rsp), %r15
leaq 0xa218(%rip), %r12      # 0x2003d
leaq 0xc15b(%rip), %rbp      # 0x21f87
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0xc136(%rip), %rsi      # 0x21f72
movq %rbx, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
movq %r15, %rdi
movq %r12, %rsi
callq 0x4370
leaq 0x30bdbb5(%rip), %rcx   # 0x30d3a10
movq %rax, (%r14,%rcx)
testq %rax, %rax
jne 0x15e75
leaq 0xc10e(%rip), %rdi      # 0x21f79
movq %r15, %rsi
xorl %eax, %eax
callq 0x9e9c
movq %r15, %rdi
movq %rbp, %rsi
movq %rbx, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
movq %r15, %rdi
movq %r12, %rsi
callq 0x4370
leaq 0x30bdb96(%rip), %rcx   # 0x30d3a30
movq %rax, (%r14,%rcx)
testq %rax, %rax
jne 0x15eb4
leaq 0xc0cf(%rip), %rdi      # 0x21f79
movq %r15, %rsi
xorl %eax, %eax
callq 0x9e9c
incq %r13
addq $0x8, %r14
cmpq $0x4, %r13
jne 0x15e32
leaq 0x8b66(%rip), %rdx      # 0x1ea32
leaq 0x1443d(%rip), %rcx     # 0x2a310
leaq 0x70(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x877f
leaq 0xa14f(%rip), %rsi      # 0x2003d
movq %rbx, %rdi
callq 0x4370
testq %rax, %rax
je 0x15fca
movq %rax, %rbx
movl $0x20, %r15d
movl $0x1, %ebp
leaq 0x4c(%rsp), %r13
leaq 0x48(%rsp), %r14
leaq 0x15412(%rip), %r12     # 0x2b330
movq %rbx, %rdi
leaq 0xc066(%rip), %rsi      # 0x21f8e
leaq 0x10(%rsp), %rdx
leaq 0x50(%rsp), %rcx
movq %r13, %r8
movq %r14, %r9
xorl %eax, %eax
leaq 0x40(%rsp), %r10
pushq %r10
leaq 0x4c(%rsp), %r10
pushq %r10
callq 0x4580
addq $0x10, %rsp
cmpl $0x6, %eax
je 0x15f66
leaq 0xc044(%rip), %rdi      # 0x21fa1
movl %ebp, %esi
xorl %eax, %eax
callq 0x9e9c
movss 0x50(%rsp), %xmm0
movss 0x10(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtps2pd %xmm1, %xmm0
movaps %xmm0, -0x20(%r15,%r12)
movss 0x48(%rsp), %xmm0
movss 0x4c(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtps2pd %xmm1, %xmm0
movaps %xmm0, -0x10(%r15,%r12)
movss 0x40(%rsp), %xmm0
movss 0x44(%rsp), %xmm1
unpcklps %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
cvtps2pd %xmm1, %xmm0
movaps %xmm0, (%r15,%r12)
addq $0x30, %r15
incl %ebp
cmpq $0xe0, %r15
jne 0x15f1e
movq %rbx, %rdi
callq 0x42e0
jmp 0x15fdd
leaq 0xb3dd(%rip), %rdi      # 0x213ae
leaq 0x70(%rsp), %rsi
xorl %eax, %eax
callq 0xa20e
leaq 0x20b8a1c(%rip), %rbx   # 0x20cea00
leaq 0x8a0c(%rip), %rdx      # 0x1e9f7
leaq 0x1431e(%rip), %rcx     # 0x2a310
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x877f
movq %rbx, %rdi
callq 0x4b09
callq 0x75f7
cmpb $0x1, 0x153dc(%rip)     # 0x2b3f1
jne 0x162d5
leaq 0x142de(%rip), %rax     # 0x2a300
movq (%rax), %rsi
leaq 0xbfb0(%rip), %rdi      # 0x21fdc
xorl %eax, %eax
callq 0x9bae
leaq 0xbfb8(%rip), %rdi      # 0x21ff2
xorl %eax, %eax
callq 0x9bae
leaq 0x152cc(%rip), %rax     # 0x2b314
movl (%rax), %esi
leaq 0xc006(%rip), %rdi      # 0x22057
xorl %eax, %eax
callq 0x9bae
leaq 0xb596(%rip), %rbx      # 0x215f5
leaq 0x20ab39e(%rip), %rax   # 0x20c1404
cmpb $0x0, (%rax)
leaq 0xb4c7(%rip), %r14      # 0x21537
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc002(%rip), %rdi      # 0x22080
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
leaq 0x15281(%rip), %rax     # 0x2b310
cmpb $0x0, (%rax)
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc005(%rip), %rdi      # 0x220a5
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9bae
leaq 0x20ab34f(%rip), %rax   # 0x20c1400
movl (%rax), %esi
leaq 0xc010(%rip), %rdi      # 0x220ca
xorl %edx, %edx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd93d(%rip)   # 0x20d3a07
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc017(%rip), %rdi      # 0x220ef
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x15307(%rip)     # 0x2b3f0
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc01d(%rip), %rdi      # 0x22114
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9bae
leaq 0x141e8(%rip), %rax     # 0x2a2f0
movl (%rax), %esi
leaq 0xc028(%rip), %rdi      # 0x22139
movl $0x2000000, %edx        # imm = 0x2000000
xorl %eax, %eax
callq 0x9bae
leaq 0x20b843c(%rip), %rax   # 0x20ce560
movl (%rax), %eax
cmpl $-0x1, %eax
leaq 0xc035(%rip), %rcx      # 0x22165
leaq 0xc027(%rip), %rdx      # 0x2215e
cmovneq %rdx, %rcx
cmpl $0x1, %eax
leaq 0xc024(%rip), %rsi      # 0x22169
cmovneq %rcx, %rsi
leaq 0xc01e(%rip), %rdi      # 0x2216e
xorl %eax, %eax
callq 0x9bae
leaq 0x8b1a(%rip), %rdi      # 0x1ec78
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd89a(%rip)   # 0x20d3a06
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc019(%rip), %rdi      # 0x22193
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd877(%rip)   # 0x20d3a02
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc01f(%rip), %rdi      # 0x221b8
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd859(%rip)   # 0x20d3a03
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc025(%rip), %rdi      # 0x221dd
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd837(%rip)   # 0x20d3a00
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc02b(%rip), %rdi      # 0x22202
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd819(%rip)   # 0x20d3a01
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc031(%rip), %rdi      # 0x22227
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x151f1(%rip)     # 0x2b3f8
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc037(%rip), %rdi      # 0x2224c
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd7de(%rip)   # 0x20d3a04
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc03d(%rip), %rdi      # 0x22271
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd7c0(%rip)   # 0x20d3a05
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xc043(%rip), %rdi      # 0x22296
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
movl 0x15191(%rip), %esi     # 0x2b3f4
leaq 0xc051(%rip), %rdi      # 0x222bb
movl $0xf0, %edx
movl $0x40, %ecx
movl $0x200, %r8d            # imm = 0x200
xorl %eax, %eax
callq 0x9bae
leaq 0x15174(%rip), %rax     # 0x2b3fc
movl (%rax), %esi
leaq 0xc061(%rip), %rdi      # 0x222f2
movl $0x400, %edx            # imm = 0x400
movl $0x40, %ecx
movl $0x10000, %r8d          # imm = 0x10000
xorl %eax, %eax
callq 0x9bae
cmpb $0x0, 0x20bd75b(%rip)   # 0x20d3a0a
cmoveq %r14, %rbx
leaq 0xc06f(%rip), %rdi      # 0x22329
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x9bae
leaq 0x89a9(%rip), %rdi      # 0x1ec77
xorl %eax, %eax
callq 0x9bae
leaq 0x875d(%rip), %rdx      # 0x1ea39
leaq 0x1402d(%rip), %rcx     # 0x2a310
leaq 0x70(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x877f
leaq 0x8685(%rip), %rsi      # 0x1e983
movq %rbx, %rdi
callq 0x4370
testq %rax, %rax
je 0x1635b
movq %rax, %rbx
movq %rax, %rdi
callq 0x9693
cltq
leaq 0xafd085(%rip), %r14    # 0xb133a4
movslq (%r14), %rdx
movq %rdx, %rcx
shlq $0x6, %rcx
cmpq %rax, %rcx
je 0x1633f
leaq 0xbc94(%rip), %rdi      # 0x21fc9
xorl %eax, %eax
callq 0x9e9c
movl (%r14), %edx
shll $0x6, %edx
leaq 0x20bd6c7(%rip), %rsi   # 0x20d3a10
movq %rbx, %rdi
callq 0x9784
movq %rbx, %rdi
callq 0x42e0
jmp 0x163cc
leaq 0xb04c(%rip), %rdi      # 0x213ae
leaq 0x70(%rsp), %rsi
xorl %eax, %eax
callq 0xa20e
leaq 0xafd02f(%rip), %rax    # 0xb133a4
movslq (%rax), %rax
testq %rax, %rax
jle 0x163cc
leaq 0xafd02c(%rip), %rcx    # 0xb133b0
addq $0x10, %rcx
shlq $0x6, %rax
xorl %edx, %edx
leaq 0x20bd67b(%rip), %rsi   # 0x20d3a10
cvtps2pd -0x10(%rcx), %xmm0
movaps %xmm0, (%rdx,%rsi)
xorps %xmm0, %xmm0
cvtss2sd -0x8(%rcx), %xmm0
movsd %xmm0, 0x10(%rdx,%rsi)
xorps %xmm0, %xmm0
cvtss2sd -0x4(%rcx), %xmm0
movsd %xmm0, 0x30(%rdx,%rsi)
movl (%rcx), %edi
movl %edi, 0x38(%rdx,%rsi)
addq $0x40, %rdx
addq $0x14, %rcx
cmpq %rdx, %rax
jne 0x16395
callq 0x1c1ea
movq 0x30bd638(%rip), %rdi   # 0x30d3a10
callq 0x17020
testq %rax, %rax
je 0x16d48
movq %rax, %rbx
leaq 0x14f40(%rip), %r13     # 0x2b330
movq 0x30bd639(%rip), %rdi   # 0x30d3a30
callq 0x17648
movq %rax, %r14
xorl %edi, %edi
leaq 0x15018(%rip), %rbp     # 0x2b420
cmpl $0x200, (%rbp)          # imm = 0x200
setl %dil
movl $0x2b, %esi
callq 0xa655
leaq 0xa1d050(%rip), %rax    # 0xa33474
movl (%rax), %eax
movl %eax, 0x8(%rsp)
movslq (%rbp), %r12
movq %r12, %rax
shlq $0x6, %rax
leaq 0x14ff4(%rip), %rdx     # 0x2b430
leaq (%rdx,%rax), %r15
leal 0x1(%r12), %ecx
movl %ecx, (%rbp)
movl $0x0, 0x20b859e(%rip)   # 0x20ce9f0
movaps 0xb027(%rip), %xmm0     # 0x21480
movaps %xmm0, (%rdx,%rax)
movsd 0x6beb(%rip), %xmm0     # 0x1d050
movsd %xmm0, 0x10(%rdx,%rax)
movsd (%rbx), %xmm1
movsd 0x18(%rbx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x16497
movl $0x4, %edi
leaq 0xbec8(%rip), %rsi      # 0x2234e
movl %r12d, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0xa3ae
jmp 0x1657c
movhpd 0x8(%rbx), %xmm1        # xmm1 = xmm1[0],mem[0]
subpd 0x14e8c(%rip), %xmm1    # 0x2b330
movsd 0x10(%rbx), %xmm2
subsd 0x14e8f(%rip), %xmm2    # 0x2b340
movapd %xmm1, 0x70(%rsp)
movsd %xmm2, 0x80(%rsp)
movhpd 0x20(%rbx), %xmm0       # xmm0 = xmm0[0],mem[0]
movupd 0x14e7b(%rip), %xmm1    # 0x2b348
subpd %xmm1, %xmm0
movapd %xmm0, 0x10(%rsp)
movsd 0x28(%rbx), %xmm0
subsd 0x14e74(%rip), %xmm0    # 0x2b358
movsd %xmm0, 0x20(%rsp)
xorl %eax, %eax
movsd 0x9d5c(%rip), %xmm2     # 0x20250
movsd 0x70(%rsp,%rax,8), %xmm0
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1651a
addsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x70(%rsp,%rax,8)
movsd %xmm0, 0x10(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x164f4
xorl %eax, %eax
movss 0xc(%r15,%rax,4), %xmm0
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm2
ja 0x16546
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss (%r15,%rax,4), %xmm1
movss %xmm0, 0xc(%r15,%rax,4)
xorps %xmm2, %xmm2
cvtss2sd %xmm1, %xmm2
movsd 0x70(%rsp,%rax,8), %xmm0
ucomisd %xmm2, %xmm0
ja 0x1656d
xorps %xmm1, %xmm1
cvtsd2ss %xmm0, %xmm1
movss %xmm1, (%r15,%rax,4)
incq %rax
cmpq $0x3, %rax
jne 0x16525
xorl %edx, %edx
testl %r12d, %r12d
sete %dl
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1835e
movq %rax, %rbx
leaq 0x14e87(%rip), %rax     # 0x2b420
cmpl $0x1, (%rax)
jne 0x165db
cmpb $0x0, 0x20bd45d(%rip)   # 0x20d3a02
leaq 0x1b7ce08(%rip), %r14   # 0x1b933b4
jne 0x165e2
cmpb $0x0, 0x20bd44e(%rip)   # 0x20d3a03
jne 0x165bf
movq %rbx, %rdi
callq 0x136c4
xorl %esi, %esi
cmpb $0x0, 0x20bd441(%rip)   # 0x20d3a09
sete %sil
movq %rbx, %rdi
xorl %edx, %edx
callq 0x12e64
movq %rax, %rbx
jmp 0x165e2
leaq 0x1b7cdd2(%rip), %r14   # 0x1b933b4
movq %rbx, %rdi
callq 0x1440c
movq %rbx, %rdi
callq 0x1a800
callq 0x1a6a8
leaq 0x10bcdba(%rip), %rax   # 0x10d33b8
movl (%rax), %eax
movl %eax, 0x24(%r15)
movl (%r14), %eax
movl %eax, 0x38(%r15)
movl 0x80(%rbx), %eax
movl %eax, 0x38(%rsp)
cmpl $-0x1, %eax
jne 0x16805
movq 0xa8(%rbx), %rax
cmpq $0x0, (%rax)
je 0x16637
xorl %edi, %edi
movl $0x16, %esi
callq 0xa655
leaq 0xafcd66(%rip), %rax    # 0xb133a4
cmpl $0x0, (%rax)
jne 0x16651
leaq 0xbd1c(%rip), %rdi      # 0x22366
xorl %eax, %eax
callq 0x9e9c
xorl %r14d, %r14d
movl %r14d, 0x80(%rbx)
movl $0x1, %edi
movl $0xc8, %esi
callq 0x41e0
movq %rax, 0x88(%rbx)
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl %ebp, 0x80(%rax)
movq 0x88(%rbx), %rax
movl %ebp, 0xa0(%rax)
movq 0x88(%rbx), %rax
movb %r14b, 0x48(%rax)
movq 0x88(%rbx), %rax
movb $0x1, %cl
movb %cl, 0x49(%rax)
movq 0x88(%rbx), %rax
movb %r14b, 0x4a(%rax)
movq 0x88(%rbx), %rax
movq %r14, 0x98(%rax)
movl $0x1, %edi
movl $0x8, %esi
callq 0x41e0
movq 0x88(%rbx), %rcx
movq %rax, 0xa8(%rcx)
movq 0x88(%rbx), %rax
movq %r14, 0x50(%rax)
movq 0x88(%rbx), %rax
movq %r14, 0x58(%rax)
movq 0x88(%rbx), %rax
movq %r14, 0x60(%rax)
movq 0x88(%rbx), %rax
movq %r14, 0x68(%rax)
movq 0x88(%rbx), %rax
movq %r14, 0x70(%rax)
movq 0x88(%rbx), %rax
movq %r14, 0x78(%rax)
movl $0x1, %edi
movl $0xc8, %esi
callq 0x41e0
movq %rax, 0x90(%rbx)
movl %ebp, 0x80(%rax)
movq 0x90(%rbx), %rax
movl %ebp, 0xa0(%rax)
movq 0x90(%rbx), %rax
movb %r14b, 0x48(%rax)
movq 0x90(%rbx), %rax
movb $0x1, %cl
movb %cl, 0x49(%rax)
movq 0x90(%rbx), %rax
movb %r14b, 0x4a(%rax)
movq 0x90(%rbx), %rax
movq %r14, 0x98(%rax)
movl $0x1, %edi
movl $0x8, %esi
callq 0x41e0
movq 0x90(%rbx), %rcx
movq %rax, 0xa8(%rcx)
movq 0x90(%rbx), %rax
movq %r14, 0x50(%rax)
movq 0x90(%rbx), %rax
movq %r14, 0x58(%rax)
movq 0x90(%rbx), %rax
movq %r14, 0x60(%rax)
movq 0x90(%rbx), %rax
movq %r14, 0x68(%rax)
movq 0x90(%rbx), %rax
movq %r14, 0x70(%rax)
movq 0x90(%rbx), %rax
movq %r14, 0x78(%rax)
movl %r14d, 0xa0(%rbx)
movw $0x0, 0x48(%rbx)
movq %r14, 0x98(%rbx)
movq %r14, 0xa8(%rbx)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x70(%rbx)
movupd %xmm0, 0x60(%rbx)
movupd %xmm0, 0x50(%rbx)
leaq 0x1b7cbaf(%rip), %r14   # 0x1b933b4
movq %rbx, %rdi
callq 0x1badd
movl (%r14), %eax
subl 0x38(%r15), %eax
movl %eax, 0x3c(%r15)
leaq 0xa1cc55(%rip), %rax    # 0xa33474
movl (%rax), %eax
subl 0x8(%rsp), %eax
movl %eax, 0x34(%r15)
cmpb $0x0, 0x20bd1d6(%rip)   # 0x20d3a06
je 0x16847
movq $-0x1, 0x28(%r15)
movl $0xffffffff, 0x30(%r15) # imm = 0xFFFFFFFF
jmp 0x16a43
movl $0x1, 0x20b819f(%rip)   # 0x20ce9f0
movl $0x1, %ecx
leaq 0x30bd1b3(%rip), %rbp   # 0x30d3a10
movslq %ecx, %rax
movq (%rbp,%rax,8), %rdi
callq 0x17020
movq %rax, %rbx
movslq 0x20b817c(%rip), %rax   # 0x20ce9f0
leaq 0x30bd1b5(%rip), %rcx   # 0x30d3a30
movq (%rcx,%rax,8), %rdi
callq 0x17648
movq %rax, %r14
movslq 0x20b8162(%rip), %rcx   # 0x20ce9f0
movsd (%rbx), %xmm1
movsd 0x18(%rbx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x168b8
movl $0x3, %edi
leaq 0xbaa5(%rip), %rsi      # 0x2234e
movl %r12d, %edx
xorl %eax, %eax
callq 0xa3ae
jmp 0x169a0
leaq (%rcx,%rcx,2), %rax
shlq $0x4, %rax
movhpd 0x8(%rbx), %xmm1        # xmm1 = xmm1[0],mem[0]
subpd (%rax,%r13), %xmm1
movsd 0x10(%rbx), %xmm2
subsd 0x10(%rax,%r13), %xmm2
movapd %xmm1, 0x70(%rsp)
movsd %xmm2, 0x80(%rsp)
movhpd 0x20(%rbx), %xmm0       # xmm0 = xmm0[0],mem[0]
movupd 0x18(%rax,%r13), %xmm1
subpd %xmm1, %xmm0
movapd %xmm0, 0x10(%rsp)
movsd 0x28(%rbx), %xmm0
subsd 0x28(%rax,%r13), %xmm0
movsd %xmm0, 0x20(%rsp)
xorl %eax, %eax
movsd 0x9938(%rip), %xmm2     # 0x20250
movsd 0x70(%rsp,%rax,8), %xmm0
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1693e
addsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x70(%rsp,%rax,8)
movsd %xmm0, 0x10(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x16918
xorl %eax, %eax
movss 0xc(%r15,%rax,4), %xmm0
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm2
ja 0x1696a
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss (%r15,%rax,4), %xmm1
movss %xmm0, 0xc(%r15,%rax,4)
xorps %xmm2, %xmm2
cvtss2sd %xmm1, %xmm2
movsd 0x70(%rsp,%rax,8), %xmm0
ucomisd %xmm2, %xmm0
ja 0x16991
xorps %xmm1, %xmm1
cvtsd2ss %xmm0, %xmm1
movss %xmm1, (%r15,%rax,4)
incq %rax
cmpq $0x3, %rax
jne 0x16949
xorl %edx, %edx
testl %r12d, %r12d
sete %dl
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1835e
movq %rax, %rbx
leaq 0x14a63(%rip), %rax     # 0x2b420
cmpl $0x1, (%rax)
jne 0x169e9
cmpb $0x0, 0x20bd039(%rip)   # 0x20d3a02
jne 0x169e9
xorl %esi, %esi
cmpb $0x0, 0x20bd035(%rip)   # 0x20d3a09
sete %sil
movl 0x20b8012(%rip), %edx   # 0x20ce9f0
movq %rbx, %rdi
callq 0x12e64
movq %rax, %rbx
movq %rbx, %rdi
callq 0x1440c
cmpl $-0x1, 0x80(%rbx)
je 0x16a1f
leaq 0x1cbc9af(%rip), %rax   # 0x1cd33b0
movl (%rax), %eax
movslq 0x20b7fe6(%rip), %rcx   # 0x20ce9f0
movl %eax, 0x24(%r15,%rcx,4)
movq %rbx, %rdi
callq 0x1b76c
movl 0x20b7fd3(%rip), %eax   # 0x20ce9f0
jmp 0x16a31
movl 0xa0(%rbx), %ecx
movslq 0x20b7fc4(%rip), %rax   # 0x20ce9f0
movl %ecx, 0x24(%r15,%rax,4)
leal 0x1(%rax), %ecx
movl %ecx, 0x20b7fb6(%rip)   # 0x20ce9f0
cmpl $0x3, %eax
jl 0x1685d
movl %r12d, %edi
callq 0x80f9
cmpq 0x13586(%rip), %rax     # 0x29fd8
je 0x16b5e
movq %rax, %rbx
movq %rax, %rdi
leaq 0xb913(%rip), %rsi      # 0x22378
callq 0x7482
cmpb $0x0, (%rax)
je 0x16b5e
xorpd %xmm0, %xmm0
movapd %xmm0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
movq %rbx, %rdi
leaq 0x6c47(%rip), %rsi      # 0x1d6da
callq 0x7482
movq %rax, %rdi
leaq 0xb8f0(%rip), %rsi      # 0x22392
leaq 0x70(%rsp), %rdx
leaq 0x78(%rsp), %rcx
leaq 0x80(%rsp), %r8
xorl %eax, %eax
callq 0x42d0
movq %rbx, %rdi
leaq 0xb8b3(%rip), %rsi      # 0x22378
callq 0x7482
movq %rax, %rdi
leaq 0xb8b2(%rip), %rsi      # 0x22386
leaq 0x10(%rsp), %rdx
leaq 0x18(%rsp), %rcx
leaq 0x20(%rsp), %r8
leaq 0x50(%rsp), %r9
xorl %eax, %eax
leaq 0x60(%rsp), %r10
pushq %r10
leaq 0x60(%rsp), %r10
pushq %r10
callq 0x42d0
addq $0x10, %rsp
cmpl $0x6, %eax
jne 0x16b5e
movapd 0x70(%rsp), %xmm0
movsd 0x20(%rsp), %xmm1
movhpd 0x50(%rsp), %xmm1       # xmm1 = xmm1[0],mem[0]
movapd 0x10(%rsp), %xmm2
movupd 0x78(%rsp), %xmm3
movapd %xmm3, %xmm4
shufpd $0x1, %xmm0, %xmm4      # xmm4 = xmm4[1],xmm0[0]
unpcklpd %xmm3, %xmm0            # xmm0 = xmm0[0],xmm3[0]
subpd %xmm0, %xmm2
subpd %xmm4, %xmm1
cvtpd2ps %xmm1, %xmm0
cvtpd2ps %xmm2, %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
movapd %xmm1, (%r15)
movupd 0x58(%rsp), %xmm0
subpd %xmm3, %xmm0
cvtpd2ps %xmm0, %xmm0
movlpd %xmm0, 0x10(%r15)
xorps %xmm0, %xmm0
cvtss2sd (%r15), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%r15), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%r15), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xc(%r15), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x10(%r15), %xmm4
cvtss2sd 0x14(%r15), %xmm5
movl $0x3, %edi
leaq 0xb802(%rip), %rsi      # 0x2239e
movl %r12d, %edx
movb $0x6, %al
callq 0xa3ae
movss (%r15), %xmm0
ucomiss 0xc(%r15), %xmm0
jbe 0x16c5d
leaq 0x14863(%rip), %rbx     # 0x2b420
movl (%rbx), %edi
decl %edi
callq 0x80f9
movq %rax, %r14
movl (%rbx), %ebx
decl %ebx
setne %al
cmpq 0x13401(%rip), %r14     # 0x29fd8
sete %cl
leaq 0xb83d(%rip), %r8       # 0x2241e
movq %r8, %rbp
movq %r8, %r12
testq %r14, %r14
je 0x16c33
leaq 0xb82b(%rip), %r8       # 0x2241e
movq %r8, %rbp
movq %r8, %r12
andb %al, %cl
jne 0x16c33
movq %r14, %rdi
leaq 0x69e6(%rip), %rsi      # 0x1d5ed
callq 0x7482
movq %rax, %r12
movq %r14, %rdi
leaq 0x6ac1(%rip), %rsi      # 0x1d6da
callq 0x7482
movq %rax, %rbp
movq %r14, %rdi
leaq 0x6b3d(%rip), %rsi      # 0x1d768
callq 0x7482
movq %rax, %r8
leaq 0xb790(%rip), %rdi      # 0x223ca
movl %ebx, %esi
movq %r12, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xa20e
xorps %xmm0, %xmm0
movaps %xmm0, (%r15)
movq $0x0, 0x10(%r15)
jmp 0x16d30
cmpl $-0x1, 0x38(%rsp)
jne 0x16d30
leaq 0x147b1(%rip), %rbx     # 0x2b420
movl (%rbx), %edi
decl %edi
callq 0x80f9
movq %rax, %r12
movl (%rbx), %ebx
decl %ebx
setne %al
cmpq 0x1334f(%rip), %r12     # 0x29fd8
sete %cl
leaq 0xb78b(%rip), %r8       # 0x2241e
movq %r8, %rbp
movq %r8, %r14
testq %r12, %r12
je 0x16ce5
leaq 0xb779(%rip), %r8       # 0x2241e
movq %r8, %rbp
movq %r8, %r14
andb %al, %cl
jne 0x16ce5
movq %r12, %rdi
leaq 0x6934(%rip), %rsi      # 0x1d5ed
callq 0x7482
movq %rax, %r14
movq %r12, %rdi
leaq 0x6a0f(%rip), %rsi      # 0x1d6da
callq 0x7482
movq %rax, %rbp
movq %r12, %rdi
leaq 0x6a8b(%rip), %rsi      # 0x1d768
callq 0x7482
movq %rax, %r8
xorps %xmm0, %xmm0
cvtss2sd (%r15), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%r15), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%r15), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xc(%r15), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x10(%r15), %xmm4
xorps %xmm5, %xmm5
cvtss2sd 0x14(%r15), %xmm5
leaq 0xb705(%rip), %rdi      # 0x22426
movl %ebx, %esi
movq %r14, %rdx
movq %rbp, %rcx
movb $0x6, %al
callq 0xa20e
movq 0x30bccd9(%rip), %rdi   # 0x30d3a10
callq 0x17020
movq %rax, %rbx
testq %rax, %rax
jne 0x163f0
callq 0x1c27c
leaq 0x1070(%rsp), %r15
xorl %ebx, %ebx
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0xb20e(%rip), %rsi      # 0x21f72
leaq 0x135a5(%rip), %r12     # 0x2a310
movq %r12, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
leaq 0x30bcc91(%rip), %rbp   # 0x30d3a10
movq (%rbx,%rbp), %rdi
callq 0x42e0
xorl %r14d, %r14d
movq %r14, (%rbx,%rbp)
movq %r15, %rdi
callq 0x4150
movq %r15, %rdi
leaq 0xb1e6(%rip), %rsi      # 0x21f87
movq %r12, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
leaq 0x30bcc7b(%rip), %r12   # 0x30d3a30
movq (%rbx,%r12), %rdi
callq 0x42e0
movq %r14, (%rbx,%r12)
movq %r15, %rdi
callq 0x4150
incq %r13
addq $0x8, %rbx
cmpq $0x4, %r13
jne 0x16d5a
leaq 0x7c54(%rip), %rdx      # 0x1ea32
leaq 0x1352b(%rip), %rbx     # 0x2a310
leaq 0x1070(%rsp), %r14
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x877f
movq %r14, %rdi
callq 0x4150
leaq 0x7c2b(%rip), %rdx      # 0x1ea39
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x877f
movq %r14, %rdi
callq 0x4150
callq 0x81b0
subsd 0x30(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
callq 0xa6e9
callq 0x12cfd
xorl %eax, %eax
addq $0x2078, %rsp           # imm = 0x2078
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x16e8c
leaq 0xa7c1(%rip), %rdi      # 0x21622
xorl %eax, %eax
callq 0x9bae
callq 0x16e8c
leaq 0xaa0f(%rip), %rdi      # 0x21883
jmp 0x16e61
leaq 0xa9f1(%rip), %rdi      # 0x2186e
movq %rbp, %rsi
xorl %eax, %eax
callq 0x9bae
callq 0x16e8c