// File: /workspace/github_c_makefile_star2_O0/oridb[P]mc/parse/type.c
// Function: tybfmt
static int
tybfmt(char *buf, size_t len, Bitset *visited, Type *t)
{
	size_t i;
	char *p;
	char *end;
	char *sep;

	if (t)
		t = tysearch(t);

	sep = "";
	p = buf;
	end = p + len;

	if (!t) {
		p += bprintf(p, end - p, "tynil");
		return len - (end - p);
	}

	if (bshas(visited, t->tid)) {
		p += bprintf(buf, len, "<...>");
		return len - (end - p);
	}
        bsput(visited, t->tid);
	switch (t->type) {
	case Tybad:	p += bprintf(p, end - p, "BAD");	break;
	case Tyvoid:	p += bprintf(p, end - p, "void");	break;
	case Tybool:	p += bprintf(p, end - p, "bool");	break;
	case Tychar:	p += bprintf(p, end - p, "char");	break;
	case Tyint8:	p += bprintf(p, end - p, "int8");	break;
	case Tyint16:	p += bprintf(p, end - p, "int16");	break;
	case Tyint:	p += bprintf(p, end - p, "int");	break;
	case Tyint32:	p += bprintf(p, end - p, "int32");	break;
	case Tyint64:	p += bprintf(p, end - p, "int64");	break;
	case Tybyte:	p += bprintf(p, end - p, "byte");	break;
	case Tyuint8:	p += bprintf(p, end - p, "uint8");	break;
	case Tyuint16:	p += bprintf(p, end - p, "uint16");	break;
	case Tyuint:	p += bprintf(p, end - p, "uint");	break;
	case Tyuint32:	p += bprintf(p, end - p, "uint32");	break;
	case Tyuint64:	p += bprintf(p, end - p, "uint64");	break;
	case Tyflt32:	p += bprintf(p, end - p, "flt32");	break;
	case Tyflt64:	p += bprintf(p, end - p, "flt64");	break;
	case Tyvalist:	p += bprintf(p, end - p, "...");	break;
	case Tyvar:     p += bprintf(p, end - p, "$%d", t->tid);        break;

	case Typtr:
		p += tybfmt(p, end - p, visited, t->sub[0]);
		p += bprintf(p, end - p, "#");
		break;
	case Tyslice:
		p += tybfmt(p, end - p, visited, t->sub[0]);
		p += bprintf(p, end - p, "[:]");
		break;
	case Tyarray:
		p += tybfmt(p, end - p, visited, t->sub[0]);
		if (t->asize) {
			i = t->asize->expr.args[0]->lit.intval;
			p += bprintf(p, end - p, "[%zd]", i);
		} else {
			p += bprintf(p, end - p, "[]");
		}
		break;
	case Tycode:
	case Tyfunc:
		p += bprintf(p, end - p, "(");
		for (i = 1; i < t->nsub; i++) {
			p += bprintf(p, end - p, "%s", sep);
			p += tybfmt(p, end - p, visited, t->sub[i]);
			sep = ", ";
		}
		p += bprintf(p, end - p, " -> ");
		p += tybfmt(p, end - p, visited, t->sub[0]);
		p += bprintf(p, end - p, ")");
		break;
	case Tytuple:
		p += bprintf(p, end - p, "(");
		for (i = 0; i < t->nsub; i++) {
			p += bprintf(p, end - p, "%s", sep);
			p += tybfmt(p, end - p, visited, t->sub[i]);
			sep = ",";
		}
		p += bprintf(p, end - p, ")");
		break;
	case Typaram:	p += bprintf(p, end - p, "@%s", t->pname);	break;
	case Tyunres:
		p += namefmt(p, end - p, t->name);
		if (t->narg)
			p += fmtlist(p, end - p, visited, t->arg, t->narg);
		break;
	case Tyname:
		if (t->name->name.ns)
			p += bprintf(p, end - p, "%s.", t->name->name.ns);
		p += bprintf(p, end - p, "%s", namestr(t->name));
		if (t->narg)
			p += fmtlist(p, end - p, visited, t->arg, t->narg);
		break;
	case Tygeneric:
		if (t->name->name.ns)
			p += bprintf(p, end - p, "%s.", t->name->name.ns);
		p += bprintf(p, end - p, "%s", namestr(t->name));
		if (t->ngparam)
			p += fmtlist(p, end - p, visited, t->gparam, t->ngparam);
		break;
	case Tystruct:	p += fmtstruct(p, end - p, visited, t);	break;
	case Tyunion:	p += fmtunion(p, end - p, visited, t);	break;
	case Ntypes:	die("Ntypes is not a type");	break;
	}

	/* we only show constraints on non-builtin typaram */
	if (t->type == Tyvar || t->type == Typaram)
		p += traitfmt(p, end - p, t);

        bsdel(visited, t->tid);
	return p - buf;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x37f0c
movq -0x28(%rbp), %rdi
callq 0x25450
movq %rax, -0x28(%rbp)
leaq 0x1d912(%rip), %rax     # 0x55825
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
addq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x37f71
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1c237(%rip), %rdx     # 0x5417f
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movq -0x38(%rbp), %rdx
subq %rdx, %rcx
subq %rcx, %rax
movl %eax, -0x4(%rbp)
jmp 0x389be
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
callq 0x37c60
cmpl $0x0, %eax
je 0x37fc0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
leaq 0x1c1ee(%rip), %rdx     # 0x54185
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movq -0x40(%rbp), %rcx
movq -0x38(%rbp), %rdx
subq %rdx, %rcx
subq %rcx, %rax
movl %eax, -0x4(%rbp)
jmp 0x389be
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
callq 0x48a50
movq -0x28(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x50(%rbp)
subq $0x1f, %rax
ja 0x38964
movq -0x50(%rbp), %rax
leaq 0x1bf3b(%rip), %rcx     # 0x53f2c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ad08(%rip), %rdx     # 0x52d18
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1add2(%rip), %rdx     # 0x52e0c
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ad92(%rip), %rdx     # 0x52df6
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ad83(%rip), %rdx     # 0x52e11
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ad64(%rip), %rdx     # 0x52e1c
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ad40(%rip), %rdx     # 0x52e22
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ab9c(%rip), %rdx     # 0x52ca8
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1acf8(%rip), %rdx     # 0x52e2e
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1acd5(%rip), %rdx     # 0x52e35
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ac8c(%rip), %rdx     # 0x52e16
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ac67(%rip), %rdx     # 0x52e1b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ac43(%rip), %rdx     # 0x52e21
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ac20(%rip), %rdx     # 0x52e28
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1abfb(%rip), %rdx     # 0x52e2d
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1abd8(%rip), %rdx     # 0x52e34
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1abb5(%rip), %rdx     # 0x52e3b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ab91(%rip), %rdx     # 0x52e41
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1beb1(%rip), %rdx     # 0x5418b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x12fa7(%rip), %rdx     # 0x4b2b2
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rcx
callq 0x37ee0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1a9c8(%rip), %rdx     # 0x52d30
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rcx
callq 0x37ee0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1bdca(%rip), %rdx     # 0x5418f
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rcx
callq 0x37ee0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x88(%rax)
je 0x3845f
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x50(%rax), %rax
movq (%rax), %rax
movq 0x30(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x30(%rbp), %rcx
leaq 0x1bd45(%rip), %rdx     # 0x54193
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38484
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1bd24(%rip), %rdx     # 0x54199
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x18e0b(%rip), %rdx     # 0x512aa
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq $0x1, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq 0x70(%rcx), %rax
jae 0x38541
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x48(%rbp), %rcx
leaq 0x1a5bd(%rip), %rdx     # 0x52a9b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
callq 0x37ee0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
leaq 0x19a04(%rip), %rax     # 0x51f30
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x384b6
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1bc45(%rip), %rdx     # 0x5419c
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq (%rax), %rcx
callq 0x37ee0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ae38(%rip), %rdx     # 0x533e7
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x18cd1(%rip), %rdx     # 0x512aa
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq -0x28(%rbp), %rcx
cmpq 0x70(%rcx), %rax
jae 0x3867b
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x48(%rbp), %rcx
leaq 0x1a483(%rip), %rdx     # 0x52a9b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x68(%rax), %rax
movq -0x30(%rbp), %rcx
movq (%rax,%rcx,8), %rcx
callq 0x37ee0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
leaq 0x1cd56(%rip), %rax     # 0x553bc
movq %rax, -0x48(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x385f0
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
leaq 0x1ad56(%rip), %rdx     # 0x533e7
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rcx
leaq 0x1badb(%rip), %rdx     # 0x541a1
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rdx
callq 0x3b910
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x3874c
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x40(%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x48(%rax), %r8
callq 0x3b9c0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x38797
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x18(%rax), %rcx
leaq 0x1621c(%rip), %rdx     # 0x4e9a4
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x40(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rdi
callq 0x30600
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
movq %rax, %rcx
leaq 0x1a2cb(%rip), %rdx     # 0x52a9b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x38822
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x40(%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x48(%rax), %r8
callq 0x3b9c0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
cmpq $0x0, 0x18(%rax)
je 0x3886d
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rax
movq 0x18(%rax), %rcx
leaq 0x16146(%rip), %rdx     # 0x4e9a4
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x40(%rbp), %rax
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x28(%rbp), %rax
movq 0x88(%rax), %rdi
callq 0x30600
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq %rax, %rcx
leaq 0x1a1f5(%rip), %rdx     # 0x52a9b
movb $0x0, %al
callq 0x4a230
addq -0x38(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x388f8
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x38(%rax), %r8
callq 0x3b9c0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x3bae0
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x20(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x3bc30
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
jmp 0x38964
leaq 0x1b848(%rip), %rdi     # 0x541a5
movb $0x0, %al
callq 0x1df20
movq -0x28(%rbp), %rax
cmpl $0x19, (%rax)
je 0x38976
movq -0x28(%rbp), %rax
cmpl $0x1a, (%rax)
jne 0x3899e
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rax
subq %rax, %rsi
movq -0x28(%rbp), %rdx
callq 0x37d50
movl %eax, %ecx
movq -0x38(%rbp), %rax
movslq %ecx, %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x4(%rax), %eax
movl %eax, %esi
callq 0x48af0
movq -0x38(%rbp), %rax
movq -0x10(%rbp), %rcx
subq %rcx, %rax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x70, %rsp
popq %rbp
retq
nopw (%rax,%rax)