// File: corecodec[P]coremake/coremake.c
// Function: load_item
int load_item(item* p,reader* file,int sub,itemcond* cond0)
{
	int result=0;
	item *i,*j=NULL;
    while (!reader_eof(file))
	{
		if (reader_istoken(file,"#include"))
		{
			if (reader_istoken(file,"*/*.proj"))
			{
				char path[MAX_PATH];
				DIR* dir;
				path[0] = 0;
				strins(path,file->filename,getfilename(file->filename));
				delendpath(path);
				dir = opendir(path[0]?path:".");
				if (dir)
				{
					struct dirent* entry;
                    struct stat entrystats;
					addendpath(path);
					while ((entry = readdir(dir)) != NULL)
					{
						sprintf(file->token,"%s%s",path,entry->d_name);
                        stat(file->token,&entrystats);
						if ((entrystats.st_mode & S_IFDIR) && entry->d_name[0]!='.')
						{
    						sprintf(file->token,"%s%s/%s.proj",path,entry->d_name,entry->d_name);
                            if (!load_file(p,file->token,FLAG_PATH_SOURCE,cond0) && strrchr(entry->d_name,'-'))
                            {
                                // if it's a UNIX library name, try without the version
						        char *empty = strrchr(file->token,'-');
                                *empty = 0;
                                strcat(file->token,".proj");
                                load_file(p,file->token,FLAG_PATH_SOURCE,cond0);
                            }
						}
					}
					closedir(dir);
				}
			}
			else
			{
                reader_token(file);
				reader_filename(file,0);
				load_file(p,file->token,FLAG_PATH_SOURCE,cond0);
			}
		}
		else
		if (reader_istoken(file,"if"))
		{
            itemcond* condextra = NULL;
			int mode;
			do
			{
				itemcond* cond = load_cond(p,file,1);
                itemcond* cond1 = itemcond_and(itemcond_and(itemcond_dup(cond),cond0),condextra);
				mode = load_item(p,file,2,cond1);
				itemcond_delete(cond1);
				if (mode==1)
				{
					itemcond* not1 = (itemcond*)itemcond_new(COND_NOT,NULL);
					not1->a = itemcond_dup(cond);
                    not1 = itemcond_and(itemcond_and(not1,cond0),condextra);
					load_item(p,file,3,not1);
	    			itemcond_delete(not1);
				}
                else if (mode==2)
                {
					itemcond* not1 = itemcond_new(COND_NOT,NULL);
					not1->a = itemcond_dup(cond);
                    condextra = itemcond_and(condextra,not1);
	    			itemcond_delete(not1);
                }
				itemcond_delete(cond);
			}
			while (mode==2);
            itemcond_delete(condextra);
		}
		else
		if (reader_istoken(file,"else"))
		{
			if (sub != 2)
				syntax(file);
			result = 1;
			break;
		}
		else
		if (reader_istoken(file,";"))
        {
            //nothing to do
        }
        else
		if (reader_istoken(file,"elif"))
		{
			if (sub != 2)
				syntax(file);
			result = 2;
			break;
		}
		else
		if (reader_istoken(file,"endif"))
		{
			if (sub != 2 && sub != 3)
				syntax(file);
			break;
		}
		else
		if (reader_istoken(file,"}"))
		{
			if (sub != 1)
				syntax(file);
			break;
		}
		else
		{
			int config = 0;
			int need_path;
			int filename;
            int uselib;
            int deepercond;
            int attrib;
            int generated_dir;
            int coremake_dir;
            int system_dir;
			itemcond* cond;
			reader_name(file);

            deepercond = !p->parent && stricmp(file->token,"project")==0;

			need_path = !p->parent && (
				   stricmp(file->token,"con")==0 ||
				   stricmp(file->token,"exe")==0 ||
				   stricmp(file->token,"group")==0 ||
				   stricmp(file->token,"lib")==0 ||
				   stricmp(file->token,"dll")==0 ||
				   stricmp(file->token,"lib_csharp")==0 ||
				   stricmp(file->token,"dll_csharp")==0 ||
				   stricmp(file->token,"exe_csharp")==0 ||
				   stricmp(file->token,"con_csharp")==0 ||
				   stricmp(file->token,"exe_android")==0 ||
				   stricmp(file->token,"dll_android")==0 ||
			       stricmp(file->token,"workspace")==0);

            uselib = stricmp(file->token,"uselib")==0 || stricmp(file->token,"builtlib")==0;

			filename = stricmp(file->token,"config_file")==0 ||
					   stricmp(file->token,"config_include")==0 ||
					   stricmp(file->token,"config_cleaner")==0 ||
					   stricmp(file->token,"platform_files")==0 ||
					   stricmp(file->token,"expinclude")==0 ||
					   stricmp(file->token,"subinclude")==0 ||
					   stricmp(file->token,"sysinclude")==0 ||
					   stricmp(file->token,"include")==0 ||
					   stricmp(file->token,"include_debug")==0 ||
					   stricmp(file->token,"include_release")==0 ||
					   stricmp(file->token,"os_include")==0 ||
					   stricmp(file->token,"libinclude")==0 ||
					   stricmp(file->token,"libinclude_debug")==0 ||
					   stricmp(file->token,"libinclude_release")==0 ||
					   stricmp(file->token,"def")==0 ||
					   stricmp(file->token,"icon")==0 ||
					   stricmp(file->token,"header")==0 ||
					   stricmp(file->token,"header_qt4")==0 ||
					   stricmp(file->token,"ui_form_qt4")==0 ||
					   stricmp(file->token,"resource_qt4")==0 ||
					   stricmp(file->token,"install_zip")==0 ||
					   stricmp(file->token,"install_cab")==0 ||
					   stricmp(file->token,"install")==0 ||
					   stricmp(file->token,"android_value")==0 ||
					   stricmp(file->token,"nsi")==0 ||
					   stricmp(file->token,"pmdoc")==0 ||
					   stricmp(file->token,"osx_icon")==0 ||
					   stricmp(file->token,"source_m68k")==0 ||
					   stricmp(file->token,"export_svn")==0 ||
					   stricmp(file->token,"source")==0 ||
					   stricmp(file->token, "sourcedir") == 0 ||
					   stricmp(file->token,"compile")==0 ||
					   stricmp(file->token,"linkfile")==0 ||
					   stricmp(file->token,"crt0")==0 ||
					   stricmp(file->token,"symbian_cert")==0 ||
					   stricmp(file->token,"symbian_key")==0 ||
					   stricmp(file->token,"doxygen")==0 ||
                       stricmp(file->token,"project_svn_revision")==0 || /* TODO really ? */
                       stricmp(file->token,"project_help")==0;

            generated_dir = stricmp(file->token,"config_file")==0 ||
                            stricmp(file->token,"config_include")==0;

            coremake_dir = stricmp(file->token,"platform_files")==0;

            system_dir = stricmp(file->token,"os_include")==0;

            attrib = filename ||
					   stricmp(file->token,"register_cab")==0 ||
                       stricmp(file->token,"reg")==0 ||
					   stricmp(file->token,"class")==0; // we need this because priority would mess up conditions

			if (stricmp(file->token,"config")==0)
			{
				config = 1;
				j = getconfig(p);
			}
			else
				j = item_get(p,file->token,0);

			cond = load_cond(p,file,0);
			cond = itemcond_and(cond,cond0);

			if (cond && config)
			{
				item* v;
				for (v=p;v;v=v->parent)
					cond = itemcond_and(cond,v->cond);
			}

			if (reader_istoken(file,"}"))
			{
				if (sub != 1)
					syntax(file);
				item_get(j,"1",1);
				break;
			}

			if (reader_istoken(file,",") || reader_istoken(file,";"))
			{
				item_get(j,"1",1);
			}
			else
			if (reader_istoken(file,"{"))
			{
				if (config)
					syntax(file);
				load_item(j,file,1,cond);
			}
			else
			{
				do
				{
                    int exists;
                    int is_abs=0;

					reader_token(file);
                    if (filename)
                    {
                        int file_flags = generated_dir?FLAG_PATH_GENERATED:(coremake_dir?FLAG_PATH_COREMAKE:(system_dir?FLAG_PATH_SYSTEM:FLAG_PATH_SOURCE));
                        if (ispathabs(file->token))
                        {
                            is_abs = 1;
                            file_flags |= FLAG_PATH_SET_ABSOLUTE;
                        }
                        reader_filename(file,file_flags);
                    }

                    exists = item_find(j,file->token)!=NULL;
					i = item_get(j,file->token,0);
                    if (attrib)
                        i->flags |= FLAG_ATTRIB;
                    if (is_abs)
                        i->flags |= FLAG_PATH_SET_ABSOLUTE;

                    if (coremake_dir)
                        set_path_type(i,FLAG_PATH_COREMAKE);
                    else if (generated_dir)
                        set_path_type(i,FLAG_PATH_GENERATED);
                    else if (filename || need_path)
                        set_path_type(i,FLAG_PATH_SOURCE);
                    else
                        set_path_type(i,FLAG_PATH_NOT_PATH);

					if (need_path)
					{
						char path[MAX_PATH];
						item *v = item_get(i,"PATH",0);
                        item *j;

                        if (exists)
                        {
                            item* existing = getvalue(v);
                            printf("project already defined at %s!\n%s:%d\n%s\r\n",existing?existing->value:"?",file->filename,file->r.no,file->line);
	                        exit(1);
                        }

                        path[0]=0;
                        strins(path,file->filename,getfilename(file->filename));
                        strip_path_abs(path,file->r.filename_kind);
                        if (generated_dir)
                            strins(path,proj_root,NULL);
                        else if (coremake_dir)
                            strins(path,coremake_root,NULL);
                        else
                            strins(path,src_root,NULL);

						j = item_get(v,path,1);
                        if (generated_dir)
                            set_path_type(j,FLAG_PATH_GENERATED);
                        else if (coremake_dir)
                            set_path_type(j,FLAG_PATH_COREMAKE);
                        else
                            set_path_type(j,FLAG_PATH_SOURCE);

                        // pre-define some items
						item_get(i,"OUTPUT",0);
						item_get(i,"EXPINCLUDE",0);
						item_get(i,"SUBINCLUDE",0);
						item_get(i,"SYSINCLUDE",0);
						item_get(i,"LIBINCLUDE",0);
						item_get(i,"LIBINCLUDE_DEBUG",0);
						item_get(i,"LIBINCLUDE_RELEASE",0);
						item_get(i,"INCLUDE",0);
						item_get(i,"INCLUDE_DEBUG",0);
						item_get(i,"INCLUDE_RELEASE",0);
						item_get(i,"EXPDEFINE",0);
						item_get(i,"DEFINE",0);
						item_get(i,"LIBS",0);
						item_get(i,"LIBS_DEBUG",0);
						item_get(i,"LIBS_RELEASE",0);
						item_get(i,"SYSLIBS",0);
					}

                    if (!deepercond)
                    {
                        if (exists)
                            i->cond = itemcond_or(i->cond,cond);
                        else
                            i->cond = itemcond_dup(cond);
                    }

                    if (uselib)
                    {
                        int exists;
                        item *incs;
                        item* i;
                        char path[MAX_PATH];
                        path[0]=0;
                        strins(path,file->filename,getfilename(file->filename));
                        incs = item_get(p,"libinclude",0);
                        exists = item_find(incs,path)!=NULL;
                        i = item_get(incs,path,0);
                        i->flags = file->r.filename_kind;
                        if (exists)
                            i->cond = itemcond_or(i->cond,cond);
                        else
                            i->cond = itemcond_dup(cond);
                    }

					if (reader_istoken(file,":"))
					{
                        int pri;
                        reader_token(file);
                        if (sscanf(file->token,"%d",&pri)!=1)
                            syntax(file);

                        item_get(item_get(i,"priority",0),file->token,1);
                    }

					if (reader_istoken(file,"{"))
					{
						if (config)
							syntax(file);
                        load_item(i,file,1,deepercond?cond:NULL);
					}
				}
				while (reader_istoken(file,","));
			}

			itemcond_delete(cond);
		}
	}
	return result;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe00, %rsp            # imm = 0xE00
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0x45e0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5de3
jmp 0x74fe
movq -0x10(%rbp), %rdi
leaq 0x104cb(%rip), %rsi     # 0x162b9
callq 0x4630
cmpl $0x0, %eax
je 0x6048
movq -0x10(%rbp), %rdi
leaq 0x104bb(%rip), %rsi     # 0x162c2
callq 0x4630
cmpl $0x0, %eax
je 0x6015
movb $0x0, -0x440(%rbp)
leaq -0x440(%rbp), %rax
movq %rax, -0xda8(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0xda0(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x4940
movq -0xda8(%rbp), %rdi
movq -0xda0(%rbp), %rsi
movq %rax, %rdx
callq 0x3f50
leaq -0x440(%rbp), %rdi
callq 0x4cf0
movsbl -0x440(%rbp), %eax
cmpl $0x0, %eax
je 0x5e84
leaq -0x440(%rbp), %rax
movq %rax, -0xdb0(%rbp)
jmp 0x5e94
leaq 0x11436(%rip), %rax     # 0x172c1
movq %rax, -0xdb0(%rbp)
jmp 0x5e94
movq -0xdb0(%rbp), %rdi
callq 0x20e0
movq %rax, -0x448(%rbp)
cmpq $0x0, -0x448(%rbp)
je 0x6013
leaq -0x440(%rbp), %rdi
callq 0x4c90
movq -0x448(%rbp), %rdi
callq 0x2230
movq %rax, -0x450(%rbp)
cmpq $0x0, %rax
je 0x6007
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq -0x440(%rbp), %rdx
movq -0x450(%rbp), %rcx
addq $0x13, %rcx
leaq 0x103cc(%rip), %rsi     # 0x162cb
movb $0x0, %al
callq 0x2300
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq -0x4e0(%rbp), %rsi
callq 0x2210
movl -0x4c8(%rbp), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x6002
movq -0x450(%rbp), %rax
movsbl 0x13(%rax), %eax
cmpl $0x2e, %eax
je 0x6002
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq -0x440(%rbp), %rdx
movq -0x450(%rbp), %rcx
addq $0x13, %rcx
movq -0x450(%rbp), %r8
addq $0x13, %r8
leaq 0x10362(%rip), %rsi     # 0x162d0
movb $0x0, %al
callq 0x2300
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x20(%rbp), %rcx
movl $0x1, %edx
callq 0x7510
cmpl $0x0, %eax
jne 0x6000
movq -0x450(%rbp), %rdi
addq $0x13, %rdi
movl $0x2d, %esi
callq 0x2130
cmpq $0x0, %rax
je 0x6000
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
movl $0x2d, %esi
callq 0x2130
movq %rax, -0x4e8(%rbp)
movq -0x4e8(%rbp), %rax
movb $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x102e4(%rip), %rsi     # 0x162c5
callq 0x22f0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x20(%rbp), %rcx
movl $0x1, %edx
callq 0x7510
jmp 0x6002
jmp 0x5ec1
movq -0x448(%rbp), %rdi
callq 0x2180
jmp 0x6043
movq -0x10(%rbp), %rdi
callq 0x4870
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x5840
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
movq -0x20(%rbp), %rcx
movl $0x1, %edx
callq 0x7510
jmp 0x74f9
movq -0x10(%rbp), %rdi
leaq 0x10297(%rip), %rsi     # 0x162ea
callq 0x4630
cmpl $0x0, %eax
je 0x61ed
movq $0x0, -0x4f0(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movl $0x1, %edx
callq 0x5cf0
movq %rax, -0x500(%rbp)
movq -0x500(%rbp), %rdi
callq 0x3640
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x3830
movq %rax, %rdi
movq -0x4f0(%rbp), %rsi
callq 0x3830
movq %rax, -0x508(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x508(%rbp), %rcx
movl $0x2, %edx
callq 0x5da0
movl %eax, -0x4f4(%rbp)
movq -0x508(%rbp), %rdi
callq 0x3100
cmpl $0x1, -0x4f4(%rbp)
jne 0x6163
movl $0x3, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x31f0
movq %rax, -0x510(%rbp)
movq -0x500(%rbp), %rdi
callq 0x3640
movq %rax, %rcx
movq -0x510(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x510(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x3830
movq %rax, %rdi
movq -0x4f0(%rbp), %rsi
callq 0x3830
movq %rax, -0x510(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x510(%rbp), %rcx
movl $0x3, %edx
callq 0x5da0
movq -0x510(%rbp), %rdi
callq 0x3100
jmp 0x61c3
cmpl $0x2, -0x4f4(%rbp)
jne 0x61c1
movl $0x3, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x31f0
movq %rax, -0x518(%rbp)
movq -0x500(%rbp), %rdi
callq 0x3640
movq %rax, %rcx
movq -0x518(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x4f0(%rbp), %rdi
movq -0x518(%rbp), %rsi
callq 0x3830
movq %rax, -0x4f0(%rbp)
movq -0x518(%rbp), %rdi
callq 0x3100
jmp 0x61c3
movq -0x500(%rbp), %rdi
callq 0x3100
cmpl $0x2, -0x4f4(%rbp)
je 0x606c
movq -0x4f0(%rbp), %rdi
callq 0x3100
jmp 0x74f7
movq -0x10(%rbp), %rdi
leaq 0x100e5(%rip), %rsi     # 0x162dd
callq 0x4630
cmpl $0x0, %eax
je 0x621d
cmpl $0x2, -0x14(%rbp)
je 0x6211
movq -0x10(%rbp), %rdi
callq 0x24e0
movl $0x1, -0x24(%rbp)
jmp 0x74fe
movq -0x10(%rbp), %rdi
leaq 0x110a0(%rip), %rsi     # 0x172c8
callq 0x4630
cmpl $0x0, %eax
je 0x6237
jmp 0x74f3
movq -0x10(%rbp), %rdi
leaq 0x100a0(%rip), %rsi     # 0x162e2
callq 0x4630
cmpl $0x0, %eax
je 0x6267
cmpl $0x2, -0x14(%rbp)
je 0x625b
movq -0x10(%rbp), %rdi
callq 0x24e0
movl $0x2, -0x24(%rbp)
jmp 0x74fe
movq -0x10(%rbp), %rdi
leaq 0x10075(%rip), %rsi     # 0x162e7
callq 0x4630
cmpl $0x0, %eax
je 0x6296
cmpl $0x2, -0x14(%rbp)
je 0x6291
cmpl $0x3, -0x14(%rbp)
je 0x6291
movq -0x10(%rbp), %rdi
callq 0x24e0
jmp 0x74fe
movq -0x10(%rbp), %rdi
leaq 0x10dc8(%rip), %rsi     # 0x17069
callq 0x4630
cmpl $0x0, %eax
je 0x62bf
cmpl $0x1, -0x14(%rbp)
je 0x62ba
movq -0x10(%rbp), %rdi
callq 0x24e0
jmp 0x74fe
movl $0x0, -0x51c(%rbp)
movq -0x10(%rbp), %rdi
callq 0x48c0
movq -0x8(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, 0x10(%rcx)
movb %al, -0xdb1(%rbp)
jne 0x6305
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x103eb(%rip), %rsi     # 0x166df
callq 0x2050
cmpl $0x0, %eax
sete %al
movb %al, -0xdb1(%rbp)
movb -0xdb1(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x52c(%rbp)
movq -0x8(%rbp), %rcx
xorl %eax, %eax
cmpq $0x0, 0x10(%rcx)
movb %al, -0xdb2(%rbp)
jne 0x64fa
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x10f4a(%rip), %rsi     # 0x17286
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x10ecf(%rip), %rsi     # 0x17232
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfda4(%rip), %rsi      # 0x1612e
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x10f02(%rip), %rsi     # 0x172b3
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x10eb9(%rip), %rsi     # 0x17291
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd56(%rip), %rsi      # 0x16155
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd0e(%rip), %rsi      # 0x16134
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfcfd(%rip), %rsi      # 0x1614a
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfccb(%rip), %rsi      # 0x1613f
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfcc9(%rip), %rsi      # 0x16160
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfcb2(%rip), %rsi      # 0x1616c
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb3(%rbp)
je 0x64ee
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfe10(%rip), %rsi      # 0x162ed
callq 0x2050
cmpl $0x0, %eax
sete %al
movb %al, -0xdb3(%rbp)
movb -0xdb3(%rbp), %al
movb %al, -0xdb2(%rbp)
movb -0xdb2(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x520(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfddd(%rip), %rsi      # 0x162f7
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb4(%rbp)
je 0x654e
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfdc1(%rip), %rsi      # 0x162fe
callq 0x2050
cmpl $0x0, %eax
sete %al
movb %al, -0xdb4(%rbp)
movb -0xdb4(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x528(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd99(%rip), %rsi      # 0x16307
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd7e(%rip), %rsi      # 0x16313
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd66(%rip), %rsi      # 0x16322
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd4e(%rip), %rsi      # 0x16331
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd36(%rip), %rsi      # 0x16340
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfd1a(%rip), %rsi      # 0x1634b
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfcfe(%rip), %rsi      # 0x16356
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfc3b(%rip), %rsi      # 0x162ba
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfcd4(%rip), %rsi      # 0x1637a
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfcbe(%rip), %rsi      # 0x1638b
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfc6d(%rip), %rsi      # 0x16361
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfc51(%rip), %rsi      # 0x1636c
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfc35(%rip), %rsi      # 0x16377
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfc1f(%rip), %rsi      # 0x16388
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0x10c78(%rip), %rsi     # 0x17408
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfc4b(%rip), %rsi      # 0x16402
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfbbd(%rip), %rsi      # 0x1639b
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfb9d(%rip), %rsi      # 0x163a2
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfb81(%rip), %rsi      # 0x163ad
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfb66(%rip), %rsi      # 0x163b9
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfb4c(%rip), %rsi      # 0x163c6
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfb31(%rip), %rsi      # 0x163d2
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfb16(%rip), %rsi      # 0x163de
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfaf7(%rip), %rsi      # 0x163e6
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfade(%rip), %rsi      # 0x163f4
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfabb(%rip), %rsi      # 0x163f8
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfa9a(%rip), %rsi      # 0x163fe
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfa7c(%rip), %rsi      # 0x16407
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfa61(%rip), %rsi      # 0x16413
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfdda(%rip), %rsi      # 0x167b3
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfa1e(%rip), %rsi      # 0x1641e
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xfa01(%rip), %rsi      # 0x16428
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf9e2(%rip), %rsi      # 0x16430
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf9c4(%rip), %rsi      # 0x16439
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf9a2(%rip), %rsi      # 0x1643e
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf988(%rip), %rsi      # 0x1644b
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf971(%rip), %rsi      # 0x16457
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf956(%rip), %rsi      # 0x1645f
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb5(%rbp)
je 0x6b3d
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf948(%rip), %rsi      # 0x16474
callq 0x2050
cmpl $0x0, %eax
sete %al
movb %al, -0xdb5(%rbp)
movb -0xdb5(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x524(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf7aa(%rip), %rsi      # 0x16307
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb6(%rbp)
je 0x6b91
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf793(%rip), %rsi      # 0x16313
callq 0x2050
cmpl $0x0, %eax
sete %al
movb %al, -0xdb6(%rbp)
movb -0xdb6(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x534(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf780(%rip), %rsi      # 0x16331
callq 0x2050
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x538(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf78b(%rip), %rsi      # 0x16361
callq 0x2050
cmpl $0x0, %eax
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x53c(%rbp)
movb $0x1, %al
cmpl $0x0, -0x524(%rbp)
movb %al, -0xdb7(%rbp)
jne 0x6c63
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf875(%rip), %rsi      # 0x16481
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb7(%rbp)
je 0x6c63
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf85f(%rip), %rsi      # 0x1648e
callq 0x2050
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0xdb7(%rbp)
je 0x6c63
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf840(%rip), %rsi      # 0x16492
callq 0x2050
cmpl $0x0, %eax
sete %al
movb %al, -0xdb7(%rbp)
movb -0xdb7(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x530(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf47f(%rip), %rsi      # 0x16102
callq 0x2050
cmpl $0x0, %eax
jne 0x6ca6
movl $0x1, -0x51c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2960
movq %rax, -0x38(%rbp)
jmp 0x6cbd
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
xorl %edx, %edx
callq 0x5cf0
movq %rax, -0x548(%rbp)
movq -0x548(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x3830
movq %rax, -0x548(%rbp)
cmpq $0x0, -0x548(%rbp)
je 0x6d46
cmpl $0x0, -0x51c(%rbp)
je 0x6d46
movq -0x8(%rbp), %rax
movq %rax, -0x550(%rbp)
cmpq $0x0, -0x550(%rbp)
je 0x6d44
movq -0x548(%rbp), %rdi
movq -0x550(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x3830
movq %rax, -0x548(%rbp)
movq -0x550(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x550(%rbp)
jmp 0x6d08
jmp 0x6d46
movq -0x10(%rbp), %rdi
leaq 0x10318(%rip), %rsi     # 0x17069
callq 0x4630
cmpl $0x0, %eax
je 0x6d84
cmpl $0x1, -0x14(%rbp)
je 0x6d6a
movq -0x10(%rbp), %rdi
callq 0x24e0
movq -0x38(%rbp), %rdi
leaq 0xf723(%rip), %rsi      # 0x16498
movl $0x1, %edx
callq 0x28d0
jmp 0x74fe
movq -0x10(%rbp), %rdi
leaq 0xf70b(%rip), %rsi      # 0x1649a
callq 0x4630
cmpl $0x0, %eax
jne 0x6dae
movq -0x10(%rbp), %rdi
leaq 0x10524(%rip), %rsi     # 0x172c8
callq 0x4630
cmpl $0x0, %eax
je 0x6dc8
movq -0x38(%rbp), %rdi
leaq 0xf6df(%rip), %rsi      # 0x16498
movl $0x1, %edx
callq 0x28d0
jmp 0x74e1
movq -0x10(%rbp), %rdi
leaq 0xf6c9(%rip), %rsi      # 0x1649c
callq 0x4630
cmpl $0x0, %eax
je 0x6e0d
cmpl $0x0, -0x51c(%rbp)
je 0x6def
movq -0x10(%rbp), %rdi
callq 0x24e0
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x548(%rbp), %rcx
movl $0x1, %edx
callq 0x5da0
jmp 0x74df
jmp 0x6e0f
movl $0x0, -0x558(%rbp)
movq -0x10(%rbp), %rdi
callq 0x4870
cmpl $0x0, -0x524(%rbp)
je 0x6ec9
cmpl $0x0, -0x534(%rbp)
je 0x6e45
movl $0x2, %eax
movl %eax, -0xdbc(%rbp)
jmp 0x6e83
cmpl $0x0, -0x538(%rbp)
je 0x6e5b
movl $0x3, %eax
movl %eax, -0xdc0(%rbp)
jmp 0x6e77
movl -0x53c(%rbp), %edx
movl $0x1, %eax
movl $0x4, %ecx
cmpl $0x0, %edx
cmovnel %ecx, %eax
movl %eax, -0xdc0(%rbp)
movl -0xdc0(%rbp), %eax
movl %eax, -0xdbc(%rbp)
movl -0xdbc(%rbp), %eax
movl %eax, -0x55c(%rbp)
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x50d0
cmpl $0x0, %eax
je 0x6eba
movl $0x1, -0x558(%rbp)
movl -0x55c(%rbp), %eax
orl $0x10, %eax
movl %eax, -0x55c(%rbp)
movq -0x10(%rbp), %rdi
movl -0x55c(%rbp), %esi
callq 0x5840
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
callq 0x27d0
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x554(%rbp)
movq -0x38(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x30(%rbp)
cmpl $0x0, -0x530(%rbp)
je 0x6f1c
movq -0x30(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x100, %ecx            # imm = 0x100
movl %ecx, 0x30(%rax)
cmpl $0x0, -0x558(%rbp)
je 0x6f32
movq -0x30(%rbp), %rax
movl 0x30(%rax), %ecx
orl $0x10, %ecx
movl %ecx, 0x30(%rax)
cmpl $0x0, -0x538(%rbp)
je 0x6f4b
movq -0x30(%rbp), %rdi
movl $0x3, %esi
callq 0x2570
jmp 0x6f95
cmpl $0x0, -0x534(%rbp)
je 0x6f64
movq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x2570
jmp 0x6f93
cmpl $0x0, -0x524(%rbp)
jne 0x6f76
cmpl $0x0, -0x520(%rbp)
je 0x6f86
movq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0x2570
jmp 0x6f91
movq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x2570
jmp 0x6f93
jmp 0x6f95
cmpl $0x0, -0x520(%rbp)
je 0x727b
movq -0x30(%rbp), %rdi
leaq 0xf289(%rip), %rsi      # 0x16236
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x968(%rbp)
cmpl $0x0, -0x554(%rbp)
je 0x703a
movq -0x968(%rbp), %rdi
callq 0x2990
movq %rax, -0x978(%rbp)
cmpq $0x0, -0x978(%rbp)
je 0x6ff4
movq -0x978(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xdc8(%rbp)
jmp 0x7004
leaq 0xf4cd(%rip), %rax      # 0x164c8
movq %rax, -0xdc8(%rbp)
jmp 0x7004
movq -0xdc8(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdx
movq -0x10(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %r8
leaq 0xf475(%rip), %rdi      # 0x1649e
movb $0x0, %al
callq 0x2120
movl $0x1, %edi
callq 0x2310
movb $0x0, -0x960(%rbp)
leaq -0x960(%rbp), %rax
movq %rax, -0xdd8(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0xdd0(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x4940
movq -0xdd8(%rbp), %rdi
movq -0xdd0(%rbp), %rsi
movq %rax, %rdx
callq 0x3f50
leaq -0x960(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x14(%rax), %esi
callq 0x5660
cmpl $0x0, -0x534(%rbp)
je 0x70b6
leaq -0x960(%rbp), %rdi
leaq 0x13945(%rip), %rsi     # 0x1a9f0
xorl %eax, %eax
movl %eax, %edx
callq 0x3f50
jmp 0x70f1
cmpl $0x0, -0x538(%rbp)
je 0x70d8
leaq -0x960(%rbp), %rdi
leaq 0x13d23(%rip), %rsi     # 0x1adf0
xorl %eax, %eax
movl %eax, %edx
callq 0x3f50
jmp 0x70ef
leaq -0x960(%rbp), %rdi
leaq 0x1350a(%rip), %rsi     # 0x1a5f0
xorl %eax, %eax
movl %eax, %edx
callq 0x3f50
jmp 0x70f1
movq -0x968(%rbp), %rdi
leaq -0x960(%rbp), %rsi
movl $0x1, %edx
callq 0x28d0
movq %rax, -0x970(%rbp)
cmpl $0x0, -0x534(%rbp)
je 0x712c
movq -0x970(%rbp), %rdi
movl $0x2, %esi
callq 0x2570
jmp 0x715b
cmpl $0x0, -0x538(%rbp)
je 0x7148
movq -0x970(%rbp), %rdi
movl $0x3, %esi
callq 0x2570
jmp 0x7159
movq -0x970(%rbp), %rdi
movl $0x1, %esi
callq 0x2570
jmp 0x715b
movq -0x30(%rbp), %rdi
leaq 0xf364(%rip), %rsi      # 0x164ca
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf359(%rip), %rsi      # 0x164d1
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf352(%rip), %rsi      # 0x164dc
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf34b(%rip), %rsi      # 0x164e7
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf344(%rip), %rsi      # 0x164f2
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf33d(%rip), %rsi      # 0x164fd
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf33c(%rip), %rsi      # 0x1650e
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf311(%rip), %rsi      # 0x164f5
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf30a(%rip), %rsi      # 0x16500
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf309(%rip), %rsi      # 0x16511
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf307(%rip), %rsi      # 0x16521
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf2f8(%rip), %rsi      # 0x16524
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf308(%rip), %rsi      # 0x16546
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf2db(%rip), %rsi      # 0x1652b
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf2d4(%rip), %rsi      # 0x16536
xorl %edx, %edx
callq 0x28d0
movq -0x30(%rbp), %rdi
leaq 0xf2cf(%rip), %rsi      # 0x16543
xorl %edx, %edx
callq 0x28d0
cmpl $0x0, -0x52c(%rbp)
jne 0x72c7
cmpl $0x0, -0x554(%rbp)
je 0x72ae
movq -0x30(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x548(%rbp), %rsi
callq 0x38b0
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x72c5
movq -0x548(%rbp), %rdi
callq 0x3640
movq %rax, %rcx
movq -0x30(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x72c7
cmpl $0x0, -0x528(%rbp)
je 0x73d2
movb $0x0, -0xd90(%rbp)
leaq -0xd90(%rbp), %rax
movq %rax, -0xde8(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0xde0(%rbp)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x4940
movq -0xde8(%rbp), %rdi
movq -0xde0(%rbp), %rsi
movq %rax, %rdx
callq 0x3f50
movq -0x8(%rbp), %rdi
leaq 0xf046(%rip), %rsi      # 0x1636c
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x988(%rbp)
movq -0x988(%rbp), %rdi
leaq -0xd90(%rbp), %rsi
callq 0x27d0
cmpq $0x0, %rax
setne %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x97c(%rbp)
movq -0x988(%rbp), %rdi
leaq -0xd90(%rbp), %rsi
xorl %edx, %edx
callq 0x28d0
movq %rax, -0x990(%rbp)
movq -0x10(%rbp), %rax
movl 0x14(%rax), %ecx
movq -0x990(%rbp), %rax
movl %ecx, 0x30(%rax)
cmpl $0x0, -0x97c(%rbp)
je 0x73b6
movq -0x990(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x548(%rbp), %rsi
callq 0x38b0
movq %rax, %rcx
movq -0x990(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x73d0
movq -0x548(%rbp), %rdi
callq 0x3640
movq %rax, %rcx
movq -0x990(%rbp), %rax
movq %rcx, 0x8(%rax)
jmp 0x73d2
movq -0x10(%rbp), %rdi
leaq 0xf16e(%rip), %rsi      # 0x1654b
callq 0x4630
cmpl $0x0, %eax
je 0x7442
movq -0x10(%rbp), %rdi
callq 0x4870
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
leaq 0xf47a(%rip), %rsi      # 0x16879
leaq -0xd94(%rbp), %rdx
movb $0x0, %al
callq 0x2270
cmpl $0x1, %eax
je 0x741b
movq -0x10(%rbp), %rdi
callq 0x24e0
movq -0x30(%rbp), %rdi
leaq 0xf127(%rip), %rsi      # 0x1654d
xorl %edx, %edx
callq 0x28d0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
movl $0x1, %edx
callq 0x28d0
movq -0x10(%rbp), %rdi
leaq 0xf04f(%rip), %rsi      # 0x1649c
callq 0x4630
cmpl $0x0, %eax
je 0x74c2
cmpl $0x0, -0x51c(%rbp)
je 0x7469
movq -0x10(%rbp), %rdi
callq 0x24e0
movq -0x30(%rbp), %rax
movq %rax, -0xdf8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xdf0(%rbp)
cmpl $0x0, -0x52c(%rbp)
je 0x7498
movq -0x548(%rbp), %rax
movq %rax, -0xe00(%rbp)
jmp 0x74a3
xorl %eax, %eax
movq %rax, -0xe00(%rbp)
jmp 0x74a3
movq -0xdf0(%rbp), %rsi
movq -0xdf8(%rbp), %rdi
movq -0xe00(%rbp), %rcx
movl $0x1, %edx
callq 0x5da0
jmp 0x74c4
movq -0x10(%rbp), %rdi
leaq 0xefcb(%rip), %rsi      # 0x1649a
callq 0x4630
cmpl $0x0, %eax
jne 0x6e0f
jmp 0x74df
jmp 0x74e1
movq -0x548(%rbp), %rdi
callq 0x3100
jmp 0x74ef
jmp 0x74f1
jmp 0x74f3
jmp 0x74f5
jmp 0x74f7
jmp 0x74f9
jmp 0x5dc9
movl -0x24(%rbp), %eax
addq $0xe00, %rsp            # imm = 0xE00
popq %rbp
retq
nopw (%rax,%rax)