// File: /workspace/github_c_makefile_star2_O3/Oric4ever[P]lcc65/6502/build/../src/decl.c
// Function: type
static Type type(int lev, int *sclass) {
	int cls, cons, *p, sign, size, tt, type, vol;
	Type ty = 0;

	if (sclass == 0)
		cls = AUTO;
	else
		*sclass = 0;
	for (vol = cons = sign = size = type = 0;;) {
		p = &type;
		tt = t;
		switch (t) {
		case AUTO: case REGISTER: case STATIC:
		case EXTERN: case TYPEDEF:
			p = sclass ? sclass : &cls;
			break;
		case CONST:
			p = &cons;
			break;
		case VOLATILE:
			p = &vol;
			break;
		case SIGNED: case UNSIGNED:
			p = &sign;
			break;
		case LONG: case SHORT:
			p = &size;
			break;
		case VOID: case CHAR: case INT: case FLOAT: case DOUBLE:
			ty = tsym->type;
			break;
		case ENUM:
			ty = enumdecl();
			break;
		case STRUCT: case UNION:
			ty = structdcl(t);
			break;
		case ID:
			if (tsym && tsym->sclass == TYPEDEF
			&& type == 0 && size == 0 && sign == 0) {
				use(tsym, src);
				ty = tsym->type;
				t = tt = ty->op;
				break;
			}
			/* fall through */
		default:
			p = 0;
		}
		if (p == 0)
			break;
		if (*p)
			error("invalid use of `%k'\n", tt);
		*p = tt;
		if (t == tt)
			t = gettok();
	}
	if (sclass && *sclass
	&& (lev == 0
	||  lev == PARAM  && *sclass != REGISTER
	||  lev == GLOBAL && *sclass == REGISTER))
		error("invalid use of `%k'\n", *sclass);
	if (type == 0) {
		type = INT;
		ty = inttype;
	}
	if (size == SHORT && type != INT
	||  size == LONG  && type != INT && type != DOUBLE
	||  sign && type != INT && type != CHAR)
		error("invalid type specification\n");
	if (type == CHAR && sign)
		ty = sign == UNSIGNED ? unsignedchar : signedchar;
	else if (size == SHORT)
		ty = sign == UNSIGNED ? unsignedshort : shorttype;
	else if (size == LONG && type == DOUBLE)
		ty = longdouble;
	else if (size == LONG)
		ty = sign == UNSIGNED ? unsignedlong : longtype;
	else if (sign == UNSIGNED && type == INT)
		ty = unsignedtype;
	if (cons == CONST)
		ty = qual(CONST, ty);
	if (vol == VOLATILE)
		ty = qual(VOLATILE, ty);
	return ty;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
testq %rsi, %rsi
movl %edi, 0x38(%rsp)
movq %rsi, 0x68(%rsp)
je 0x6bb5
movl $0x0, (%rsi)
movq %rsi, %r12
jmp 0x6bc2
leaq 0x74(%rsp), %r12
movl $0x43, (%r12)
xorl %eax, %eax
leaq 0xc(%rsp), %rcx
movl %eax, (%rcx)
leaq 0x1c(%rsp), %rcx
movl %eax, (%rcx)
leaq 0x20(%rsp), %rcx
movl %eax, (%rcx)
leaq 0x34(%rsp), %rcx
movl %eax, (%rcx)
leaq 0x30(%rsp), %rcx
movl %eax, (%rcx)
leaq 0x25df2(%rip), %r13     # 0x2c9e0
movl (%r13), %edx
leaq 0x2c3bf(%rip), %rax     # 0x32fb8
movq %rax, 0x60(%rsp)
leaq 0x2c3ab(%rip), %rax     # 0x32fb0
movq %rax, 0x58(%rsp)
xorl %ebx, %ebx
movq %r12, 0x28(%rsp)
leal -0x1(%rdx), %eax
cmpl $0x1f, %eax
ja 0x6c41
leaq 0x176d8(%rip), %rcx     # 0x1e2f8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x25d20(%rip), %rax     # 0x2c950
movq (%rax), %rax
movq 0x20(%rax), %rbx
leaq 0xc(%rsp), %r14
jmp 0x76d0
leal -0x43(%rdx), %eax
cmpl $0x10, %eax
ja 0x780d
movl $0x14881, %ecx          # imm = 0x14881
btl %eax, %ecx
jae 0x6ca6
movq %r12, %r14
jmp 0x76d0
movq %rdx, 0x10(%rsp)
callq 0xe195
movl %eax, (%r13)
cmpl $0x20, %eax
jne 0x6d74
leaq 0x25ccb(%rip), %rax     # 0x2c948
movq (%rax), %r14
leaq 0x25cb1(%rip), %rax     # 0x2c938
movq (%rax), %rbp
movq 0x8(%rax), %r15
callq 0xe195
movl %eax, (%r13)
jmp 0x6d87
leaq 0x1c(%rsp), %r14
jmp 0x76d0
cmpl $0xd, %eax
jne 0x780d
leaq 0x20(%rsp), %r14
jmp 0x76d0
leaq 0x30(%rsp), %r14
jmp 0x76d0
callq 0xe195
movl %eax, (%r13)
cmpl $0x20, %eax
jne 0x732e
leaq 0x25c6c(%rip), %rax     # 0x2c948
movq (%rax), %r14
leaq 0x25c52(%rip), %rax     # 0x2c938
movq (%rax), %rbp
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
callq 0xe195
movl %eax, (%r13)
jmp 0x7341
leaq 0x25c49(%rip), %rax     # 0x2c950
movq (%rax), %rdi
testq %rdi, %rdi
je 0x780d
cmpb $0x53, 0x1a(%rdi)
jne 0x780d
cmpl $0x0, 0xc(%rsp)
jne 0x780d
cmpl $0x0, 0x1c(%rsp)
jne 0x780d
cmpl $0x0, 0x20(%rsp)
jne 0x780d
leaq 0x25bf3(%rip), %rax     # 0x2c938
movq (%rax), %rsi
movq 0x8(%rax), %rdx
callq 0x1778e
leaq 0x25bf8(%rip), %rax     # 0x2c950
movq (%rax), %rax
movq 0x20(%rax), %rbx
movl (%rbx), %edx
movl %edx, (%r13)
jmp 0x6c37
leaq 0x34(%rsp), %r14
jmp 0x76d0
leaq 0x18e1a(%rip), %rdi     # 0x1fb95
callq 0x16b3d
movq %rax, %r14
movl (%r13), %eax
cmpl $0x7b, %eax
movq 0x10(%rsp), %rdi
jne 0x7067
movq %r14, %rsi
callq 0x19794
movq %rax, %rbx
cmpb $0x0, (%r14)
je 0x6db2
movq 0x18(%rbx), %rax
movq %rbp, 0x28(%rax)
movq %r15, 0x30(%rax)
callq 0xe195
movl %eax, (%r13)
movl %eax, %ecx
leaq 0x227bc(%rip), %rdx     # 0x29580
movb (%rdx,%rcx), %cl
cmpb $0x3, %cl
jne 0x7570
xorl %r12d, %r12d
cmpb $0x3, %cl
je 0x6dfe
cmpl $0x20, %eax
jne 0x70ed
leaq 0x25b68(%rip), %rax     # 0x2c950
movq (%rax), %rax
testq %rax, %rax
je 0x70ed
cmpb $0x53, 0x1a(%rax)
jne 0x70ed
xorl %edi, %edi
xorl %esi, %esi
callq 0x6b8e
movq %rax, %rbp
movq $0x0, 0x40(%rsp)
movq %rbp, %rdi
leaq 0x40(%rsp), %rsi
movl $0x1, %edx
callq 0x79a0
movq %rax, %r15
testq %rax, %rax
cmoveq %rbp, %r15
leaq 0x25c22(%rip), %rax     # 0x2ca58
cmpl $0x0, (%rax)
jle 0x6e55
movq %r15, %rdi
callq 0x195fb
testl %eax, %eax
jne 0x6e55
leaq 0x17591(%rip), %rdi     # 0x1e3df
xorl %eax, %eax
callq 0x9bfd
movq 0x40(%rsp), %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x1967e
movq %rax, %r14
cmpl $0x3a, (%r13)
jne 0x6f4e
movl (%r15), %eax
cmpl $0xf, %eax
jb 0x6e8d
movq 0x10(%r15), %r15
movl (%r15), %eax
cmpl $0xf, %eax
jb 0x6e8d
movq 0x10(%r15), %rax
movl (%rax), %eax
cmpl $0xd, %eax
jne 0x6e96
movq 0x10(%r15), %r15
leaq 0x2c0fb(%rip), %rax     # 0x32f98
cmpq (%rax), %r15
je 0x6ece
leaq 0x2c12f(%rip), %rax     # 0x32fd8
cmpq (%rax), %r15
je 0x6ece
movq 0x8(%r14), %rsi
leaq 0x17b28(%rip), %rdi     # 0x1e9e1
xorl %eax, %eax
callq 0x974c
leaq 0x2c0d1(%rip), %rax     # 0x32f98
movq (%rax), %rax
movq %rax, 0x8(%r14)
callq 0xe195
movl %eax, (%r13)
xorl %edi, %edi
xorl %esi, %esi
callq 0xb2a5
movw %ax, 0x16(%r14)
movswl %ax, %esi
testl %esi, %esi
js 0x6f72
leaq 0x2c0a1(%rip), %rcx     # 0x32f98
movq (%rcx), %rcx
movl 0x8(%rcx), %ecx
shll $0x3, %ecx
cmpl %ecx, %esi
jg 0x6f72
movl %eax, %ecx
shll $0x10, %ecx
sete %cl
movq 0x40(%rsp), %rdx
testq %rdx, %rdx
setne %sil
andb %cl, %sil
cmpb $0x1, %sil
jne 0x6f90
movq 0x8(%r14), %rsi
leaq 0x17afb(%rip), %rdi     # 0x1ea27
xorl %eax, %eax
callq 0x9bfd
movl $0x1, %edi
callq 0x17522
movl %eax, %edi
callq 0x16d50
movq %rax, (%r14)
movzwl 0x16(%r14), %eax
jmp 0x6f90
movq 0x40(%rsp), %rdx
movq 0x8(%r14), %rsi
testq %rdx, %rdx
je 0x6f99
cmpl $0x0, 0x8(%rsi)
jne 0x6fbe
leaq 0x17b46(%rip), %rdi     # 0x1eaaf
xorl %eax, %eax
callq 0x974c
jmp 0x6fbe
leaq 0x17a8b(%rip), %rdi     # 0x1ea04
xorl %eax, %eax
callq 0x974c
leaq 0x2c011(%rip), %rax     # 0x32f98
movq (%rax), %rax
movl 0x8(%rax), %eax
shll $0x3, %eax
incl %eax
movw %ax, 0x16(%r14)
jmp 0x6fbe
movl (%rsi), %eax
cmpl $0xf, %eax
jb 0x6fa6
movq 0x10(%rsi), %rax
movl (%rax), %eax
cmpl $0x9, %eax
je 0x7007
cmpl $0xa, %eax
je 0x7007
leaq 0x17ae4(%rip), %rdi     # 0x1ea9b
xorl %eax, %eax
callq 0x974c
incl %r12d
leaq 0x25a90(%rip), %rax     # 0x2ca58
cmpl $0x2, (%rax)
jl 0x6fed
cmpl $0x80, %r12d
jne 0x6fed
leaq 0x17af4(%rip), %rdi     # 0x1ead1
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9bfd
movl $0x80, %r12d
cmpl $0x2c, (%r13)
jne 0x7043
callq 0xe195
movl %eax, (%r13)
testl %eax, %eax
jne 0x6e0a
jmp 0x7043
leaq 0x25a4a(%rip), %rax     # 0x2ca58
cmpl $0x2, (%rax)
jl 0x7028
leaq 0x17a3b(%rip), %rdi     # 0x1ea55
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9bfd
movq 0x8(%r14), %rsi
cmpl $0x0, 0x8(%rsi)
jne 0x703c
leaq 0x17a47(%rip), %rdi     # 0x1ea7c
xorl %eax, %eax
callq 0x974c
movq $0x0, (%r14)
movl $0x3b, %edi
leaq 0x220fa(%rip), %rsi     # 0x29149
callq 0x9bc5
movl (%r13), %eax
leaq 0x22521(%rip), %rcx     # 0x29580
movb (%rcx,%rax), %cl
jmp 0x6dd3
cmpb $0x0, (%r14)
je 0x75be
leaq 0x23698(%rip), %rax     # 0x2a710
movq (%rax), %rsi
movq %r14, %rdi
callq 0x1728e
movq 0x10(%rsp), %rdx
testq %rax, %rax
je 0x75b8
movq %rax, %rbx
movq 0x20(%rax), %rax
cmpl %edx, (%rax)
jne 0x75b8
cmpl $0x3b, (%r13)
jne 0x70c5
movzwl 0x18(%rbx), %eax
leaq 0x28c7e(%rip), %rcx     # 0x2fd30
cmpl %eax, (%rcx)
jle 0x70c5
movl %edx, %edi
movq %r14, %rsi
callq 0x19794
movq 0x10(%rsp), %rdx
leaq 0x25968(%rip), %rax     # 0x2ca34
cmpl $0x0, (%rax)
je 0x70e4
movq %rbx, %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x1778e
movq 0x10(%rsp), %rdx
movq 0x20(%rbx), %rbx
jmp 0x6c37
movw $0x1, 0x4(%rbx)
movq 0x18(%rbx), %rdx
movq 0x58(%rdx), %rsi
testq %rsi, %rsi
je 0x764a
addq $0x58, %rdx
xorl %eax, %eax
xorl %ecx, %ecx
xorl %edi, %edi
movq 0x28(%rsp), %r12
movq 0x8(%rsi), %r8
movl 0x4(%r8), %r9d
cmpw $0x1, %r9w
adcl $0x0, %r9d
movswl %r9w, %r11d
movl (%rbx), %r9d
cmpl $0xa, %r9d
jne 0x7156
movzwl 0x16(%rsi), %r10d
xorl %edi, %edi
testw %r10w, %r10w
je 0x71ee
leaq 0x2be8f(%rip), %r11     # 0x32fd8
movq (%r11), %r11
movswl 0x4(%r11), %r11d
jmp 0x71f1
movzwl 0x16(%rsi), %r10d
testl %edi, %edi
je 0x71b6
cmpw $0x2, %r10w
jl 0x7188
movzwl %r10w, %r14d
leal (%rdi,%r14), %ebp
addl $-0x2, %ebp
leaq 0x2be60(%rip), %r14     # 0x32fd8
movq (%r14), %r14
movl 0x8(%r14), %r14d
shll $0x3, %r14d
cmpl %r14d, %ebp
jle 0x71f1
leal 0x6(%rdi), %ebp
addl $0xd, %edi
testl %ebp, %ebp
cmovnsl %ebp, %edi
sarl $0x3, %edi
movl %edi, %ebp
xorl $0x7fffffff, %ebp       # imm = 0x7FFFFFFF
cmpl %ebp, %ecx
movl $0x1, %ebp
cmovgl %ebp, %eax
movl $0x0, %r14d
cmovgl %r14d, %edi
addl %ecx, %edi
movl %edi, %ecx
testw %r10w, %r10w
je 0x71cb
leaq 0x2be15(%rip), %rdi     # 0x32fd8
movq (%rdi), %rdi
movswl 0x4(%rdi), %r11d
movl $0x80000000, %edi       # imm = 0x80000000
subl %r11d, %edi
cmpl %edi, %ecx
movl $0x1, %edi
cmovgl %edi, %eax
leal (%rcx,%r11), %edi
decl %edi
movl %r11d, %ecx
negl %ecx
andl %edi, %ecx
xorl %edi, %edi
jmp 0x71f1
xorl %r10d, %r10d
movswl 0x4(%rbx), %ebp
cmpl %ebp, %r11d
jle 0x71ff
movw %r11w, 0x4(%rbx)
movl %ecx, 0x10(%rsi)
testw %r10w, %r10w
je 0x725a
cmpl $0x1, %edi
movl %edi, %r11d
adcl $0x0, %r11d
leal -0x1(%r11), %edi
addl %r11d, %r10d
addl $-0x2, %r10d
movswl %r10w, %r10d
movswl %di, %ebp
movw %bp, 0x14(%rsi)
movw %r10w, 0x16(%rsi)
movl %r10d, %edi
subl %ebp, %edi
addl %r11d, %edi
cmpl $0xa, %r9d
jne 0x7297
leal 0x6(%rdi), %r10d
leal 0xd(%rdi), %r9d
testl %r10d, %r10d
cmovnsl %r10d, %r9d
sarl $0x3, %r9d
cmpl 0x8(%rbx), %r9d
jle 0x7297
movl %r9d, 0x8(%rbx)
jmp 0x7297
movl 0x8(%r8), %r10d
cmpl $0x9, %r9d
jne 0x728d
movl %r10d, %r9d
xorl $0x7fffffff, %r9d       # imm = 0x7FFFFFFF
cmpl %r9d, %ecx
movl $0x1, %r9d
cmovgl %r9d, %eax
movl $0x0, %r9d
cmovgl %r9d, %r10d
addl %ecx, %r10d
movl %r10d, %ecx
jmp 0x7297
cmpl 0x8(%rbx), %r10d
jle 0x7297
movl %r10d, 0x8(%rbx)
movl (%r8), %r8d
movl %r8d, %r9d
orl $0x10, %r9d
cmpl $0x1f, %r9d
jne 0x72b7
movq 0x18(%rbx), %r8
orb $0x1, 0x48(%r8)
movq 0x8(%rsi), %r8
movl (%r8), %r8d
cmpl $0x1f, %r8d
je 0x72c3
cmpl $0x10, %r8d
jne 0x72cc
movq 0x18(%rbx), %r8
orb $0x2, 0x48(%r8)
movq (%rsi), %r8
testq %r8, %r8
je 0x72da
cmpb $0x3a, (%r8)
jl 0x72e1
movq %rsi, (%rdx)
leaq 0x18(%rsi), %rdx
movq 0x18(%rsi), %rsi
testq %rsi, %rsi
jne 0x7113
movq $0x0, (%rdx)
testl %edi, %edi
je 0x7653
leal 0x6(%rdi), %edx
addl $0xd, %edi
testl %edx, %edx
cmovnsl %edx, %edi
sarl $0x3, %edi
movl %edi, %edx
xorl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
cmpl %edx, %ecx
movl $0x1, %edx
cmovgl %edx, %eax
movl $0x0, %edx
cmovgl %edx, %edi
addl %ecx, %edi
movl %edi, %ecx
jmp 0x7653
leaq 0x18860(%rip), %rdi     # 0x1fb95
callq 0x16b3d
movq %rax, %r14
movl (%r13), %eax
cmpl $0x7b, %eax
jne 0x7508
movl $0xd, %edi
movq %r14, %rsi
callq 0x19794
movq %rax, %rbx
callq 0xe195
movl %eax, (%r13)
cmpl $0x20, %eax
je 0x7381
leaq 0x1757b(%rip), %rdi     # 0x1e8ea
xorl %eax, %eax
callq 0x974c
cmpl $0x20, (%r13)
jne 0x770e
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movl $0x7f, %r12d
xorl %r15d, %r15d
movl %r12d, 0x3c(%rsp)
movq %r15, %r12
leaq 0x255aa(%rip), %rax     # 0x2c948
movq (%rax), %r15
leaq 0x255a8(%rip), %rax     # 0x2c950
movq (%rax), %rdx
testq %rdx, %rdx
je 0x73d4
movzwl 0x18(%rdx), %eax
leaq 0x28975(%rip), %rcx     # 0x2fd30
cmpl %eax, (%rcx)
jne 0x73d4
addq $0x28, %rdx
leaq 0x170fc(%rip), %rdi     # 0x1e4c6
movq %r15, %rsi
xorl %eax, %eax
callq 0x974c
leaq 0x2555d(%rip), %rax     # 0x2c938
movups (%rax), %xmm0
movaps %xmm0, 0x40(%rsp)
callq 0xe195
movl %eax, (%r13)
cmpl $0x3d, %eax
jne 0x7407
callq 0xe195
movl %eax, (%r13)
xorl %edi, %edi
xorl %esi, %esi
callq 0xb2a5
movl %eax, %ebp
jmp 0x7423
cmpl $0x7fffffff, %ebp       # imm = 0x7FFFFFFF
jne 0x7421
movq 0x10(%r14), %rsi
leaq 0x174f4(%rip), %rdi     # 0x1e90e
xorl %eax, %eax
callq 0x974c
incl %ebp
movl 0x10(%rsp), %eax
movl 0x24(%rsp), %ecx
cmpl %ecx, %ebp
cmovll %ebp, %ecx
cmpl %eax, %ebp
cmovgl %ebp, %eax
testq %r12, %r12
cmovel %ebp, %ecx
movl %ecx, 0x24(%rsp)
cmovel %ebp, %eax
movl %eax, 0x10(%rsp)
xorl %edx, %edx
leaq 0x288e1(%rip), %rax     # 0x2fd30
cmpl $0x5, (%rax)
setl %dl
movq %r15, %rdi
leaq 0x22e89(%rip), %rsi     # 0x2a2e8
callq 0x172de
movq %rax, %r14
movaps 0x40(%rsp), %xmm0
movups %xmm0, 0x28(%rax)
movq %rbx, 0x20(%rax)
movb $0xd, 0x1a(%rax)
movl %ebp, 0x48(%rax)
movq %rax, %rdi
movq %r12, %rsi
callq 0x16a18
movq %rax, %r15
leaq 0x255c8(%rip), %rax     # 0x2ca58
cmpl $0x2, (%rax)
setge %al
movl 0x3c(%rsp), %r12d
subl $0x1, %r12d
setb %cl
andb %al, %cl
cmpb $0x1, %cl
jne 0x74ba
leaq 0x1748f(%rip), %rdi     # 0x1e93f
movq %rbx, %rsi
xorl %eax, %eax
callq 0x9bfd
cmpl $0x2c, (%r13)
jne 0x7711
callq 0xe195
movl %eax, (%r13)
leaq 0x25583(%rip), %rcx     # 0x2ca58
cmpl $0x2, (%rcx)
setge %cl
cmpl $0x7d, %eax
sete %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x74fa
leaq 0x1747d(%rip), %rdi     # 0x1e96c
xorl %eax, %eax
callq 0x9bfd
movl (%r13), %eax
cmpl $0x20, %eax
je 0x738f
jmp 0x7711
leaq 0x23201(%rip), %rax     # 0x2a710
movq (%rax), %rsi
movq %r14, %rdi
callq 0x1728e
testq %rax, %rax
je 0x7611
movq %rax, %r15
movq 0x20(%rax), %rbx
cmpl $0xd, (%rbx)
jne 0x7611
cmpb $0x0, (%r14)
movl $0xd, %edx
je 0x6c37
leaq 0x254eb(%rip), %rax     # 0x2ca34
cmpl $0x0, (%rax)
je 0x6c37
movq %r15, %rdi
movq %rbp, %rsi
movq 0x10(%rsp), %rdx
callq 0x1778e
movl $0xd, %edx
movq 0x20(%r15), %rbx
jmp 0x6c37
cmpl $0x20, %eax
sete %sil
leaq 0x253d2(%rip), %rdx     # 0x2c950
movq (%rdx), %rdx
testq %rdx, %rdx
setne %dil
andb %sil, %dil
cmpb $0x1, %dil
jne 0x759b
cmpb $0x53, 0x1a(%rdx)
je 0x6dd0
leaq 0x17410(%rip), %rdi     # 0x1e9b2
movq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x974c
movq 0x28(%rsp), %r12
jmp 0x76ad
cmpb $0x0, (%r14)
jne 0x75d6
leaq 0x1740c(%rip), %rdi     # 0x1e9d1
movq 0x10(%rsp), %rsi
xorl %eax, %eax
callq 0x974c
movq 0x10(%rsp), %rdx
movl %edx, %edi
movq %r14, %rsi
callq 0x19794
movq %rax, %rbx
cmpb $0x0, (%r14)
je 0x76c6
leaq 0x25440(%rip), %rax     # 0x2ca34
cmpl $0x0, (%rax)
je 0x76c6
movq 0x18(%rbx), %rdi
movq %rbp, %rsi
movq %r15, %rdx
callq 0x1778e
jmp 0x76c6
leaq 0x17380(%rip), %rdi     # 0x1e998
movq %r14, %rsi
xorl %eax, %eax
callq 0x974c
movl $0xd, %edi
movq %r14, %rsi
callq 0x19794
movl $0xd, %edx
movq %rax, %rbx
leaq 0x2b95a(%rip), %rax     # 0x32f98
movq (%rax), %rax
movq %rax, 0x10(%rbx)
jmp 0x6c37
xorl %ecx, %ecx
xorl %eax, %eax
movq 0x28(%rsp), %r12
cmpl $0x9, (%rbx)
je 0x7662
movl 0x8(%rbx), %edx
cmpl %edx, %ecx
cmovgl %ecx, %edx
movl %edx, %ecx
movswl 0x4(%rbx), %edx
movl $0x80000000, %esi       # imm = 0x80000000
subl %edx, %esi
leal (%rcx,%rdx), %edi
decl %edi
negl %edx
andl %edi, %edx
movl %edx, 0x8(%rbx)
cmpl %esi, %ecx
jg 0x7681
testl %eax, %eax
je 0x76a5
leaq 0x17467(%rip), %rdi     # 0x1eaef
movq %rbx, %rsi
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
xorl %eax, %eax
callq 0x974c
movswl 0x4(%rbx), %eax
negl %eax
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
movl %eax, 0x8(%rbx)
movq %rbx, %rdi
callq 0x18a66
movl $0x7d, %edi
leaq 0x21a8d(%rip), %rsi     # 0x29146
callq 0x9bc5
movq 0x18(%rbx), %rax
orb $0x1, 0x1b(%rax)
leaq 0xc(%rsp), %r14
movq 0x10(%rsp), %rdx
cmpl $0x0, (%r14)
je 0x76ed
leaq 0x171dc(%rip), %rdi     # 0x1e8b9
movq %rdx, %r15
movl %r15d, %esi
xorl %eax, %eax
callq 0x974c
movq %r15, %rdx
movl %edx, (%r14)
movl (%r13), %eax
cmpl %edx, %eax
movl %eax, %edx
jne 0x6c11
callq 0xe195
movl %eax, %edx
movl %eax, (%r13)
jmp 0x6c11
xorl %r15d, %r15d
movl $0x7d, %edi
leaq 0x21a27(%rip), %rsi     # 0x29144
callq 0x9bc5
movl 0x24(%rsp), %edx
testl %edx, %edx
movl 0x10(%rsp), %ecx
js 0x773f
cmpl $0xff, %ecx
jg 0x773f
leaq 0x2b883(%rip), %rax     # 0x32fc0
jmp 0x7795
cmpl $-0x80, %edx
jl 0x7752
cmpl $0x7f, %ecx
jg 0x7752
leaq 0x2b868(%rip), %rax     # 0x32fb8
jmp 0x7795
testl %edx, %edx
js 0x776e
cmpl $0xffff, %ecx           # imm = 0xFFFF
jg 0x776e
leaq 0x2b86b(%rip), %rax     # 0x32fd0
movq (%rax), %rax
cmpl $0x1, 0x8(%rax)
jg 0x7798
cmpl $0xffff8000, %edx       # imm = 0xFFFF8000
jl 0x778e
cmpl $0x7fff, %ecx           # imm = 0x7FFF
jg 0x778e
leaq 0x2b82b(%rip), %rax     # 0x32fb0
movq (%rax), %rax
cmpl $0x1, 0x8(%rax)
jg 0x7798
leaq 0x2b803(%rip), %rax     # 0x32f98
movq (%rax), %rax
movq %rax, 0x10(%rbx)
movl 0x8(%rax), %ecx
movl %ecx, 0x8(%rbx)
movzwl 0x4(%rax), %eax
movw %ax, 0x4(%rbx)
movq %r15, %rdi
callq 0x16a95
leal 0x8(,%rax,8), %edi
leaq 0x22fb0(%rip), %rdx     # 0x2a770
movq (%rdx), %rax
movl %edi, (%rax)
movq 0x8(%rax), %rsi
movslq %edi, %rcx
addq %rsi, %rcx
cmpq 0x10(%rax), %rcx
jae 0x77db
movq %rcx, 0x8(%rax)
jmp 0x77e6
movq %rdx, %rsi
callq 0x17800
movq %rax, %rsi
movq 0x28(%rsp), %r12
movq %r15, %rdi
callq 0x16aab
movq 0x18(%rbx), %rcx
movq %rax, 0x48(%rcx)
movq 0x18(%rbx), %rax
orb $0x1, 0x1b(%rax)
movl $0xd, %edx
jmp 0x6c37
movq 0x68(%rsp), %rcx
testq %rcx, %rcx
movl 0x38(%rsp), %eax
je 0x7849
movl (%rcx), %esi
testl %esi, %esi
je 0x7849
testl %eax, %eax
je 0x783b
cmpl $0x3, %eax
je 0x7836
cmpl $0x4, %eax
jne 0x7849
cmpl $0x4e, %esi
jne 0x783b
jmp 0x7849
cmpl $0x4e, %esi
jne 0x7849
leaq 0x17077(%rip), %rdi     # 0x1e8b9
xorl %eax, %eax
callq 0x974c
movl 0xc(%rsp), %ebp
testl %ebp, %ebp
je 0x786d
movl 0x1c(%rsp), %eax
cmpl $0x4, %eax
sete %cl
cmpl $0x5, %ebp
setne %dl
movl $0x4, %r14d
testb %cl, %dl
je 0x788a
jmp 0x78be
movl $0x5, 0xc(%rsp)
leaq 0x2b71c(%rip), %rax     # 0x32f98
movq (%rax), %rbx
movl $0x5, %ebp
movl 0x1c(%rsp), %eax
xorl %edx, %edx
cmpl $0xe, %eax
jne 0x789f
cmpl $0x5, %ebp
je 0x789f
movl $0xe, %r14d
cmpl $0x2, %ebp
jne 0x78be
movl 0x20(%rsp), %ecx
testl %ecx, %ecx
sete %sil
cmpl $0x3, %ebp
sete %dil
xorb $0x1, %dl
orb %sil, %dil
orb %dl, %dil
movl %eax, %r14d
jne 0x78d3
leaq 0x17009(%rip), %rdi     # 0x1e8ce
xorl %eax, %eax
callq 0x974c
movl 0x20(%rsp), %ecx
movl %r14d, %eax
cmpl $0x3, %ebp
sete %dl
testl %ecx, %ecx
setne %sil
andb %dl, %sil
cmpb $0x1, %sil
jne 0x7900
cmpl $0x6, %ecx
jne 0x78f9
leaq 0x2b6cc(%rip), %rax     # 0x32fc0
movq %rax, 0x60(%rsp)
movq 0x60(%rsp), %rax
jmp 0x792e
cmpl $0x4, %eax
jne 0x791d
cmpl $0x6, %ecx
jne 0x7916
leaq 0x2b6bf(%rip), %rax     # 0x32fd0
movq %rax, 0x58(%rsp)
movq 0x58(%rsp), %rax
jmp 0x792e
cmpl $0x2, %ebp
jne 0x7971
cmpl $0xe, %eax
jne 0x7971
leaq 0x2b672(%rip), %rax     # 0x32fa0
movq (%rax), %rbx
cmpl $0xf, 0x34(%rsp)
jne 0x7948
movl $0xf, %edi
movq %rbx, %rsi
callq 0x18e51
movq %rax, %rbx
cmpl $0x10, 0x30(%rsp)
jne 0x795f
movl $0x10, %edi
movq %rbx, %rsi
callq 0x18e51
movq %rax, %rbx
movq %rbx, %rax
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0xe, %eax
jne 0x7984
cmpl $0x6, %ecx
jne 0x7997
leaq 0x2b646(%rip), %rax     # 0x32fc8
jmp 0x792e
xorl $0x6, %ecx
xorl $0x5, %ebp
orl %ecx, %ebp
jne 0x7931
leaq 0x2b643(%rip), %rax     # 0x32fd8
jmp 0x792e
leaq 0x2b60a(%rip), %rax     # 0x32fa8
jmp 0x792e