// File: /workspace/github_cpp_makefile_star2_O2/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 0x5670(%rip), %rsi      # 0x110e4
callq 0x262e
movq %rax, %rdi
callq 0x270e
testq %rax, %rax
je 0xbabe
movq (%rax), %rdx
leaq 0x5660(%rip), %rsi      # 0x110f0
movq %rsp, %r14
movq %r14, %rdi
xorl %eax, %eax
callq 0x2310
leaq 0x5654(%rip), %rsi      # 0x110f8
pushq $0x1
popq %rbp
movq %rbx, %rdi
movl %ebp, %edx
callq 0x26a2
movq %rax, %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x26a2
movq %rbx, %rdi
callq 0x55e0
movq %rbx, %rdi
callq 0x2702
movq %rax, %rdi
callq 0x560b
movq %rbx, %rdi
callq 0x2eed
leaq 0x47ff(%rip), %rsi      # 0x102e4
movq %rbx, %rdi
xorl %edx, %edx
callq 0x26a2
movq %rax, %r14
leaq 0x47df(%rip), %rsi      # 0x102d8
movq %rbx, %rdi
callq 0x268c
movq %rax, %rdi
callq 0x270e
testq %rax, %rax
je 0xbb1b
movq (%rax), %rsi
movq %rsp, %rdi
callq 0x20b0
jmp 0xbb1f
movb $0x0, (%rsp)
movq %rsp, %r15
movq %r15, %rdi
xorl %esi, %esi
callq 0x3a31
movq %r14, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x26a2
movl $0xfffffef0, %ecx       # imm = 0xFFFFFEF0
andl 0x30(%rax), %ecx
orl $0x102, %ecx            # imm = 0x102
movl %ecx, 0x30(%rax)
leaq 0x47a2(%rip), %rsi      # 0x102f3
movq %rbx, %rdi
callq 0x268c
movq %rax, %rdi
callq 0x270e
testq %rax, %rax
je 0xbba8
movq (%rax), %rsi
movq %rsp, %r14
movq %r14, %rdi
callq 0x20b0
movq %r14, %rdi
xorl %esi, %esi
callq 0x3a31
leaq 0x475f(%rip), %rsi      # 0x102e4
movq %rbx, %rdi
xorl %edx, %edx
callq 0x26a2
pushq $0x1
popq %rdx
movq %rax, %rdi
movq %r14, %rsi
callq 0x26a2
movl 0x30(%rax), %ecx
andl $-0x10, %ecx
incl %ecx
movl %ecx, 0x30(%rax)
movq %rbx, %rdi
callq 0x2702
leaq 0x5549(%rip), %rsi      # 0x11100
movq %rax, %rdi
xorl %edx, %edx
callq 0x26a2
testb $0x20, 0x30(%rax)
je 0xbbf5
leaq 0x4716(%rip), %rsi      # 0x102e4
movq %rbx, %rdi
xorl %edx, %edx
callq 0x26a2
leaq 0xb221(%rip), %rsi      # 0x16e00
pushq $0x1
popq %rdx
movq %rax, %rdi
callq 0x26a2
movl 0x30(%rax), %ecx
andl $-0x10, %ecx
incl %ecx
movl %ecx, 0x30(%rax)
leaq 0x4501(%rip), %rsi      # 0x100fd
movq %rbx, %rdi
callq 0x268c
leaq 0x550c(%rip), %rsi      # 0x11117
movq %rax, %rdi
callq 0x262e
leaq 0x4a85(%rip), %rsi      # 0x1069f
movq %rax, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x270e
testq %rax, %rax
je 0xbcd4
leaq 0x5538(%rip), %rsi      # 0x11172
movq %rbx, %rdi
callq 0x262e
testq %rax, %rax
je 0xbd67
movq %rax, %r14
movq 0x18(%rax), %r12
pushq $0x1
popq %rbp
leaq 0x54bb(%rip), %r13      # 0x11117
cmpq 0x20(%r14), %r12
je 0xbd67
movq (%r12), %rax
testb $0x40, 0x30(%rax)
jne 0xbcce
movq %rbx, %rdi
leaq 0x54a4(%rip), %rsi      # 0x1111e
xorl %edx, %edx
callq 0x26a2
movq (%r12), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl %ebp, %edx
callq 0x26a2
movq %rax, %r15
movq (%r12), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x30f9
movq %r15, %rdi
leaq 0x442f(%rip), %rsi      # 0x100dc
xorl %edx, %edx
callq 0x26a2
movq %rax, %rdi
movq %r13, %rsi
movl %ebp, %edx
callq 0x26a2
movq (%r12), %rdi
callq 0x2be9
addq $-0x8, %r12
addq $0x8, %r12
jmp 0xbc5c
movq %rbx, %rdi
callq 0x2702
leaq 0x543f(%rip), %rsi      # 0x11122
movq %rax, %rdi
xorl %edx, %edx
callq 0x26a2
testb $0x20, 0x30(%rax)
je 0xbd67
leaq 0x5424(%rip), %rsi      # 0x1111e
movq %rbx, %rdi
callq 0x262e
testq %rax, %rax
je 0xbd67
movq %rax, %r14
movq 0x18(%rax), %r12
leaq 0x545d(%rip), %r15      # 0x11172
pushq $0x1
popq %rbp
cmpq 0x20(%r14), %r12
je 0xbd67
movq (%r12), %rax
testb $0x40, 0x30(%rax)
jne 0xbd61
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x26a2
movq (%r12), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl %ebp, %edx
callq 0x26a2
movq (%r12), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x30f9
movq (%r12), %rdi
callq 0x2be9
addq $-0x8, %r12
addq $0x8, %r12
jmp 0xbd18
leaq 0x5431(%rip), %rsi      # 0x1119f
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x5399(%rip), %rsi      # 0x1111e
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x53d6(%rip), %rsi      # 0x11172
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x53ca(%rip), %rsi      # 0x1117d
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x435a(%rip), %rsi      # 0x10124
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x4338(%rip), %rsi      # 0x10119
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x4316(%rip), %rsi      # 0x1010e
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x42f4(%rip), %rsi      # 0x10103
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x4309(%rip), %rsi      # 0x1012f
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x42fe(%rip), %rsi      # 0x1013b
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
leaq 0x446a(%rip), %rsi      # 0x102be
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0x9cc5
movq %rbx, %rdi
callq 0x2702
leaq 0x47f4(%rip), %rsi      # 0x10667
movq %rax, %rdi
xorl %edx, %edx
callq 0x26a2
testb $0x20, 0x30(%rax)
jne 0xbea6
movq %rbx, %rdi
callq 0x2702
leaq 0x52a1(%rip), %rsi      # 0x11133
movq %rax, %rdi
xorl %edx, %edx
callq 0x26a2
testb $0x20, 0x30(%rax)
je 0xc01c
leaq 0x52d0(%rip), %rsi      # 0x1117d
movq %rbx, %rdi
callq 0x262e
testq %rax, %rax
je 0xbf61
movq %rax, %r14
movq 0x18(%rax), %r12
leaq 0x5267(%rip), %r15      # 0x11133
leaq 0x52cc(%rip), %r13      # 0x1119f
pushq $0x1
popq %rbp
cmpq 0x20(%r14), %r12
je 0xbf61
movq (%r12), %rdi
testb $0x40, 0x30(%rdi)
jne 0xbf58
callq 0x2702
movq %rax, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x26a2
testb $0x20, 0x30(%rax)
jne 0xbf1f
movq (%r12), %rdi
leaq 0x523b(%rip), %rsi      # 0x11148
callq 0x262e
movq %rax, %rdi
callq 0x270e
testq %rax, %rax
jne 0xbf58
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x26a2
movq (%r12), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl %ebp, %edx
callq 0x26a2
movq (%r12), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x30f9
movq (%r12), %rdi
callq 0x2be9
addq $-0x8, %r12
addq $0x8, %r12
jmp 0xbed6
leaq 0x419b(%rip), %rsi      # 0x10103
movq %rbx, %rdi
callq 0x262e
testq %rax, %rax
je 0xc01c
movq %rax, %r14
movq 0x18(%rax), %r12
leaq 0x51ac(%rip), %r15      # 0x11133
leaq 0x4196(%rip), %r13      # 0x10124
pushq $0x1
popq %rbp
cmpq 0x20(%r14), %r12
je 0xc01c
movq (%r12), %rdi
testb $0x40, 0x30(%rdi)
jne 0xc013
callq 0x2702
movq %rax, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x26a2
testb $0x20, 0x30(%rax)
jne 0xbfda
movq (%r12), %rdi
leaq 0x5180(%rip), %rsi      # 0x11148
callq 0x262e
movq %rax, %rdi
callq 0x270e
testq %rax, %rax
jne 0xc013
movq %rbx, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x26a2
movq (%r12), %rcx
movq (%rcx), %rsi
movq %rax, %rdi
movl %ebp, %edx
callq 0x26a2
movq (%r12), %rsi
movq %rax, %rdi
xorl %edx, %edx
callq 0x30f9
movq (%r12), %rdi
callq 0x2be9
addq $-0x8, %r12
addq $0x8, %r12
jmp 0xbf91
leaq 0x517c(%rip), %r13      # 0x1119f
movq %rbx, %rdi
movq %r13, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x5135(%rip), %rsi      # 0x11172
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x50ca(%rip), %rsi      # 0x1111e
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x5112(%rip), %r14      # 0x1117d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x409f(%rip), %rbp      # 0x10124
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x406f(%rip), %rsi      # 0x1010e
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x4063(%rip), %r12      # 0x10119
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x4033(%rip), %r15      # 0x10103
movq %rbx, %rdi
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x4045(%rip), %rsi      # 0x1012f
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x403a(%rip), %rsi      # 0x1013b
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0xa8b1
leaq 0x44b3(%rip), %rsi      # 0x105cb
movq %rbx, %rdi
callq 0x262e
movq %rax, %rdi
callq 0xa275
movq %rbx, %rdi
movq %r13, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa275
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa275
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x9824
movq %rbx, %rdi
leaq 0x4fb3(%rip), %rbp      # 0x1111e
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x9824
movq %rbx, %rdi
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x9824
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x9824
movq %rbx, %rdi
leaq 0x3f84(%rip), %rsi      # 0x1012f
callq 0x262e
movq %rax, %rdi
callq 0x9824
movq %rbx, %rdi
movq %r13, %rsi
callq 0x262e
leaq 0x4f8b(%rip), %r13      # 0x11155
movq %rax, %rdi
movq %r13, %rsi
callq 0x9bc1
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
leaq 0x4f79(%rip), %rbp      # 0x11160
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x4f76(%rip), %rsi      # 0x11172
callq 0x262e
leaq 0x4f63(%rip), %r15      # 0x1116b
movq %rax, %rdi
movq %r15, %rsi
callq 0x9bc1
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
leaq 0x4f51(%rip), %r14      # 0x11176
movq %rax, %rdi
movq %r14, %rsi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x3eea(%rip), %rsi      # 0x10124
callq 0x262e
movq %rax, %rdi
movq %r13, %rsi
callq 0x9bc1
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
movq %rbp, %rsi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x3ea4(%rip), %rbp      # 0x1010e
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
movq %r15, %rsi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x3e7c(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
movq %r14, %rsi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x3e8e(%rip), %rsi      # 0x1012f
callq 0x262e
leaq 0x4ed4(%rip), %rsi      # 0x11181
movq %rax, %rdi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x3e7c(%rip), %rsi      # 0x1013b
callq 0x262e
leaq 0x4ec5(%rip), %rsi      # 0x11190
movq %rax, %rdi
callq 0x9bc1
movq %rbx, %rdi
leaq 0x4e95(%rip), %rsi      # 0x11172
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x4e28(%rip), %r12      # 0x1111e
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x4e6b(%rip), %rsi      # 0x1117d
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x4e74(%rip), %r14      # 0x1119f
movq %r14, %rsi
callq 0x262e
pushq $0x1
popq %r13
movq %rax, %rdi
movl %r13d, %esi
callq 0x5bb2
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x3db8(%rip), %r15      # 0x10119
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x3d86(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x3d8e(%rip), %rbp      # 0x10124
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
movl %r13d, %esi
callq 0x5bb2
movq %rbx, %rdi
leaq 0x3d7c(%rip), %rsi      # 0x1012f
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x5bb2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
movl %r13d, %esi
callq 0x9284
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x4d7b(%rip), %rsi      # 0x11172
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x4d6d(%rip), %r12      # 0x1117d
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
movl %r13d, %esi
callq 0x9284
movq %rbx, %rdi
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x3cb7(%rip), %rsi      # 0x1010e
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x3c93(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x3ca6(%rip), %r14      # 0x1012f
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x3c96(%rip), %rbp      # 0x1013b
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x9284
movq %rbx, %rdi
leaq 0x4cde(%rip), %rsi      # 0x1119f
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
leaq 0x4c9a(%rip), %r15      # 0x11172
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
leaq 0x4c2c(%rip), %r13      # 0x1111e
movq %r13, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
leaq 0x3c05(%rip), %rsi      # 0x10124
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
leaq 0x3bd8(%rip), %rsi      # 0x1010e
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
leaq 0x3bcc(%rip), %rsi      # 0x10119
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
leaq 0x3b9f(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x589b
movq %rbx, %rdi
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
movq %r13, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
leaq 0x4bbf(%rip), %r12      # 0x1119f
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
pushq $0x1
popq %r13
movl %r13d, %esi
callq 0x60c6
movq %rbx, %rdi
leaq 0x3b0d(%rip), %rsi      # 0x1010e
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
leaq 0x3aff(%rip), %r14      # 0x10119
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
leaq 0x3acd(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
leaq 0x3ad5(%rip), %rbp      # 0x10124
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
movl %r13d, %esi
callq 0x60c6
movq %rbx, %rdi
leaq 0x3ac3(%rip), %r15      # 0x1012f
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
xorl %esi, %esi
callq 0x60c6
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
leaq 0x4a83(%rip), %rsi      # 0x1111e
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
leaq 0x4ac0(%rip), %r13      # 0x11172
movq %r13, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
leaq 0x4ab1(%rip), %rsi      # 0x1117d
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
leaq 0x3a05(%rip), %rbp      # 0x1010e
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
leaq 0x39e0(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
movq %rbx, %rdi
leaq 0x39ee(%rip), %r12      # 0x1013b
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
callq 0x954c
leaq 0x3b5a(%rip), %r14      # 0x102be
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0x26a2
movq %rax, %rdi
callq 0x956f
movq %rbx, %rdi
callq 0x5631
movq %rbx, %rdi
leaq 0x4a14(%rip), %rsi      # 0x1119f
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
movq %r13, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
leaq 0x4969(%rip), %rsi      # 0x1111e
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
leaq 0x49b1(%rip), %rsi      # 0x1117d
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
leaq 0x3941(%rip), %rsi      # 0x10124
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
leaq 0x390c(%rip), %rsi      # 0x10119
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
leaq 0x38df(%rip), %rsi      # 0x10103
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
movq %r15, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
movq %r12, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa8c3
movq %rbx, %rdi
movq %r14, %rsi
callq 0x262e
movq %rax, %rdi
callq 0xa85e
addq $0x408, %rsp            # imm = 0x408
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq