// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/dag.c
// Function: listnodes
Node listnodes(Tree tp, int tlab, int flab) {
	Opcode op;
	Node p, l, r;

	if (tp == 0)
		return 0;
	if (tp->node)
		return tp->node;
	op = generic(tp->op);
	switch (op) {
	case AND:
		if (flab) {
			listnodes(tp->kids[0], 0, flab);
			r = listnodes(tp->kids[1], 0, flab);
		} else {
			listnodes(tp->kids[0], 0, flab = genlabel(1));
			listnodes(tp->kids[1], tlab, 0);
			r = labelnode(flab);
		}
		trash(0);
		return r;
	case NOT:
		return listnodes(tp->kids[0], flab, tlab);
	case OR:
		if (tlab) {
			listnodes(tp->kids[0], tlab, 0);
			r = listnodes(tp->kids[1], tlab, 0);
		} else {
			listnodes(tp->kids[0], tlab = genlabel(1), 0);
			listnodes(tp->kids[1], 0, flab);
			r = labelnode(tlab);
		}
		trash(0);
		return r;
	case COND: {
		Tree q;
		assert(tlab == 0 && flab == 0);
		if (tp->u.sym)
			addlocal(tp->u.sym);
		trash(0);
		listnodes(tp->kids[0], 0, flab = genlabel(2));
		trash(0);
		q = tp->kids[1];
		if (q) {
			assert(q->op == RIGHT);
			listnodes(q->kids[0], 0, 0);
			if (islabel(nodelist)) {
				equatelab(nodelist->syms[0], findlabel(flab + 1));
				remove(nodelist);
			}
			trash(0);
		}
		if (q && q->kids[1]) {
			list(jump(flab + 1));
			labelnode(flab);
			listnodes(q->kids[1], 0, 0);
			if (islabel(nodelist)) {
				equatelab(nodelist->syms[0], findlabel(flab + 1));
				remove(nodelist);
			}
		} else
			labelnode(flab);
		p = labelnode(flab + 1);
		trash(0);
		if (tp->u.sym) {
			Tree t = idnode(tp->u.sym);
			tp->u.sym->ref = 0;	/* undo idnode's setting ref */
			p = listnodes(t, 0, 0);
		}
		break;
		}
	case CNST: {
		Type ty = unqual(tp->type);
		assert(op == CNST+S || ty->u.sym);
		if (op == CNST+S || ty->u.sym->addressed)
			p = listnodes(cvtconst(tp), tlab, flab);
		else if (tlab == 0 && flab == 0)
			p = node(tp->op, 0, 0, constant(ty, tp->u.v));
		else {
			assert(ty == inttype);
			if (tlab && tp->u.v.i != 0)
				p = list(jump(tlab));
			else if (flab && tp->u.v.i == 0)
				p = list(jump(flab));
			else
				p = 0;
		}
		break;
		}
	case RIGHT:
		if (tp->kids[0] && generic(tp->kids[0]->op) == INDIR
		&&  tp->kids[1] && generic(tp->kids[1]->op) == ASGN
		&&  tp->kids[0]->kids[0] == tp->kids[1]->kids[0]) {	/* e++ */
			p = listnodes(tp->kids[0], 0, 0);
			if (nodelist) {
				Node t;
				for (t = nodelist; ; t = t->link)
					if (haskid(p, t->link)) {
						p->link = t->link;
						t->link = p;
						break;
					} else if (t->link == nodelist) {
						list(p);
						break;
					}
			} else
				list(p);
			listnodes(tp->kids[1], 0, 0);
		} else if (tp->kids[1]) {
			if (tp->kids[0] && generic(tp->kids[0]->op) == CNST)
				tp->kids[0] = 0;
			listnodes(tp->kids[0], 0, 0);
			p = listnodes(tp->kids[1], tlab, flab);
		} else
			p = listnodes(tp->kids[0], tlab, flab);
		break;
	case JUMP:
		assert(tlab == 0 && flab == 0);
		assert(tp->u.sym == 0);
		assert(tp->kids[0]);
		l = listnodes(tp->kids[0], 0, 0);
		p = newnode(JUMP+V, l, 0, 0);
		trash(0);
		list(p);
		break;
	case CALL:
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);	/* arguments, function name */
		r = listnodes(tp->kids[1], 0, 0);
		p = newnode(tp->op, l, r, 0);
		p->syms[0] = (Symbol)talloc(sizeof *p->syms[0]);
		BZERO(p->syms[0], struct symbol);
		assert(isptr(tp->kids[0]->type) && isfunc(tp->kids[0]->type->type));
		p->syms[0]->type = tp->kids[0]->type->type;
		trash(0);
		list(p);
		cfunc->u.f.ncalls++;
		break;
	case ARG:
		assert(tlab == 0 && flab == 0);
#ifdef LEFT_TO_RIGHT
		listnodes(tp->kids[1], 0, 0);
#endif
		l = listnodes(tp->kids[0], 0, 0);
		p = newnode(tp->op, l, 0, 0);
		p->syms[0] = intconst(tp->type->size);
		p->syms[1] = intconst(tp->type->align);
		list(p);
#ifndef LEFT_TO_RIGHT
		listnodes(tp->kids[1], 0, 0);
#endif
		return 0;
	case EQ: case NE: case GT: case GE: case LE: case LT: {
		int lab;
		assert(tp->u.sym == 0);
		assert(errcnt || tlab || flab);
		if (lab = flab) {
			assert(tlab == 0);
			switch (op) {
			case EQ: op = NE + optype(tp->op); break;
			case NE: op = EQ + optype(tp->op); break;
			case GT: op = LE + optype(tp->op); break;
			case LT: op = GE + optype(tp->op); break;
			case GE: op = LT + optype(tp->op); break;
			case LE: op = GT + optype(tp->op); break;
			}
		} else if (lab = tlab)
			op = tp->op;
		l = listnodes(tp->kids[0], 0, 0);
		r = listnodes(tp->kids[1], 0, 0);
		p = newnode(op, l, r, findlabel(lab));
		p->syms[0]->ref++;
		list(p);
		break;
		}
	case ASGN:
		assert(tlab == 0 && flab == 0);
		if (tp->kids[0]->op == FIELD) {
			Tree x = tp->kids[0]->kids[0];
			Field p = tp->kids[0]->u.field;
			assert(generic(x->op) == INDIR);
			trash(0);
			l = listnodes(lvalue(x), 0, 0);
			if (fieldsize(p) < 8*p->type->size) {
				unsigned int fmask = fieldmask(p);
				unsigned int mask = fmask<<fieldright(p);
				Tree q = tp->kids[1];
				if ((q->op == CNST+I && q->u.v.i == 0)
				||  (q->op == CNST+U && q->u.v.u == 0))
					q = bitnode(BAND, x, constnode(~mask, unsignedtype));
				else if ((q->op == CNST+I && (q->u.v.i&fmask) == fmask)
				||       (q->op == CNST+U && (q->u.v.u&fmask) == fmask))
					q = bitnode(BOR, x, constnode(mask, unsignedtype));
				else
					q = bitnode(BOR,
						bitnode(BAND, x, constnode(~mask, unsignedtype)),
						bitnode(BAND, shnode(LSH, cast(q, unsignedtype),
							constnode(fieldright(p), inttype)),
							constnode(mask, unsignedtype)));
				r = listnodes(q, 0, 0);
			} else
				r = listnodes(tp->kids[1], 0, 0);
		} else {
			l = listnodes(tp->kids[0], 0, 0);
			r = listnodes(tp->kids[1], 0, 0);
		}
		trash(isaddrop(tp->kids[0]->op) && !tp->kids[0]->u.sym->computed ? l : 0);
		p = newnode(tp->op, l, r, 0);
		p->syms[0] = intconst(tp->type->size);
		p->syms[1] = intconst(tp->type->align);
		list(p);
		p = listnodes(tp->kids[1], 0, 0);
		break;
	case BAND:
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);
#ifdef VAX
		r = listnodes(cast(
			simplify(BCOM+U, unsignedtype, cast(tp->kids[1], unsignedtype), 0),
			tp->kids[1]->type), 0, 0);
