// File: /workspace/github_cpp_makefile_star2_O1/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 0xcc86(%rip), %rax      # 0x2258e
leaq 0x15a01(%rip), %rcx     # 0x2b310
movq %rax, (%rcx)
leaq 0x4(%rsp), %rbx
leaq 0x28(%rsp), %r14
movq %rbx, %rdx
movq %r14, %rcx
callq 0x939f
movl (%rbx), %edi
movq (%r14), %rsi
callq 0xa87b
testl %eax, %eax
js 0x17183
cmpl $0x1, 0x4(%rsp)
je 0x17183
movl %ebp, 0x30(%rsp)
movq %r15, 0x38(%rsp)
movl 0x4(%rsp), %ebx
cmpl $0x2, %ebx
jl 0x15ebc
movl $0x1, %ebp
leaq 0xccd6(%rip), %r14      # 0x2263c
leaq 0xcd05(%rip), %r15      # 0x22672
movq $0x0, 0x8(%rsp)
movq 0x28(%rsp), %r13
movslq %ebp, %rax
movq (%r13,%rax,8), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x4320
testl %eax, %eax
je 0x15bf2
movq %r12, %rdi
movq %r15, %rsi
callq 0x4320
testl %eax, %eax
je 0x15c16
movq %r12, %rdi
leaq 0xccfb(%rip), %rsi      # 0x226ae
callq 0x4320
testl %eax, %eax
je 0x15c35
movq %r12, %rdi
leaq 0xcced(%rip), %rsi      # 0x226b7
callq 0x4320
testl %eax, %eax
je 0x15c41
movq %r12, %rdi
leaq 0xccdf(%rip), %rsi      # 0x226c0
callq 0x4320
testl %eax, %eax
je 0x15c4d
movq %r12, %rdi
leaq 0xccd0(%rip), %rsi      # 0x226c8
callq 0x4320
testl %eax, %eax
je 0x15c59
movq %r12, %rdi
leaq 0xccc1(%rip), %rsi      # 0x226d0
callq 0x4320
testl %eax, %eax
je 0x15c65
movq %r12, %rdi
leaq 0xccb8(%rip), %rsi      # 0x226de
callq 0x4320
testl %eax, %eax
je 0x15c71
movq %r12, %rdi
leaq 0xccad(%rip), %rsi      # 0x226ea
callq 0x4320
testl %eax, %eax
je 0x15c7d
movq %r12, %rdi
leaq 0xcc9b(%rip), %rsi      # 0x226ef
callq 0x4320
testl %eax, %eax
je 0x15ca2
movq %r12, %rdi
leaq 0xcc8d(%rip), %rsi      # 0x226f8
callq 0x4320
testl %eax, %eax
je 0x15cb1
movq %r12, %rdi
leaq 0xcc7e(%rip), %rsi      # 0x22700
callq 0x4320
testl %eax, %eax
je 0x15cbd
movq %r12, %rdi
leaq 0xcc71(%rip), %rsi      # 0x2270a
callq 0x4320
testl %eax, %eax
je 0x15cc9
movq %r12, %rdi
leaq 0xcc61(%rip), %rsi      # 0x22711
callq 0x4320
testl %eax, %eax
je 0x15cd5
movq %r12, %rdi
leaq 0xcc4f(%rip), %rsi      # 0x22716
callq 0x4320
testl %eax, %eax
je 0x15ce7
movq %r12, %rdi
leaq 0xcc3e(%rip), %rsi      # 0x2271c
callq 0x4320
testl %eax, %eax
je 0x15cf9
movq %r12, %rdi
leaq 0xcc2e(%rip), %rsi      # 0x22723
callq 0x4320
testl %eax, %eax
je 0x15d08
movq %r12, %rdi
leaq 0xcc22(%rip), %rsi      # 0x2272e
callq 0x4320
testl %eax, %eax
je 0x15d14
movq %r12, %rdi
leaq 0xcc14(%rip), %rsi      # 0x22737
callq 0x4320
testl %eax, %eax
je 0x15d20
movq %r12, %rdi
leaq 0xcc04(%rip), %rsi      # 0x2273e
callq 0x4320
testl %eax, %eax
je 0x15d2c
movq %r12, %rdi
leaq 0xcbfe(%rip), %rsi      # 0x2274f
callq 0x4320
testl %eax, %eax
je 0x15d38
movq %r12, %rdi
leaq 0xcc72(%rip), %rsi      # 0x227da
callq 0x4320
testl %eax, %eax
je 0x15d80
movq %r12, %rdi
leaq 0xccec(%rip), %rsi      # 0x2286b
callq 0x4320
testl %eax, %eax
je 0x15df4
movq %r12, %rdi
leaq 0xcce1(%rip), %rsi      # 0x22877
callq 0x4320
testl %eax, %eax
je 0x15e29
movq %r12, %rdi
leaq 0xccd3(%rip), %rsi      # 0x22880
callq 0x4320
testl %eax, %eax
je 0x15e4f
movq %r12, %rdi
leaq 0xccc7(%rip), %rsi      # 0x2288b
callq 0x4320
testl %eax, %eax
je 0x15e75
cmpb $0x2d, (%r12)
je 0x171a4
cmpq $0x0, 0x8(%rsp)
jne 0x171a4
movq %r12, 0x8(%rsp)
jmp 0x15eac
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movslq %ebp, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
testl %eax, %eax
jg 0x15eac
jmp 0x17188
leaq 0xca5e(%rip), %rdi      # 0x2267b
xorl %eax, %eax
callq 0xa2f6
incl %ebp
cmpl 0x4(%rsp), %ebp
jl 0x15eac
jmp 0x17183
movb $0x1, 0x20bedd8(%rip)   # 0x20d4a14
jmp 0x15eac
movb $0x1, 0x20bedcd(%rip)   # 0x20d4a15
jmp 0x15eac
movb $0x1, 0x20bedc2(%rip)   # 0x20d4a16
jmp 0x15eac
movb $0x1, 0x20bedb2(%rip)   # 0x20d4a12
jmp 0x15eac
movb $0x1, 0x20beda7(%rip)   # 0x20d4a13
jmp 0x15eac
movb $0x0, 0x16788(%rip)     # 0x2c400
jmp 0x15eac
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movslq %ebp, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
leaq 0x20ac775(%rip), %rcx   # 0x20c2410
movl %eax, (%rcx)
jmp 0x15eac
leaq 0x20ac76b(%rip), %rax   # 0x20c2414
movb $0x1, (%rax)
jmp 0x15eac
movb $0x0, 0x16749(%rip)     # 0x2c401
jmp 0x15eac
movb $0x1, 0x20bed54(%rip)   # 0x20d4a18
jmp 0x15eac
movb $0x1, 0x20bed47(%rip)   # 0x20d4a17
jmp 0x15eac
leaq 0x20b9894(%rip), %rax   # 0x20cf570
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
jmp 0x15eac
leaq 0x20b9882(%rip), %rax   # 0x20cf570
movl $0x1, (%rax)
jmp 0x15eac
leaq 0x16620(%rip), %rax     # 0x2c320
movb $0x0, (%rax)
jmp 0x15eac
movb $0x0, 0x166f9(%rip)     # 0x2c408
jmp 0x15eac
movb $0x1, 0x20becff(%rip)   # 0x20d4a1a
jmp 0x15eac
movb $0x1, 0x20bece9(%rip)   # 0x20d4a10
jmp 0x15eac
movb $0x1, 0x20becde(%rip)   # 0x20d4a11
jmp 0x15eac
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movslq %ebp, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
movl %eax, 0x166af(%rip)     # 0x2c404
cmpl $0x201, %eax            # imm = 0x201
jl 0x15dc7
leaq 0xc9f7(%rip), %rdi      # 0x2275a
movl $0x200, %esi            # imm = 0x200
movl %eax, %edx
xorl %eax, %eax
callq 0xa2f6
movl $0x200, 0x16689(%rip)   # imm = 0x200
jmp 0x15eac
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movslq %ebp, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
leaq 0x1666e(%rip), %rbx     # 0x2c40c
movl %eax, (%rbx)
cmpl $0x10001, %eax          # imm = 0x10001
jl 0x15e00
leaq 0xca39(%rip), %rdi      # 0x227e7
movl $0x10000, %esi          # imm = 0x10000
movl %eax, %edx
xorl %eax, %eax
callq 0xa2f6
movl $0x10000, (%rbx)        # imm = 0x10000
jmp 0x15eac
cmpl $0x3f, %eax
jg 0x15eac
leaq 0xc9c3(%rip), %rdi      # 0x2279a
movl $0x40, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0xa2f6
movl $0x40, 0x16615(%rip)    # 0x2c404
jmp 0x15eac
movb $0x1, 0x20bec20(%rip)   # 0x20d4a1b
jmp 0x15eac
cmpl $0x3f, %eax
jg 0x15eac
leaq 0xca18(%rip), %rdi      # 0x22828
movl $0x40, %esi
movl %eax, %edx
xorl %eax, %eax
callq 0xa2f6
movl $0x40, (%rbx)
jmp 0x15eac
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movslq %ebp, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
shll $0xa, %eax
leaq 0x154b6(%rip), %rcx     # 0x2b300
jmp 0x15c9b
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movslq %ebp, %rax
movq (%r13,%rax,8), %rdi
callq 0x44c0
shll $0xa, %eax
leaq 0x15494(%rip), %rcx     # 0x2b304
jmp 0x15c9b
incl %ebp
cmpl %ebx, %ebp
jge 0x17183
movq (%r13), %rsi
movl $0x1000, %edx           # imm = 0x1000
leaq 0x1070(%rsp), %rbx
movq %rbx, %rdi
callq 0x8905
movq 0x28(%rsp), %rax
movslq %ebp, %rcx
movq (%rax,%rcx,8), %rdi
movq %rbx, %rsi
callq 0xaa68
incl %ebp
movl 0x4(%rsp), %ebx
cmpl %ebx, %ebp
jl 0x15976
jmp 0x15ec5
movq $0x0, 0x8(%rsp)
movq 0x8(%rsp), %rsi
testq %rsi, %rsi
je 0x1719b
leaq 0x15446(%rip), %r14     # 0x2b320
movl $0x1000, %edx           # imm = 0x1000
movq %r14, %rdi
callq 0x8905
movq %r14, %rdi
callq 0x83c1
movq %r14, %rdi
callq 0x84f4
leaq 0x20ac51a(%rip), %rax   # 0x20c2418
movl (%rax), %edi
callq 0x9e36
leaq -0xc077(%rip), %rdi     # 0x9e95
callq 0x1d1e0
callq 0xb5ae
leaq 0x20b9653(%rip), %rax   # 0x20cf570
movl (%rax), %edi
callq 0xb587
movl 0x30(%rsp), %edi
movq 0x38(%rsp), %rsi
callq 0xa57e
leaq 0xc983(%rip), %rdi      # 0x228bc
xorl %eax, %eax
callq 0x9c96
cmpl $0x2, 0x4(%rsp)
jl 0x15f92
movl $0x1, %r14d
leaq 0x9e45(%rip), %r15      # 0x1fd99
leaq 0x9e38(%rip), %r12      # 0x1fd93
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 0x9c96
incq %r14
movslq 0x4(%rsp), %rax
cmpq %rax, %r14
jl 0x15f5b
leaq 0x9cef(%rip), %rdi      # 0x1fc88
xorl %eax, %eax
callq 0x9c96
callq 0x9c31
callq 0x5b29
movzbl %al, %edi
xorl %esi, %esi
callq 0xa731
callq 0x814d
leaq -0xde25(%rip), %rdi     # 0x819b
callq 0x1d1e0
leaq 0xc8fc(%rip), %rsi      # 0x228c8
leaq 0x1070(%rsp), %rbx
movl $0x1000, %edx           # imm = 0x1000
movq %rbx, %rdi
callq 0x8905
movq %rbx, %rdi
callq 0x97be
testb %al, %al
jne 0x1602e
movq 0x28(%rsp), %rax
movq (%rax), %rsi
leaq 0x70(%rsp), %rbx
movl $0x1000, %edx           # imm = 0x1000
movq %rbx, %rdi
callq 0x8905
leaq 0x1070(%rsp), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0x855c
leaq 0xc8a7(%rip), %rsi      # 0x228c8
movl $0x1000, %edx           # imm = 0x1000
movq %r14, %rdi
callq 0x891c
leaq 0xc8a1(%rip), %rdx      # 0x228d6
leaq 0x152e4(%rip), %rcx     # 0x2b320
leaq 0x70(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8863
leaq 0x1070(%rsp), %rdi
callq 0x12fff
cmpb $0x0, (%rbx)
je 0x1606c
leaq 0x70(%rsp), %rdi
callq 0x12fff
callq 0x827c
movsd %xmm0, 0x30(%rsp)
leaq 0x20bc992(%rip), %r14   # 0x20d2a10
leaq 0x99a8(%rip), %rdx      # 0x1fa2d
leaq 0x15294(%rip), %rbx     # 0x2b320
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8863
movq %r14, %rdi
callq 0x4150
leaq 0x20ba963(%rip), %r14   # 0x20d0a10
leaq 0x9980(%rip), %rdx      # 0x1fa34
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8863
movq %r14, %rdi
callq 0x4150
leaq 0x20bb93b(%rip), %r14   # 0x20d1a10
leaq 0x995f(%rip), %rdx      # 0x1fa3b
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8863
movq %r14, %rdi
callq 0x4150
leaq 0x20bd913(%rip), %r14   # 0x20d3a10
leaq 0x996b(%rip), %rdx      # 0x1fa6f
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8863
movq %r14, %rdi
callq 0x4150
leaq 0x1070(%rsp), %r15
leaq 0xaf20(%rip), %r12      # 0x2104d
leaq 0xce76(%rip), %rbp      # 0x22faa
xorl %r14d, %r14d
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0xce51(%rip), %rsi      # 0x22f95
movq %rbx, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
movq %r15, %rdi
movq %r12, %rsi
callq 0x4370
leaq 0x30be8bd(%rip), %rcx   # 0x30d4a20
movq %rax, (%r14,%rcx)
testq %rax, %rax
jne 0x1617d
leaq 0xce29(%rip), %rdi      # 0x22f9c
movq %r15, %rsi
xorl %eax, %eax
callq 0x9f84
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 0x30be89e(%rip), %rcx   # 0x30d4a40
movq %rax, (%r14,%rcx)
testq %rax, %rax
jne 0x161bc
leaq 0xcdea(%rip), %rdi      # 0x22f9c
movq %r15, %rsi
xorl %eax, %eax
callq 0x9f84
incq %r13
addq $0x8, %r14
cmpq $0x4, %r13
jne 0x1613a
leaq 0x986e(%rip), %rdx      # 0x1fa42
leaq 0x15145(%rip), %rcx     # 0x2b320
leaq 0x70(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8863
leaq 0xae57(%rip), %rsi      # 0x2104d
movq %rbx, %rdi
callq 0x4370
testq %rax, %rax
je 0x162d2
movq %rax, %rbx
movl $0x20, %r15d
movl $0x1, %ebp
leaq 0x4c(%rsp), %r13
leaq 0x48(%rsp), %r14
leaq 0x1611a(%rip), %r12     # 0x2c340
movq %rbx, %rdi
leaq 0xcd81(%rip), %rsi      # 0x22fb1
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 0x4590
addq $0x10, %rsp
cmpl $0x6, %eax
je 0x1626e
leaq 0xcd5f(%rip), %rdi      # 0x22fc4
movl %ebp, %esi
xorl %eax, %eax
callq 0x9f84
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 0x16226
movq %rbx, %rdi
callq 0x42e0
jmp 0x162e5
leaq 0xc0dd(%rip), %rdi      # 0x223b6
leaq 0x70(%rsp), %rsi
xorl %eax, %eax
callq 0xa2f6
leaq 0x20b9724(%rip), %rbx   # 0x20cfa10
leaq 0x9714(%rip), %rdx      # 0x1fa07
leaq 0x15026(%rip), %rcx     # 0x2b320
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8863
movq %rbx, %rdi
callq 0x4b17
callq 0x763e
cmpb $0x1, 0x160e4(%rip)     # 0x2c401
jne 0x165dd
leaq 0x14fe6(%rip), %rax     # 0x2b310
movq (%rax), %rsi
leaq 0xcccb(%rip), %rdi      # 0x22fff
xorl %eax, %eax
callq 0x9c96
leaq 0xccd3(%rip), %rdi      # 0x23015
xorl %eax, %eax
callq 0x9c96
leaq 0x15fd4(%rip), %rax     # 0x2c324
movl (%rax), %esi
leaq 0xcd21(%rip), %rdi      # 0x2307a
xorl %eax, %eax
callq 0x9c96
leaq 0x20ac0ad(%rip), %rax   # 0x20c2414
leaq 0xc2aa(%rip), %rbx      # 0x22618
cmpb $0x0, (%rax)
leaq 0xc1df(%rip), %r14      # 0x22557
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd1d(%rip), %rdi      # 0x230a3
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
leaq 0x15f89(%rip), %rax     # 0x2c320
cmpb $0x0, (%rax)
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd20(%rip), %rdi      # 0x230c8
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9c96
leaq 0x20ac057(%rip), %rax   # 0x20c2410
movl (%rax), %esi
leaq 0xcd2b(%rip), %rdi      # 0x230ed
xorl %edx, %edx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be645(%rip)   # 0x20d4a17
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd32(%rip), %rdi      # 0x23112
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x1600f(%rip)     # 0x2c400
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd38(%rip), %rdi      # 0x23137
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9c96
leaq 0x14ef0(%rip), %rax     # 0x2b300
movl (%rax), %esi
leaq 0xcd43(%rip), %rdi      # 0x2315c
movl $0x2000000, %edx        # imm = 0x2000000
xorl %eax, %eax
callq 0x9c96
leaq 0x20b9144(%rip), %rax   # 0x20cf570
movl (%rax), %eax
cmpl $-0x1, %eax
leaq 0xcd50(%rip), %rcx      # 0x23188
leaq 0xcd42(%rip), %rdx      # 0x23181
cmovneq %rdx, %rcx
cmpl $0x1, %eax
leaq 0xcd3f(%rip), %rsi      # 0x2318c
cmovneq %rcx, %rsi
leaq 0xcd39(%rip), %rdi      # 0x23191
xorl %eax, %eax
callq 0x9c96
leaq 0x9822(%rip), %rdi      # 0x1fc88
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be5a2(%rip)   # 0x20d4a16
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd34(%rip), %rdi      # 0x231b6
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be57f(%rip)   # 0x20d4a12
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd3a(%rip), %rdi      # 0x231db
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be561(%rip)   # 0x20d4a13
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd40(%rip), %rdi      # 0x23200
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be53f(%rip)   # 0x20d4a10
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd46(%rip), %rdi      # 0x23225
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be521(%rip)   # 0x20d4a11
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd4c(%rip), %rdi      # 0x2324a
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x15ef9(%rip)     # 0x2c408
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd52(%rip), %rdi      # 0x2326f
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be4e6(%rip)   # 0x20d4a14
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd58(%rip), %rdi      # 0x23294
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be4c8(%rip)   # 0x20d4a15
movq %r14, %rsi
cmovneq %rbx, %rsi
leaq 0xcd5e(%rip), %rdi      # 0x232b9
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
movl 0x15e99(%rip), %esi     # 0x2c404
leaq 0xcd6c(%rip), %rdi      # 0x232de
movl $0xf0, %edx
movl $0x40, %ecx
movl $0x200, %r8d            # imm = 0x200
xorl %eax, %eax
callq 0x9c96
leaq 0x15e7c(%rip), %rax     # 0x2c40c
movl (%rax), %esi
leaq 0xcd7c(%rip), %rdi      # 0x23315
movl $0x400, %edx            # imm = 0x400
movl $0x40, %ecx
movl $0x10000, %r8d          # imm = 0x10000
xorl %eax, %eax
callq 0x9c96
cmpb $0x0, 0x20be463(%rip)   # 0x20d4a1a
cmoveq %r14, %rbx
leaq 0xcd8a(%rip), %rdi      # 0x2334c
movq %rbx, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x9c96
leaq 0x96b1(%rip), %rdi      # 0x1fc87
xorl %eax, %eax
callq 0x9c96
leaq 0x9465(%rip), %rdx      # 0x1fa49
leaq 0x14d35(%rip), %rcx     # 0x2b320
leaq 0x70(%rsp), %rbx
movl $0x1000, %esi           # imm = 0x1000
movq %rbx, %rdi
xorl %eax, %eax
callq 0x8863
leaq 0x938d(%rip), %rsi      # 0x1f993
movq %rbx, %rdi
callq 0x4370
testq %rax, %rax
je 0x16660
movq %rax, %rbx
movq %rax, %rdi
callq 0x977e
cltq
leaq 0xafdd8d(%rip), %r14    # 0xb143b4
movslq (%r14), %rcx
shlq $0x6, %rcx
cmpq %rax, %rcx
je 0x16641
leaq 0xc9b2(%rip), %rdi      # 0x22fec
xorl %eax, %eax
callq 0x9f84
movl (%r14), %edx
shll $0x6, %edx
leaq 0x20be3d2(%rip), %rsi   # 0x20d4a20
movq %rbx, %rdi
callq 0x986f
movq %rbx, %rdi
callq 0x42e0
jmp 0x166d1
leaq 0xbd4f(%rip), %rdi      # 0x223b6
leaq 0x70(%rsp), %rsi
xorl %eax, %eax
callq 0xa2f6
leaq 0xafdd3a(%rip), %rax    # 0xb143b4
movslq (%rax), %rax
testq %rax, %rax
jle 0x166d1
leaq 0xafdd37(%rip), %rcx    # 0xb143c0
addq $0x10, %rcx
shlq $0x6, %rax
xorl %edx, %edx
leaq 0x20be386(%rip), %rsi   # 0x20d4a20
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 0x1669a
callq 0x1c632
movq 0x30be343(%rip), %rdi   # 0x30d4a20
callq 0x1734e
testq %rax, %rax
je 0x17076
movq %rax, %rbx
leaq 0x15c4b(%rip), %r13     # 0x2c340
movq 0x30be344(%rip), %rdi   # 0x30d4a40
callq 0x179a2
movq %rax, %r15
xorl %edi, %edi
leaq 0x15d23(%rip), %rbp     # 0x2c430
cmpl $0x200, (%rbp)          # imm = 0x200
setl %dil
movl $0x2b, %esi
callq 0xa731
leaq 0xa1dd5b(%rip), %rax    # 0xa34484
movl (%rax), %eax
movl %eax, 0x8(%rsp)
movslq (%rbp), %r12
movq %r12, %rax
shlq $0x6, %rax
leaq 0x15cff(%rip), %rdx     # 0x2c440
leaq (%rdx,%rax), %r14
leal 0x1(%r12), %ecx
movl %ecx, (%rbp)
movl $0x0, 0x20b92a9(%rip)   # 0x20cfa00
movaps 0xbd32(%rip), %xmm0     # 0x22490
movaps %xmm0, (%rdx,%rax)
movsd 0x78e6(%rip), %xmm0     # 0x1e050
movsd %xmm0, 0x10(%rdx,%rax)
movsd (%rbx), %xmm1
movsd 0x18(%rbx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x1679c
movl $0x4, %edi
leaq 0xcbe6(%rip), %rsi      # 0x23371
movl %r12d, %edx
xorl %ecx, %ecx
xorl %eax, %eax
callq 0xa496
jmp 0x16881
movhpd 0x8(%rbx), %xmm1        # xmm1 = xmm1[0],mem[0]
subpd 0x15b97(%rip), %xmm1    # 0x2c340
movsd 0x10(%rbx), %xmm2
subsd 0x15b9a(%rip), %xmm2    # 0x2c350
movapd %xmm1, 0x70(%rsp)
movsd %xmm2, 0x80(%rsp)
movhpd 0x20(%rbx), %xmm0       # xmm0 = xmm0[0],mem[0]
movupd 0x15b86(%rip), %xmm1    # 0x2c358
subpd %xmm1, %xmm0
movapd %xmm0, 0x10(%rsp)
movsd 0x28(%rbx), %xmm0
subsd 0x15b7f(%rip), %xmm0    # 0x2c368
movsd %xmm0, 0x20(%rsp)
xorl %eax, %eax
movsd 0xaa67(%rip), %xmm2     # 0x21260
movsd 0x70(%rsp,%rax,8), %xmm0
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x1681f
addsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x70(%rsp,%rax,8)
movsd %xmm0, 0x10(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x167f9
xorl %eax, %eax
movss 0xc(%r14,%rax,4), %xmm0
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm2
ja 0x1684b
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss (%r14,%rax,4), %xmm1
movss %xmm0, 0xc(%r14,%rax,4)
xorps %xmm2, %xmm2
cvtss2sd %xmm1, %xmm2
movsd 0x70(%rsp,%rax,8), %xmm0
ucomisd %xmm2, %xmm0
ja 0x16872
xorps %xmm1, %xmm1
cvtsd2ss %xmm0, %xmm1
movss %xmm1, (%r14,%rax,4)
incq %rax
cmpq $0x3, %rax
jne 0x1682a
xorl %edx, %edx
testl %r12d, %r12d
sete %dl
movq %rbx, %rdi
movq %r15, %rsi
callq 0x186b5
movq %rax, %rbx
leaq 0x15b92(%rip), %rax     # 0x2c430
cmpl $0x1, (%rax)
jne 0x168e0
cmpb $0x0, 0x20be168(%rip)   # 0x20d4a12
leaq 0x1b7db13(%rip), %r15   # 0x1b943c4
jne 0x168e7
cmpb $0x0, 0x20be159(%rip)   # 0x20d4a13
jne 0x168c4
movq %rbx, %rdi
callq 0x138fc
xorl %esi, %esi
cmpb $0x0, 0x20be14c(%rip)   # 0x20d4a19
sete %sil
movq %rbx, %rdi
xorl %edx, %edx
callq 0x13141
movq %rax, %rbx
jmp 0x168e7
leaq 0x1b7dadd(%rip), %r15   # 0x1b943c4
movq %rbx, %rdi
callq 0x14661
movq %rbx, %rdi
callq 0x1ab50
callq 0x1a9f8
leaq 0x10bdac5(%rip), %rax   # 0x10d43c8
movl (%rax), %eax
movl %eax, 0x24(%r14)
movl (%r15), %eax
movl %eax, 0x38(%r14)
movl 0x80(%rbx), %eax
movl %eax, 0x38(%rsp)
cmpl $-0x1, %eax
jne 0x16b28
movq 0xa8(%rbx), %rax
cmpq $0x0, (%rax)
je 0x1693c
xorl %edi, %edi
movl $0x16, %esi
callq 0xa731
leaq 0xafda71(%rip), %rax    # 0xb143b4
cmpl $0x0, (%rax)
jne 0x16956
leaq 0xca3a(%rip), %rdi      # 0x23389
xorl %eax, %eax
callq 0x9f84
xorl %ebp, %ebp
movl %ebp, 0x80(%rbx)
movl $0xc8, %edi
callq 0x4400
movq %rax, %r15
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x4180
movq %r15, 0x88(%rbx)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x80(%r15)
movq 0x88(%rbx), %rax
movl %ecx, 0xa0(%rax)
movq 0x88(%rbx), %rax
movb %bpl, 0x48(%rax)
movq 0x88(%rbx), %rax
movb $0x1, %cl
movb %cl, 0x49(%rax)
movq 0x88(%rbx), %rax
movb %bpl, 0x4a(%rax)
movq 0x88(%rbx), %rax
movq %rbp, 0x98(%rax)
movl $0x1, %edi
movl $0x8, %esi
callq 0x41e0
movq 0x88(%rbx), %rcx
movq %rax, 0xa8(%rcx)
movq 0x88(%rbx), %rax
movq %rbp, 0x50(%rax)
movq 0x88(%rbx), %rax
movq %rbp, 0x58(%rax)
movq 0x88(%rbx), %rax
movq %rbp, 0x60(%rax)
movq 0x88(%rbx), %rax
movq %rbp, 0x68(%rax)
movq 0x88(%rbx), %rax
movq %rbp, 0x70(%rax)
movq 0x88(%rbx), %rax
movq %rbp, 0x78(%rax)
movl $0xc8, %edi
callq 0x4400
movq %rax, %r15
movl $0xc8, %edx
movq %rax, %rdi
xorl %esi, %esi
callq 0x4180
movq %r15, 0x90(%rbx)
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movl %ecx, 0x80(%r15)
movq 0x90(%rbx), %rax
movl %ecx, 0xa0(%rax)
movq 0x90(%rbx), %rax
movb %bpl, 0x48(%rax)
movq 0x90(%rbx), %rax
movb $0x1, %cl
movb %cl, 0x49(%rax)
movq 0x90(%rbx), %rax
movb %bpl, 0x4a(%rax)
movq 0x90(%rbx), %rax
movq %rbp, 0x98(%rax)
movl $0x1, %edi
movl $0x8, %esi
callq 0x41e0
movq 0x90(%rbx), %rcx
movq %rax, 0xa8(%rcx)
movq 0x90(%rbx), %rax
movq %rbp, 0x50(%rax)
movq 0x90(%rbx), %rax
movq %rbp, 0x58(%rax)
movq 0x90(%rbx), %rax
movq %rbp, 0x60(%rax)
movq 0x90(%rbx), %rax
movq %rbp, 0x68(%rax)
movq 0x90(%rbx), %rax
movq %rbp, 0x70(%rax)
movq 0x90(%rbx), %rax
movq %rbp, 0x78(%rax)
movl %ebp, 0xa0(%rbx)
movw $0x0, 0x48(%rbx)
movq %rbp, 0x98(%rbx)
movq %rbp, 0xa8(%rbx)
xorpd %xmm0, %xmm0
movupd %xmm0, 0x70(%rbx)
movupd %xmm0, 0x60(%rbx)
movupd %xmm0, 0x50(%rbx)
leaq 0x1b7d89c(%rip), %r15   # 0x1b943c4
movq %rbx, %rdi
callq 0x1bf41
movl (%r15), %eax
subl 0x38(%r14), %eax
movl %eax, 0x3c(%r14)
leaq 0xa1d942(%rip), %rax    # 0xa34484
movl (%rax), %eax
subl 0x8(%rsp), %eax
movl %eax, 0x34(%r14)
cmpb $0x0, 0x20bdec3(%rip)   # 0x20d4a16
je 0x16b6a
movq $-0x1, 0x28(%r14)
movl $0xffffffff, 0x30(%r14) # imm = 0xFFFFFFFF
jmp 0x16d65
movl $0x1, 0x20b8e8c(%rip)   # 0x20cfa00
movl $0x1, %eax
leaq 0x30bdea0(%rip), %rbp   # 0x30d4a20
cltq
movq (%rbp,%rax,8), %rdi
callq 0x1734e
movq %rax, %rbx
movslq 0x20b8e6a(%rip), %rax   # 0x20cfa00
leaq 0x30bdea3(%rip), %rcx   # 0x30d4a40
movq (%rcx,%rax,8), %rdi
callq 0x179a2
movq %rax, %r15
movslq 0x20b8e50(%rip), %rcx   # 0x20cfa00
movsd (%rbx), %xmm1
movsd 0x18(%rbx), %xmm0
ucomisd %xmm0, %xmm1
jbe 0x16bda
movl $0x3, %edi
leaq 0xc7a6(%rip), %rsi      # 0x23371
movl %r12d, %edx
xorl %eax, %eax
callq 0xa496
jmp 0x16cc2
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 0xa626(%rip), %xmm2     # 0x21260
movsd 0x70(%rsp,%rax,8), %xmm0
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x16c60
addsd %xmm1, %xmm0
mulsd %xmm2, %xmm0
movsd %xmm0, 0x70(%rsp,%rax,8)
movsd %xmm0, 0x10(%rsp,%rax,8)
incq %rax
cmpq $0x3, %rax
jne 0x16c3a
xorl %eax, %eax
movss 0xc(%r14,%rax,4), %xmm0
xorps %xmm2, %xmm2
cvtss2sd %xmm0, %xmm2
movsd 0x10(%rsp,%rax,8), %xmm1
ucomisd %xmm1, %xmm2
ja 0x16c8c
xorps %xmm0, %xmm0
cvtsd2ss %xmm1, %xmm0
movss (%r14,%rax,4), %xmm1
movss %xmm0, 0xc(%r14,%rax,4)
xorps %xmm2, %xmm2
cvtss2sd %xmm1, %xmm2
movsd 0x70(%rsp,%rax,8), %xmm0
ucomisd %xmm2, %xmm0
ja 0x16cb3
xorps %xmm1, %xmm1
cvtsd2ss %xmm0, %xmm1
movss %xmm1, (%r14,%rax,4)
incq %rax
cmpq $0x3, %rax
jne 0x16c6b
xorl %edx, %edx
testl %r12d, %r12d
sete %dl
movq %rbx, %rdi
movq %r15, %rsi
callq 0x186b5
movq %rax, %rbx
leaq 0x15751(%rip), %rax     # 0x2c430
cmpl $0x1, (%rax)
jne 0x16d0b
cmpb $0x0, 0x20bdd27(%rip)   # 0x20d4a12
jne 0x16d0b
xorl %esi, %esi
cmpb $0x0, 0x20bdd23(%rip)   # 0x20d4a19
sete %sil
movl 0x20b8d00(%rip), %edx   # 0x20cfa00
movq %rbx, %rdi
callq 0x13141
movq %rax, %rbx
movq %rbx, %rdi
callq 0x14661
cmpl $-0x1, 0x80(%rbx)
je 0x16d3b
leaq 0x1cbd69d(%rip), %rax   # 0x1cd43c0
movl (%rax), %eax
movslq 0x20b8cd4(%rip), %rcx   # 0x20cfa00
movl %eax, 0x24(%r14,%rcx,4)
movq %rbx, %rdi
callq 0x1bbf0
jmp 0x16d4d
movl 0xa0(%rbx), %eax
movslq 0x20b8cb8(%rip), %rcx   # 0x20cfa00
movl %eax, 0x24(%r14,%rcx,4)
movl 0x20b8cad(%rip), %ecx   # 0x20cfa00
leal 0x1(%rcx), %eax
movl %eax, 0x20b8ca4(%rip)   # 0x20cfa00
cmpl $0x3, %ecx
jl 0x16b80
movl %r12d, %edi
callq 0x81c6
cmpq 0x14264(%rip), %rax     # 0x2afd8
je 0x16e80
movq %rax, %rbx
movq %rax, %rdi
leaq 0xc614(%rip), %rsi      # 0x2339b
callq 0x74c9
cmpb $0x0, (%rax)
je 0x16e80
xorpd %xmm0, %xmm0
movapd %xmm0, 0x70(%rsp)
movq $0x0, 0x80(%rsp)
movq %rbx, %rdi
leaq 0x7931(%rip), %rsi      # 0x1e6e6
callq 0x74c9
movq %rax, %rdi
leaq 0xc5f1(%rip), %rsi      # 0x233b5
leaq 0x70(%rsp), %rdx
leaq 0x78(%rsp), %rcx
leaq 0x80(%rsp), %r8
xorl %eax, %eax
callq 0x42d0
movq %rbx, %rdi
leaq 0xc5b4(%rip), %rsi      # 0x2339b
callq 0x74c9
movq %rax, %rdi
leaq 0xc5b3(%rip), %rsi      # 0x233a9
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 0x16e80
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, (%r14)
movupd 0x58(%rsp), %xmm0
subpd %xmm3, %xmm0
cvtpd2ps %xmm0, %xmm0
movlpd %xmm0, 0x10(%r14)
xorps %xmm0, %xmm0
cvtss2sd (%r14), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%r14), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%r14), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xc(%r14), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x10(%r14), %xmm4
cvtss2sd 0x14(%r14), %xmm5
movl $0x3, %edi
leaq 0xc503(%rip), %rsi      # 0x233c1
movl %r12d, %edx
movb $0x6, %al
callq 0xa496
movss (%r14), %xmm0
ucomiss 0xc(%r14), %xmm0
jbe 0x16f85
leaq 0x15551(%rip), %rbx     # 0x2c430
movl (%rbx), %edi
decl %edi
callq 0x81c6
movl (%rbx), %ebx
decl %ebx
movl $0x0, %r12d
cmoveq %rax, %r12
cmpq 0x140db(%rip), %rax     # 0x2afd8
cmovneq %rax, %r12
leaq 0xc539(%rip), %r15      # 0x23441
testq %r12, %r12
je 0x16f1f
movq %r12, %rdi
leaq 0x76e2(%rip), %rsi      # 0x1e5f9
callq 0x74c9
movq %rax, %r15
leaq 0xc51b(%rip), %rbp      # 0x23441
testq %r12, %r12
je 0x16f3d
movq %r12, %rdi
leaq 0x77b1(%rip), %rsi      # 0x1e6e6
callq 0x74c9
movq %rax, %rbp
leaq 0xc4fd(%rip), %r8       # 0x23441
testq %r12, %r12
je 0x16f5b
movq %r12, %rdi
leaq 0x7821(%rip), %rsi      # 0x1e774
callq 0x74c9
movq %rax, %r8
leaq 0xc48b(%rip), %rdi      # 0x233ed
movl %ebx, %esi
movq %r15, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xa2f6
xorps %xmm0, %xmm0
movaps %xmm0, (%r14)
movq $0x0, 0x10(%r14)
jmp 0x1705e
cmpl $-0x1, 0x38(%rsp)
jne 0x1705e
leaq 0x15499(%rip), %rbx     # 0x2c430
movl (%rbx), %edi
decl %edi
callq 0x81c6
movl (%rbx), %ebx
decl %ebx
movl $0x0, %r12d
cmoveq %rax, %r12
cmpq 0x14023(%rip), %rax     # 0x2afd8
cmovneq %rax, %r12
leaq 0xc481(%rip), %r15      # 0x23441
testq %r12, %r12
je 0x16fd7
movq %r12, %rdi
leaq 0x762a(%rip), %rsi      # 0x1e5f9
callq 0x74c9
movq %rax, %r15
leaq 0xc463(%rip), %rbp      # 0x23441
testq %r12, %r12
je 0x16ff5
movq %r12, %rdi
leaq 0x76f9(%rip), %rsi      # 0x1e6e6
callq 0x74c9
movq %rax, %rbp
leaq 0xc445(%rip), %r8       # 0x23441
testq %r12, %r12
je 0x17013
movq %r12, %rdi
leaq 0x7769(%rip), %rsi      # 0x1e774
callq 0x74c9
movq %rax, %r8
xorps %xmm0, %xmm0
cvtss2sd (%r14), %xmm0
xorps %xmm1, %xmm1
cvtss2sd 0x4(%r14), %xmm1
xorps %xmm2, %xmm2
cvtss2sd 0x8(%r14), %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0xc(%r14), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x10(%r14), %xmm4
xorps %xmm5, %xmm5
cvtss2sd 0x14(%r14), %xmm5
leaq 0xc3fa(%rip), %rdi      # 0x23449
movl %ebx, %esi
movq %r15, %rdx
movq %rbp, %rcx
movb $0x6, %al
callq 0xa2f6
movq 0x30bd9bb(%rip), %rdi   # 0x30d4a20
callq 0x1734e
movq %rax, %rbx
testq %rax, %rax
jne 0x166f5
callq 0x1c6c4
leaq 0x1070(%rsp), %r15
xorl %ebx, %ebx
xorl %r13d, %r13d
movq %r15, %rdi
leaq 0xbf03(%rip), %rsi      # 0x22f95
leaq 0x14287(%rip), %r12     # 0x2b320
movq %r12, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
leaq 0x30bd973(%rip), %rbp   # 0x30d4a20
movq (%rbx,%rbp), %rdi
callq 0x42e0
xorl %r14d, %r14d
movq %r14, (%rbx,%rbp)
movq %r15, %rdi
callq 0x4150
movq %r15, %rdi
leaq 0xbedb(%rip), %rsi      # 0x22faa
movq %r12, %rdx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x40b0
leaq 0x30bd95d(%rip), %r12   # 0x30d4a40
movq (%rbx,%r12), %rdi
callq 0x42e0
movq %r14, (%rbx,%r12)
movq %r15, %rdi
callq 0x4150
incq %r13
addq $0x8, %rbx
cmpq $0x4, %r13
jne 0x17088
leaq 0x8936(%rip), %rdx      # 0x1fa42
leaq 0x1420d(%rip), %rbx     # 0x2b320
leaq 0x1070(%rsp), %r14
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8863
movq %r14, %rdi
callq 0x4150
leaq 0x890d(%rip), %rdx      # 0x1fa49
movl $0x1000, %esi           # imm = 0x1000
movq %r14, %rdi
movq %rbx, %rcx
xorl %eax, %eax
callq 0x8863
movq %r14, %rdi
callq 0x4150
callq 0x827c
subsd 0x30(%rsp), %xmm0
cvtsd2ss %xmm0, %xmm0
callq 0xa7c5
callq 0x12fdd
xorl %eax, %eax
addq $0x2078, %rsp           # imm = 0x2078
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x171ba
leaq 0xb4b6(%rip), %rdi      # 0x22645
xorl %eax, %eax
callq 0x9c96
callq 0x171ba
leaq 0xb704(%rip), %rdi      # 0x228a6
jmp 0x1718f
leaq 0xb6e6(%rip), %rdi      # 0x22891
movq %r12, %rsi
xorl %eax, %eax
callq 0x9c96
callq 0x171ba