// File: /workspace/github_c_makefile_star2_O3/Oric4ever[P]lcc65/6502/build/../src/expr.c
// Function: prefix
static Tree prefix() {
	Tree p;

	switch (t) {
	case '*':
		t = gettok();
		p = pointer(prefix());
		if (isptr(p->type) && (isfunc(p->type->type) || isarray(p->type->type))) {
			p = retype(p, p->type->type);
			break;
		}
		if (YYnull)
			p = nullcheck(p);
		p = rvalue(p);
		break;
	case '&':
		t = gettok();
		p = prefix();
		if (isarray(p->type) || isfunc(p->type))
			p = retype(p, ptr(p->type));
		else
			p = lvalue(p);
		if (isaddrop(p->op))
			if (p->u.sym->sclass == REGISTER)
				error("invalid operand of unary &; `%s' is declared register\n",
					p->u.sym->name);
			else
				p->u.sym->addressed = 1;
		break;
	case '+':
		t = gettok();
		p = pointer(prefix());
		if (isarith(p->type))
			p = cast(p, promote(p->type));
		else
			typeerror(ADD, p, 0);
		break;
	case '-':
		t = gettok();
		p = pointer(prefix());
		if (isarith(p->type)) {
			p = cast(p, promote(p->type));
			if (isunsigned(p->type)) {
				warning("unsigned operand of unary -\n");
				p = cast(simplify(NEG+I, inttype, cast(p, inttype), 0), unsignedtype);
			} else
				p = simplify(NEG + ttob(p->type), p->type, p, 0);
		} else
			typeerror(SUB, p, 0);
		break;
	case '~':
		t = gettok();
		p = pointer(prefix());
		if (isint(p->type)) {
			Type ty = promote(p->type);
			p = simplify(BCOM, ty, cast(p, ty), 0);
		} else
			typeerror(BCOM, p, 0);
		break;
	case '!':
		t = gettok();
		p = pointer(prefix());
		if (isscalar(p->type))
			p = simplify(NOT, inttype, cond(p), 0);
		else
			typeerror(NOT, p, 0);
		break;
	case INCR: case DECR: {
		Opcode op = t;
		t = gettok();
		p = incr(op, pointer(prefix()), constnode(1, inttype));
		break;
		}
	case SIZEOF: {
		Type ty;
		t = gettok();
		p = 0;
		if (t == '(') {
			t = gettok();
			if (kind[t] == CHAR || t == ID
			&& tsym && tsym->sclass == TYPEDEF) {
				ty = typename();
				expect(')');
			} else if (t == SCON) {
				ty = tsym->type;
				t = gettok();
				expect(')');
			} else
				p = postfix(expr(')'));
		} else if (t == SCON) {
			ty = tsym->type;
			t = gettok();
		} else
			p = prefix();
		if (p)
			ty = p->type;
		if (isfunc(ty) || ty->size == 0)
			error("invalid type argument `%t' to `sizeof'\n", ty);
		else if (p && p->op == FIELD)
			error("`sizeof' applied to a bit field\n");
		p = constnode(ty->size, unsignedtype);
		break;
		}
	case '(':
		t = gettok();
		if (kind[t] == CHAR || t == ID
		&& tsym && tsym->sclass == TYPEDEF) {
			Type ty, ty1 = typename();
			ty = unqual(ty1);
			if (isenum(ty)) {
				Type ty2 = ty->type;
				if (isconst(ty1))
					ty2 = qual(CONST, ty2);
				if (isvolatile(ty1))
					ty2 = qual(VOLATILE, ty2);
				ty1 = ty2;
				ty = ty->type;
			}
			expect(')');
			if (isstruct(ty) && t == '{') {
				Symbol t1 = temporary(AUTO, ty);
				if (Aflag >= 2)
					warning("non-ANSI constructor for `%t'\n", ty);
				p = tree(RIGHT, ty1, structexp(ty, t1), idnode(t1));
				break;
			}
			p = pointer(prefix());
			if ((isarith(p->type) || isenum(p->type)) && isarith(ty)
			|| isptr(ty) && (isptr(p->type) || isint(p->type) || isenum(p->type)))
				p = cast(p, ty);
			else if (isint(ty) &&  isptr(p->type)) {
				if (Aflag >= 1 && ty->size < p->type->size)
					warning("conversion from `%t' to `%t' is compiler-dependent\n",
						p->type, ty);
				p = cast(p, ty);
			} else if (ty != voidtype) {
				error("cast from `%t' to `%t' is illegal\n",
					p->type, ty1);
				ty1 = inttype;
			}
			p = retype(p, ty1);
			if (/* ty != ty1 && generic(p->op) == CNST
			|| */ generic(p->op) == INDIR)
				p = tree(RIGHT, ty, 0, p);
		} else
			p = postfix(expr(')'));
		break;
	default:
		p = postfix(primary());
	}
	return p;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
leaq 0x214a5(%rip), %r15     # 0x2c9e0
movl (%r15), %r14d
leal -0x20(%r14), %eax
cmpl $0x10, %eax
ja 0xb590
leaq 0x138b2(%rip), %rcx     # 0x1ee00
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x213f2(%rip), %r14     # 0x2c950
movq (%r14), %rax
movq 0x20(%rax), %rdi
callq 0x1a1c9
leal 0x10(%rax), %edi
movq (%r14), %rax
movq 0x20(%rax), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x179e5
movq %rax, %rbx
movq (%r14), %rax
movq 0x48(%rax), %rax
movq %rax, 0x28(%rbx)
jmp 0xbce0
cmpl $0x41, %r14d
je 0xb9f9
cmpl $0x7e, %r14d
jne 0xb63c
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq %rax, %r14
movq 0x8(%rax), %rdi
movl (%rdi), %eax
cmpl $0xf, %eax
jb 0xbab4
movq 0x10(%rdi), %rax
movl (%rax), %eax
cmpl $0x2, %eax
ja 0xbab9
jmp 0xbae1
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq %rax, %rbx
leaq 0x2799a(%rip), %rax     # 0x32f98
movq (%rax), %rsi
movl $0x1, %edi
callq 0x908f
leaq 0x1db4e(%rip), %rcx     # 0x29160
leaq 0x138d7(%rip), %rdx     # 0x1eef0
movl (%rdx,%r14,4), %edi
movq %rbx, %rsi
movq %rax, %rdx
callq *(%rcx,%r14,8)
movl $0x30, %edi
movq %rbx, %rsi
movq %rax, %rdx
popq %rbx
popq %r14
popq %r15
jmp 0x8cee
leaq 0x13ea8(%rip), %rdi     # 0x1f4eb
xorl %eax, %eax
callq 0x974c
leaq 0x27947(%rip), %rax     # 0x32f98
movq (%rax), %rsi
xorl %edi, %edi
callq 0x908f
jmp 0xbcdd
leaq 0x212e9(%rip), %rbx     # 0x2c950
movq (%rbx), %rax
movq 0x20(%rax), %rcx
movq 0x48(%rax), %rdi
movl 0x8(%rcx), %esi
callq 0x16b50
movq (%rbx), %rcx
movq %rax, 0x48(%rcx)
movq 0x20(%rcx), %rdi
movq %rax, %rsi
callq 0x16dcc
movq %rax, (%rbx)
movq 0x50(%rax), %rdi
testq %rdi, %rdi
jne 0xbcd8
movq 0x20(%rax), %rsi
movl $0x51, %edi
movl $0x3, %edx
callq 0x17456
movq %rax, %rdi
movq (%rbx), %rax
movq %rdi, 0x50(%rax)
jmp 0xbcd8
callq 0xe195
movl %eax, (%r15)
movl %eax, %ecx
leaq 0x1deb0(%rip), %rdx     # 0x29580
cmpb $0x3, (%rdx,%rcx)
jne 0xba67
callq 0x6b23
movq %rax, %r14
movl (%rax), %ecx
movl %ecx, %eax
movq %r14, %rbx
cmpl $0xf, %ecx
jb 0xb6ff
movq 0x10(%r14), %rbx
movl (%rbx), %eax
cmpl $0xf, %eax
jb 0xb6ff
movq 0x10(%rbx), %rax
movl (%rax), %eax
cmpl $0xd, %eax
jne 0xb740
movq 0x10(%rbx), %rax
movl %ecx, %edx
orl $0x10, %edx
cmpl $0x1f, %edx
jne 0xb722
movl $0xf, %edi
movq %rax, %rsi
callq 0x18e51
movl (%r14), %ecx
cmpl $0x1f, %ecx
je 0xb72c
cmpl $0x10, %ecx
jne 0xb739
movl $0x10, %edi
movq %rax, %rsi
callq 0x18e51
movq 0x10(%rbx), %rbx
movq %rax, %r14
movl $0x29, %edi
callq 0x9869
movl (%rbx), %eax
cmpl $0xf, %eax
jb 0xb757
movq 0x10(%rbx), %rax
movl (%rax), %eax
cmpl $0x9, %eax
je 0xb765
cmpl $0xa, %eax
jne 0xbbe5
cmpl $0x7b, (%r15)
jne 0xbbe5
movl $0x43, %edi
movq %rbx, %rsi
callq 0x176c4
movq %rax, %r15
leaq 0x212d2(%rip), %rax     # 0x2ca58
cmpl $0x2, (%rax)
jl 0xb79c
leaq 0x13b73(%rip), %rdi     # 0x1f305
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9bfd
movq %rbx, %rdi
movq %r15, %rsi
callq 0xdaab
movq %rax, %rbx
movq %r15, %rdi
callq 0x9d8b
movl $0x2a0, %edi            # imm = 0x2A0
movq %r14, %rsi
movq %rbx, %rdx
movq %rax, %rcx
jmp 0xbfb0
leaq 0x21184(%rip), %rbx     # 0x2c950
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xbaeb
leaq 0x21255(%rip), %rax     # 0x2ca34
cmpl $0x0, (%rax)
je 0xb7fa
leaq 0x2114d(%rip), %rax     # 0x2c938
movq (%rax), %rsi
movq 0x8(%rax), %rdx
callq 0x1778e
movq (%rbx), %rdi
movzbl 0x1a(%rdi), %eax
cmpl $0x53, %eax
je 0xbcc3
cmpl $0xd, %eax
jne 0xbcd8
movl 0x48(%rdi), %edi
leaq 0x2777e(%rip), %rax     # 0x32f98
movq (%rax), %rsi
jmp 0xb656
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq %rax, %r14
movq 0x8(%rax), %rdi
movl (%rdi), %eax
cmpl $0xf, %eax
jb 0xb84b
movq 0x10(%rdi), %rax
movl (%rax), %eax
cmpl $0x6, %eax
ja 0xbaa0
callq 0xac7b
movq %r14, %rdi
movq %rax, %rsi
jmp 0xb99c
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rbx
movq 0x8(%rax), %rdi
movl (%rdi), %eax
cmpl $0xf, %eax
jb 0xb885
movq 0x10(%rdi), %rax
movl (%rax), %eax
cmpl $0xc, %eax
je 0xb893
cmpl $0xb, %eax
jne 0xbc41
callq 0x188cc
movq %rbx, %rdi
movq %rax, %rsi
callq 0x17b29
jmp 0xbc49
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq %rax, %r14
movq 0x8(%rax), %rcx
movl (%rcx), %eax
cmpl $0xf, %eax
jb 0xb8d1
movq 0x10(%rcx), %rax
movl (%rax), %eax
cmpl $0x8, %eax
jb 0xb8df
cmpl $0xd, %eax
jne 0xbc8d
leaq 0x276b2(%rip), %rax     # 0x32f98
movq (%rax), %rbx
movq %r14, %rdi
callq 0xab01
movl $0x270, %edi            # imm = 0x270
jmp 0xbad6
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq %rax, %r14
movq 0x8(%rax), %rdi
movl (%rdi), %eax
cmpl $0xf, %eax
jb 0xb924
movq 0x10(%rdi), %rax
movl (%rax), %eax
cmpl $0x6, %eax
ja 0xbaaa
callq 0xac7b
movq %r14, %rdi
movq %rax, %rsi
callq 0xa2f7
movq %rax, %rbx
movq 0x8(%rax), %rdi
movl (%rdi), %eax
cmpl $0xf, %eax
jb 0xb951
movq 0x10(%rdi), %rax
movl (%rax), %eax
cmpl $0x6, %eax
jne 0xbca5
leaq 0x1393e(%rip), %rdi     # 0x1f29f
xorl %eax, %eax
callq 0x9bfd
leaq 0x27629(%rip), %rax     # 0x32f98
movq (%rax), %r14
movq %rbx, %rdi
movq %r14, %rsi
callq 0xa2f7
movl $0xc5, %edi
movq %r14, %rsi
movq %rax, %rdx
xorl %ecx, %ecx
callq 0x12443
leaq 0x27642(%rip), %rcx     # 0x32fd8
movq (%rcx), %rsi
movq %rax, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xa2f7
callq 0xe195
movl %eax, (%r15)
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq 0x8(%rax), %rcx
movl (%rcx), %edx
cmpl $0xf, %edx
jb 0xb9cc
movq 0x10(%rcx), %rdx
movl (%rdx), %edx
cmpl $0x7, %edx
jne 0xba45
movq 0x10(%rcx), %rsi
movl (%rsi), %ecx
cmpl $0xf, %ecx
jb 0xb9e2
movq 0x10(%rsi), %rcx
movl (%rcx), %ecx
cmpl $0xb, %ecx
je 0xb9ec
cmpl $0xc, %ecx
jne 0xba45
movq %rax, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0x17b29
callq 0xe195
movl %eax, (%r15)
cmpl $0x24, %eax
je 0xbc18
cmpl $0x28, %eax
jne 0xbc37
callq 0xe195
movl %eax, (%r15)
movl %eax, %ecx
leaq 0x1db5c(%rip), %rdx     # 0x29580
cmpb $0x3, (%rdx,%rcx)
jne 0xbd60
callq 0x6b23
movq %rax, %rbx
movl $0x29, %edi
callq 0x9869
jmp 0xbc2e
leaq 0x21014(%rip), %rcx     # 0x2ca60
cmpq $0x0, (%rcx)
je 0xba5a
movq %rax, %rdi
callq 0xbfba
movq %rax, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xaaaa
cmpl $0x20, %eax
sete %cl
leaq 0x20edc(%rip), %rax     # 0x2c950
movq (%rax), %rax
testq %rax, %rax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0xba8e
cmpb $0x53, 0x1a(%rax)
je 0xb6da
movl $0x29, %edi
callq 0xad94
movq %rax, %rdi
jmp 0xbceb
movl $0x130, %edi            # imm = 0x130
jmp 0xbc92
movl $0x140, %edi            # imm = 0x140
jmp 0xbc92
cmpl $0x3, %eax
jb 0xbae1
cmpl $0x6, %eax
ja 0xbae1
callq 0xac7b
movq %rax, %rbx
movq %r14, %rdi
movq %rax, %rsi
callq 0xa2f7
movl $0x190, %edi            # imm = 0x190
movq %rbx, %rsi
movq %rax, %rdx
jmp 0xbcb7
movl $0x190, %edi            # imm = 0x190
jmp 0xbc92
leaq 0x20e56(%rip), %rax     # 0x2c948
movq (%rax), %rdi
leaq 0x24234(%rip), %rax     # 0x2fd30
xorl %edx, %edx
cmpl $0x5, (%rax)
setl %dl
leaq 0x1e7dd(%rip), %rsi     # 0x2a2e8
callq 0x172de
movq %rax, %rbx
leaq 0x20e1e(%rip), %r14     # 0x2c938
movups (%r14), %xmm0
movups %xmm0, 0x28(%rax)
callq 0xe195
movl %eax, (%r15)
cmpl $0x28, %eax
jne 0xbcf5
movb $0x4a, 0x1a(%rbx)
leaq 0x2745a(%rip), %rax     # 0x32f98
movq (%rax), %rdi
xorl %esi, %esi
callq 0x18f4f
movq %rax, 0x20(%rbx)
leaq 0x20f05(%rip), %rax     # 0x2ca58
cmpl $0x0, (%rax)
jle 0xbb66
leaq 0x12880(%rip), %rdi     # 0x1e3df
xorl %eax, %eax
callq 0x9bfd
movq %rbx, %rdi
callq 0x1a458
movq 0x10(%rbx), %rdi
leaq 0x1e34f(%rip), %rax     # 0x29ec8
movq (%rax), %rsi
callq 0x1728e
testq %rax, %rax
je 0xbdf0
movb 0x1b(%rax), %dl
andb $0x1, %dl
movb 0x1b(%rbx), %cl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x1b(%rbx)
movb 0x1b(%rax), %dl
andb $0x2, %dl
andb $-0x3, %cl
orb %dl, %cl
movb %cl, 0x1b(%rbx)
movb 0x1b(%rax), %dl
andb $0x4, %dl
andb $-0x5, %cl
orb %dl, %cl
movb %cl, 0x1b(%rbx)
movb 0x1b(%rax), %dl
andb $0x8, %dl
andb $-0x9, %cl
orb %dl, %cl
movb %cl, 0x1b(%rbx)
movb 0x1b(%rax), %dl
andb $0x10, %dl
andb $-0x11, %cl
orb %dl, %cl
movb %cl, 0x1b(%rbx)
movb 0x1b(%rax), %al
andb $0x20, %al
andb $-0x21, %cl
orb %al, %cl
movb %cl, 0x1b(%rbx)
jmp 0xbe20
callq 0xb52f
movq %rax, %rdi
callq 0xac23
movq %rax, %r15
movq 0x8(%rax), %rsi
movl (%rsi), %eax
cmpl $0xf, %eax
jb 0xbd2d
movq 0x10(%rsi), %rcx
movl (%rcx), %ecx
cmpl $0x7, %ecx
jae 0xbd34
jmp 0xbd39
leaq 0x20d31(%rip), %rax     # 0x2c950
movq (%rax), %rax
movq 0x20(%rax), %rbx
callq 0xe195
movl %eax, (%r15)
movb $0x1, %cl
xorl %eax, %eax
jmp 0xbe84
callq 0xb52f
jmp 0xbe73
movq %rbx, %rdi
callq 0xb318
movq %rax, %r14
movl $0xfffffef9, %eax       # imm = 0xFFFFFEF9
addl (%r14), %eax
cmpl $0x20, %eax
ja 0xbc9c
movabsq $0x100010001, %rcx      # imm = 0x100010001
btq %rax, %rcx
jae 0xbc9c
movq 0x28(%r14), %rax
cmpb $0x4e, 0x1a(%rax)
jne 0xbc87
movq 0x10(%rax), %rsi
leaq 0x135ea(%rip), %rdi     # 0x1f268
xorl %eax, %eax
callq 0x974c
jmp 0xbc9c
orb $0x10, 0x1b(%rax)
jmp 0xbc9c
movl $0x270, %edi            # imm = 0x270
movq %r14, %rsi
xorl %edx, %edx
callq 0x9016
movq %r14, %rax
popq %rbx
popq %r14
popq %r15
retq
callq 0x1a1c9
leal 0xc0(%rax), %edi
movq 0x8(%rbx), %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
popq %rbx
popq %r14
popq %r15
jmp 0x12443
movq 0x10(%rdi), %rsi
leaq 0x137fe(%rip), %rdi     # 0x1f4cc
xorl %eax, %eax
callq 0x974c
movq (%rbx), %rdi
callq 0x9d8b
movq %rax, %rbx
callq 0xe195
movl %eax, (%r15)
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xc0b4
movq 0x10(%rbx), %rsi
leaq 0x137b0(%rip), %rdi     # 0x1f4b0
xorl %eax, %eax
callq 0x974c
movb $0x43, 0x1a(%rbx)
leaq 0x27286(%rip), %rax     # 0x32f98
movq (%rax), %rax
movq %rax, 0x20(%rbx)
cmpw $0x3, 0x18(%rbx)
jne 0xbd93
movq %rbx, %rdi
callq 0x1a458
jmp 0xbe20
movl %eax, %ecx
cmpl $0x7, %eax
jb 0xbd39
cmpl $0xd, %ecx
jne 0xbda0
movl (%rbx), %ecx
movl %ecx, %edx
cmpl $0xf, %ecx
jb 0xbd48
movq 0x10(%rbx), %rdx
movl (%rdx), %edx
cmpl $0x7, %edx
jae 0xbda2
movq %r15, %rdi
movq %rbx, %rsi
callq 0xa2f7
movq %rax, %r15
jmp 0xbf87
cmpl $0x20, %eax
sete %dl
leaq 0x20be3(%rip), %rcx     # 0x2c950
movq (%rcx), %rcx
testq %rcx, %rcx
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0xbe4b
cmpb $0x53, 0x1a(%rcx)
je 0xba2e
jmp 0xbe61
movq %rbx, %rdi
callq 0x343c
jmp 0xbe20
movl (%rbx), %ecx
movl %ecx, %edx
cmpl $0xf, %ecx
jb 0xbdaf
movq 0x10(%rbx), %rdx
movl (%rdx), %edx
cmpl $0x7, %edx
jne 0xbf02
cmpl $0xf, %eax
jb 0xbee0
movq 0x10(%rsi), %rdx
movl (%rdx), %edx
cmpl $0x7, %edx
je 0xbd4d
cmpl $0x2, %edx
jbe 0xbde5
cmpl $0x7, %edx
jb 0xbd4d
movl %eax, %edx
cmpl $0xf, %eax
jb 0xbef9
movq 0x10(%rsi), %rdx
movl (%rdx), %edx
jmp 0xbef9
movq %rbx, %r15
addq $0x28, %r15
movq 0x10(%rbx), %rdi
leaq 0x1e0c6(%rip), %rsi     # 0x29ec8
movl $0x1, %edx
callq 0x172de
movups (%r15), %xmm0
movups %xmm0, 0x28(%rax)
movq 0x20(%rbx), %rcx
movq %rcx, 0x20(%rax)
movb $0x4a, 0x1a(%rax)
leaq 0x20c0d(%rip), %rax     # 0x2ca34
cmpl $0x0, (%rax)
je 0xbe3b
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %rbx, %rdi
callq 0x1778e
movq %rbx, %rdi
callq 0x9d8b
movq %rax, %rbx
jmp 0xbce8
cmpl $0x24, %eax
jne 0xbe61
movq 0x20(%rcx), %rbx
callq 0xe195
movl %eax, (%r15)
jmp 0xba36
movl $0x29, %edi
callq 0xad94
movq %rax, %rdi
callq 0xc0b4
testq %rax, %rax
je 0xbe80
movq 0x8(%rax), %rbx
xorl %ecx, %ecx
jmp 0xbe84
movb $0x1, %cl
xorl %eax, %eax
movl (%rbx), %edx
cmpl $0xf, %edx
jb 0xbe91
movq 0x10(%rbx), %rdx
movl (%rdx), %edx
cmpl $0xb, %edx
je 0xbeb8
cmpl $0x0, 0x8(%rbx)
je 0xbeb8
testb %cl, %cl
jne 0xbec9
cmpl $0x2b0, (%rax)          # imm = 0x2B0
jne 0xbec9
leaq 0x13435(%rip), %rdi     # 0x1f2e4
xorl %eax, %eax
callq 0x974c
jmp 0xbec9
leaq 0x133fd(%rip), %rdi     # 0x1f2bc
movq %rbx, %rsi
xorl %eax, %eax
callq 0x974c
movl 0x8(%rbx), %edi
leaq 0x27105(%rip), %rax     # 0x32fd8
movq (%rax), %rsi
popq %rbx
popq %r14
popq %r15
jmp 0x908f
cmpl $0x7, %eax
je 0xbd4d
cmpl $0x2, %eax
jbe 0xbf02
movl %eax, %edx
cmpl $0x7, %eax
jb 0xbd4d
cmpl $0xd, %edx
je 0xbd4d
cmpl $0xf, %ecx
jb 0xbf14
movq 0x10(%rbx), %rcx
movl (%rcx), %ecx
cmpl $0x2, %ecx
ja 0xbf19
jmp 0xbf60
cmpl $0x3, %ecx
jb 0xbf60
cmpl $0x6, %ecx
ja 0xbf60
cmpl $0xf, %eax
jb 0xbf29
movq 0x10(%rsi), %rax
movl (%rax), %eax
cmpl $0x7, %eax
jne 0xbf60
leaq 0x20b23(%rip), %rax     # 0x2ca58
cmpl $0x0, (%rax)
jle 0xbd4d
movl 0x8(%rbx), %eax
cmpl 0x8(%rsi), %eax
jge 0xbd4d
leaq 0x13229(%rip), %rdi     # 0x1f17a
movq %rbx, %rdx
xorl %eax, %eax
callq 0x9bfd
jmp 0xbd4d
leaq 0x27079(%rip), %rax     # 0x32fe0
cmpq (%rax), %rbx
je 0xbf87
leaq 0x133b1(%rip), %rdi     # 0x1f324
movq %r14, %rdx
xorl %eax, %eax
callq 0x974c
leaq 0x27014(%rip), %rax     # 0x32f98
movq (%rax), %r14
movq %r15, %rdi
movq %r14, %rsi
callq 0x17b29
movq %rax, %r14
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x40, %eax
jne 0xbc9c
movl $0x2a0, %edi            # imm = 0x2A0
movq %rbx, %rsi
xorl %edx, %edx
movq %r14, %rcx
popq %rbx
popq %r14
popq %r15
jmp 0x179e5