// File: /workspace/github_c_makefile_star2_O2/Oric4ever[P]lcc65/6502/build/../src/stmt.c
// Function: statement
void statement(loop, swp, lev) int loop,lev; struct swtch *swp; {
	int lab, ref = refinc;

	if (Aflag >= 2 && lev == 15)
		warning("more than 15 levels of nested statements\n");
	switch (t) {
	case IF:
		ifstmt(genlabel(2), loop, swp, lev + 1);
		break;
	case WHILE:
		whilestmt(genlabel(3), swp, lev + 1);
		break;
	case DO:
		dostmt(genlabel(3), swp, lev + 1);
		expect(';');
		break;
	case FOR:
		forstmt(genlabel(4), swp, lev + 1);
		break;
	case SWITCH:
		swstmt(loop, genlabel(2), lev + 1);
		break;
	case CASE:
		if (swp == 0)
			error("illegal case label\n");
		definelab(lab = genlabel(1));
		while (t == CASE) {
			Tree p;
			t = gettok();
			p = constexpr(':');
			if (generic(p->op) == CNST && isint(p->type)) {
				if (swp) {
					needconst++;
					p = cast(p, swp->sym->type);
					needconst--;
					caselabel(swp, p->u.v.i, lab);
				}
			} else
				error("case label must be a constant integer expression\n");
			ntree = 0;
		}
		statement(loop, swp, lev);
		break;
	case DEFAULT:
		if (swp)
			if (swp->deflab)
				error("extra default label\n");
			else {
				swp->deflab = findlabel(swp->lab);
				definelab(swp->deflab->u.l.label);
			}
		else
			error("illegal default label\n");
		t = gettok();
		expect(':');
		statement(loop, swp, lev);
		break;
	case RETURN:
		t = gettok();
		definept(0);
		if (t != ';')
			if (freturn(cfunc->type) == voidtype) {
				error("extraneous return value\n");
				expr(0);
				retcode(0, cfunc->u.f.label);
			} else
				retcode(expr(0), cfunc->u.f.label);
		else {
			if (freturn(cfunc->type) != voidtype
			&& (freturn(cfunc->type) != inttype || Aflag >= 1))
				warning("missing return value\n");
			retcode(0, cfunc->u.f.label);
		}
		expect(';');
		break;
	case BREAK:
		walk(0, 0, 0);
		if (swp && swp->lab > loop) {
			definept(0);
			branch(swp->lab + 1);
			t = gettok();
			expect(';');
			break;
		}
	case CONTINUE:
		walk(0, 0, 0);
		definept(0);
		if (loop)
			branch(loop + (t == BREAK ? 2 : 1));
		else
			error("illegal %k statement\n", t);
		t = gettok();
		expect(';');
		break;
	case '{':
		compound(loop, swp, lev + 1);
		break;
	case ';':
		definept(0);
		t = gettok();
		break;
	case GOTO:
		walk(0, 0, 0);
		definept(0);
		t = gettok();
		if (t == ID) {
			Symbol p = lookup(token, labels[0]);
			if (p == 0) {
				p = install(token, &labels[0], 0);
				p->u.l.label = genlabel(1);
				p->u.l.equatedto = p;
				p->src = src;
			}
			p->ref++;
			use(p, src);
			branch(p->u.l.label);
			t = gettok();
		} else
			error("missing label in goto\n");
		expect(';');
		break;
	case ID:
		if (getchr() == ':') {
			stmtlabel(token);
			statement(loop, swp, lev);
			break;
		}
	default:
		definept(0);
		if (kind[t] != ID) {
			error("unrecognized statement\n");
			t = gettok();
		} else {
			Tree e = expr0(0);
			listnodes(e, 0, 0);
			if (glevel > 1 || nodecount == 0 || nodecount > 200)
				walk(0, 0, 0);
			ntree = 0;
		}
		expect(';');
	}
	if (kind[t] != IF && kind[t] != ID && t != '}' && t != EOI) {
		static char follow[] = { IF, ID, '}', 0 };
		error("illegal statement termination\n");
		skipto(0, follow);
	}
	refinc = ref;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movl %edx, %ebp
movq %rsi, %r14
movl %edi, %r12d
movl 0x1444f(%rip), %r15d    # 0x28684
leaq 0x1781c(%rip), %rax     # 0x2ba58
cmpl $0xf, %edx
jne 0x14254
cmpl $0x2, (%rax)
jl 0x14254
leaq 0xa39a(%rip), %rdi      # 0x1e5e7
xorl %eax, %eax
callq 0x9239
leaq 0x17785(%rip), %rbx     # 0x2b9e0
movl (%rbx), %eax
leal -0x3b(%rax), %ecx
cmpl $0x19, %ecx
ja 0x14292
leaq 0xa250(%rip), %rax      # 0x1e4bc
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
movabsq $0x100010001, %r13      # imm = 0x100010001
jmpq *%rcx
xorl %edi, %edi
callq 0x13c31
callq 0xd3c9
movl %eax, (%rbx)
jmp 0x151a7
cmpl $0x20, %eax
je 0x14962
cmpl $0x7b, %eax
jne 0x14a15
incl %ebp
movl %r12d, %edi
movq %r14, %rsi
movl %ebp, %edx
callq 0x4aa4
jmp 0x151a7
callq 0xd3c9
movl %eax, (%rbx)
xorl %edi, %edi
callq 0x13c31
movq %rbx, %r12
movl (%rbx), %ebx
leaq 0x155a6(%rip), %r14     # 0x29878
movq (%r14), %rax
movq 0x20(%rax), %rdi
callq 0x18021
leaq 0x1dcfb(%rip), %rcx     # 0x31fe0
movq (%rcx), %rcx
cmpl $0x3b, %ebx
jne 0x14aa7
cmpq %rcx, %rax
je 0x14322
movq (%r14), %rax
movq 0x20(%rax), %rdi
callq 0x18021
leaq 0x1dc8f(%rip), %rcx     # 0x31f98
cmpq (%rcx), %rax
jne 0x1517e
leaq 0x1773f(%rip), %rax     # 0x2ba58
cmpl $0x0, (%rax)
jg 0x1517e
xorl %ebx, %ebx
jmp 0x1518e
movl %ebp, 0x14(%rsp)
movl %r15d, 0x10(%rsp)
pushq $0x4
popq %rdi
callq 0x1616e
movl %eax, %r15d
callq 0xd3c9
movl %eax, (%rbx)
pushq $0x28
popq %rdi
callq 0x8ee9
xorl %edi, %edi
callq 0x13c31
movl (%rbx), %eax
leaq 0x14224(%rip), %rbx     # 0x28580
cmpb $0x20, (%rbx,%rax)
jne 0x14abf
pushq $0x3b
popq %rdi
callq 0xa51a
jmp 0x14ac9
movq %rbx, %r13
movl %r15d, %ebx
pushq $0x3
popq %rdi
callq 0x1616e
movl %eax, %r15d
incl %ebp
imull $0xa, 0x142f7(%rip), %eax # 0x28684
movl %eax, 0x142f1(%rip)     # 0x28684
callq 0xd3c9
movq %r13, %r12
movl %eax, (%r13)
movl %r15d, %edi
callq 0x13b80
movl %r15d, %edi
movq %r14, %rsi
movl %ebp, %edx
callq 0x14218
leal 0x1(%r15), %edi
callq 0x13b80
pushq $0x54
popq %rdi
callq 0x8ee9
pushq $0x28
popq %rdi
callq 0x8ee9
xorl %edi, %edi
callq 0x13c31
pushq $0x29
popq %rdi
callq 0xa2ef
movq %rax, %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x376d
addl $0x2, %r15d
movl %r15d, %edi
callq 0x15e6a
cmpl $0x0, 0x1c(%rax)
je 0x14403
movl %r15d, %edi
callq 0x13b80
pushq $0x3b
popq %rdi
callq 0x8ee9
movl %ebx, %r15d
jmp 0x151a4
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
xorl %edi, %edi
callq 0x13c31
callq 0xd3c9
movl %eax, (%rbx)
cmpl $0x20, %eax
jne 0x14cac
movq %rbx, %r12
leaq 0x17509(%rip), %r14     # 0x2b948
movq (%r14), %rdi
leaq 0x1a8f7(%rip), %rax     # 0x2ed40
movq (%rax), %rsi
callq 0x15ec0
movq %rax, %rbx
testq %rax, %rax
jne 0x1448a
movq (%r14), %rdi
leaq 0x1a8dd(%rip), %rsi     # 0x2ed40
xorl %edx, %edx
callq 0x15f13
movq %rax, %rbx
pushq $0x1
popq %rdi
callq 0x1616e
movl %eax, 0x48(%rbx)
movq %rbx, 0x50(%rbx)
leaq 0x174b5(%rip), %rax     # 0x2b938
movups (%rax), %xmm0
movups %xmm0, 0x28(%rbx)
incl 0x1c(%rbx)
leaq 0x174a4(%rip), %rax     # 0x2b938
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x163c8
movl 0x48(%rbx), %edi
callq 0x1413f
callq 0xd3c9
movq %r12, %rbx
movl %eax, (%r12)
jmp 0x14a9a
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
testq %r14, %r14
je 0x144e1
cmpl %r12d, 0x8(%r14)
jle 0x144e1
xorl %edi, %edi
callq 0x13c31
movl 0x8(%r14), %edi
incl %edi
jmp 0x1450c
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
xorl %edi, %edi
callq 0x13c31
movl (%rbx), %esi
testl %r12d, %r12d
je 0x14a85
xorl %eax, %eax
cmpl $0x44, %esi
sete %al
leal (%rax,%r12), %edi
incl %edi
callq 0x1413f
jmp 0x14a93
movq %r12, 0x18(%rsp)
movl %r15d, 0x10(%rsp)
testq %r14, %r14
jne 0x14533
leaq 0xa0e5(%rip), %rdi      # 0x1e611
xorl %eax, %eax
callq 0x8dd4
pushq $0x1
popq %rdi
callq 0x1616e
movl %eax, 0xc(%rsp)
movl %eax, %edi
callq 0x13b80
pushq $0x3a
popq %r12
leaq 0x1a827(%rip), %r15     # 0x2ed78
leaq 0xa0cd(%rip), %r13      # 0x1e625
movl %ebp, 0x14(%rsp)
cmpl $0x45, (%rbx)
jne 0x14756
callq 0xd3c9
movl %eax, (%rbx)
movl %r12d, %edi
callq 0xa426
movl (%rax), %ecx
andl $-0x10, %ecx
cmpl $0x10, %ecx
jne 0x14612
movq 0x8(%rax), %rdx
movl (%rdx), %ecx
cmpl $0xf, %ecx
jb 0x1459a
movq 0x10(%rdx), %rcx
movl (%rcx), %ecx
cmpl $0x2, %ecx
ja 0x1459f
jmp 0x14612
cmpl $0x3, %ecx
jb 0x14612
cmpl $0x6, %ecx
ja 0x14612
testq %r14, %r14
je 0x1461c
leaq 0x18748(%rip), %r13     # 0x2ccf8
incl (%r13)
movq (%r14), %rcx
movq 0x20(%rcx), %rsi
movq %rax, %rdi
callq 0x9912
decl (%r13)
movl 0x28(%rax), %ebp
movl 0x18(%r14), %ecx
movl 0x1c(%r14), %edx
cmpl %edx, %ecx
jl 0x1469e
movq 0x20(%r14), %rbx
movq 0x28(%r14), %r13
leal (%rdx,%rdx), %edi
movl %edi, 0x1c(%r14)
shll $0x3, %edx
leaq 0x15185(%rip), %r12     # 0x29778
movq (%r12), %rsi
movl %edx, (%rsi)
movq 0x8(%rsi), %rcx
movq 0x10(%rsi), %r8
movslq %edx, %rax
addq %rcx, %rax
cmpq %r8, %rax
jae 0x14625
movq %rax, 0x8(%rsi)
jmp 0x14642
movq %r13, %rdi
xorl %eax, %eax
callq 0x8dd4
andl $0x0, (%r15)
jmp 0x1455c
movl %edx, %edi
movq %r12, %rsi
callq 0x16438
movq %rax, %rcx
movl 0x1c(%r14), %edi
movq (%r12), %rsi
movq 0x8(%rsi), %rax
movq 0x10(%rsi), %r8
movq %rcx, 0x20(%r14)
shll $0x3, %edi
movl %edi, (%rsi)
movslq %edi, %rcx
addq %rax, %rcx
cmpq %r8, %rcx
pushq $0x3a
popq %r12
jae 0x14660
movq %rcx, 0x8(%rsi)
jmp 0x1466c
leaq 0x15111(%rip), %rsi     # 0x29778
callq 0x16438
movq %rax, 0x28(%r14)
xorl %eax, %eax
movslq 0x18(%r14), %rcx
cmpq %rcx, %rax
jge 0x14697
movl (%rbx,%rax,4), %ecx
movq 0x20(%r14), %rdx
movl %ecx, (%rdx,%rax,4)
movq (%r13,%rax,8), %rcx
movq 0x28(%r14), %rdx
movq %rcx, (%rdx,%rax,8)
incq %rax
jmp 0x14672
leaq 0x17342(%rip), %rbx     # 0x2b9e0
movl %ecx, %edx
movl %ecx, %eax
sarl $0x1f, %eax
andl %ecx, %eax
movq 0x20(%r14), %rcx
testl %edx, %edx
jle 0x146cc
movl -0x4(%rcx,%rdx,4), %esi
cmpl %ebp, %esi
jl 0x146d1
movl %esi, (%rcx,%rdx,4)
movq 0x28(%r14), %rcx
movq -0x8(%rcx,%rdx,8), %rsi
movq %rsi, (%rcx,%rdx,8)
decq %rdx
jmp 0x146a7
movq %rbx, %r13
jmp 0x146d6
movq %rbx, %r13
movl %edx, %eax
movslq %eax, %rbx
cmpl 0x18(%r14), %eax
jge 0x146f8
cmpl %ebp, (%rcx,%rbx,4)
jne 0x146f8
leaq 0xa015(%rip), %rdi      # 0x1e700
movl %ebp, %esi
xorl %eax, %eax
callq 0x8dd4
movq 0x20(%r14), %rcx
movl %ebp, (%rcx,%rbx,4)
movl 0xc(%rsp), %edi
callq 0x15e6a
movq 0x28(%r14), %rcx
movq %rax, (%rcx,%rbx,8)
movl 0x18(%r14), %eax
incl %eax
movl %eax, 0x18(%r14)
leaq 0x1733b(%rip), %rcx     # 0x2ba58
cmpl $0x2, (%rcx)
setge %cl
cmpl $0x102, %eax            # imm = 0x102
sete %al
andb %cl, %al
cmpb $0x1, %al
movq %r13, %rbx
movl 0x14(%rsp), %ebp
leaq 0x9ee8(%rip), %r13      # 0x1e625
jne 0x1461c
leaq 0x9fd1(%rip), %rdi      # 0x1e71b
xorl %eax, %eax
callq 0x9239
jmp 0x1461c
movq 0x18(%rsp), %rdi
movq %r14, %rsi
movl %ebp, %edx
callq 0x14218
jmp 0x15177
movq %r12, 0x18(%rsp)
pushq $0x2
popq %rdi
callq 0x1616e
movl %eax, %r14d
callq 0xd3c9
movl %eax, (%rbx)
pushq $0x28
popq %rdi
callq 0x8ee9
xorl %edi, %edi
callq 0x13c31
pushq $0x29
popq %rdi
callq 0xa33c
movq %rax, %r12
movq 0x8(%rax), %rsi
movl (%rsi), %eax
cmpl $0xf, %eax
jb 0x14cbf
movq 0x10(%rsi), %rax
movl (%rax), %eax
cmpl $0x2, %eax
ja 0x14cc4
jmp 0x14cc9
pushq $0x2
popq %rdi
callq 0x1616e
movl %ebp, %r13d
movl %eax, %ebp
incl %r13d
callq 0xd3c9
movl %eax, (%rbx)
pushq $0x28
popq %rdi
callq 0x8ee9
xorl %edi, %edi
callq 0x13c31
pushq $0x29
popq %rdi
callq 0xa2ef
movq %rax, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x376d
movl 0x13e86(%rip), %ecx     # 0x28684
movl %ecx, %eax
cltd
pushq $0x2
popq %rsi
idivl %esi
incl %ecx
cmpl $0x3, %ecx
pushq $0x1
popq %rcx
cmovael %eax, %ecx
movl %ecx, 0x13e6d(%rip)     # 0x28684
movl %r12d, %edi
movq %r14, %rsi
movl %r13d, %edx
callq 0x14218
cmpl $0x49, (%rbx)
jne 0x14f08
movq %r12, 0x18(%rsp)
movl %ebp, %r12d
incl %r12d
movl %r12d, %edi
callq 0x1413f
callq 0xd3c9
movl %eax, (%rbx)
movl %ebp, %edi
callq 0x13b80
movq 0x18(%rsp), %rdi
movq %r14, %rsi
movl %r13d, %edx
callq 0x14218
movl %r12d, %edi
callq 0x15e6a
cmpl $0x0, 0x1c(%rax)
je 0x151a7
movl %r12d, %edi
jmp 0x14f0a
testq %r14, %r14
je 0x14f7a
cmpq $0x0, 0x10(%r14)
je 0x150ff
leaq 0x9dc3(%rip), %rdi      # 0x1e657
jmp 0x14f81
movq %rbx, %r12
movl %r15d, %ebx
pushq $0x3
popq %rdi
callq 0x1616e
movl %eax, %r15d
incl %ebp
movl %ebp, %r13d
imull $0xa, 0x13dce(%rip), %eax # 0x28684
movl %eax, 0x13dc8(%rip)     # 0x28684
callq 0xd3c9
movl %eax, (%r12)
pushq $0x28
popq %rdi
callq 0x8ee9
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
leaq 0x17059(%rip), %rax     # 0x2b938
movups (%rax), %xmm0
movaps %xmm0, 0x20(%rsp)
leaq -0xa5ff(%rip), %rdi     # 0xa2ef
pushq $0x29
popq %rsi
callq 0x1699e
movq %rax, %r12
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x10, %eax
je 0x14f14
leaq 0x17122(%rip), %rax     # 0x2ba30
cmpl $0x2, (%rax)
je 0x14f14
leal 0x1(%r15), %ebp
movl %ebp, %edi
callq 0x1413f
movl %r15d, %edi
callq 0x13b80
movl %r15d, %edi
movq %r14, %rsi
movl %r13d, %edx
callq 0x14218
movl %ebp, %edi
callq 0x13b80
leaq 0x20(%rsp), %rdi
callq 0x13c31
movq %r12, %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x376d
addl $0x2, %r15d
movl %r15d, %ebp
jmp 0x14f57
callq 0xd37c
cmpl $0x3a, %eax
jne 0x14a15
movq %r12, 0x18(%rsp)
leaq 0x16fcc(%rip), %rax     # 0x2b948
movq (%rax), %r12
leaq 0x1a3ba(%rip), %rax     # 0x2ed40
movq (%rax), %rsi
movq %r12, %rdi
callq 0x15ec0
movq %rax, %r13
testq %rax, %rax
jne 0x149bd
leaq 0x1a3a0(%rip), %rsi     # 0x2ed40
movq %r12, %rdi
xorl %edx, %edx
callq 0x15f13
movq %rax, %r13
pushq $0x1
popq %rdi
callq 0x1616e
movl %eax, 0x48(%r13)
movq %r13, 0x50(%r13)
movb 0x1b(%r13), %al
testb $0x1, %al
je 0x149de
leaq 0x28(%r13), %rdx
leaq 0x9d76(%rip), %rdi      # 0x1e746
movq %r12, %rsi
xorl %eax, %eax
callq 0x8dd4
movb 0x1b(%r13), %al
orb $0x1, %al
movb %al, 0x1b(%r13)
leaq 0x16f4d(%rip), %rax     # 0x2b938
movups (%rax), %xmm0
movups %xmm0, 0x28(%r13)
movl 0x48(%r13), %edi
callq 0x13b80
callq 0xd3c9
movl %eax, (%rbx)
pushq $0x3a
popq %rdi
callq 0x8ee9
movq 0x18(%rsp), %rdi
jmp 0x15126
xorl %edi, %edi
callq 0x13c31
movl (%rbx), %eax
leaq 0x13b5b(%rip), %rcx     # 0x28580
cmpb $0x20, (%rcx,%rax)
jne 0x14a75
xorl %edi, %edi
callq 0xa51a
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x37ca
leaq 0x16feb(%rip), %rax     # 0x2ba30
cmpl $0x1, (%rax)
jg 0x14a5e
leaq 0x14e1f(%rip), %rax     # 0x29870
movl (%rax), %eax
testl %eax, %eax
je 0x14a5e
cmpl $0xc9, %eax
jl 0x14a69
xorl %edi, %edi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
leaq 0x1a308(%rip), %rax     # 0x2ed78
andl $0x0, (%rax)
jmp 0x14a9a
leaq 0x9c4d(%rip), %rdi      # 0x1e6c9
xorl %eax, %eax
callq 0x8dd4
jmp 0x14a93
leaq 0x9c10(%rip), %rdi      # 0x1e69c
xorl %eax, %eax
callq 0x8dd4
callq 0xd3c9
movl %eax, (%rbx)
pushq $0x3b
popq %rdi
callq 0x8ee9
jmp 0x151a7
cmpq %rcx, %rax
je 0x15132
xorl %edi, %edi
callq 0xa33c
movq %rax, %rbx
jmp 0x1518e
pushq $0x3b
popq %rdi
callq 0x8ee9
xorl %eax, %eax
movq %rax, 0x18(%rsp)
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
leaq 0x16e57(%rip), %rbp     # 0x2b938
movups (%rbp), %xmm0
movaps %xmm0, 0x20(%rsp)
imull $0xa, 0x13b93(%rip), %eax # 0x28684
movl %eax, 0x13b8d(%rip)     # 0x28684
leaq 0x16ee2(%rip), %rax     # 0x2b9e0
movl (%rax), %eax
cmpb $0x20, (%rbx,%rax)
jne 0x14b1a
leaq -0xa81e(%rip), %rdi     # 0xa2ef
pushq $0x3b
popq %rsi
callq 0x1699e
movq %rax, %r12
jmp 0x14b25
pushq $0x3b
popq %rdi
callq 0x8ee9
xorl %r12d, %r12d
movups (%rbp), %xmm0
movaps %xmm0, 0x60(%rsp)
leaq 0x16eab(%rip), %rax     # 0x2b9e0
movl (%rax), %eax
cmpb $0x20, (%rbx,%rax)
jne 0x14b51
leaq -0xa62a(%rip), %rdi     # 0xa51a
pushq $0x29
popq %rsi
callq 0x1699e
movq %rax, %rbp
jmp 0x14b62
leaq 0x13b34(%rip), %rsi     # 0x2868c
pushq $0x29
popq %rdi
callq 0x9201
xorl %ebp, %ebp
incl 0x14(%rsp)
leaq 0x16ec3(%rip), %rax     # 0x2ba30
cmpl $0x2, (%rax)
leaq 0x16e69(%rip), %rbx     # 0x2b9e0
movq 0x18(%rsp), %rdx
jne 0x14bdf
movl %r15d, %edi
callq 0x13b80
leaq 0x20(%rsp), %rdi
callq 0x13c31
testq %r12, %r12
je 0x14ba3
leal 0x2(%r15), %edx
movq %r12, %rdi
xorl %esi, %esi
callq 0x376d
movl %r15d, %edi
movq %r14, %rsi
movl 0x14(%rsp), %edx
callq 0x14218
leal 0x1(%r15), %edi
callq 0x13b80
leaq 0x60(%rsp), %rdi
callq 0x13c31
testq %rbp, %rbp
je 0x15155
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
jmp 0x15155
movb $0x1, %al
movl %eax, 0xc(%rsp)
testq %r12, %r12
je 0x15096
testq %rdx, %rdx
je 0x1508d
movl (%rdx), %eax
andl $-0x10, %eax
cmpl $0x30, %eax
jne 0x1508d
movq 0x10(%rdx), %rax
movl $0xfffffef9, %ecx       # imm = 0xFFFFFEF9
addl (%rax), %ecx
cmpl $0x20, %ecx
ja 0x1508d
btq %rcx, %r13
jae 0x1508d
movq 0x18(%rdx), %rdx
movl (%rdx), %esi
movl %esi, %ecx
andl $-0x10, %ecx
cmpl $0x10, %ecx
jne 0x1508d
movl (%r12), %edi
leal -0x1e0(%rdi), %ecx
cmpl $0x5f, %ecx
ja 0x1508d
movq 0x10(%r12), %rcx
movl (%rcx), %r8d
andl $-0x10, %r8d
cmpl $0x40, %r8d
jne 0x1508d
movq 0x28(%rax), %rax
movq 0x10(%rcx), %rcx
cmpq %rax, 0x28(%rcx)
jne 0x1508d
movq 0x18(%r12), %rcx
cmpl %esi, (%rcx)
jne 0x1508d
andl $-0x10, %edi
movq 0x8(%r12), %rsi
callq 0x1131b
cmpl $0x15, (%rax)
jne 0x1508d
cmpl $0x0, 0x28(%rax)
je 0x1508d
movl $0x0, 0xc(%rsp)
jmp 0x15096
leaq 0x99ff(%rip), %rdi      # 0x1e6b2
xorl %eax, %eax
callq 0x8dd4
jmp 0x14a9a
cmpl $0x3, %eax
jb 0x14cc9
cmpl $0x7, %eax
jb 0x14cf0
leaq 0x9aab(%rip), %rdi      # 0x1e77b
xorl %eax, %eax
callq 0x8dd4
leaq 0x1d2ba(%rip), %rax     # 0x31f98
movq (%rax), %rsi
movq %r12, %rdi
callq 0x16727
movq %rax, %r12
movq 0x8(%rax), %rsi
movl %r14d, 0xc(%rsp)
movq %rsi, %rdi
callq 0xa287
movq %r12, %rdi
movq %rax, %rsi
callq 0x9912
movq %rax, %r12
movl (%rax), %eax
andl $-0x10, %eax
cmpl $0x40, %eax
movl %r15d, 0x10(%rsp)
jne 0x14d44
movq 0x10(%r12), %rax
movl $0xfffffef9, %ecx       # imm = 0xFFFFFEF9
addl (%rax), %ecx
cmpl $0x20, %ecx
ja 0x14d44
btq %rcx, %r13
jae 0x14d44
movq 0x28(%rax), %rax
movq 0x20(%rax), %rcx
cmpq 0x8(%r12), %rcx
je 0x151fd
movq 0x8(%r12), %rsi
leaq 0x19fe0(%rip), %rax     # 0x2ed30
movl (%rax), %edx
pushq $0x4e
popq %rdi
callq 0x16090
movq %rax, %r13
movq %rax, 0x20(%rsp)
movq %rax, %rdi
callq 0x32ac
movq %r13, %rdi
movq %r12, %rsi
callq 0x952e
movq %rax, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
pushq $0xa
popq %r13
movl %r13d, %edi
callq 0x32d6
leaq 0x133a4(%rip), %rax     # 0x28138
movq (%rax), %rax
movq %rax, 0x58(%rsp)
movl 0xc(%rsp), %eax
movl %eax, 0x28(%rsp)
andq $0x0, 0x30(%rsp)
movabsq $0x20000000000, %rax    # imm = 0x20000000000
movq %rax, 0x38(%rsp)
leaq 0x149b8(%rip), %r12     # 0x29778
movq (%r12), %rdx
movl $0x800, (%rdx)          # imm = 0x800
movq 0x8(%rdx), %rcx
movq 0x10(%rdx), %rsi
leaq 0x800(%rcx), %rax
cmpq %rsi, %rax
jae 0x14de4
movq %rax, 0x8(%rdx)
jmp 0x14e00
movl $0x800, %edi            # imm = 0x800
movq %r12, %rsi
callq 0x16438
movq %rax, %rcx
movq (%r12), %rdx
movq 0x8(%rdx), %rax
movq 0x10(%rdx), %rsi
incl %ebp
movq %rcx, 0x40(%rsp)
movl $0x1000, (%rdx)         # imm = 0x1000
leaq 0x1000(%rax), %rcx
movl %ebp, %r15d
cmpq %rsi, %rcx
jae 0x14e22
movq %rcx, 0x8(%rdx)
jmp 0x14e33
leaq 0x1494f(%rip), %rsi     # 0x29778
movl $0x1000, %edi           # imm = 0x1000
callq 0x16438
leaq 0x20(%rsp), %rbp
movq %rax, 0x28(%rbp)
movl 0x13842(%rip), %ecx     # 0x28684
movl %ecx, %eax
cltd
idivl %r13d
addl $0x9, %ecx
cmpl $0x13, %ecx
pushq $0x1
popq %rcx
cmovael %eax, %ecx
movl %ecx, 0x1382a(%rip)     # 0x28684
movq 0x18(%rsp), %rdi
movq %rbp, %rsi
movl %r15d, %edx
callq 0x14218
cmpq $0x0, 0x10(%rbp)
jne 0x14e9d
movl 0xc(%rsp), %ebp
movl %ebp, %edi
callq 0x15e6a
movq %rax, 0x30(%rsp)
movl %ebp, %edi
callq 0x13b80
cmpl $0x0, 0x38(%rsp)
jne 0x14e9d
leaq 0x990d(%rip), %rdi      # 0x1e7a3
xorl %eax, %eax
callq 0x9239
movq %rbx, %r13
incl %r14d
movl %r14d, %edi
callq 0x15e6a
cmpl $0x0, 0x1c(%rax)
leaq 0x13282(%rip), %r15     # 0x28138
je 0x14ec0
movl %r14d, %edi
callq 0x13b80
movq (%r15), %rbx
movq 0x58(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, (%r15)
movl 0x38(%rsp), %eax
testl %eax, %eax
je 0x15060
leal 0xb(,%rax,4), %edi
andl $-0x8, %edi
movq (%r12), %rcx
movl %edi, (%rcx)
movq 0x8(%rcx), %rsi
movslq %edi, %rdx
addq %rsi, %rdx
cmpq 0x10(%rcx), %rdx
jae 0x14f8d
movq %rdx, 0x8(%rcx)
jmp 0x14fa0
movl %ebp, %edi
callq 0x13b80
jmp 0x151a7
movl %r15d, %edi
callq 0x13b80
leal 0x1(%r15), %edi
callq 0x13b80
leaq 0x20(%rsp), %rdi
callq 0x13c31
movl %r15d, %ebp
addl $0x2, %ebp
movq %r12, %rdi
xorl %esi, %esi
movl %ebp, %edx
callq 0x376d
movl %r15d, %edi
movq %r14, %rsi
movl %r13d, %edx
callq 0x14218
movl %r15d, %edi
callq 0x1413f
movl %ebp, %edi
callq 0x15e6a
cmpl $0x0, 0x1c(%rax)
movl %ebx, %r15d
je 0x14f6e
movl %ebp, %edi
callq 0x13b80
leaq 0x16a6b(%rip), %rbx     # 0x2b9e0
jmp 0x151a7
leaq 0x96eb(%rip), %rdi      # 0x1e66c
xorl %eax, %eax
callq 0x8dd4
jmp 0x15114
leaq 0x147e4(%rip), %rsi     # 0x29778
callq 0x16438
movq %rax, %rsi
movl 0x38(%rsp), %eax
xorl %edx, %edx
movq 0x40(%rsp), %rcx
xorl %edi, %edi
movslq %eax, %r8
movslq %edi, %r10
cmpq %r8, %rdx
jge 0x15049
movl %edx, (%rsi,%r10,4)
leaq 0x1(%rdx), %r8
movss 0x136b8(%rip), %xmm0    # 0x28680
movl %r10d, %edi
movl %r10d, %r9d
sarl $0x1f, %r9d
andl %r10d, %r9d
leal 0x2(%rdx), %r10d
movslq 0x38(%rsp), %rax
movq %rax, %r11
decq %r11
testl %edi, %edi
jle 0x1503c
movslq -0x4(%rsi,%rdi,4), %r14
movl %r8d, %ebp
subl %r14d, %ebp
cvtsi2ss %ebp, %xmm1
movl (%rcx,%rdx,4), %ebp
subl (%rcx,%r14,4), %ebp
incl %ebp
cvtsi2ss %ebp, %xmm2
divss %xmm2, %xmm1
ucomiss %xmm1, %xmm0
ja 0x1503f
cmpq %r11, %rdx
jge 0x15037
movslq (%rsi,%rdi,4), %r14
movl %r10d, %ebp
subl %r14d, %ebp
cvtsi2ss %ebp, %xmm2
movl 0x4(%rcx,%rdx,4), %ebp
subl (%rcx,%r14,4), %ebp
incl %ebp
cvtsi2ss %ebp, %xmm3
divss %xmm3, %xmm2
ucomiss %xmm1, %xmm2
ja 0x1503f
decq %rdi
jmp 0x14fe4
movl %r9d, %edi
incl %edi
movq %r8, %rdx
jmp 0x14fa9
leal -0x1(%r10), %ecx
movl %eax, (%rsi,%r10,4)
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
movl %ecx, %r8d
callq 0x1521d
movl 0xc(%rsp), %edi
callq 0x1413f
movq (%r15), %rax
movq 0x58(%rsp), %rcx
movq 0x10(%rcx), %rcx
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rax)
movq %rbx, (%r15)
movl 0x10(%rsp), %r15d
movq %r13, %rbx
jmp 0x151a7
leal 0x3(%r15), %edi
callq 0x1413f
movl %r15d, %edi
callq 0x13b80
movl %r15d, %edi
movq %r14, %rsi
movl 0x14(%rsp), %edx
callq 0x14218
leal 0x1(%r15), %edi
callq 0x13b80
leaq 0x60(%rsp), %rdi
callq 0x13c31
testq %rbp, %rbp
je 0x150d1
movq %rbp, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x376d
testq %r12, %r12
je 0x1514b
cmpb $0x0, 0xc(%rsp)
je 0x150e6
leal 0x3(%r15), %edi
callq 0x13b80
leaq 0x20(%rsp), %rdi
callq 0x13c31
movq %r12, %rdi
movl %r15d, %esi
xorl %edx, %edx
callq 0x376d
jmp 0x1515d
movl 0x8(%r14), %edi
callq 0x15e6a
movq %rax, 0x10(%r14)
movl 0x48(%rax), %edi
callq 0x13b80
callq 0xd3c9
movl %eax, (%rbx)
pushq $0x3a
popq %rdi
callq 0x8ee9
movl %r12d, %edi
movq %r14, %rsi
movl %ebp, %edx
callq 0x14218
jmp 0x151a7
leaq 0x954a(%rip), %rdi      # 0x1e683
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x8dd4
xorl %edi, %edi
callq 0xa33c
jmp 0x1518e
leaq 0x20(%rsp), %rdi
callq 0x13c31
movl %r15d, %edi
callq 0x1413f
addl $0x2, %r15d
movl %r15d, %edi
callq 0x15e6a
cmpl $0x0, 0x1c(%rax)
je 0x15177
movl %r15d, %edi
callq 0x13b80
movl 0x10(%rsp), %r15d
jmp 0x151a7
leaq 0x753d(%rip), %rdi      # 0x1c6c2
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x9239
movq (%r14), %rax
movl 0x78(%rax), %esi
movq %rbx, %rdi
callq 0x13de4
pushq $0x3b
popq %rdi
callq 0x8ee9
movq %r12, %rbx
movl (%rbx), %eax
leaq 0x133d0(%rip), %rcx     # 0x28580
movb (%rcx,%rax), %cl
cmpb $0x4d, %cl
je 0x151e7
cmpb $0x20, %cl
sete %cl
andl $-0x3, %eax
cmpl $0x7d, %eax
sete %al
orb %cl, %al
jne 0x151e7
leaq 0x950f(%rip), %rdi      # 0x1e6e1
xorl %eax, %eax
callq 0x8dd4
leaq 0x134a8(%rip), %rsi     # 0x28688
xorl %edi, %edi
callq 0x90fc
movl %r15d, 0x13496(%rip)    # 0x28684
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl (%rcx), %ecx
cmpl $0x10, %ecx
je 0x14d44
cmpl $0x1f, %ecx
je 0x14d44
movq %rax, 0x20(%rsp)
xorl %edi, %edi
jmp 0x14d78