// File: corecodec[P]coremake/coremake.c
// Function: preprocess
void preprocess(item* p)
{
	item* i;
    item* con_to_exe;
    char config_path[MAX_PATH];
    item *config_file;

	i = getvalue(item_find(p,"platformlib"));
    if (i)
    {
        char path[MAX_PATH];
    	sprintf(path,"lib/%s/",i->value);
		item_get(item_get(p,"libpath",1),path,1);
    }

	preprocess_condstart(p);
	preprocess_config(getconfig(p));
	preprocess_condeval(p);

    // add the path with config.h to CONFIG_INCLUDE
    i = item_get(p,"config_include",0);
    config_file = getvalue(getroot(p,"config_file"));
    if (config_file)
        strcpy(config_path,config_file->value);
    else
        config_path[0]=0;
    truncfilepath(config_path,0);
    i = item_get(i,config_path,0);
    set_path_type(i,FLAG_PATH_GENERATED);
    i->flags |= FLAG_ATTRIB;
    i->flags |= FLAG_PATH_GENERATED;

	// add the path of the CONFIG_CLEANER file to CONFIG_INCLUDE
	i = getroot(p,"config_cleaner");
	if (getvalue(i))
    {
		strcpy(config_path,getvalue(i)->value);
		truncfilepath(config_path,0);
        i = item_get(item_get(p,"config_include",0),config_path,1);
        set_path_type(i,FLAG_PATH_SOURCE);
    }

	// add the path of PLATFORM_FILES to CONFIG_INCLUDE if COREMAKE_CONFIG_HELPER is set
	if (item_get(getconfig(p),"COREMAKE_CONFIG_HELPER",0)->flags & FLAG_DEFINED)
	{
        i = item_get(item_get(p,"config_include",0),coremake_root,1);
        set_path_type(i,FLAG_PATH_SOURCE);
	}

    // "GROUP con_to_exe": replaces all "con" by "exe" and add "USE con_to_exe"
    con_to_exe = getvalue(item_find(item_find(getroot(p,"group"),"con_to_exe"),"source"));
	if (con_to_exe)
	{
		i = item_find(p,"con");
        if (i)
        {
        	item** child;
        	for (child=i->child;child!=i->childend;++child)
                if (!((*child)->flags & FLAG_REMOVED))
	            {
                    item* j = item_get(item_get(p,"exe",0),(*child)->value,1);
		            item_merge(j,*child,NULL);
                    item_get(item_get(j,"use",0),"con_to_exe",1);
		            item_delete(*child);
                    --child;
        	    }
        }
    }
    else if (item_get(getconfig(p),"COREMAKE_CONSOLE",0)->flags & FLAG_DEFINED)
    {
        // repleace all "exe" by "con"
		i = item_find(p,"exe");
        if (i)
        {
        	item** child;
        	for (child=i->child;child!=i->childend;++child)
                if (!((*child)->flags & FLAG_REMOVED))
	            {
                    item* j = item_get(item_get(p,"con",0),(*child)->value,1);
		            item_merge(j,*child,NULL);
		            item_delete(*child);
                    --child;
        	    }
        }
    }

	preprocess_group(item_find(p,"lib"));
	preprocess_group(item_find(p,"exe"));
	preprocess_group(item_find(p,"con"));
	preprocess_group(item_find(p,"dll"));
	preprocess_group(item_find(p,"lib_csharp"));
	preprocess_group(item_find(p,"exe_csharp"));
	preprocess_group(item_find(p,"con_csharp"));
	preprocess_group(item_find(p,"dll_csharp"));
	preprocess_group(item_find(p,"exe_android"));
	preprocess_group(item_find(p,"dll_android"));
	preprocess_group(item_find(p,"workspace"));

	// COREMAKE_STATIC and TARGET_ALWAYS_STATIC: replaces all "dll" by "lib"
	if ((item_get(getconfig(p),"COREMAKE_STATIC",0)->flags & FLAG_DEFINED) || (item_get(getconfig(p),"TARGET_ALWAYS_STATIC",0)->flags & FLAG_DEFINED))
	{
		i = item_find(p,"dll");
        if (i)
        {
        	item** child;
        	for (child=i->child;child!=i->childend;++child)
                if (!((*child)->flags & FLAG_REMOVED) && ((item_get(getconfig(*child),"TARGET_ALWAYS_STATIC",0)->flags & FLAG_DEFINED) || !getvalue(item_find(*child,"never_static"))))
	            {
		            item_merge(item_get(item_get(p,"lib",0),(*child)->value,1),*child,NULL);
		            item_delete(*child);
                    --child;
        	    }
        }
		i = item_find(p,"dll_csharp");
        if (i)
        {
        	item** child;
        	for (child=i->child;child!=i->childend;++child)
                if (!((*child)->flags & FLAG_REMOVED) && ((item_get(getconfig(*child),"TARGET_ALWAYS_STATIC",0)->flags & FLAG_DEFINED) || !getvalue(item_find(*child,"never_static"))))
	            {
		            item_merge(item_get(item_get(p,"lib_csharp",0),(*child)->value,1),*child,NULL);
		            item_delete(*child);
                    --child;
        	    }
        }
    }

	preprocess_presort(item_find(p,"lib"));
	preprocess_presort(item_find(p,"con"));
	preprocess_presort(item_find(p,"exe"));
	preprocess_presort(item_find(p,"dll"));
	preprocess_presort(item_find(p,"lib_csharp"));
	preprocess_presort(item_find(p,"con_csharp"));
	preprocess_presort(item_find(p,"exe_csharp"));
	preprocess_presort(item_find(p,"dll_csharp"));
	preprocess_presort(item_find(p,"exe_android"));
	preprocess_presort(item_find(p,"dll_android"));

    preprocess_builtlib(item_find(p,"project"));
    preprocess_builtlib(item_find(p,"lib"));
    preprocess_builtlib(item_find(p,"lib_csharp"));

	preprocess_usemerge(item_find(p,"dll"));
	preprocess_usemerge(item_find(p,"exe"));
	preprocess_usemerge(item_find(p,"dll_csharp"));
	preprocess_usemerge(item_find(p,"exe_csharp"));
	preprocess_usemerge(item_find(p,"exe_android"));

    // the .build (or .inc) file needs to define these
	preprocess_outputname(item_find(p,"lib"),"output_lib");
	preprocess_outputname(item_find(p,"exe"),"output_exe");
	preprocess_outputname(item_find(p,"con"),"output_con");
	preprocess_outputname(item_find(p,"dll"),"output_dll");
	preprocess_outputname(item_find(p,"lib_csharp"),"output_lib");
	preprocess_outputname(item_find(p,"exe_csharp"),"output_exe");
	preprocess_outputname(item_find(p,"con_csharp"),"output_con");
	preprocess_outputname(item_find(p,"dll_csharp"),"output_dll");
	preprocess_outputname(item_find(p,"exe_android"),"output_android");
	preprocess_outputname(item_find(p,"dll_android"),"output_android_lib");

	preprocess_stdafx_includes(item_find(p,"con"),0);
	preprocess_stdafx_includes(item_find(p,"exe"),0);
	preprocess_stdafx_includes(item_find(p,"dll"),0);
	preprocess_stdafx_includes(item_find(p,"lib"),1);
	preprocess_stdafx_includes(item_find(p,"con_csharp"),0);
	preprocess_stdafx_includes(item_find(p,"exe_csharp"),0);
	preprocess_stdafx_includes(item_find(p,"dll_csharp"),0);
	preprocess_stdafx_includes(item_find(p,"lib_csharp"),1);
	preprocess_stdafx_includes(item_find(p,"exe_android"),0);
//	preprocess_stdafx_includes(item_find(p,"dll_android"),0);

	preprocess_dependency_init(item_find(p,"lib"),1);
	preprocess_dependency_init(item_find(p,"exe"),0);
	preprocess_dependency_init(item_find(p,"con"),0);
	preprocess_dependency_init(item_find(p,"dll"),0);
	preprocess_dependency_init(item_find(p,"lib_csharp"),1);
	preprocess_dependency_init(item_find(p,"exe_csharp"),0);
	preprocess_dependency_init(item_find(p,"con_csharp"),0);
	preprocess_dependency_init(item_find(p,"dll_csharp"),0);
	preprocess_dependency_init(item_find(p,"exe_android"),0);
	preprocess_dependency_init(item_find(p,"dll_android"),0);

	preprocess_dependency(item_find(p,"lib"));
	preprocess_dependency(item_find(p,"con"));
	preprocess_dependency(item_find(p,"exe"));
	preprocess_dependency(item_find(p,"dll"));
	preprocess_dependency(item_find(p,"lib_csharp"));
	preprocess_dependency(item_find(p,"con_csharp"));
	preprocess_dependency(item_find(p,"exe_csharp"));
	preprocess_dependency(item_find(p,"dll_csharp"));
	preprocess_dependency(item_find(p,"exe_android"));
	preprocess_dependency(item_find(p,"dll_android"));

	preprocess_stdafx(item_find(p,"con"),0);
	preprocess_stdafx(item_find(p,"exe"),0);
	preprocess_stdafx(item_find(p,"dll"),0);
	preprocess_stdafx(item_find(p,"lib"),1);
	preprocess_stdafx(item_find(p,"con_csharp"),0);
	preprocess_stdafx(item_find(p,"exe_csharp"),0);
	preprocess_stdafx(item_find(p,"dll_csharp"),0);
	preprocess_stdafx(item_find(p,"lib_csharp"),1);
	preprocess_stdafx(item_find(p,"exe_android"),0);
//	preprocess_stdafx(item_find(p,"dll_android"),1);

	preprocess_workspace_init(item_find(p,"lib"));
	preprocess_workspace_init(item_find(p,"exe"));
	preprocess_workspace_init(item_find(p,"con"));
	preprocess_workspace_init(item_find(p,"dll"));
	preprocess_workspace_init(item_find(p,"lib_csharp"));
	preprocess_workspace_init(item_find(p,"exe_csharp"));
	preprocess_workspace_init(item_find(p,"con_csharp"));
	preprocess_workspace_init(item_find(p,"dll_csharp"));
	preprocess_workspace_init(item_find(p,"exe_android"));
	preprocess_workspace_init(item_find(p,"dll_android"));
	preprocess_workspace(item_get(p,"workspace",0));

	preprocess_condend(p);

	preprocess_sort(item_find(p,"lib"));
	preprocess_sort(item_find(p,"con"));
	preprocess_sort(item_find(p,"exe"));
	preprocess_sort(item_find(p,"dll"));
	preprocess_sort(item_find(p,"lib_csharp"));
	preprocess_sort(item_find(p,"con_csharp"));
	preprocess_sort(item_find(p,"exe_csharp"));
	preprocess_sort(item_find(p,"dll_csharp"));
	preprocess_sort(item_find(p,"exe_android"));
	preprocess_sort(item_find(p,"dll_android"));
	preprocess_sort_workspace(item_find(p,"workspace"));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x870, %rsp            # imm = 0x870
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x67fe(%rip), %rsi      # 0x171f8
callq 0x27d0
movq %rax, %rdi
callq 0x2990
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x10a57
leaq -0x830(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
leaq 0x67dd(%rip), %rsi      # 0x17204
movb $0x0, %al
callq 0x2300
movq -0x8(%rbp), %rdi
leaq 0x67d3(%rip), %rsi      # 0x1720c
movl $0x1, %edx
callq 0x28d0
movq %rax, %rdi
leaq -0x830(%rbp), %rsi
movl $0x1, %edx
callq 0x28d0
movq -0x8(%rbp), %rdi
callq 0x79e0
movq -0x8(%rbp), %rdi
callq 0x2960
movq %rax, %rdi
callq 0x7a50
movq -0x8(%rbp), %rdi
callq 0x37a0
movq -0x8(%rbp), %rdi
leaq 0x588e(%rip), %rsi      # 0x16313
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x586c(%rip), %rsi      # 0x16307
callq 0x2890
movq %rax, %rdi
callq 0x2990
movq %rax, -0x428(%rbp)
cmpq $0x0, -0x428(%rbp)
je 0x10ad1
leaq -0x420(%rbp), %rdi
movq -0x428(%rbp), %rax
movq (%rax), %rsi
callq 0x2090
jmp 0x10ad8
movb $0x0, -0x420(%rbp)
leaq -0x420(%rbp), %rdi
xorl %esi, %esi
callq 0x4d60
movq -0x10(%rbp), %rdi
leaq -0x420(%rbp), %rsi
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x2, %esi
callq 0x2570
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x100, %ecx            # imm = 0x100
movl %ecx, 0x30(%rax)
movq -0x10(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x2, %ecx
movl %ecx, 0x30(%rax)
movq -0x8(%rbp), %rdi
leaq 0x57f0(%rip), %rsi      # 0x16322
callq 0x2890
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x2990
cmpq $0x0, %rax
je 0x10bb6
leaq -0x420(%rbp), %rax
movq %rax, -0x868(%rbp)
movq -0x10(%rbp), %rdi
callq 0x2990
movq -0x868(%rbp), %rdi
movq (%rax), %rsi
callq 0x2090
leaq -0x420(%rbp), %rdi
xorl %esi, %esi
callq 0x4d60
movq -0x8(%rbp), %rdi
leaq 0x578a(%rip), %rsi      # 0x16313
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
leaq -0x420(%rbp), %rsi
movl $0x1, %edx
callq 0x28d0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x2570
movq -0x8(%rbp), %rdi
callq 0x2960
movq %rax, %rdi
leaq 0x664b(%rip), %rsi      # 0x17214
xorl %edx, %edx
callq 0x28d0
movl 0x30(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x10c13
movq -0x8(%rbp), %rdi
leaq 0x572d(%rip), %rsi      # 0x16313
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
leaq 0xa1f9(%rip), %rsi      # 0x1adf0
movl $0x1, %edx
callq 0x28d0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movl $0x1, %esi
callq 0x2570
movq -0x8(%rbp), %rdi
leaq 0x5510(%rip), %rsi      # 0x1612e
callq 0x2890
movq %rax, %rdi
leaq 0x65fe(%rip), %rsi      # 0x1722b
callq 0x27d0
movq %rax, %rdi
leaq 0x5b77(%rip), %rsi      # 0x167b3
callq 0x27d0
movq %rax, %rdi
callq 0x2990
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x10d6b
movq -0x8(%rbp), %rdi
leaq 0x6623(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x10d66
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x838(%rbp)
movq -0x838(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x20(%rcx), %rax
je 0x10d64
movq -0x838(%rbp), %rax
movq (%rax), %rax
movl 0x30(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x10d4b
movq -0x8(%rbp), %rdi
leaq 0x6573(%rip), %rsi      # 0x17232
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x838(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movl $0x1, %edx
callq 0x28d0
movq %rax, -0x840(%rbp)
movq -0x840(%rbp), %rdi
movq -0x838(%rbp), %rax
movq (%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3b20
movq -0x840(%rbp), %rdi
leaq 0x53fe(%rip), %rsi      # 0x1610d
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
leaq 0x650b(%rip), %rsi      # 0x1722b
movl $0x1, %edx
callq 0x28d0
movq -0x838(%rbp), %rax
movq (%rax), %rdi
callq 0x3150
movq -0x838(%rbp), %rax
addq $-0x8, %rax
movq %rax, -0x838(%rbp)
jmp 0x10d4d
movq -0x838(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x838(%rbp)
jmp 0x10c86
jmp 0x10d66
jmp 0x10e79
movq -0x8(%rbp), %rdi
callq 0x2960
movq %rax, %rdi
leaq 0x64b8(%rip), %rsi      # 0x17236
xorl %edx, %edx
callq 0x28d0
movl 0x30(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x10e77
movq -0x8(%rbp), %rdi
leaq 0x6493(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x10e75
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x848(%rbp)
movq -0x848(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x20(%rcx), %rax
je 0x10e73
movq -0x848(%rbp), %rax
movq (%rax), %rax
movl 0x30(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x10e5a
movq -0x8(%rbp), %rdi
leaq 0x648f(%rip), %rsi      # 0x17286
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x848(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movl $0x1, %edx
callq 0x28d0
movq %rax, -0x850(%rbp)
movq -0x850(%rbp), %rdi
movq -0x848(%rbp), %rax
movq (%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3b20
movq -0x848(%rbp), %rax
movq (%rax), %rdi
callq 0x3150
movq -0x848(%rbp), %rax
addq $-0x8, %rax
movq %rax, -0x848(%rbp)
jmp 0x10e5c
movq -0x848(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x848(%rbp)
jmp 0x10dc2
jmp 0x10e75
jmp 0x10e77
jmp 0x10e79
movq -0x8(%rbp), %rdi
leaq 0x642f(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x6396(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x63d2(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x63c5(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x5271(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x524e(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x522b(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x5208(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x521c(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x5210(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
leaq 0x5379(%rip), %rsi      # 0x162ed
callq 0x27d0
movq %rax, %rdi
callq 0xe2f0
movq -0x8(%rbp), %rdi
callq 0x2960
movq %rax, %rdi
leaq 0x57e7(%rip), %rsi      # 0x1677b
xorl %edx, %edx
callq 0x28d0
movl 0x30(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
jne 0x10fcf
movq -0x8(%rbp), %rdi
callq 0x2960
movq %rax, %rdi
leaq 0x628e(%rip), %rsi      # 0x17247
xorl %edx, %edx
callq 0x28d0
movl 0x30(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
je 0x11223
movq -0x8(%rbp), %rdi
leaq 0x62b7(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x110f8
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x858(%rbp)
movq -0x858(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x20(%rcx), %rax
je 0x110f6
movq -0x858(%rbp), %rax
movq (%rax), %rax
movl 0x30(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x110dd
movq -0x858(%rbp), %rax
movq (%rax), %rdi
callq 0x2960
movq %rax, %rdi
leaq 0x6203(%rip), %rsi      # 0x17247
xorl %edx, %edx
callq 0x28d0
movl 0x30(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
jne 0x1107a
movq -0x858(%rbp), %rax
movq (%rax), %rdi
leaq 0x61f5(%rip), %rsi      # 0x1725c
callq 0x27d0
movq %rax, %rdi
callq 0x2990
cmpq $0x0, %rax
jne 0x110dd
movq -0x8(%rbp), %rdi
leaq 0x622e(%rip), %rsi      # 0x172b3
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x858(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movl $0x1, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x858(%rbp), %rax
movq (%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3b20
movq -0x858(%rbp), %rax
movq (%rax), %rdi
callq 0x3150
movq -0x858(%rbp), %rax
addq $-0x8, %rax
movq %rax, -0x858(%rbp)
jmp 0x110df
movq -0x858(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x858(%rbp)
jmp 0x10ffd
jmp 0x110f8
movq -0x8(%rbp), %rdi
leaq 0x5031(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x11221
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x860(%rbp)
movq -0x860(%rbp), %rax
movq -0x10(%rbp), %rcx
cmpq 0x20(%rcx), %rax
je 0x1121f
movq -0x860(%rbp), %rax
movq (%rax), %rax
movl 0x30(%rax), %eax
andl $0x40, %eax
cmpl $0x0, %eax
jne 0x11206
movq -0x860(%rbp), %rax
movq (%rax), %rdi
callq 0x2960
movq %rax, %rdi
leaq 0x60da(%rip), %rsi      # 0x17247
xorl %edx, %edx
callq 0x28d0
movl 0x30(%rax), %eax
andl $0x20, %eax
cmpl $0x0, %eax
jne 0x111a3
movq -0x860(%rbp), %rax
movq (%rax), %rdi
leaq 0x60cc(%rip), %rsi      # 0x1725c
callq 0x27d0
movq %rax, %rdi
callq 0x2990
cmpq $0x0, %rax
jne 0x11206
movq -0x8(%rbp), %rdi
leaq 0x4fa7(%rip), %rsi      # 0x16155
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x860(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rsi
movl $0x1, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x860(%rbp), %rax
movq (%rax), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x3b20
movq -0x860(%rbp), %rax
movq (%rax), %rdi
callq 0x3150
movq -0x860(%rbp), %rax
addq $-0x8, %rax
movq %rax, -0x860(%rbp)
jmp 0x11208
movq -0x860(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x860(%rbp)
jmp 0x11126
jmp 0x11221
jmp 0x11223
movq -0x8(%rbp), %rdi
leaq 0x6085(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x6040(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x5fd4(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x601b(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x4ec7(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x4e99(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x4e8c(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x4e5e(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x4e72(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x4e66(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
callq 0xf2b0
movq -0x8(%rbp), %rdi
leaq 0x53c1(%rip), %rsi      # 0x166df
callq 0x27d0
movq %rax, %rdi
callq 0xea80
movq -0x8(%rbp), %rdi
leaq 0x5f7d(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
callq 0xea80
movq -0x8(%rbp), %rdi
leaq 0x4e07(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
callq 0xea80
movq -0x8(%rbp), %rdi
leaq 0x5f2b(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
callq 0xdc90
movq -0x8(%rbp), %rdi
leaq 0x5eb4(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
callq 0xdc90
movq -0x8(%rbp), %rdi
leaq 0x4d9e(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
callq 0xdc90
movq -0x8(%rbp), %rdi
leaq 0x4d9c(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
callq 0xdc90
movq -0x8(%rbp), %rdi
leaq 0x4d9a(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
callq 0xdc90
movq -0x8(%rbp), %rdi
leaq 0x5ed5(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
leaq 0x5e7c(%rip), %rsi      # 0x17269
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x5e35(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
leaq 0x5e68(%rip), %rsi      # 0x17274
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x5e6a(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
leaq 0x5e54(%rip), %rsi      # 0x1727f
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x5e56(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
leaq 0x5e40(%rip), %rsi      # 0x1728a
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x4cfb(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
leaq 0x5e00(%rip), %rsi      # 0x17269
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x4cd1(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
leaq 0x5dec(%rip), %rsi      # 0x17274
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x4ca7(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
leaq 0x5dd8(%rip), %rsi      # 0x1727f
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x4c7d(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
leaq 0x5dc4(%rip), %rsi      # 0x1728a
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x4c8a(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
leaq 0x5db0(%rip), %rsi      # 0x17295
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x4c77(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
leaq 0x5da0(%rip), %rsi      # 0x172a4
callq 0xe160
movq -0x8(%rbp), %rdi
leaq 0x5d72(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x5d04(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x5d49(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x5d51(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x4bc0(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x4bb1(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x4b81(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x4b88(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x4b76(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x8270
movq -0x8(%rbp), %rdi
leaq 0x5caf(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
movl $0x1, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x5c11(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x5c4b(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x5c3c(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x4ae6(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
movl $0x1, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x4abe(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x4a99(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x4a74(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x4a86(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x4a78(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0xd390
movq -0x8(%rbp), %rdi
leaq 0x5ba5(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x5b60(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x5af4(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x5b3b(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x49e7(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x49b9(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x49ac(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x497e(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x4992(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x4986(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
callq 0x7e40
movq -0x8(%rbp), %rdi
leaq 0x5a88(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x5a1a(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x5a5f(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x5a67(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x48d6(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x48c7(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x4897(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x489e(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
movl $0x1, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x488c(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
xorl %esi, %esi
callq 0x89a0
movq -0x8(%rbp), %rdi
leaq 0x59c5(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x592c(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x5968(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x595b(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x4807(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x47e4(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x47c1(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x479e(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x47b2(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x47a6(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
callq 0xd840
movq -0x8(%rbp), %rdi
leaq 0x490f(%rip), %rsi      # 0x162ed
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
callq 0xd890
movq -0x8(%rbp), %rdi
callq 0x7ab0
movq -0x8(%rbp), %rdi
leaq 0x58b2(%rip), %rsi      # 0x172b3
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x586d(%rip), %rsi      # 0x17286
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x5801(%rip), %rsi      # 0x17232
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x5848(%rip), %rsi      # 0x17291
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x46f4(%rip), %rsi      # 0x16155
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x46c6(%rip), %rsi      # 0x1613f
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x46b9(%rip), %rsi      # 0x1614a
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x468b(%rip), %rsi      # 0x16134
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x469f(%rip), %rsi      # 0x16160
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x4693(%rip), %rsi      # 0x1616c
callq 0x27d0
movq %rax, %rdi
callq 0xf2e0
movq -0x8(%rbp), %rdi
leaq 0x47fc(%rip), %rsi      # 0x162ed
callq 0x27d0
movq %rax, %rdi
callq 0xf240
addq $0x870, %rsp            # imm = 0x870
popq %rbp
retq
nopw (%rax,%rax)