// File: /workspace/github_cpp_makefile_star2_O3/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 0x519c(%rip), %rsi      # 0x120e4
callq 0x2694
testq %rax, %rax
je 0xcfa9
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xcfa9
movq (%rcx), %rdx
testb $0x40, 0x30(%rdx)
je 0xcf6e
addq $0x8, %rcx
jmp 0xcf5a
movq (%rdx), %rdx
leaq 0x5178(%rip), %rsi      # 0x120f0
movq %rsp, %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2310
leaq 0x516c(%rip), %rsi      # 0x120f8
movq %rbx, %rdi
movl $0x1, %edx
callq 0x270b
movq %rax, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x270b
movq %rbx, %rdi
callq 0x5ed0
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xcfb4
leaq 0x410a(%rip), %rsi      # 0x110d1
xorl %edx, %edx
callq 0x270b
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xcff3
movq (%rcx), %rdx
movl 0x30(%rdx), %esi
testb $0x20, %sil
jne 0xcfed
orl $0x40, %esi
movl %esi, 0x30(%rdx)
addq $0x8, %rcx
jmp 0xcfd6
movq %rbx, %rdi
callq 0x3109
leaq 0x42e2(%rip), %rsi      # 0x112e4
movq %rbx, %rdi
xorl %edx, %edx
callq 0x270b
movq %rax, %r14
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd012
leaq 0x42b3(%rip), %rsi      # 0x112d8
xorl %edx, %edx
callq 0x270b
testq %rax, %rax
je 0xd051
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xd051
movq (%rcx), %rdx
testb $0x40, 0x30(%rdx)
je 0xd0ce
addq $0x8, %rcx
jmp 0xd039
movb $0x0, (%rsp)
movq %rsp, %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x3e10
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x270b
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 0xd083
leaq 0x425d(%rip), %rsi      # 0x112f3
xorl %edx, %edx
callq 0x270b
testq %rax, %rax
je 0xd13c
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xd13c
movq %rcx, %rdx
movq (%rdx), %rsi
testb $0x40, 0x30(%rsi)
je 0xd0de
addq $0x8, %rdx
cmpq %rax, %rdx
jne 0xd0ba
jmp 0xd13c
movq (%rdx), %rsi
movq %rsp, %rdi
callq 0x20b0
jmp 0xd055
movq (%rcx), %rax
testb $0x40, 0x30(%rax)
je 0xd0f8
addq $0x8, %rcx
movq (%rcx), %rax
addq $0x8, %rcx
testb $0x40, 0x30(%rax)
jne 0xd0eb
movq (%rax), %rsi
movq %rsp, %r14
movq %r14, %rdi
callq 0x20b0
movq %r14, %rdi
xorl %esi, %esi
callq 0x3e10
leaq 0x41cd(%rip), %rsi      # 0x112e4
movq %rbx, %rdi
xorl %edx, %edx
callq 0x270b
movq %rax, %rdi
movq %r14, %rsi
movl $0x1, %edx
callq 0x270b
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 0xd13f
leaq 0x3f7f(%rip), %rsi      # 0x110d1
xorl %edx, %edx
callq 0x270b
leaq 0x4fa0(%rip), %rsi      # 0x12100
movq %rax, %rdi
xorl %edx, %edx
callq 0x270b
testb $0x20, 0x30(%rax)
je 0xd1a0
leaq 0x416d(%rip), %rsi      # 0x112e4
movq %rbx, %rdi
xorl %edx, %edx
callq 0x270b
leaq 0x9c78(%rip), %rsi      # 0x16e00
movq %rax, %rdi
movl $0x1, %edx
callq 0x270b
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 0xd1a3
leaq 0x3f47(%rip), %rsi      # 0x110fd
xorl %edx, %edx
callq 0x270b
leaq 0x4f53(%rip), %rsi      # 0x12117
movq %rax, %rdi
callq 0x2694
leaq 0x44cc(%rip), %rsi      # 0x1169f
movq %rax, %rdi
callq 0x2694
movq %rbx, %rdx
testq %rax, %rax
je 0xd20c
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
movq %rbx, %rdx
cmpq %rax, %rcx
je 0xd20c
movq (%rcx), %rdx
testb $0x40, 0x30(%rdx)
je 0xd2cc
addq $0x8, %rcx
cmpq %rax, %rcx
jne 0xd1f3
movq %rbx, %rdx
movq %rdx, %rdi
movq 0x10(%rdx), %rdx
testq %rdx, %rdx
jne 0xd20c
leaq 0x3eb2(%rip), %rsi      # 0x110d1
xorl %edx, %edx
callq 0x270b
leaq 0x4ef5(%rip), %rsi      # 0x12122
movq %rax, %rdi
xorl %edx, %edx
callq 0x270b
testb $0x20, 0x30(%rax)
je 0xd379
leaq 0x4ed6(%rip), %rsi      # 0x1211e
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd379
movq %rax, %r14
movq 0x18(%rax), %r12
movq 0x20(%rax), %rax
cmpq %rax, %r12
je 0xd379
leaq 0x4efe(%rip), %r15      # 0x12172
movq (%r12), %rcx
testb $0x40, 0x30(%rcx)
jne 0xd2be
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x270b
movq (%r12), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x270b
movq (%r12), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334a
movq (%r12), %rdi
callq 0x2d5b
addq $-0x8, %r12
movq 0x20(%r14), %rax
addq $0x8, %r12
cmpq %rax, %r12
jne 0xd274
jmp 0xd379
leaq 0x4e9f(%rip), %rsi      # 0x12172
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd379
movq %rax, %r14
movq 0x18(%rax), %r15
movq 0x20(%rax), %rax
cmpq %rax, %r15
je 0xd379
leaq 0x3ddd(%rip), %r12      # 0x110dc
leaq 0x4e11(%rip), %r13      # 0x12117
movq (%r15), %rcx
testb $0x40, 0x30(%rcx)
jne 0xd370
movq %rbx, %rdi
leaq 0x4e05(%rip), %rsi      # 0x1211e
xorl %edx, %edx
callq 0x270b
movq (%r15), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x270b
movq %rax, %rbp
movq (%r15), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334a
movq %rbp, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x270b
movq %rax, %rdi
movq %r13, %rsi
movl $0x1, %edx
callq 0x270b
movq (%r15), %rdi
callq 0x2d5b
addq $-0x8, %r15
movq 0x20(%r14), %rax
addq $0x8, %r15
cmpq %rax, %r15
jne 0xd306
leaq 0x4e1f(%rip), %rsi      # 0x1219f
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x4d87(%rip), %rsi      # 0x1211e
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x4dc4(%rip), %rsi      # 0x12172
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x4db8(%rip), %rsi      # 0x1217d
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3d48(%rip), %rsi      # 0x11124
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3d26(%rip), %rsi      # 0x11119
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3d04(%rip), %rsi      # 0x1110e
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3ce2(%rip), %rsi      # 0x11103
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3cf7(%rip), %rsi      # 0x1112f
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3cec(%rip), %rsi      # 0x1113b
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
leaq 0x3e58(%rip), %rsi      # 0x112be
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaf7b
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd479
leaq 0x3c45(%rip), %rsi      # 0x110d1
xorl %edx, %edx
callq 0x270b
leaq 0x41cd(%rip), %rsi      # 0x11667
movq %rax, %rdi
xorl %edx, %edx
callq 0x270b
testb $0x20, 0x30(%rax)
jne 0xd4e2
movq %rbx, %rax
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd4ad
leaq 0x3c11(%rip), %rsi      # 0x110d1
xorl %edx, %edx
callq 0x270b
leaq 0x4c65(%rip), %rsi      # 0x12133
movq %rax, %rdi
xorl %edx, %edx
callq 0x270b
testb $0x20, 0x30(%rax)
je 0xd6c2
leaq 0x4c94(%rip), %rsi      # 0x1217d
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd5d2
movq %rax, %r14
movq 0x18(%rax), %r13
cmpq 0x20(%rax), %r13
je 0xd5d2
leaq 0x3bbf(%rip), %r15      # 0x110d1
leaq 0x4c1a(%rip), %r12      # 0x12133
leaq 0x4c7f(%rip), %rbp      # 0x1219f
movq (%r13), %rax
testb $0x40, 0x30(%rax)
jne 0xd5c4
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd52e
movq %r15, %rsi
xorl %edx, %edx
callq 0x270b
movq %rax, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x270b
testb $0x20, 0x30(%rax)
jne 0xd588
movq (%r13), %rdi
leaq 0x4be6(%rip), %rsi      # 0x12148
callq 0x2694
testq %rax, %rax
je 0xd588
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xd588
movq (%rcx), %rdx
testb $0x40, 0x30(%rdx)
je 0xd5c4
addq $0x8, %rcx
jmp 0xd574
movq %rbx, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x270b
movq (%r13), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x270b
movq (%r13), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334a
movq (%r13), %rdi
callq 0x2d5b
addq $-0x8, %r13
addq $0x8, %r13
cmpq 0x20(%r14), %r13
jne 0xd520
leaq 0x3b2a(%rip), %rsi      # 0x11103
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd6c2
movq %rax, %r14
movq 0x18(%rax), %r13
cmpq 0x20(%rax), %r13
je 0xd6c2
leaq 0x3acf(%rip), %r15      # 0x110d1
leaq 0x4b2a(%rip), %r12      # 0x12133
leaq 0x3b14(%rip), %rbp      # 0x11124
movq (%r13), %rax
testb $0x40, 0x30(%rax)
jne 0xd6b4
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0xd61e
movq %r15, %rsi
xorl %edx, %edx
callq 0x270b
movq %rax, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x270b
testb $0x20, 0x30(%rax)
jne 0xd678
movq (%r13), %rdi
leaq 0x4af6(%rip), %rsi      # 0x12148
callq 0x2694
testq %rax, %rax
je 0xd678
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xd678
movq (%rcx), %rdx
testb $0x40, 0x30(%rdx)
je 0xd6b4
addq $0x8, %rcx
jmp 0xd664
movq %rbx, %rdi
movq %rbp, %rsi
xorl %edx, %edx
callq 0x270b
movq (%r13), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl $0x1, %edx
callq 0x270b
movq (%r13), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x334a
movq (%r13), %rdi
callq 0x2d5b
addq $-0x8, %r13
addq $0x8, %r13
cmpq 0x20(%r14), %r13
jne 0xd610
leaq 0x4ad6(%rip), %rsi      # 0x1219f
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd6e5
leaq -0xab26(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x4a86(%rip), %rsi      # 0x12172
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd708
leaq -0xab49(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x4a0f(%rip), %rsi      # 0x1211e
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd72b
leaq -0xab6c(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x4a4b(%rip), %rsi      # 0x1217d
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd74e
leaq -0xab8f(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x39cf(%rip), %rsi      # 0x11124
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd771
leaq -0xabb2(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x3996(%rip), %rsi      # 0x1110e
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd794
leaq -0xabd5(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x397e(%rip), %rsi      # 0x11119
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd7b7
leaq -0xabf8(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x3945(%rip), %rsi      # 0x11103
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd7da
leaq -0xac1b(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x394e(%rip), %rsi      # 0x1112f
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd7fd
leaq -0xac3e(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x3937(%rip), %rsi      # 0x1113b
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xd820
leaq -0xac61(%rip), %rsi     # 0x2bb7
movq %rax, %rdi
callq 0x2c7c
leaq 0x3da4(%rip), %rsi      # 0x115cb
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xb54d
leaq 0x4961(%rip), %r14      # 0x1219f
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
callq 0xb54d
leaq 0x38cc(%rip), %rsi      # 0x11124
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xb54d
leaq 0x490e(%rip), %r12      # 0x1217d
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2694
movq %rax, %rdi
callq 0xaa1d
leaq 0x4895(%rip), %r15      # 0x1211e
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
callq 0xaa1d
leaq 0x3860(%rip), %rsi      # 0x11103
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaa1d
leaq 0x385f(%rip), %r13      # 0x11119
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
callq 0xaa1d
leaq 0x385b(%rip), %rsi      # 0x1112f
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xaa1d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2694
leaq 0x485f(%rip), %r14      # 0x12155
movq %rax, %rdi
movq %r14, %rsi
callq 0xae27
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2694
leaq 0x484d(%rip), %r15      # 0x12160
movq %rax, %rdi
movq %r15, %rsi
callq 0xae27
leaq 0x484d(%rip), %rsi      # 0x12172
movq %rbx, %rdi
callq 0x2694
leaq 0x4837(%rip), %rbp      # 0x1216b
movq %rax, %rdi
movq %rbp, %rsi
callq 0xae27
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2694
leaq 0x4825(%rip), %r12      # 0x12176
movq %rax, %rdi
movq %r12, %rsi
callq 0xae27
movq %rbx, %rdi
leaq 0x37be(%rip), %rsi      # 0x11124
callq 0x2694
movq %rax, %rdi
movq %r14, %rsi
callq 0xae27
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
movq %r15, %rsi
callq 0xae27
leaq 0x377b(%rip), %rsi      # 0x1110e
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
movq %rbp, %rsi
callq 0xae27
movq %rbx, %rdi
leaq 0x3753(%rip), %r13      # 0x11103
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
movq %r12, %rsi
callq 0xae27
movq %rbx, %rdi
leaq 0x3762(%rip), %rsi      # 0x1112f
callq 0x2694
leaq 0x47a8(%rip), %rsi      # 0x12181
movq %rax, %rdi
callq 0xae27
leaq 0x3753(%rip), %rsi      # 0x1113b
movq %rbx, %rdi
callq 0x2694
leaq 0x4799(%rip), %rsi      # 0x12190
movq %rax, %rdi
callq 0xae27
movq %rbx, %rdi
leaq 0x4769(%rip), %rsi      # 0x12172
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x46fc(%rip), %r14      # 0x1211e
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x473f(%rip), %rsi      # 0x1217d
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x4748(%rip), %r15      # 0x1219f
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
movl $0x1, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x3698(%rip), %rsi      # 0x1110e
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x368a(%rip), %rbp      # 0x11119
movq %rbp, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x3664(%rip), %r12      # 0x11124
movq %r12, %rsi
callq 0x2694
movq %rax, %rdi
movl $0x1, %esi
callq 0x64b8
movq %rbx, %rdi
leaq 0x3650(%rip), %rsi      # 0x1112f
movq %rsi, %r13
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x64b8
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
movl $0x1, %esi
callq 0xa456
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
leaq 0x464a(%rip), %r15      # 0x12172
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
leaq 0x4639(%rip), %r14      # 0x1217d
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2694
movq %rax, %rdi
movl $0x1, %esi
callq 0xa456
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
leaq 0x3581(%rip), %rbp      # 0x1110e
movq %rbp, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
leaq 0x355a(%rip), %r12      # 0x11103
movq %r12, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
leaq 0x3561(%rip), %rsi      # 0x1113b
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0xa456
movq %rbx, %rdi
leaq 0x45ac(%rip), %rsi      # 0x1219f
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
leaq 0x4501(%rip), %r15      # 0x1211e
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
leaq 0x34da(%rip), %rsi      # 0x11124
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
leaq 0x34a5(%rip), %rbp      # 0x11119
movq %rbp, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
leaq 0x3487(%rip), %rsi      # 0x1113b
callq 0x2694
movq %rax, %rdi
callq 0x6192
movq %rbx, %rdi
leaq 0x44a7(%rip), %rsi      # 0x12172
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
leaq 0x4491(%rip), %rsi      # 0x1219f
movq %rsi, %r12
callq 0x2694
movq %rax, %rdi
movl $0x1, %esi
callq 0x6a94
movq %rbx, %rdi
leaq 0x33e1(%rip), %rsi      # 0x1110e
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
leaq 0x33a8(%rip), %rsi      # 0x11103
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
leaq 0x33b0(%rip), %rsi      # 0x11124
callq 0x2694
movq %rax, %rdi
movl $0x1, %esi
callq 0x6a94
movq %rbx, %rdi
movq %r13, %rsi
callq 0x2694
movq %rax, %rdi
xorl %esi, %esi
callq 0x6a94
movq %rbx, %rdi
movq %r12, %rsi
callq 0x2694
testq %rax, %rax
je 0xddc8
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xddc8
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xddb3
leaq 0x434f(%rip), %rsi      # 0x1211e
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xddf9
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xddf9
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdde4
leaq 0x4372(%rip), %rsi      # 0x12172
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xde2a
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xde2a
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde15
leaq 0x434c(%rip), %rsi      # 0x1217d
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xde5b
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xde5b
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde46
leaq 0x32c2(%rip), %rsi      # 0x11124
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xde8c
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xde8c
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xde77
leaq 0x3286(%rip), %rsi      # 0x11119
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xdebd
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdebd
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdea8
leaq 0x324a(%rip), %rsi      # 0x1110e
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xdeee
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdeee
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xded9
leaq 0x320e(%rip), %rsi      # 0x11103
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xdf1f
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdf1f
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf0a
leaq 0x3209(%rip), %rsi      # 0x1112f
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xdf50
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdf50
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf3b
leaq 0x31e4(%rip), %rsi      # 0x1113b
movq %rbx, %rdi
callq 0x2694
testq %rax, %rax
je 0xdf81
movq 0x18(%rax), %rcx
movq 0x20(%rax), %rax
cmpq %rax, %rcx
je 0xdf81
movq (%rcx), %rdx
andl $0xffffff7f, 0x30(%rdx) # imm = 0xFFFFFF7F
addq $0x8, %rcx
jmp 0xdf6c
leaq 0x3336(%rip), %r14      # 0x112be
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x270b
movq %rax, %rdi
callq 0xa74b
movq %rbx, %rdi
callq 0x5f25
leaq 0x41f3(%rip), %rsi      # 0x1219f
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x41af(%rip), %rsi      # 0x12172
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x4144(%rip), %rsi      # 0x1211e
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x418c(%rip), %rsi      # 0x1217d
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x311c(%rip), %rsi      # 0x11124
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x30ef(%rip), %rsi      # 0x1110e
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x30e3(%rip), %rsi      # 0x11119
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x30b6(%rip), %rsi      # 0x11103
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x30cb(%rip), %rsi      # 0x1112f
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
leaq 0x30c0(%rip), %rsi      # 0x1113b
movq %rbx, %rdi
callq 0x2694
movq %rax, %rdi
callq 0xbd17
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2694
movq %rax, %rdi
callq 0xbcae
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq