// File: /workspace/github_cpp_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x408, %rsp            # imm = 0x408
movq %rdi, %rbx
leaq 0x619d(%rip), %rsi      # 0x130e2
callq 0x26b0
testq %rax, %rax
je 0xcf7b
movq 0x18(%rax), %rdx
movq 0x20(%rax), %rsi
cmpq %rsi, %rdx
sete %cl
je 0xcf76
movq (%rdx), %rax
testb $0x40, 0x30(%rax)
je 0xcf76
addq $0x8, %rdx
cmpq %rsi, %rdx
sete %cl
jne 0xcf5f
jmp 0xcf76
testb $0x1, %cl
je 0xcf7d
xorl %eax, %eax
testq %rax, %rax
je 0xcfbd
movq (%rax), %rdx
leaq 0x6162(%rip), %rsi      # 0x130ee
movq %rsp, %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2320
leaq 0x6156(%rip), %rsi      # 0x130f6
movq %rbx, %rdi
movl $0x1, %edx
callq 0x2745
movq %rax, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x2745
movq %rbx, %rdi
callq 0x5e80
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xcfc8
leaq 0x50f6(%rip), %rsi      # 0x120d1
xorl %edx, %edx
callq 0x2745
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xd007
movq (%rcx), %rdx
movl 0x30(%rdx), %esi
testb $0x20, %sil
jne 0xd001
orl $0x40, %esi
movl %esi, 0x30(%rdx)
addq $0x8, %rcx
jmp 0xcfea
movq %rbx, %rdi
callq 0x3118
leaq 0x52cc(%rip), %rsi      # 0x122e2
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2745
movq %rax, %r14
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd026
leaq 0x529d(%rip), %rsi      # 0x122d6
xorl %edx, %edx
callq 0x2745
testq %rax, %rax
je 0xd071
movq 0x18(%rax), %rdx
movq 0x20(%rax), %rsi
cmpq %rsi, %rdx
sete %cl
je 0xd06c
movq (%rdx), %rax
testb $0x40, 0x30(%rax)
je 0xd06c
addq $0x8, %rdx
cmpq %rsi, %rdx
sete %cl
jne 0xd055
jmp 0xd06c
testb $0x1, %cl
je 0xd073
xorl %eax, %eax
testq %rax, %rax
je 0xd085
movq (%rax), %rsi
movq %rsp, %rdi
callq 0x20b0
jmp 0xd089
movb $0x0, (%rsp)
movq %rsp, %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x3e32
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2745
movl $0xfffffef0, %ecx       # imm = 0xFFFFFEF0
andl 0x30(%rax), %ecx
orl $0x102, %ecx            # imm = 0x102
movl %ecx, 0x30(%rax)
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd0b7
leaq 0x5227(%rip), %rsi      # 0x122f1
xorl %edx, %edx
callq 0x2745
testq %rax, %rax
je 0xd102
movq 0x18(%rax), %rsi
movq 0x20(%rax), %rdi
cmpq %rdi, %rsi
sete %dl
je 0xd0fd
movq (%rsi), %rcx
testb $0x40, 0x30(%rcx)
je 0xd0fd
addq $0x8, %rsi
cmpq %rdi, %rsi
sete %dl
jne 0xd0e6
jmp 0xd0fd
testb $0x1, %dl
je 0xd104
xorl %ecx, %ecx
testq %rcx, %rcx
je 0xd170
movq 0x18(%rax), %rdx
movq (%rdx), %rcx
testb $0x40, 0x30(%rcx)
je 0xd12c
movq 0x20(%rax), %rax
addq $0x8, %rdx
cmpq %rax, %rdx
je 0xd12c
movq (%rdx), %rcx
testb $0x40, 0x30(%rcx)
jne 0xd11a
movq (%rcx), %rsi
movq %rsp, %r14
movq %r14, %rdi
callq 0x20b0
movq %r14, %rdi
xorl %esi, %esi
callq 0x3e32
leaq 0x5197(%rip), %rsi      # 0x122e2
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2745
movq %rax, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x2745
movl 0x30(%rax), %ecx
andl $-0x10, %ecx
incl %ecx
movl %ecx, 0x30(%rax)
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd173
leaq 0x4f4b(%rip), %rsi      # 0x120d1
xorl %edx, %edx
callq 0x2745
leaq 0x5f6a(%rip), %rsi      # 0x130fe
movq %rax, %rdi
xorl %edx, %edx
callq 0x2745
testb $0x20, 0x30(%rax)
je 0xd1d4
leaq 0x5137(%rip), %rsi      # 0x122e2
movq %rbx, %rdi
xorl %edx, %edx
callq 0x2745
leaq 0xac44(%rip), %rsi      # 0x17e00
movq %rax, %rdi
movl $0x1, %edx
callq 0x2745
movl 0x30(%rax), %ecx
andl $-0x10, %ecx
incl %ecx
movl %ecx, 0x30(%rax)
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd1d7
leaq 0x4f13(%rip), %rsi      # 0x120fd
xorl %edx, %edx
callq 0x2745
leaq 0x5f1d(%rip), %rsi      # 0x13115
movq %rax, %rdi
callq 0x26b0
leaq 0x5496(%rip), %rsi      # 0x1269d
movq %rax, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd240
movq 0x18(%rax), %rdx
movq 0x20(%rax), %rsi
cmpq %rsi, %rdx
sete %cl
je 0xd23b
movq (%rdx), %rax
testb $0x40, 0x30(%rax)
je 0xd23b
addq $0x8, %rdx
cmpq %rsi, %rdx
sete %cl
jne 0xd224
jmp 0xd23b
testb $0x1, %cl
je 0xd242
xorl %eax, %eax
testq %rax, %rax
je 0xd2f7
leaq 0x5f1e(%rip), %rsi      # 0x13170
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd3a3
movq %rax, %r14
movq 0x18(%rax), %r15
cmpq 0x20(%rax), %r15
je 0xd3a3
leaq 0x4e61(%rip), %r12      # 0x120dc
leaq 0x5e93(%rip), %r13      # 0x13115
movq (%r15), %rax
testb $0x40, 0x30(%rax)
jne 0xd2e8
movq %rbx, %rdi
leaq 0x5e87(%rip), %rsi      # 0x1311c
xorl %edx, %edx
callq 0x2745
movq (%r15), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x2745
movq %rax, %rbp
movq (%r15), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334b
movq %rbp, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2745
movq %rax, %rdi
movq %r13, %rsi
movl $0x1, %edx
callq 0x2745
movq (%r15), %rdi
callq 0x2da0
addq $-0x8, %r15
addq $0x8, %r15
cmpq 0x20(%r14), %r15
jne 0xd282
jmp 0xd3a3
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd2fa
leaq 0x4dc4(%rip), %rsi      # 0x120d1
xorl %edx, %edx
callq 0x2745
leaq 0x5e05(%rip), %rsi      # 0x13120
movq %rax, %rdi
xorl %edx, %edx
callq 0x2745
testb $0x20, 0x30(%rax)
je 0xd3a3
leaq 0x5dea(%rip), %rsi      # 0x1311c
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd3a3
movq %rax, %r14
movq 0x18(%rax), %r12
cmpq 0x20(%rax), %r12
je 0xd3a3
leaq 0x5e1d(%rip), %r15      # 0x13170
movq (%r12), %rax
testb $0x40, 0x30(%rax)
jne 0xd399
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2745
movq (%r12), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x2745
movq (%r12), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334b
movq (%r12), %rdi
callq 0x2da0
addq $-0x8, %r12
addq $0x8, %r12
cmpq 0x20(%r14), %r12
jne 0xd353
leaq 0x5df3(%rip), %rsi      # 0x1319d
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x5d5b(%rip), %rsi      # 0x1311c
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x5d98(%rip), %rsi      # 0x13170
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x5d8c(%rip), %rsi      # 0x1317b
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4d1e(%rip), %rsi      # 0x12124
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4cfc(%rip), %rsi      # 0x12119
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4cda(%rip), %rsi      # 0x1210e
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4cb8(%rip), %rsi      # 0x12103
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4ccd(%rip), %rsi      # 0x1212f
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4cc2(%rip), %rsi      # 0x1213b
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
leaq 0x4e2c(%rip), %rsi      # 0x122bc
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xafc6
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd4a3
leaq 0x4c1b(%rip), %rsi      # 0x120d1
xorl %edx, %edx
callq 0x2745
leaq 0x51a1(%rip), %rsi      # 0x12665
movq %rax, %rdi
xorl %edx, %edx
callq 0x2745
testb $0x20, 0x30(%rax)
jne 0xd50c
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd4d7
leaq 0x4be7(%rip), %rsi      # 0x120d1
xorl %edx, %edx
callq 0x2745
leaq 0x5c39(%rip), %rsi      # 0x13131
movq %rax, %rdi
xorl %edx, %edx
callq 0x2745
testb $0x20, 0x30(%rax)
je 0xd71a
leaq 0x5c68(%rip), %rsi      # 0x1317b
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd613
movq %rax, %r14
movq 0x18(%rax), %r13
cmpq 0x20(%rax), %r13
je 0xd613
leaq 0x4b95(%rip), %r15      # 0x120d1
leaq 0x5bee(%rip), %r12      # 0x13131
leaq 0x5c53(%rip), %rbp      # 0x1319d
movq (%r13), %rax
testb $0x40, 0x30(%rax)
jne 0xd605
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd558
movq %r15, %rsi
xorl %edx, %edx
callq 0x2745
movq %rax, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2745
testb $0x20, 0x30(%rax)
jne 0xd5c9
movq (%r13), %rdi
leaq 0x5bba(%rip), %rsi      # 0x13146
callq 0x26b0
testq %rax, %rax
je 0xd5c2
movq 0x18(%rax), %rdx
movq 0x20(%rax), %rsi
cmpq %rsi, %rdx
sete %cl
je 0xd5bd
movq (%rdx), %rax
testb $0x40, 0x30(%rax)
je 0xd5bd
addq $0x8, %rdx
cmpq %rsi, %rdx
sete %cl
jne 0xd5a6
jmp 0xd5bd
testb $0x1, %cl
je 0xd5c4
xorl %eax, %eax
testq %rax, %rax
jne 0xd605
movq %rbx, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x2745
movq (%r13), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x2745
movq (%r13), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334b
movq (%r13), %rdi
callq 0x2da0
addq $-0x8, %r13
addq $0x8, %r13
cmpq 0x20(%r14), %r13
jne 0xd54a
leaq 0x4ae9(%rip), %rsi      # 0x12103
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd71a
movq %rax, %r14
movq 0x18(%rax), %r13
cmpq 0x20(%rax), %r13
je 0xd71a
leaq 0x4a8e(%rip), %r15      # 0x120d1
leaq 0x5ae7(%rip), %r12      # 0x13131
leaq 0x4ad3(%rip), %rbp      # 0x12124
movq (%r13), %rax
testb $0x40, 0x30(%rax)
jne 0xd70c
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd65f
movq %r15, %rsi
xorl %edx, %edx
callq 0x2745
movq %rax, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x2745
testb $0x20, 0x30(%rax)
jne 0xd6d0
movq (%r13), %rdi
leaq 0x5ab3(%rip), %rsi      # 0x13146
callq 0x26b0
testq %rax, %rax
je 0xd6c9
movq 0x18(%rax), %rdx
movq 0x20(%rax), %rsi
cmpq %rsi, %rdx
sete %cl
je 0xd6c4
movq (%rdx), %rax
testb $0x40, 0x30(%rax)
je 0xd6c4
addq $0x8, %rdx
cmpq %rsi, %rdx
sete %cl
jne 0xd6ad
jmp 0xd6c4
testb $0x1, %cl
je 0xd6cb
xorl %eax, %eax
testq %rax, %rax
jne 0xd70c
movq %rbx, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x2745
movq (%r13), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x2745
movq (%r13), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334b
movq (%r13), %rdi
callq 0x2da0
addq $-0x8, %r13
addq $0x8, %r13
cmpq 0x20(%r14), %r13
jne 0xd651
leaq 0x5a7c(%rip), %rsi      # 0x1319d
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd73d
leaq -0xab2e(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x5a2c(%rip), %rsi      # 0x13170
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd760
leaq -0xab51(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x59b5(%rip), %rsi      # 0x1311c
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd783
leaq -0xab74(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x59f1(%rip), %rsi      # 0x1317b
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd7a6
leaq -0xab97(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x4977(%rip), %rsi      # 0x12124
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd7c9
leaq -0xabba(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x493e(%rip), %rsi      # 0x1210e
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd7ec
leaq -0xabdd(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x4926(%rip), %rsi      # 0x12119
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd80f
leaq -0xac00(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x48ed(%rip), %rsi      # 0x12103
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd832
leaq -0xac23(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x48f6(%rip), %rsi      # 0x1212f
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd855
leaq -0xac46(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x48df(%rip), %rsi      # 0x1213b
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xd878
leaq -0xac69(%rip), %rsi     # 0x2c07
movq %rax, %rdi
callq 0x2ccc
leaq 0x4d4a(%rip), %rsi      # 0x125c9
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xb592
leaq 0x5907(%rip), %r14      # 0x1319d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0xb592
leaq 0x4874(%rip), %rsi      # 0x12124
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xb592
leaq 0x58b4(%rip), %r12      # 0x1317b
movq %rbx, %rdi
movq %r12, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0xaa40
leaq 0x583b(%rip), %r15      # 0x1311c
movq %rbx, %rdi
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0xaa40
leaq 0x4808(%rip), %rsi      # 0x12103
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xaa40
leaq 0x4807(%rip), %r13      # 0x12119
movq %rbx, %rdi
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0xaa40
leaq 0x4803(%rip), %rsi      # 0x1212f
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xaa40
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26b0
leaq 0x5805(%rip), %r14      # 0x13153
movq %rax, %rdi
movq %r14, %rsi
callq 0xae4a
movq %rbx, %rdi
movq %r15, %rsi
callq 0x26b0
leaq 0x57f3(%rip), %r15      # 0x1315e
movq %rax, %rdi
movq %r15, %rsi
callq 0xae4a
leaq 0x57f3(%rip), %rsi      # 0x13170
movq %rbx, %rdi
callq 0x26b0
leaq 0x57dd(%rip), %rbp      # 0x13169
movq %rax, %rdi
movq %rbp, %rsi
callq 0xae4a
movq %rbx, %rdi
movq %r12, %rsi
callq 0x26b0
leaq 0x57cb(%rip), %r12      # 0x13174
movq %rax, %rdi
movq %r12, %rsi
callq 0xae4a
movq %rbx, %rdi
leaq 0x4766(%rip), %rsi      # 0x12124
callq 0x26b0
movq %rax, %rdi
movq %r14, %rsi
callq 0xae4a
movq %rbx, %rdi
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
movq %r15, %rsi
callq 0xae4a
leaq 0x4723(%rip), %rsi      # 0x1210e
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
movq %rbp, %rsi
callq 0xae4a
movq %rbx, %rdi
leaq 0x46fb(%rip), %r13      # 0x12103
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
movq %r12, %rsi
callq 0xae4a
movq %rbx, %rdi
leaq 0x470a(%rip), %rsi      # 0x1212f
callq 0x26b0
leaq 0x574e(%rip), %rsi      # 0x1317f
movq %rax, %rdi
callq 0xae4a
leaq 0x46fb(%rip), %rsi      # 0x1213b
movq %rbx, %rdi
callq 0x26b0
leaq 0x573f(%rip), %rsi      # 0x1318e
movq %rax, %rdi
callq 0xae4a
movq %rbx, %rdi
leaq 0x570f(%rip), %rsi      # 0x13170
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x56a2(%rip), %r14      # 0x1311c
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x56e5(%rip), %rsi      # 0x1317b
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x56ee(%rip), %r15      # 0x1319d
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
movl $0x1, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x4640(%rip), %rsi      # 0x1210e
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x4632(%rip), %rbp      # 0x12119
movq %rbp, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x460c(%rip), %r12      # 0x12124
movq %r12, %rsi
callq 0x26b0
movq %rax, %rdi
movl $0x1, %esi
callq 0x6484
movq %rbx, %rdi
leaq 0x45f8(%rip), %rsi      # 0x1212f
movq %rsi, %r13
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6484
movq %rbx, %rdi
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
movl $0x1, %esi
callq 0xa42b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
leaq 0x55f0(%rip), %r15      # 0x13170
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
leaq 0x55df(%rip), %r14      # 0x1317b
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
movq %r12, %rsi
callq 0x26b0
movq %rax, %rdi
movl $0x1, %esi
callq 0xa42b
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
leaq 0x4529(%rip), %rbp      # 0x1210e
movq %rbp, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
leaq 0x4502(%rip), %r12      # 0x12103
movq %r12, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
leaq 0x4509(%rip), %rsi      # 0x1213b
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0xa42b
movq %rbx, %rdi
leaq 0x5552(%rip), %rsi      # 0x1319d
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
leaq 0x54a7(%rip), %r15      # 0x1311c
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
leaq 0x4482(%rip), %rsi      # 0x12124
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
leaq 0x444d(%rip), %rbp      # 0x12119
movq %rbp, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
movq %r12, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
leaq 0x442f(%rip), %rsi      # 0x1213b
callq 0x26b0
movq %rax, %rdi
callq 0x6142
movq %rbx, %rdi
leaq 0x544d(%rip), %rsi      # 0x13170
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
movq %r15, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
leaq 0x5437(%rip), %rsi      # 0x1319d
movq %rsi, %r12
callq 0x26b0
movq %rax, %rdi
movl $0x1, %esi
callq 0x6aaa
movq %rbx, %rdi
leaq 0x4389(%rip), %rsi      # 0x1210e
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
leaq 0x4350(%rip), %rsi      # 0x12103
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
leaq 0x4358(%rip), %rsi      # 0x12124
callq 0x26b0
movq %rax, %rdi
movl $0x1, %esi
callq 0x6aaa
movq %rbx, %rdi
movq %r13, %rsi
callq 0x26b0
movq %rax, %rdi
xorl %esi, %esi
callq 0x6aaa
movq %rbx, %rdi
movq %r12, %rsi
callq 0x26b0
testq %rax, %rax
je 0xde20
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xde20
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde0b
leaq 0x52f5(%rip), %rsi      # 0x1311c
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xde51
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xde51
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde3c
leaq 0x5318(%rip), %rsi      # 0x13170
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xde82
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xde82
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde6d
leaq 0x52f2(%rip), %rsi      # 0x1317b
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdeb3
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdeb3
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde9e
leaq 0x426a(%rip), %rsi      # 0x12124
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdee4
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdee4
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdecf
leaq 0x422e(%rip), %rsi      # 0x12119
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdf15
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdf15
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf00
leaq 0x41f2(%rip), %rsi      # 0x1210e
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdf46
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdf46
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf31
leaq 0x41b6(%rip), %rsi      # 0x12103
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdf77
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdf77
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf62
leaq 0x41b1(%rip), %rsi      # 0x1212f
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdfa8
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdfa8
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf93
leaq 0x418c(%rip), %rsi      # 0x1213b
movq %rbx, %rdi
callq 0x26b0
testq %rax, %rax
je 0xdfd9
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdfd9
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdfc4
leaq 0x42dc(%rip), %r14      # 0x122bc
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x2745
movq %rax, %rdi
callq 0xa75d
movq %rbx, %rdi
callq 0x5ed5
leaq 0x5199(%rip), %rsi      # 0x1319d
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x5155(%rip), %rsi      # 0x13170
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x50ea(%rip), %rsi      # 0x1311c
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x5132(%rip), %rsi      # 0x1317b
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x40c4(%rip), %rsi      # 0x12124
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x4097(%rip), %rsi      # 0x1210e
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x408b(%rip), %rsi      # 0x12119
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x405e(%rip), %rsi      # 0x12103
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x4073(%rip), %rsi      # 0x1212f
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
leaq 0x4068(%rip), %rsi      # 0x1213b
movq %rbx, %rdi
callq 0x26b0
movq %rax, %rdi
callq 0xbcb3
movq %rbx, %rdi
movq %r14, %rsi
callq 0x26b0
movq %rax, %rdi
callq 0xbc4a
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq