// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/parse/use.c
// Function: loaduse
int
loaduse(char *path, FILE *f, Stab *st, Vis vis)
{
	size_t startdecl, starttype, startimpl;
	Node *dcl, *impl, *fn;
	Stab *s, *ns;
	intptr_t tid;
	size_t i, j;
	char *pkg;
	Type *ty;
	Trait *tr;
	char *lib;
	int c, v;

	startdecl = ndecls;
	starttype = ntypes;
	startimpl = nimpltab;
	pushstab(file.globls);
	if (!trdeduptab)
		trdeduptab = mkht(namehash, nameeq);
	if (fgetc(f) != 'U')
		return 0;
	v = rdint(f);
	if (v != Abiversion) {
		fprintf(stderr, "%s: abi version %d, expected %d\n", path, v, Abiversion);
		return 0;
	}
	pkg = rdstr(f);
	/* if the package names match up, or the usefile has no declared
	* package, then we simply add to the current stab. Otherwise,
	* we add a new stab under the current one */
	if (st->name) {
		if (pkg && !strcmp(pkg, st->name)) {
			s = st;
		} else {
			s = findstab(st, pkg);
		}
	} else {
		if (pkg) {
			s = findstab(st, pkg);
		} else {
			s = st;
		}
	}
	if (!streq(st->name, pkg))
		vis = Visintern;
	if (!s) {
		printf("could not find matching package for merge: %s in %s\n", st->name, path);
		exit(1);
	}
	tidmap = mkht(ptrhash, ptreq);
	trmap = mkht(ptrhash, ptreq);
	if (!autocallmap)
		autocallmap = mkht(namehash, nameeq);
	/* builtin traits */
	for (i = 0; i < Ntraits; i++)
		htput(trmap, itop(i), traittab[i]);
	while ((c = fgetc(f)) != EOF) {
		switch (c) {
		case 'L':
			lib = rdstr(f);
			for (i = 0; i < file.nlibdeps; i++)
				if (!strcmp(file.libdeps[i], lib))
					/* break out of both loop and switch */
					goto foundlib;
			lappend(&file.libdeps, &file.nlibdeps, lib);
foundlib:
			break;
		case 'X':
			lib = rdstr(f);
			for (i = 0; i < file.nextlibs; i++)
				if (!strcmp(file.extlibs[i], lib))
					/* break out of both loop and switch */
					goto foundextlib;
			lappend(&file.extlibs, &file.nextlibs, lib);
foundextlib:
			break;
		case 'F': lappend(&file.files, &file.nfiles, rdstr(f)); break;
		case 'G':
		case 'D':
			dcl = rdsym(f, NULL);
			dcl->decl.vis = vis;
			dcl->decl.isglobl = 1;
			putdcl(s, dcl);
			break;
		case 'S':
		case 'E':
			fn = unpickle(f);
			if (hthas(autocallmap, fn))
				break;
			htput(autocallmap, fn, fn);
			if (c == 'S')
				lappend(&file.init, &file.ninit, fn);
			else
				lappend(&file.fini, &file.nfini, fn);
			break;
		case 'R':
			tr = traitunpickle(f);
			tr->vis = vis;
			puttrait(s, tr->name, tr);
			for (i = 0; i < tr->nproto; i++) {
				putdcl(s, tr->proto[i]);
				tr->proto[i]->decl.ishidden = tr->ishidden;
				if (tr->proto[i]->decl.env)
					tr->proto[i]->decl.env->super = tr->env;
			}
			break;
		case 'T':
			tid = rdint(f);
			ty = tyunpickle(f);
			if (!ty->ishidden)
				ty->vis = vis;
			htput(tidmap, itop(tid), ty);
			/* fix up types */
			if (ty->type == Tyname || ty->type == Tygeneric) {
				if (!streq(s->name, ty->name->name.ns))
					ty->ishidden = 1;
				if (!gettype(s, ty->name) && !ty->ishidden)
					puttype(s, ty->name, ty);
			} else if (ty->type == Tyunion) {
				for (i = 0; i < ty->nmemb; i++) {
					ns = findstab(s, ty->udecls[i]->name->name.ns);
					if (getucon(ns, ty->udecls[i]->name))
						continue;
					if (ty->udecls[i]->synth)
						continue;
					putucon(ns, ty->udecls[i]);
				}
			}
			break;
		case 'I':
			impl = unpickle(f);
			impl->impl.isextern = 1;
			impl->impl.vis = vis;
			/*
			 * Unfortunately, impls can insert their symbols into whatever
			 * namespace the trait comes from. This complicates things a bit.
			 */
			for (i = 0; i < impl->impl.ndecls; i++) {
				dcl = impl->impl.decls[i];
				dcl->decl.isglobl = 1;
				ns = file.globls;
				if (dcl->decl.name->name.ns)
					ns = findstab(s, dcl->decl.name->name.ns);
				putdcl(ns, dcl);
			}
			break;
		case EOF:
			break;
		}
	}
	fixtypemappings(s);
	fixtraitmappings(s);
	htfree(tidmap);
	for (i = starttype; i < ntypes; i++) {
		ty = types[i];
		if (ty->type == Tygeneric || ty->type == Tyname) {
			if (hasparams(ty) && !ty->env) {
				ty->env = mkenv();
				for (j = 0; j < ty->ngparam; j++)
					bindtype(ty->env, ty->gparam[j]);
				for (j = 0; j < ty->narg; j++)
					bindtype(ty->env, ty->arg[j]);
			}
			if (ty->sub[0]->env)
				ty->sub[0]->env->super = ty->env;
			else
				ty->sub[0]->env = ty->env;
		}
	}
	for (i = startdecl; i < ndecls; i++) {
		dcl = decls[i];
		if (hasparams(dcl->decl.type)) {
			dcl->decl.env = mkenv();
			bindtype(dcl->decl.env, dcl->decl.type);
		}
	}
	for (i = startimpl; i < nimpltab; i++) {
		impl = impltab[i];
		if (!impl->impl.env) {
			impl->impl.env = mkenv();
			bindtype(impl->impl.env, impl->impl.type);
		}
	}
	fiximplmappings(s);
	popstab();
	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
leaq 0x4032f(%rip), %rax     # 0x7d480
movq (%rax), %rax
movq %rax, -0x30(%rbp)
leaq 0x40ba1(%rip), %rax     # 0x7dd00
movq (%rax), %rax
movq %rax, -0x38(%rbp)
leaq 0x40bbb(%rip), %rax     # 0x7dd28
movq (%rax), %rax
movq %rax, -0x40(%rbp)
leaq 0x3fc1d(%rip), %rax     # 0x7cd98
movq 0x90(%rax), %rdi
callq 0x32db0
cmpq $0x0, 0x40ba9(%rip)     # 0x7dd38
jne 0x3d1ab
leaq -0xcbe8(%rip), %rdi     # 0x305b0
leaq -0xcb2f(%rip), %rsi     # 0x30670
callq 0x48fe0
movq %rax, 0x40b8d(%rip)     # 0x7dd38
movq -0x18(%rbp), %rdi
callq 0x61b0
cmpl $0x55, %eax
je 0x3d1c5
movl $0x0, -0x4(%rbp)
jmp 0x3dbd2
movq -0x18(%rbp), %rdi
callq 0x49ff0
movl %eax, -0xa8(%rbp)
cmpl $0x17, -0xa8(%rbp)
je 0x3d211
movq 0x21e0c(%rip), %rax     # 0x5eff0
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movl -0xa8(%rbp), %ecx
leaq 0x1725c(%rip), %rsi     # 0x54454
movl $0x17, %r8d
movb $0x0, %al
callq 0x6230
movl $0x0, -0x4(%rbp)
jmp 0x3dbd2
movq -0x18(%rbp), %rdi
callq 0x4a090
movq %rax, -0x88(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x3d26f
cmpq $0x0, -0x88(%rbp)
je 0x3d259
movq -0x88(%rbp), %rdi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x6220
cmpl $0x0, %eax
jne 0x3d259
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x3d26d
movq -0x20(%rbp), %rdi
movq -0x88(%rbp), %rsi
callq 0x3dbe0
movq %rax, -0x60(%rbp)
jmp 0x3d299
cmpq $0x0, -0x88(%rbp)
je 0x3d28f
movq -0x20(%rbp), %rdi
movq -0x88(%rbp), %rsi
callq 0x3dbe0
movq %rax, -0x60(%rbp)
jmp 0x3d297
movq -0x20(%rbp), %rax
movq %rax, -0x60(%rbp)
jmp 0x3d299
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x88(%rbp), %rsi
callq 0x499b0
cmpl $0x0, %eax
jne 0x3d2b9
movl $0x0, -0x24(%rbp)
cmpq $0x0, -0x60(%rbp)
jne 0x3d2e4
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x10(%rbp), %rdx
leaq 0x171a2(%rip), %rdi     # 0x54475
movb $0x0, %al
callq 0x6120
movl $0x1, %edi
callq 0x6310
leaq 0xc815(%rip), %rdi      # 0x49b00
leaq 0xc86e(%rip), %rsi      # 0x49b60
callq 0x48fe0
movq %rax, 0x40a42(%rip)     # 0x7dd40
leaq 0xc7fb(%rip), %rdi      # 0x49b00
leaq 0xc854(%rip), %rsi      # 0x49b60
callq 0x48fe0
movq %rax, 0x40a18(%rip)     # 0x7dd30
cmpq $0x0, 0x40a28(%rip)     # 0x7dd48
jne 0x3d33c
leaq -0xcd79(%rip), %rdi     # 0x305b0
leaq -0xccc0(%rip), %rsi     # 0x30670
callq 0x48fe0
movq %rax, 0x40a0c(%rip)     # 0x7dd48
movq $0x0, -0x78(%rbp)
cmpq $0x8, -0x78(%rbp)
jae 0x3d391
movq 0x409de(%rip), %rax     # 0x7dd30
movq %rax, -0xb0(%rbp)
movq -0x78(%rbp), %rdi
callq 0x3d120
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
leaq 0x4099d(%rip), %rax     # 0x7dd10
movq (%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
callq 0x49100
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d344
jmp 0x3d393
movq -0x18(%rbp), %rdi
callq 0x61b0
movl %eax, -0xa4(%rbp)
cmpl $-0x1, %eax
je 0x3d932
movl -0xa4(%rbp), %eax
incl %eax
movl %eax, %ecx
movq %rcx, -0xb8(%rbp)
subl $0x59, %eax
ja 0x3d92d
movq -0xb8(%rbp), %rax
leaq 0x16e99(%rip), %rcx     # 0x5426c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rdi
callq 0x4a090
movq %rax, -0xa0(%rbp)
movq $0x0, -0x78(%rbp)
movq -0x78(%rbp), %rax
leaq 0x3f999(%rip), %rcx     # 0x7cd98
cmpq 0x28(%rcx), %rax
jae 0x3d43b
leaq 0x3f98c(%rip), %rax     # 0x7cd98
movq 0x20(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0xa0(%rbp), %rsi
callq 0x6220
cmpl $0x0, %eax
jne 0x3d42b
jmp 0x3d459
jmp 0x3d42d
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d3f4
movq -0xa0(%rbp), %rdx
leaq 0x3f94f(%rip), %rsi     # 0x7cd98
movq %rsi, %rdi
addq $0x20, %rdi
addq $0x28, %rsi
callq 0x48290
jmp 0x3d92d
movq -0x18(%rbp), %rdi
callq 0x4a090
movq %rax, -0xa0(%rbp)
movq $0x0, -0x78(%rbp)
movq -0x78(%rbp), %rax
leaq 0x3f917(%rip), %rcx     # 0x7cd98
cmpq 0x38(%rcx), %rax
jae 0x3d4bd
leaq 0x3f90a(%rip), %rax     # 0x7cd98
movq 0x30(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movq -0xa0(%rbp), %rsi
callq 0x6220
cmpl $0x0, %eax
jne 0x3d4ad
jmp 0x3d4db
jmp 0x3d4af
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d476
movq -0xa0(%rbp), %rdx
leaq 0x3f8cd(%rip), %rsi     # 0x7cd98
movq %rsi, %rdi
addq $0x30, %rdi
addq $0x38, %rsi
callq 0x48290
jmp 0x3d92d
movq -0x18(%rbp), %rdi
callq 0x4a090
movq %rax, %rdx
leaq 0x3f8a5(%rip), %rsi     # 0x7cd98
movq %rsi, %rdi
addq $0x8, %rdi
callq 0x48290
jmp 0x3d92d
movq -0x18(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3cfb0
movq %rax, -0x48(%rbp)
movl -0x24(%rbp), %eax
movb %al, %cl
movq -0x48(%rbp), %rax
movb %cl, 0x70(%rax)
movq -0x48(%rbp), %rax
movb $0x1, 0x71(%rax)
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x33970
jmp 0x3d92d
movq -0x18(%rbp), %rdi
callq 0x3c110
movq %rax, -0x58(%rbp)
movq 0x407f9(%rip), %rdi     # 0x7dd48
movq -0x58(%rbp), %rsi
callq 0x496f0
cmpl $0x0, %eax
je 0x3d562
jmp 0x3d92d
movq 0x407df(%rip), %rdi     # 0x7dd48
movq -0x58(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x49100
cmpl $0x53, -0xa4(%rbp)
jne 0x3d59c
movq -0x58(%rbp), %rdx
leaq 0x3f80e(%rip), %rsi     # 0x7cd98
movq %rsi, %rdi
addq $0x50, %rdi
addq $0x58, %rsi
callq 0x48290
jmp 0x3d5b7
movq -0x58(%rbp), %rdx
leaq 0x3f7f1(%rip), %rsi     # 0x7cd98
movq %rsi, %rdi
addq $0x60, %rdi
addq $0x68, %rsi
callq 0x48290
jmp 0x3d92d
movq -0x18(%rbp), %rdi
callq 0x3bf50
movq %rax, -0x98(%rbp)
movl -0x24(%rbp), %ecx
movq -0x98(%rbp), %rax
movl %ecx, 0xc(%rax)
movq -0x60(%rbp), %rdi
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x98(%rbp), %rdx
callq 0x34380
movq $0x0, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq -0x98(%rbp), %rcx
cmpq 0x38(%rcx), %rax
jae 0x3d69f
movq -0x60(%rbp), %rdi
movq -0x98(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x33970
movq -0x98(%rbp), %rax
movb 0x49(%rax), %cl
movq -0x98(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x78(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movb %cl, 0x76(%rax)
movq -0x98(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpq $0x0, 0x38(%rax)
je 0x3d68c
movq -0x98(%rbp), %rax
movq 0x40(%rax), %rcx
movq -0x98(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x78(%rbp), %rdx
movq (%rax,%rdx,8), %rax
movq 0x38(%rax), %rax
movq %rcx, (%rax)
jmp 0x3d68e
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d5fc
jmp 0x3d92d
movq -0x18(%rbp), %rdi
callq 0x49ff0
movq %rax, -0x70(%rbp)
movq -0x18(%rbp), %rdi
callq 0x3c950
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpb $0x0, 0x92(%rax)
jne 0x3d6de
movl -0x24(%rbp), %ecx
movq -0x90(%rbp), %rax
movl %ecx, 0x10(%rax)
movq 0x4065b(%rip), %rax     # 0x7dd40
movq %rax, -0xc0(%rbp)
movq -0x70(%rbp), %rdi
callq 0x3d120
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
movq -0x90(%rbp), %rdx
callq 0x49100
movq -0x90(%rbp), %rax
cmpl $0x1c, (%rax)
je 0x3d727
movq -0x90(%rbp), %rax
cmpl $0x1d, (%rax)
jne 0x3d7a9
movq -0x60(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x18(%rax), %rsi
callq 0x499b0
cmpl $0x0, %eax
jne 0x3d759
movq -0x90(%rbp), %rax
movb $0x1, 0x92(%rax)
movq -0x60(%rbp), %rdi
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rsi
callq 0x33750
cmpq $0x0, %rax
jne 0x3d7a4
movq -0x90(%rbp), %rax
cmpb $0x0, 0x92(%rax)
jne 0x3d7a4
movq -0x60(%rbp), %rdi
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rsi
movq -0x90(%rbp), %rdx
callq 0x34140
jmp 0x3d87e
movq -0x90(%rbp), %rax
cmpl $0x18, (%rax)
jne 0x3d87c
movq $0x0, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq -0x90(%rbp), %rcx
cmpq 0x78(%rcx), %rax
jae 0x3d87a
movq -0x60(%rbp), %rdi
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rax
movq 0x18(%rax), %rsi
callq 0x3dbe0
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq 0x18(%rax), %rsi
callq 0x33810
cmpq $0x0, %rax
je 0x3d82c
jmp 0x3d869
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0x0, 0x10(%rax)
je 0x3d84a
jmp 0x3d869
movq -0x68(%rbp), %rdi
movq -0x90(%rbp), %rax
movq 0x88(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x342c0
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d7c1
jmp 0x3d87c
jmp 0x3d87e
jmp 0x3d92d
movq -0x18(%rbp), %rdi
callq 0x3c110
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movb $0x1, 0x5d(%rax)
movl -0x24(%rbp), %ecx
movq -0x50(%rbp), %rax
movl %ecx, 0x58(%rax)
movq $0x0, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq -0x50(%rbp), %rcx
cmpq 0x50(%rcx), %rax
jae 0x3d929
movq -0x50(%rbp), %rax
movq 0x48(%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movb $0x1, 0x71(%rax)
leaq 0x3f4bd(%rip), %rax     # 0x7cd98
movq 0x90(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x3d90e
movq -0x60(%rbp), %rdi
movq -0x48(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x18(%rax), %rsi
callq 0x3dbe0
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x33970
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d8aa
jmp 0x3d92d
jmp 0x3d92d
jmp 0x3d393
movq -0x60(%rbp), %rdi
callq 0x3dc70
movq -0x60(%rbp), %rdi
callq 0x3deb0
movq 0x403f5(%rip), %rdi     # 0x7dd40
callq 0x490a0
movq -0x38(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
leaq 0x4039d(%rip), %rcx     # 0x7dd00
cmpq (%rcx), %rax
jae 0x3dada
leaq 0x4037d(%rip), %rax     # 0x7dcf0
movq (%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpl $0x1d, (%rax)
je 0x3d9a1
movq -0x90(%rbp), %rax
cmpl $0x1c, (%rax)
jne 0x3dac7
movq -0x90(%rbp), %rdi
callq 0x37ce0
cmpl $0x0, %eax
je 0x3da71
movq -0x90(%rbp), %rax
cmpq $0x0, 0x60(%rax)
jne 0x3da71
callq 0x32ee0
movq %rax, %rcx
movq -0x90(%rbp), %rax
movq %rcx, 0x60(%rax)
movq $0x0, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq -0x90(%rbp), %rcx
cmpq 0x38(%rcx), %rax
jae 0x3da25
movq -0x90(%rbp), %rax
movq 0x60(%rax), %rdi
movq -0x90(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x80(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x348e0
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x3d9e3
movq $0x0, -0x80(%rbp)
movq -0x80(%rbp), %rax
movq -0x90(%rbp), %rcx
cmpq 0x48(%rcx), %rax
jae 0x3da6f
movq -0x90(%rbp), %rax
movq 0x60(%rax), %rdi
movq -0x90(%rbp), %rax
movq 0x40(%rax), %rax
movq -0x80(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x348e0
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x3da2d
jmp 0x3da71
movq -0x90(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rax
cmpq $0x0, 0x60(%rax)
je 0x3daa8
movq -0x90(%rbp), %rax
movq 0x60(%rax), %rcx
movq -0x90(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rax
movq 0x60(%rax), %rax
movq %rcx, (%rax)
jmp 0x3dac5
movq -0x90(%rbp), %rax
movq 0x60(%rax), %rcx
movq -0x90(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rax
movq %rcx, 0x60(%rax)
jmp 0x3dac7
jmp 0x3dac9
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3d958
movq -0x30(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
leaq 0x3f993(%rip), %rcx     # 0x7d480
cmpq (%rcx), %rax
jae 0x3db4f
leaq 0x3f98f(%rip), %rax     # 0x7d488
movq (%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x37ce0
cmpl $0x0, %eax
je 0x3db3f
callq 0x32ee0
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x48(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x348e0
jmp 0x3db41
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3dae2
movq -0x40(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
leaq 0x401c6(%rip), %rcx     # 0x7dd28
cmpq (%rcx), %rax
jae 0x3dbbd
leaq 0x401b2(%rip), %rax     # 0x7dd20
movq (%rax), %rax
movq -0x78(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
cmpq $0x0, 0x38(%rax)
jne 0x3dbad
callq 0x32ee0
movq %rax, %rcx
movq -0x50(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x50(%rbp), %rax
movq 0x38(%rax), %rdi
movq -0x50(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x348e0
jmp 0x3dbaf
movq -0x78(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x78(%rbp)
jmp 0x3db57
movq -0x60(%rbp), %rdi
callq 0x3e070
callq 0x32e20
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq
nop