// File: /workspace/github_c_makefile_star2_O0/Oric4ever[P]lcc65/6502/build/../src/decl.c
// Function: fields
static void fields(Type ty) {
	int n = 0, bits, off, overflow = 0;
	Field p, *q;

	while (kind[t] == CHAR
	|| t == ID && tsym && tsym->sclass == TYPEDEF) {
		static char follow[] = { IF, CHAR, '}', 0 };
		Type ty1 = type(0, (int *)0);
		do {
			char *id = 0;
			Type fty;
			if ((fty = dclr(ty1, &id, 1)) == 0)
				fty = ty1;
			if (Aflag >= 1 && !hasproto(fty))
				warning("missing prototype\n");
			p = newfield(id, ty, fty);	/* refme */
			if (t == ':') {
				fty = unqual(fty);
				if (isenum(fty))
					fty = fty->type;
				if (fty != inttype && fty != unsignedtype) {
					error("`%t' is an illegal bit field type\n", p->type);
					p->type = inttype;
				}
				t = gettok();
				p->to = intexpr(0, 0);
				if (p->to > 8*inttype->size || p->to < 0) {
					error("`%d' is an illegal bit field size\n", p->to);
					p->to = 8*inttype->size;
				} else if (p->to == 0 && id) {
					warning("extraneous 0-width bit field `%t %s' ignored\n",
						p->type, id);
					p->name = stringd(genlabel(1));
				}
				p->to++;
			} else if (id == 0 && isstruct(p->type)) {
				if (Aflag >= 2)
					warning("non-ANSI unnamed substructure in `%t'\n", ty);
				if (p->type->size == 0)
					error("undefined size for field `%t'\n", p->type);
				p->name = 0;
				break;
			} else {
				if (id == 0)
					error("field name missing\n");
				else if (p->type->size == 0)
					error("undefined size for field `%t %s'\n", p->type, id);
			}
			n++;
			if (Aflag >= 2 && n == 128)
				warning("more than 127 fields in `%t'\n", ty);
		} while (t == ',' && (t = gettok()));
		test(';', follow);
	}
	ty->align = STRUCT_ALIGN;
	off = bits = 0;
#define add(x,n) (x > INT_MAX - (n) ? (overflow = 1, x) : x + n)
	q = &ty->u.sym->u.s.flist;
	for (p = *q; p; p = p->link) {
		int a = p->type->align ? p->type->align : 1;
		if (ty->op == UNION) {
			if (p->to)
				a = unsignedtype->align;
			bits = 0;
		} else if (bits == 0 || p->to <= 1
		|| bits - 1 + p->to - 1 > 8*unsignedtype->size) {
			if (bits)
				off = add(off, (bits + 6)/8);
			if (p->to)
				a = unsignedtype->align;
			add(off, a - 1);
			off = roundup(off, a);
			bits = 0;
		}
		if (a > ty->align)
			ty->align = a;
		p->offset = off;
		if (p->to) {
			if (bits == 0)
				bits = 1;
			p->from = bits - 1;
			p->to = p->from + p->to - 1;
			bits += p->to - p->from;
			if (ty->op == UNION && (bits + 6)/8 > ty->size)
				ty->size = (bits + 6)/8;
		} else if (ty->op == STRUCT)
			off = add(off, p->type->size);
		else if (p->type->size > ty->size)
			ty->size = p->type->size;
		if (isconst(p->type))
			ty->u.sym->u.s.cfields = 1;
		if (isvolatile(p->type))
			ty->u.sym->u.s.vfields = 1;
		if (p->name == 0 || *p->name > '9') {
			*q = p;
			q = &p->link;
		}
	}
	*q = 0;
	if (bits)
		off = add(off, (bits + 6)/8);
	if (ty->op == STRUCT)
		ty->size = off;
	else if (off > ty->size)
		ty->size = off;
	add(ty->size, ty->align - 1);
	ty->size = roundup(ty->size, ty->align);
	if (overflow) {
		error("size of `%t' exceeds %d bytes\n", ty, INT_MAX);
		ty->size = INT_MAX&(~(ty->align - 1));
	}
	checkfields(ty);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0xc(%rbp)
movl $0x0, -0x18(%rbp)
leaq 0x33e9c(%rip), %rax     # 0x3db80
movl (%rax), %eax
movl %eax, %ecx
leaq 0x2fca1(%rip), %rax     # 0x39990
movsbl (%rax,%rcx), %ecx
movb $0x1, %al
cmpl $0x3, %ecx
movb %al, -0x45(%rbp)
je 0x9d3d
xorl %eax, %eax
leaq 0x33e7a(%rip), %rcx     # 0x3db80
cmpl $0x20, (%rcx)
movb %al, -0x46(%rbp)
jne 0x9d37
xorl %eax, %eax
leaq 0x33dd9(%rip), %rcx     # 0x3daf0
cmpq $0x0, (%rcx)
movb %al, -0x46(%rbp)
je 0x9d37
leaq 0x33dc9(%rip), %rax     # 0x3daf0
movq (%rax), %rax
movzbl 0x1a(%rax), %eax
cmpl $0x53, %eax
sete %al
movb %al, -0x46(%rbp)
movb -0x46(%rbp), %al
movb %al, -0x45(%rbp)
movb -0x45(%rbp), %al
testb $0x1, %al
jne 0x9d49
jmp 0xa0d9
xorl %edi, %edi
xorl %eax, %eax
movl %eax, %esi
callq 0x7f00
movq %rax, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
movq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
movl $0x1, %edx
callq 0x82c0
movq %rax, -0x40(%rbp)
cmpq $0x0, %rax
jne 0x9d84
movq -0x30(%rbp), %rax
movq %rax, -0x40(%rbp)
leaq 0x33e9d(%rip), %rax     # 0x3dc28
cmpl $0x1, (%rax)
jl 0x9dac
movq -0x40(%rbp), %rdi
callq 0x28aa0
cmpl $0x0, %eax
jne 0x9dac
leaq 0x2567e(%rip), %rdi     # 0x2f423
movb $0x0, %al
callq 0xdba0
movq -0x38(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x28bb0
movq %rax, -0x20(%rbp)
leaq 0x33db8(%rip), %rax     # 0x3db80
cmpl $0x3a, (%rax)
jne 0x9f54
movq -0x40(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x9de8
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x9df0
movq -0x40(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpl $0xf, (%rax)
jb 0x9e0f
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
jmp 0x9e17
movq -0x40(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpl $0xd, (%rax)
jne 0x9e2c
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
leaq 0x3a3c1(%rip), %rcx     # 0x441f8
cmpq (%rcx), %rax
je 0x9e74
movq -0x40(%rbp), %rax
leaq 0x3a3f1(%rip), %rcx     # 0x44238
cmpq (%rcx), %rax
je 0x9e74
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x25bca(%rip), %rdi     # 0x2fa25
movb $0x0, %al
callq 0xd530
leaq 0x3a38f(%rip), %rax     # 0x441f8
movq (%rax), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
callq 0x15170
movl %eax, %ecx
leaq 0x33cfe(%rip), %rax     # 0x3db80
movl %ecx, (%rax)
xorl %esi, %esi
movl %esi, %edi
callq 0x10420
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x16(%rax)
movq -0x20(%rbp), %rax
movswl 0x16(%rax), %eax
leaq 0x3a351(%rip), %rcx     # 0x441f8
movq (%rcx), %rcx
movl 0x8(%rcx), %ecx
shll $0x3, %ecx
cmpl %ecx, %eax
jg 0x9ec1
movq -0x20(%rbp), %rax
movswl 0x16(%rax), %eax
cmpl $0x0, %eax
jge 0x9ef4
movq -0x20(%rbp), %rax
movswl 0x16(%rax), %esi
leaq 0x25b78(%rip), %rdi     # 0x2fa48
movb $0x0, %al
callq 0xd530
leaq 0x3a31a(%rip), %rax     # 0x441f8
movq (%rax), %rax
movl 0x8(%rax), %eax
shll $0x3, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x16(%rax)
jmp 0x9f3f
movq -0x20(%rbp), %rax
movswl 0x16(%rax), %eax
cmpl $0x0, %eax
jne 0x9f3d
cmpq $0x0, -0x38(%rbp)
je 0x9f3d
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x38(%rbp), %rdx
leaq 0x25b50(%rip), %rdi     # 0x2fa6b
movb $0x0, %al
callq 0xdba0
movl $0x1, %edi
callq 0x24d90
movl %eax, %edi
callq 0x23c50
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
jmp 0x9f3f
movq -0x20(%rbp), %rax
movw 0x16(%rax), %cx
addw $0x1, %cx
movw %cx, 0x16(%rax)
jmp 0xa05e
cmpq $0x0, -0x38(%rbp)
jne 0xa019
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x9f7e
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x60(%rbp)
jmp 0x9f8a
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpl $0x9, (%rax)
je 0x9fc7
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
jb 0x9fb2
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rax
movq %rax, -0x68(%rbp)
jmp 0x9fbe
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
cmpl $0xa, (%rax)
jne 0xa019
leaq 0x33c5a(%rip), %rax     # 0x3dc28
cmpl $0x2, (%rax)
jl 0x9fe5
movq -0x8(%rbp), %rsi
leaq 0x25abb(%rip), %rdi     # 0x2fa99
movb $0x0, %al
callq 0xdba0
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x8(%rax)
jne 0xa009
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
leaq 0x25abe(%rip), %rdi     # 0x2fac0
movb $0x0, %al
callq 0xd530
movq -0x20(%rbp), %rax
movq $0x0, (%rax)
jmp 0xa0c3
cmpq $0x0, -0x38(%rbp)
jne 0xa030
leaq 0x25ab8(%rip), %rdi     # 0x2fadf
movb $0x0, %al
callq 0xd530
jmp 0xa05a
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x0, 0x8(%rax)
jne 0xa058
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x38(%rbp), %rdx
leaq 0x25aa2(%rip), %rdi     # 0x2faf3
movb $0x0, %al
callq 0xd530
jmp 0xa05a
jmp 0xa05c
jmp 0xa05e
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
leaq 0x33bba(%rip), %rax     # 0x3dc28
cmpl $0x2, (%rax)
jl 0xa08e
cmpl $0x80, -0xc(%rbp)
jne 0xa08e
movq -0x8(%rbp), %rsi
leaq 0x25a8e(%rip), %rdi     # 0x2fb15
movb $0x0, %al
callq 0xdba0
jmp 0xa090
xorl %eax, %eax
leaq 0x33ae7(%rip), %rcx     # 0x3db80
cmpl $0x2c, (%rcx)
movb %al, -0x69(%rbp)
jne 0xa0b8
callq 0x15170
leaq 0x33ad3(%rip), %rcx     # 0x3db80
movl %eax, (%rcx)
cmpl $0x0, %eax
setne %al
movb %al, -0x69(%rbp)
movb -0x69(%rbp), %al
testb $0x1, %al
jne 0x9d58
movl $0x3b, %edi
leaq 0x2f06a(%rip), %rsi     # 0x39139
callq 0xdb30
jmp 0x9cdd
movq -0x8(%rbp), %rax
movw $0x1, 0x4(%rax)
movl $0x0, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
addq $0x48, %rax
addq $0x10, %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0xa456
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movswl 0x4(%rax), %eax
cmpl $0x0, %eax
je 0xa13d
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movswl 0x4(%rax), %eax
movl %eax, -0x70(%rbp)
jmp 0xa147
movl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0xa147
movl -0x70(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x8(%rbp), %rax
cmpl $0xa, (%rax)
jne 0xa17e
movq -0x20(%rbp), %rax
cmpw $0x0, 0x16(%rax)
je 0xa172
leaq 0x3a0d0(%rip), %rax     # 0x44238
movq (%rax), %rax
movswl 0x4(%rax), %eax
movl %eax, -0x44(%rbp)
movl $0x0, -0x10(%rbp)
jmp 0xa280
cmpl $0x0, -0x10(%rbp)
je 0xa1bc
movq -0x20(%rbp), %rax
movswl 0x16(%rax), %eax
cmpl $0x1, %eax
jle 0xa1bc
movl -0x10(%rbp), %eax
subl $0x1, %eax
movq -0x20(%rbp), %rcx
movswl 0x16(%rcx), %ecx
addl %ecx, %eax
subl $0x1, %eax
leaq 0x3a08d(%rip), %rcx     # 0x44238
movq (%rcx), %rcx
movl 0x8(%rcx), %ecx
shll $0x3, %ecx
cmpl %ecx, %eax
jle 0xa27e
cmpl $0x0, -0x10(%rbp)
je 0xa219
movl -0x14(%rbp), %eax
movl %eax, -0x74(%rbp)
movl -0x10(%rbp), %eax
addl $0x6, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %edx
movl -0x74(%rbp), %eax
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl %edx, %ecx
cmpl %ecx, %eax
jle 0xa1f5
movl $0x1, -0x18(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x78(%rbp)
jmp 0xa213
movl -0x14(%rbp), %eax
movl %eax, -0x7c(%rbp)
movl -0x10(%rbp), %eax
addl $0x6, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x7c(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x78(%rbp)
movl -0x78(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x20(%rbp), %rax
cmpw $0x0, 0x16(%rax)
je 0xa235
leaq 0x3a00d(%rip), %rax     # 0x44238
movq (%rax), %rax
movswl 0x4(%rax), %eax
movl %eax, -0x44(%rbp)
movl -0x14(%rbp), %eax
movl -0x44(%rbp), %edx
subl $0x1, %edx
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl %edx, %ecx
cmpl %ecx, %eax
jle 0xa255
movl $0x1, -0x18(%rbp)
movl -0x14(%rbp), %eax
jmp 0xa25e
movl -0x14(%rbp), %eax
addl -0x44(%rbp), %eax
subl $0x1, %eax
movl -0x14(%rbp), %eax
movl -0x44(%rbp), %ecx
subl $0x1, %ecx
addl %ecx, %eax
movl -0x44(%rbp), %ecx
subl $0x1, %ecx
xorl $-0x1, %ecx
andl %ecx, %eax
movl %eax, -0x14(%rbp)
movl $0x0, -0x10(%rbp)
jmp 0xa280
movl -0x44(%rbp), %eax
movq -0x8(%rbp), %rcx
movswl 0x4(%rcx), %ecx
cmpl %ecx, %eax
jle 0xa29d
movl -0x44(%rbp), %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movw %cx, 0x4(%rax)
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x20(%rbp), %rax
cmpw $0x0, 0x16(%rax)
je 0xa345
cmpl $0x0, -0x10(%rbp)
jne 0xa2c3
movl $0x1, -0x10(%rbp)
movl -0x10(%rbp), %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x14(%rax)
movq -0x20(%rbp), %rax
movswl 0x14(%rax), %eax
movq -0x20(%rbp), %rcx
movswl 0x16(%rcx), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x20(%rbp), %rax
movw %cx, 0x16(%rax)
movq -0x20(%rbp), %rax
movswl 0x16(%rax), %eax
movq -0x20(%rbp), %rcx
movswl 0x14(%rcx), %ecx
subl %ecx, %eax
addl -0x10(%rbp), %eax
movl %eax, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0xa, (%rax)
jne 0xa343
movl -0x10(%rbp), %eax
addl $0x6, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jle 0xa343
movl -0x10(%rbp), %eax
addl $0x6, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0xa3b7
movq -0x8(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xa38d
movl -0x14(%rbp), %eax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rdx
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl 0x8(%rdx), %ecx
cmpl %ecx, %eax
jle 0xa374
movl $0x1, -0x18(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x80(%rbp)
jmp 0xa385
movl -0x14(%rbp), %eax
movq -0x20(%rbp), %rcx
movq 0x8(%rcx), %rcx
addl 0x8(%rcx), %eax
movl %eax, -0x80(%rbp)
movl -0x80(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0xa3b5
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jle 0xa3b3
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x8(%rax), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0xa3b5
jmp 0xa3b7
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0xf, (%rax)
je 0xa3d1
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x1f, (%rax)
jne 0xa3e5
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movb 0x48(%rax), %cl
andb $-0x2, %cl
orb $0x1, %cl
movb %cl, 0x48(%rax)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x10, (%rax)
je 0xa3ff
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
cmpl $0x1f, (%rax)
jne 0xa413
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movb 0x48(%rax), %cl
andb $-0x3, %cl
orb $0x2, %cl
movb %cl, 0x48(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, (%rax)
je 0xa42c
movq -0x20(%rbp), %rax
movq (%rax), %rax
movsbl (%rax), %eax
cmpl $0x39, %eax
jle 0xa443
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x28(%rbp)
jmp 0xa445
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
jmp 0xa110
movq -0x28(%rbp), %rax
movq $0x0, (%rax)
cmpl $0x0, -0x10(%rbp)
je 0xa4d3
movl -0x14(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x10(%rbp), %eax
addl $0x6, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %edx
movl -0x84(%rbp), %eax
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl %edx, %ecx
cmpl %ecx, %eax
jle 0xa4a3
movl $0x1, -0x18(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x88(%rbp)
jmp 0xa4ca
movl -0x14(%rbp), %eax
movl %eax, -0x8c(%rbp)
movl -0x10(%rbp), %eax
addl $0x6, %eax
movl $0x8, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl -0x8c(%rbp), %eax
addl %ecx, %eax
movl %eax, -0x88(%rbp)
movl -0x88(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x9, (%rax)
jne 0xa4e8
movl -0x14(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0xa500
movl -0x14(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x8(%rcx), %eax
jle 0xa4fe
movl -0x14(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
jmp 0xa500
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x4(%rcx), %edx
subl $0x1, %edx
movl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
subl %edx, %ecx
cmpl %ecx, %eax
jle 0xa52d
movl $0x1, -0x18(%rbp)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
jmp 0xa541
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
movq -0x8(%rbp), %rcx
movswl 0x4(%rcx), %ecx
addl %ecx, %eax
subl $0x1, %eax
movq -0x8(%rbp), %rax
movl 0x8(%rax), %ecx
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
subl $0x1, %eax
addl %eax, %ecx
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %eax
subl $0x1, %eax
xorl $-0x1, %eax
andl %eax, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
cmpl $0x0, -0x18(%rbp)
je 0xa5a4
movq -0x8(%rbp), %rsi
leaq 0x255b6(%rip), %rdi     # 0x2fb33
movl $0x7fffffff, %edx       # imm = 0x7FFFFFFF
movb $0x0, %al
callq 0xd530
movq -0x8(%rbp), %rax
movswl 0x4(%rax), %ecx
subl $0x1, %ecx
xorl $-0x1, %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
movq -0x8(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x8(%rbp), %rdi
callq 0x27390
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)