#else
		r = listnodes(tp->kids[1], 0, 0);
#endif
		p = node(tp->op, l, r, 0);
		break;
	case RSH:
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);
#ifdef VAX
		if (tp->op == RSH+I)
			r = listnodes(simplify(NEG+I, inttype, tp->kids[1], 0), 0, 0);
		else
#endif
			r = listnodes(tp->kids[1], 0, 0);
		p = node(tp->op, l, r, 0);
		break;
	case ADD: case SUB:  case DIV: case MUL: case MOD:
	case BOR: case BXOR: case LSH:
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);
		r = listnodes(tp->kids[1], 0, 0);
		p = node(tp->op, l, r, 0);
#ifdef SPARC
		if(p->op == DIV+I || p->op == MOD+I || p->op == MUL+I
		|| p->op == DIV+U || p->op == MOD+U || p->op == MUL+U)
			list(p);
#endif
		break;
	case RET:
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);
		p = newnode(tp->op, l, 0, 0);
		list(p);
		break;
	case CVC: case CVD: case CVF: case CVI:
	case CVP: case CVS: case CVU: case NEG: case BCOM:
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);
		p = node(tp->op, l, 0, 0);
		break;
	case INDIR: {
		Type ty = tp->kids[0]->type;
		if (isptr(ty))
			ty = unqual(ty)->type;
		assert(tlab == 0 && flab == 0);
		l = listnodes(tp->kids[0], 0, 0);
		if (isvolatile(ty) || (isstruct(ty) && unqual(ty)->u.sym->u.s.vfields))
			p = newnode(tp->op, l, 0, 0);
		else
			p = node(tp->op, l, 0, 0);
		break;
		}
	case FIELD: {
		Tree q;
		assert(tlab == 0 && flab == 0);
		q = shnode(RSH,
			shnode(LSH, tp->kids[0],
				constnode(fieldleft(tp->u.field), inttype)),
			constnode(8*tp->type->size - fieldsize(tp->u.field), inttype));
		p = listnodes(q, 0, 0);
		break;
		}
	case ADDRL:
		assert(tlab == 0 && flab == 0);
		if (tp->u.sym->temporary) {
			addlocal(tp->u.sym);
			release(tp->u.sym);
		}
		p = node(tp->op, 0, 0, tp->u.sym);
		break;
	case ADDRG: case ADDRF:
		assert(tlab == 0 && flab == 0);
		if (tp->u.sym->scope == LABELS)
			tp->u.sym->ref++;
		p = node(tp->op, 0, 0, tp->u.sym);
		break;
	default:assert(0);
	}
	return tp->node = p;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x3c59
movq $0x0, -0x8(%rbp)
jmp 0x56ef
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x3c75
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x56ef
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $-0x10, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0xa4(%rbp)
subl $0x10, %eax
je 0x4304
jmp 0x3c95
movl -0xa4(%rbp), %eax
subl $0x20, %eax
je 0x49b0
jmp 0x3ca6
movl -0xa4(%rbp), %eax
subl $0x30, %eax
je 0x4c7e
jmp 0x3cb7
movl -0xa4(%rbp), %eax
subl $0x40, %eax
je 0x52db
jmp 0x3cc8
movl -0xa4(%rbp), %eax
subl $0x50, %eax
je 0x527a
jmp 0x3cd9
movl -0xa4(%rbp), %eax
subl $0x60, %eax
je 0x527a
jmp 0x3cea
movl -0xa4(%rbp), %eax
subl $0x70, %eax
je 0x527a
jmp 0x3cfb
movl -0xa4(%rbp), %eax
subl $0x80, %eax
je 0x527a
jmp 0x3d0e
movl -0xa4(%rbp), %eax
subl $0x90, %eax
je 0x527a
jmp 0x3d21
movl -0xa4(%rbp), %eax
subl $0xa0, %eax
je 0x527a
jmp 0x3d34
movl -0xa4(%rbp), %eax
subl $0xb0, %eax
je 0x527a
jmp 0x3d47
movl -0xa4(%rbp), %eax
subl $0xc0, %eax
je 0x527a
jmp 0x3d5a
movl -0xa4(%rbp), %eax
subl $0xd0, %eax
je 0x46df
jmp 0x3d6d
movl -0xa4(%rbp), %eax
subl $0xf0, %eax
je 0x5210
jmp 0x3d80
movl -0xa4(%rbp), %eax
subl $0x100, %eax            # imm = 0x100
je 0x5651
jmp 0x3d93
movl -0xa4(%rbp), %eax
subl $0x110, %eax            # imm = 0x110
je 0x5651
jmp 0x3da6
movl -0xa4(%rbp), %eax
subl $0x120, %eax            # imm = 0x120
je 0x55d0
jmp 0x3db9
movl -0xa4(%rbp), %eax
subl $0x130, %eax            # imm = 0x130
je 0x5199
jmp 0x3dcc
movl -0xa4(%rbp), %eax
subl $0x140, %eax            # imm = 0x140
je 0x5199
jmp 0x3ddf
movl -0xa4(%rbp), %eax
subl $0x150, %eax            # imm = 0x150
je 0x5199
jmp 0x3df2
movl -0xa4(%rbp), %eax
subl $0x160, %eax            # imm = 0x160
je 0x5199
jmp 0x3e05
movl -0xa4(%rbp), %eax
subl $0x170, %eax            # imm = 0x170
je 0x5122
jmp 0x3e18
movl -0xa4(%rbp), %eax
subl $0x180, %eax            # imm = 0x180
je 0x50ab
jmp 0x3e2b
movl -0xa4(%rbp), %eax
subl $0x190, %eax            # imm = 0x190
je 0x527a
jmp 0x3e3e
movl -0xa4(%rbp), %eax
subl $0x1a0, %eax            # imm = 0x1A0
je 0x5199
jmp 0x3e51
movl -0xa4(%rbp), %eax
subl $0x1b0, %eax            # imm = 0x1B0
je 0x5199
jmp 0x3e64
movl -0xa4(%rbp), %eax
subl $0x1c0, %eax            # imm = 0x1C0
je 0x5199
jmp 0x3e77
movl -0xa4(%rbp), %eax
subl $0x1d0, %eax            # imm = 0x1D0
je 0x5199
jmp 0x3e8a
movl -0xa4(%rbp), %eax
subl $0x1e0, %eax            # imm = 0x1E0
je 0x4a6a
jmp 0x3e9d
movl -0xa4(%rbp), %eax
subl $0x1f0, %eax            # imm = 0x1F0
je 0x4a6a
jmp 0x3eb0
movl -0xa4(%rbp), %eax
subl $0x200, %eax            # imm = 0x200
je 0x4a6a
jmp 0x3ec3
movl -0xa4(%rbp), %eax
subl $0x210, %eax            # imm = 0x210
je 0x4a6a
jmp 0x3ed6
movl -0xa4(%rbp), %eax
subl $0x220, %eax            # imm = 0x220
je 0x4a6a
jmp 0x3ee9
movl -0xa4(%rbp), %eax
subl $0x230, %eax            # imm = 0x230
je 0x4a6a
jmp 0x3efc
movl -0xa4(%rbp), %eax
subl $0x240, %eax            # imm = 0x240
je 0x4615
jmp 0x3f0f
movl -0xa4(%rbp), %eax
subl $0x260, %eax            # imm = 0x260
je 0x3f80
jmp 0x3f1e
movl -0xa4(%rbp), %eax
subl $0x270, %eax            # imm = 0x270
je 0x4010
jmp 0x3f31
movl -0xa4(%rbp), %eax
subl $0x280, %eax            # imm = 0x280
je 0x402c
jmp 0x3f44
movl -0xa4(%rbp), %eax
subl $0x290, %eax            # imm = 0x290
je 0x40bc
jmp 0x3f57
movl -0xa4(%rbp), %eax
subl $0x2a0, %eax            # imm = 0x2A0
je 0x4487
jmp 0x3f6a
movl -0xa4(%rbp), %eax
subl $0x2b0, %eax            # imm = 0x2B0
je 0x54c1
jmp 0x56c0
cmpl $0x0, -0x18(%rbp)
je 0x3fb0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x18(%rbp), %edx
xorl %esi, %esi
callq 0x3c30
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x18(%rbp), %edx
xorl %esi, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
jmp 0x3ffa
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xb0(%rbp)
movl $0x1, %edi
callq 0x24d90
movq -0xb0(%rbp), %rdi
movl %eax, %edx
movl %edx, -0x18(%rbp)
xorl %esi, %esi
callq 0x3c30
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x14(%rbp), %esi
xorl %edx, %edx
callq 0x3c30
movl -0x18(%rbp), %edi
callq 0x5700
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x56ef
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x18(%rbp), %esi
movl -0x14(%rbp), %edx
callq 0x3c30
movq %rax, -0x8(%rbp)
jmp 0x56ef
cmpl $0x0, -0x14(%rbp)
je 0x405c
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x14(%rbp), %esi
xorl %edx, %edx
callq 0x3c30
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x14(%rbp), %esi
xorl %edx, %edx
callq 0x3c30
movq %rax, -0x38(%rbp)
jmp 0x40a6
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xb8(%rbp)
movl $0x1, %edi
callq 0x24d90
movq -0xb8(%rbp), %rdi
movl %eax, %esi
movl %esi, -0x14(%rbp)
xorl %edx, %edx
callq 0x3c30
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x18(%rbp), %edx
xorl %esi, %esi
callq 0x3c30
movl -0x14(%rbp), %edi
callq 0x5700
movq %rax, -0x38(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x56ef
cmpl $0x0, -0x14(%rbp)
jne 0x40ca
cmpl $0x0, -0x18(%rbp)
jne 0x40ca
jmp 0x40e9
leaq 0x2aff1(%rip), %rdi     # 0x2f0c2
leaq 0x2afbc(%rip), %rsi     # 0x2f094
movl $0x120, %edx            # imm = 0x120
leaq 0x2aff5(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x4101
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x3290
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xc0(%rbp)
movl $0x2, %edi
callq 0x24d90
movq -0xc0(%rbp), %rdi
movl %eax, %edx
movl %edx, -0x18(%rbp)
xorl %esi, %esi
callq 0x3c30
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x41fc
movq -0x40(%rbp), %rax
cmpl $0x2a0, (%rax)          # imm = 0x2A0
jne 0x4164
jmp 0x4183
leaq 0x2e1f0(%rip), %rdi     # 0x3235b
leaq 0x2af22(%rip), %rsi     # 0x2f094
movl $0x128, %edx            # imm = 0x128
leaq 0x2af5b(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
cmpq $0x0, 0x377d4(%rip)     # 0x3b970
je 0x41f3
movq 0x377cb(%rip), %rax     # 0x3b970
cmpl $0x258, (%rax)          # imm = 0x258
jne 0x41f3
movq 0x377bc(%rip), %rax     # 0x3b970
cmpq $0x0, 0x8(%rax)
je 0x41f3
movq 0x377ae(%rip), %rax     # 0x3b970
movq 0x8(%rax), %rax
movq %rax, -0xc8(%rbp)
movl -0x18(%rbp), %edi
addl $0x1, %edi
callq 0x245d0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x20b60
movq 0x37782(%rip), %rdi     # 0x3b970
callq 0x58d0
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
cmpq $0x0, -0x40(%rbp)
je 0x42a3
movq -0x40(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x42a3
movl -0x18(%rbp), %edi
addl $0x1, %edi
callq 0x5a10
movq %rax, %rdi
callq 0x59a0
movl -0x18(%rbp), %edi
callq 0x5700
movq -0x40(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
cmpq $0x0, 0x37726(%rip)     # 0x3b970
je 0x42a1
movq 0x3771d(%rip), %rax     # 0x3b970
cmpl $0x258, (%rax)          # imm = 0x258
jne 0x42a1
movq 0x3770e(%rip), %rax     # 0x3b970
cmpq $0x0, 0x8(%rax)
je 0x42a1
movq 0x37700(%rip), %rax     # 0x3b970
movq 0x8(%rax), %rax
movq %rax, -0xd0(%rbp)
movl -0x18(%rbp), %edi
addl $0x1, %edi
callq 0x245d0
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x20b60
movq 0x376d4(%rip), %rdi     # 0x3b970
callq 0x58d0
jmp 0x42ab
movl -0x18(%rbp), %edi
callq 0x5700
movl -0x18(%rbp), %edi
addl $0x1, %edi
callq 0x5700
movq %rax, -0x28(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x42ff
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xddf0
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movl $0x0, 0x1c(%rax)
movq -0x48(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x28(%rbp)
jmp 0x56df
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x4326
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xd8(%rbp)
jmp 0x4335
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpl $0x14, -0x1c(%rbp)
je 0x4351
movq -0x50(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x4353
jmp 0x4372
leaq 0x2ad9e(%rip), %rdi     # 0x2f0f8
leaq 0x2ad33(%rip), %rsi     # 0x2f094
movl $0x145, %edx            # imm = 0x145
leaq 0x2ad6c(%rip), %rcx     # 0x2f0d9
callq 0x30c0
cmpl $0x14, -0x1c(%rbp)
je 0x4390
movq -0x50(%rbp), %rax
movq 0x18(%rax), %rax
movb 0x1b(%rax), %al
shrb $0x4, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x43b0
movq -0x10(%rbp), %rdi
callq 0x25610
movq %rax, %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x3c30
movq %rax, -0x28(%rbp)
jmp 0x4482
cmpl $0x0, -0x14(%rbp)
jne 0x43f7
cmpl $0x0, -0x18(%rbp)
jne 0x43f7
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xdc(%rbp)
movq -0x50(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rsi
callq 0x23d40
movl -0xdc(%rbp), %edi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x4480
movq -0x50(%rbp), %rax
leaq 0x3fdf6(%rip), %rcx     # 0x441f8
cmpq (%rcx), %rax
jne 0x4409
jmp 0x4428
leaq 0x2ad02(%rip), %rdi     # 0x2f112
leaq 0x2ac7d(%rip), %rsi     # 0x2f094
movl $0x14b, %edx            # imm = 0x14B
leaq 0x2acb6(%rip), %rcx     # 0x2f0d9
callq 0x30c0
cmpl $0x0, -0x14(%rbp)
je 0x444e
movq -0x10(%rbp), %rax
cmpl $0x0, 0x28(%rax)
je 0x444e
movl -0x14(%rbp), %edi
callq 0x5a10
movq %rax, %rdi
callq 0x59a0
movq %rax, -0x28(%rbp)
jmp 0x447e
cmpl $0x0, -0x18(%rbp)
je 0x4474
movq -0x10(%rbp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x4474
movl -0x18(%rbp), %edi
callq 0x5a10
movq %rax, %rdi
callq 0x59a0
movq %rax, -0x28(%rbp)
jmp 0x447c
movq $0x0, -0x28(%rbp)
jmp 0x447e
jmp 0x4480
jmp 0x4482
jmp 0x56df
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x4599
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x40, %eax
jne 0x4599
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x4599
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x30, %eax
jne 0x4599
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x10(%rcx), %rax
jne 0x4599
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x28(%rbp)
cmpq $0x0, 0x37464(%rip)     # 0x3b970
je 0x457d
movq 0x3745b(%rip), %rax     # 0x3b970
movq %rax, -0x58(%rbp)
movq -0x28(%rbp), %rdi
movq -0x58(%rbp), %rax
movq 0x30(%rax), %rsi
callq 0x5b70
cmpl $0x0, %eax
je 0x454d
movq -0x58(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x30(%rax)
movq -0x28(%rbp), %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0x457b
movq -0x58(%rbp), %rax
movq 0x30(%rax), %rax
cmpq 0x37414(%rip), %rax     # 0x3b970
jne 0x4569
movq -0x28(%rbp), %rdi
callq 0x59a0
jmp 0x457b
jmp 0x456b
jmp 0x456d
movq -0x58(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0x4519
jmp 0x4586
movq -0x28(%rbp), %rdi
callq 0x59a0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
jmp 0x4610
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x45f7
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x45cd
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x10, %eax
jne 0x45cd
movq -0x10(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x3c30
movq %rax, -0x28(%rbp)
jmp 0x460e
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x3c30
movq %rax, -0x28(%rbp)
jmp 0x4610
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x4623
cmpl $0x0, -0x18(%rbp)
jne 0x4623
jmp 0x4642
leaq 0x2aa98(%rip), %rdi     # 0x2f0c2
leaq 0x2aa63(%rip), %rsi     # 0x2f094
movl $0x171, %edx            # imm = 0x171
leaq 0x2aa9c(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x464f
jmp 0x466e
leaq 0x2aaca(%rip), %rdi     # 0x2f120
leaq 0x2aa37(%rip), %rsi     # 0x2f094
movl $0x172, %edx            # imm = 0x172
leaq 0x2aa70(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x467b
jmp 0x469a
leaq 0x2aaad(%rip), %rdi     # 0x2f12f
leaq 0x2aa0b(%rip), %rsi     # 0x2f094
movl $0x173, %edx            # imm = 0x173
leaq 0x2aa44(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rsi
movl $0x248, %edi            # imm = 0x248
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5bf0
movq %rax, -0x28(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x28(%rbp), %rdi
callq 0x59a0
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x46ed
cmpl $0x0, -0x18(%rbp)
jne 0x46ed
jmp 0x470c
leaq 0x2a9ce(%rip), %rdi     # 0x2f0c2
leaq 0x2a999(%rip), %rsi     # 0x2f094
movl $0x17a, %edx            # imm = 0x17A
leaq 0x2a9d2(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x5bf0
movq %rax, -0x28(%rbp)
leaq 0x36ef0(%rip), %rax     # 0x3b648
movq (%rax), %rax
movl $0x88, (%rax)
leaq 0x36ee0(%rip), %rax     # 0x3b648
movq (%rax), %rax
movq 0x8(%rax), %rax
leaq 0x36ed2(%rip), %rcx     # 0x3b648
movq (%rcx), %rcx
movslq (%rcx), %rcx
addq %rcx, %rax
leaq 0x36ec2(%rip), %rcx     # 0x3b648
movq (%rcx), %rcx
cmpq 0x10(%rcx), %rax
jb 0x47b0
leaq 0x36eb2(%rip), %rax     # 0x3b648
movq (%rax), %rax
movl (%rax), %edi
leaq 0x36ea6(%rip), %rsi     # 0x3b648
callq 0x253d0
movq %rax, -0xe8(%rbp)
jmp 0x47fe
leaq 0x36e91(%rip), %rax     # 0x3b648
movq (%rax), %rax
movl (%rax), %edx
leaq 0x36e85(%rip), %rax     # 0x3b648
movq (%rax), %rax
movq 0x8(%rax), %rcx
movslq %edx, %rdx
addq %rdx, %rcx
movq %rcx, 0x8(%rax)
leaq 0x36e6d(%rip), %rax     # 0x3b648
movq (%rax), %rax
movq 0x8(%rax), %rax
leaq 0x36e5f(%rip), %rcx     # 0x3b648
movq (%rcx), %rcx
movslq (%rcx), %rdx
xorl %ecx, %ecx
subq %rdx, %rcx
addq %rcx, %rax
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
addq $0x80, %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x68(%rbp), %rax
jae 0x4896
movq -0x60(%rbp), %rax
movl $0x0, 0x1c(%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x18(%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x14(%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0xc(%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x8(%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x60(%rbp), %rax
movl $0x0, (%rax)
movq -0x60(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x60(%rbp)
jmp 0x4827
movq -0x60(%rbp), %rax
movl $0x0, (%rax)
movq -0x60(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x48d5
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xf0(%rbp)
jmp 0x48e8
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rax
cmpl $0x7, (%rax)
jne 0x494b
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
cmpl $0xf, (%rax)
jb 0x4926
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xf8(%rbp)
jmp 0x493d
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rax
cmpl $0xb, (%rax)
jne 0x494b
jmp 0x496a
leaq 0x2a7e9(%rip), %rdi     # 0x2f13b
leaq 0x2a73b(%rip), %rsi     # 0x2f094
movl $0x180, %edx            # imm = 0x180
leaq 0x2a774(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x20(%rax)
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x28(%rbp), %rdi
callq 0x59a0
leaq 0x37069(%rip), %rax     # 0x3ba08
movq (%rax), %rax
movl 0x7c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x7c(%rax)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x49be
cmpl $0x0, -0x18(%rbp)
jne 0x49be
jmp 0x49dd
leaq 0x2a6fd(%rip), %rdi     # 0x2f0c2
leaq 0x2a6c8(%rip), %rsi     # 0x2f094
movl $0x187, %edx            # imm = 0x187
leaq 0x2a701(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5bf0
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %edi
callq 0x24f20
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movswl 0x4(%rax), %edi
callq 0x24f20
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rdi
callq 0x59a0
movq $0x0, -0x8(%rbp)
jmp 0x56ef
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x4a77
jmp 0x4a96
leaq 0x2a6a2(%rip), %rdi     # 0x2f120
leaq 0x2a60f(%rip), %rsi     # 0x2f094
movl $0x196, %edx            # imm = 0x196
leaq 0x2a648(%rip), %rcx     # 0x2f0d9
callq 0x30c0
leaq 0x36f9f(%rip), %rax     # 0x3ba3c
cmpl $0x0, (%rax)
jne 0x4aae
cmpl $0x0, -0x14(%rbp)
jne 0x4aae
cmpl $0x0, -0x18(%rbp)
je 0x4ab0
jmp 0x4acf
leaq 0x2a6c0(%rip), %rdi     # 0x2f177
leaq 0x2a5d6(%rip), %rsi     # 0x2f094
movl $0x197, %edx            # imm = 0x197
leaq 0x2a60f(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movl -0x18(%rbp), %eax
movl %eax, -0x6c(%rbp)
cmpl $0x0, %eax
je 0x4bd8
cmpl $0x0, -0x14(%rbp)
jne 0x4ae6
jmp 0x4b05
leaq 0x2a6a1(%rip), %rdi     # 0x2f18e
leaq 0x2a5a0(%rip), %rsi     # 0x2f094
movl $0x199, %edx            # imm = 0x199
leaq 0x2a5d9(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movl -0x1c(%rbp), %eax
movl %eax, -0xfc(%rbp)
subl $0x1e0, %eax            # imm = 0x1E0
je 0x4b66
jmp 0x4b17
movl -0xfc(%rbp), %eax
subl $0x1f0, %eax            # imm = 0x1F0
je 0x4bb2
jmp 0x4b2a
movl -0xfc(%rbp), %eax
subl $0x200, %eax            # imm = 0x200
je 0x4b8c
jmp 0x4b39
movl -0xfc(%rbp), %eax
subl $0x210, %eax            # imm = 0x210
je 0x4bc5
jmp 0x4b48
movl -0xfc(%rbp), %eax
subl $0x220, %eax            # imm = 0x220
je 0x4b9f
jmp 0x4b57
movl -0xfc(%rbp), %eax
subl $0x230, %eax            # imm = 0x230
je 0x4b79
jmp 0x4bd6
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
addl $0x230, %eax            # imm = 0x230
movl %eax, -0x1c(%rbp)
jmp 0x4bd6
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
addl $0x1e0, %eax            # imm = 0x1E0
movl %eax, -0x1c(%rbp)
jmp 0x4bd6
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
addl $0x210, %eax            # imm = 0x210
movl %eax, -0x1c(%rbp)
jmp 0x4bd6
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
addl $0x1f0, %eax            # imm = 0x1F0
movl %eax, -0x1c(%rbp)
jmp 0x4bd6
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
addl $0x220, %eax            # imm = 0x220
movl %eax, -0x1c(%rbp)
jmp 0x4bd6
movq -0x10(%rbp), %rax
movl (%rax), %eax
andl $0xf, %eax
addl $0x200, %eax            # imm = 0x200
movl %eax, -0x1c(%rbp)
jmp 0x4bee
movl -0x14(%rbp), %eax
movl %eax, -0x6c(%rbp)
cmpl $0x0, %eax
je 0x4bec
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
jmp 0x4bee
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -0x114(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x108(%rbp)
movl -0x6c(%rbp), %edi
callq 0x245d0
movl -0x114(%rbp), %edi
movq -0x110(%rbp), %rsi
movq -0x108(%rbp), %rdx
movq %rax, %rcx
callq 0x5bf0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x1c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x1c(%rax)
movq -0x28(%rbp), %rdi
callq 0x59a0
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x4c8c
cmpl $0x0, -0x18(%rbp)
jne 0x4c8c
jmp 0x4cab
leaq 0x2a42f(%rip), %rdi     # 0x2f0c2
leaq 0x2a3fa(%rip), %rsi     # 0x2f094
movl $0x1ac, %edx            # imm = 0x1AC
leaq 0x2a433(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x2b0, (%rax)          # imm = 0x2B0
jne 0x4f9c
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rax
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x40, %eax
jne 0x4cef
jmp 0x4d0e
leaq 0x2a4a2(%rip), %rdi     # 0x2f198
leaq 0x2a397(%rip), %rsi     # 0x2f094
movl $0x1b0, %edx            # imm = 0x1B0
leaq 0x2a3d0(%rip), %rcx     # 0x2f0d9
callq 0x30c0
xorl %eax, %eax
movl %eax, %edi
callq 0x57c0
movq -0x78(%rbp), %rdi
callq 0x10510
movq %rax, %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x80(%rbp), %rax
movswl 0x16(%rax), %eax
movq -0x80(%rbp), %rcx
movswl 0x14(%rcx), %ecx
subl %ecx, %eax
movq -0x80(%rbp), %rcx
movq 0x8(%rcx), %rcx
movl 0x8(%rcx), %ecx
shll $0x3, %ecx
cmpl %ecx, %eax
jge 0x4f85
movq -0x80(%rbp), %rax
movswl 0x16(%rax), %ecx
movq -0x80(%rbp), %rax
movswl 0x14(%rax), %eax
subl %eax, %ecx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
shll %cl, %eax
xorl $-0x1, %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %eax
movq -0x80(%rbp), %rcx
movswl 0x14(%rcx), %ecx
shll %cl, %eax
movl %eax, -0x88(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
cmpl $0x15, (%rax)
jne 0x4db8
movq -0x90(%rbp), %rax
cmpl $0x0, 0x28(%rax)
je 0x4dd1
movq -0x90(%rbp), %rax
cmpl $0x16, (%rax)
jne 0x4e14
movq -0x90(%rbp), %rax
cmpl $0x0, 0x28(%rax)
jne 0x4e14
movq -0x78(%rbp), %rax
movq %rax, -0x120(%rbp)
movl -0x88(%rbp), %edi
xorl $-0x1, %edi
leaq 0x3f44c(%rip), %rax     # 0x44238
movq (%rax), %rsi
callq 0xc7b0
movq -0x120(%rbp), %rsi
movq %rax, %rdx
movl $0x180, %edi            # imm = 0x180
callq 0xaea0
movq %rax, -0x90(%rbp)
jmp 0x4f6f
movq -0x90(%rbp), %rax
cmpl $0x15, (%rax)
jne 0x4e38
movq -0x90(%rbp), %rax
movl 0x28(%rax), %eax
andl -0x84(%rbp), %eax
cmpl -0x84(%rbp), %eax
je 0x4e5c
movq -0x90(%rbp), %rax
cmpl $0x16, (%rax)
jne 0x4e9c
movq -0x90(%rbp), %rax
movl 0x28(%rax), %eax
andl -0x84(%rbp), %eax
cmpl -0x84(%rbp), %eax
jne 0x4e9c
movq -0x78(%rbp), %rax
movq %rax, -0x128(%rbp)
movl -0x88(%rbp), %edi
leaq 0x3f3c4(%rip), %rax     # 0x44238
movq (%rax), %rsi
callq 0xc7b0
movq -0x128(%rbp), %rsi
movq %rax, %rdx
movl $0x1a0, %edi            # imm = 0x1A0
callq 0xaea0
movq %rax, -0x90(%rbp)
jmp 0x4f6d
movq -0x78(%rbp), %rax
movq %rax, -0x148(%rbp)
movl -0x88(%rbp), %edi
xorl $-0x1, %edi
leaq 0x3f381(%rip), %rax     # 0x44238
movq (%rax), %rsi
callq 0xc7b0
movq -0x148(%rbp), %rsi
movq %rax, %rdx
movl $0x180, %edi            # imm = 0x180
callq 0xaea0
movq %rax, -0x130(%rbp)
movq -0x90(%rbp), %rdi
leaq 0x3f350(%rip), %rax     # 0x44238
movq (%rax), %rsi
callq 0xe9b0
movq %rax, -0x140(%rbp)
movq -0x80(%rbp), %rax
movswl 0x14(%rax), %edi
leaq 0x3f2f2(%rip), %rax     # 0x441f8
movq (%rax), %rsi
callq 0xc7b0
movq -0x140(%rbp), %rsi
movq %rax, %rdx
movl $0x150, %edi            # imm = 0x150
callq 0xbef0
movq %rax, -0x138(%rbp)
movl -0x88(%rbp), %edi
leaq 0x3f302(%rip), %rax     # 0x44238
movq (%rax), %rsi
callq 0xc7b0
movq -0x138(%rbp), %rsi
movq %rax, %rdx
movl $0x180, %edi            # imm = 0x180
callq 0xaea0
movq -0x130(%rbp), %rsi
movq %rax, %rdx
movl $0x1a0, %edi            # imm = 0x1A0
callq 0xaea0
movq %rax, -0x90(%rbp)
jmp 0x4f6f
movq -0x90(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
jmp 0x4f9a
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
jmp 0x4fc6
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x107, (%rax)          # imm = 0x107
je 0x4ff6
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x127, (%rax)          # imm = 0x127
je 0x4ff6
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
cmpl $0x117, (%rax)          # imm = 0x117
jne 0x501f
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x28(%rax), %rax
movb 0x1b(%rax), %al
shrb $0x3, %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x501f
movq -0x30(%rbp), %rax
movq %rax, -0x150(%rbp)
jmp 0x502a
xorl %eax, %eax
movq %rax, -0x150(%rbp)
jmp 0x502a
movq -0x150(%rbp), %rdi
callq 0x57c0
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x5bf0
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %edi
callq 0x24f20
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movswl 0x4(%rax), %edi
callq 0x24f20
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rdi
callq 0x59a0
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x50b9
cmpl $0x0, -0x18(%rbp)
jne 0x50b9
jmp 0x50d8
leaq 0x2a002(%rip), %rdi     # 0x2f0c2
leaq 0x29fcd(%rip), %rsi     # 0x2f094
movl $0x1d2, %edx            # imm = 0x1D2
leaq 0x2a006(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x5130
cmpl $0x0, -0x18(%rbp)
jne 0x5130
jmp 0x514f
leaq 0x29f8b(%rip), %rdi     # 0x2f0c2
leaq 0x29f56(%rip), %rsi     # 0x2f094
movl $0x1de, %edx            # imm = 0x1DE
leaq 0x29f8f(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x51a7
cmpl $0x0, -0x18(%rbp)
jne 0x51a7
jmp 0x51c6
leaq 0x29f14(%rip), %rdi     # 0x2f0c2
leaq 0x29edf(%rip), %rsi     # 0x2f094
movl $0x1ea, %edx            # imm = 0x1EA
leaq 0x29f18(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
xorl %eax, %eax
movl %eax, %ecx
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x521e
cmpl $0x0, -0x18(%rbp)
jne 0x521e
jmp 0x523d
leaq 0x29e9d(%rip), %rdi     # 0x2f0c2
leaq 0x29e68(%rip), %rsi     # 0x2f094
movl $0x1f5, %edx            # imm = 0x1F5
leaq 0x29ea1(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5bf0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x59a0
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x5288
cmpl $0x0, -0x18(%rbp)
jne 0x5288
jmp 0x52a7
leaq 0x29e33(%rip), %rdi     # 0x2f0c2
leaq 0x29dfe(%rip), %rsi     # 0x2f094
movl $0x1fc, %edx            # imm = 0x1FC
leaq 0x29e37(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x530e
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x158(%rbp)
jmp 0x531c
movq -0x98(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x158(%rbp), %rax
cmpl $0x7, (%rax)
jne 0x5368
movq -0x98(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x5348
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x160(%rbp)
jmp 0x5356
movq -0x98(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x98(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x5376
cmpl $0x0, -0x18(%rbp)
jne 0x5376
jmp 0x5395
leaq 0x29d45(%rip), %rdi     # 0x2f0c2
leaq 0x29d10(%rip), %rsi     # 0x2f094
movl $0x204, %edx            # imm = 0x204
leaq 0x29d49(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x30(%rbp)
movq -0x98(%rbp), %rax
cmpl $0x10, (%rax)
je 0x5486
movq -0x98(%rbp), %rax
cmpl $0x1f, (%rax)
je 0x5486
movq -0x98(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x53ea
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x168(%rbp)
jmp 0x53f8
movq -0x98(%rbp), %rax
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rax
cmpl $0x9, (%rax)
je 0x543e
movq -0x98(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x5424
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x170(%rbp)
jmp 0x5432
movq -0x98(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rax
cmpl $0xa, (%rax)
jne 0x54a2
movq -0x98(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x545e
movq -0x98(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x178(%rbp)
jmp 0x546c
movq -0x98(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rax
movq 0x18(%rax), %rax
movb 0x48(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x54a2
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5bf0
movq %rax, -0x28(%rbp)
jmp 0x54bc
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x30(%rbp), %rsi
xorl %eax, %eax
movl %eax, %ecx
movq %rcx, %rdx
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x54cf
cmpl $0x0, -0x18(%rbp)
jne 0x54cf
jmp 0x54ee
leaq 0x29bec(%rip), %rdi     # 0x2f0c2
leaq 0x29bb7(%rip), %rsi     # 0x2f094
movl $0x20e, %edx            # imm = 0x20E
leaq 0x29bf0(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x188(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %edi
shll $0x3, %edi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movswl 0x16(%rax), %eax
movq -0x10(%rbp), %rcx
movq 0x28(%rcx), %rcx
movswl 0x14(%rcx), %ecx
subl %ecx, %eax
subl %eax, %edi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movswl 0x14(%rax), %eax
subl %eax, %edi
leaq 0x3ecb8(%rip), %rax     # 0x441f8
movq (%rax), %rsi
callq 0xc7b0
movq -0x188(%rbp), %rsi
movq %rax, %rdx
movl $0x150, %edi            # imm = 0x150
callq 0xbef0
movq %rax, -0x180(%rbp)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %edi
shll $0x3, %edi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movswl 0x16(%rax), %eax
movq -0x10(%rbp), %rcx
movq 0x28(%rcx), %rcx
movswl 0x14(%rcx), %ecx
subl %ecx, %eax
subl %eax, %edi
leaq 0x3ec64(%rip), %rax     # 0x441f8
movq (%rax), %rsi
callq 0xc7b0
movq -0x180(%rbp), %rsi
movq %rax, %rdx
movl $0x170, %edi            # imm = 0x170
callq 0xbef0
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x3c30
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x55de
cmpl $0x0, -0x18(%rbp)
jne 0x55de
jmp 0x55fd
leaq 0x29add(%rip), %rdi     # 0x2f0c2
leaq 0x29aa8(%rip), %rsi     # 0x2f094
movl $0x217, %edx            # imm = 0x217
leaq 0x29ae1(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movb 0x1b(%rax), %al
shrb %al
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x562e
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x3290
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x251c0
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
cmpl $0x0, -0x14(%rbp)
jne 0x565f
cmpl $0x0, -0x18(%rbp)
jne 0x565f
jmp 0x567e
leaq 0x29a5c(%rip), %rdi     # 0x2f0c2
leaq 0x29a27(%rip), %rsi     # 0x2f094
movl $0x21f, %edx            # imm = 0x21F
leaq 0x29a60(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movzwl 0x18(%rax), %eax
cmpl $0x2, %eax
jne 0x56a0
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movl 0x1c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x1c(%rax)
movq -0x10(%rbp), %rax
movl (%rax), %edi
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
xorl %eax, %eax
movl %eax, %edx
movq %rdx, %rsi
callq 0x5a70
movq %rax, -0x28(%rbp)
jmp 0x56df
leaq 0x29a10(%rip), %rdi     # 0x2f0d7
leaq 0x299c6(%rip), %rsi     # 0x2f094
movl $0x224, %edx            # imm = 0x224
leaq 0x299ff(%rip), %rcx     # 0x2f0d9
callq 0x30c0
movq -0x28(%rbp), %rax
movq -0x10(%rbp), %rcx
movq %rax, 0x20(%rcx)
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
nopl (%rax)