LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/lex.c
// Function: yyerror
extern void yyerror(const char *s) {
	char *tok;
	if (prerror) { /* don't print "syntax error" if there's a more informative scanerror */
		prerror = FALSE;
		return;
	}
	if (!interactive) {
		if (w != NW)
			tok = realbuf;
		else if (lastchar == EOF)
			tok = "eof";
		else if (lastchar == '\n')
			tok = "end of line";
		else
			tok = nprint((lastchar < 32 || lastchar > 126) ? "(decimal %d)" : "'%c'", lastchar);
		fprint(2, "rc: line %d: %s near %s\n", lineno - (lastchar == '\n'), s, tok);
	} else
		fprint(2, "rc: %s\n", s);
}

// Assembly:
pushq %rbx
cmpb $0x1, 0x10671(%rip)     # 0x19ba8
jne 0x9542
movb $0x0, 0x10668(%rip)     # 0x19ba8
popq %rbx
retq
movq %rdi, %rbx
leaq 0x10688(%rip), %rax     # 0x19bd4
cmpl $0x0, (%rax)
je 0x9568
leaq 0x67ec(%rip), %rsi      # 0xfd44
movl $0x2, %edi
movq %rbx, %rdx
xorl %eax, %eax
popq %rbx
jmp 0xaf8c
cmpl $0x0, 0x1062d(%rip)     # 0x19b9c
je 0x95a6
movq 0x10610(%rip), %r8      # 0x19b88
movl 0x1061a(%rip), %edx     # 0x19b98
leaq 0x105b3(%rip), %rax     # 0x19b38
xorl %ecx, %ecx
cmpl $0xa, (%rax)
sete %cl
subl %ecx, %edx
leaq 0x6795(%rip), %rsi      # 0xfd2b
movl $0x2, %edi
movq %rbx, %rcx
xorl %eax, %eax
popq %rbx
jmp 0xaf8c
leaq 0x1058b(%rip), %rax     # 0x19b38
movl (%rax), %esi
cmpl $-0x1, %esi
je 0x95c2
cmpl $0xa, %esi
jne 0x95cb
leaq 0x674d(%rip), %r8       # 0xfd0d
jmp 0x9578
leaq 0x6740(%rip), %r8       # 0xfd09
jmp 0x9578
leal -0x7f(%rsi), %eax
cmpl $-0x5f, %eax
leaq 0x6741(%rip), %rax      # 0xfd19
leaq 0x6747(%rip), %rdi      # 0xfd26
cmovbq %rax, %rdi
xorl %eax, %eax
callq 0xb191
movq %rax, %r8
jmp 0x9578
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/lex.c
// Function: inityy
extern void inityy() {
	newline = FALSE;
	w = NW;
	hq = NULL;
	/* return memory to the system if the buffer got too large */
	if (bufsize > BUFMAX && realbuf != NULL) {
		efree(realbuf);
		bufsize = BUFSIZE;
		realbuf = ealloc(bufsize);
	} else if (realbuf == NULL)
		realbuf = ealloc(bufsize);
}

// Assembly:
pushq %rax
movb $0x0, 0x1059d(%rip)     # 0x19b94
movl $0x0, 0x1059b(%rip)     # 0x19b9c
leaq 0x10518(%rip), %rax     # 0x19b20
movq $0x0, (%rax)
movq 0xfd2a(%rip), %rdi      # 0x19340
cmpq $0x1f41, %rdi           # imm = 0x1F41
setae %cl
movq 0x10561(%rip), %rax     # 0x19b88
testq %rax, %rax
setne %dl
andb %cl, %dl
cmpb $0x1, %dl
jne 0x964e
movq %rax, %rdi
callq 0x9fde
movq $0x3e8, 0xfcf9(%rip) # imm = 0x3E8
movl $0x3e8, %edi            # imm = 0x3E8
jmp 0x9653
testq %rax, %rax
jne 0x965f
callq 0xa00d
movq %rax, 0x10529(%rip)     # 0x19b88
popq %rax
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/list.c
// Function: listfree
extern void listfree(List *p) {
	while (p != NULL) {
		List *n = p->n;
		efree(p->w);
		efree(p);
		p = n;
	}
}

// Assembly:
testq %rdi, %rdi
je 0x9693
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rbx), %rdi
movq 0x10(%rbx), %r14
callq 0x9fde
movq %rbx, %rdi
callq 0x9fde
movq %r14, %rbx
testq %r14, %r14
jne 0x9670
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/list.c
// Function: listcpy
extern List *listcpy(List *s, void *(*alloc)(size_t)) {
	List *top, *r;
	for (top = r = NULL; s != NULL; s = s->n) {
		if (top == NULL)
			r = top = (*alloc)(sizeof (List));
		else
			r = r->n = (*alloc)(sizeof (List));
		r->w = (*alloc)(strlen(s->w) + 1);
		strcpy(r->w, s->w);
		r->m = NULL;
	}
	if (r != NULL)
		r->n = NULL;
	return top;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x9708
movq %rsi, %rbx
movq %rdi, %r14
xorl %r13d, %r13d
xorl %ebp, %ebp
movl $0x18, %edi
callq *%rbx
movq %rax, %r12
movq %rax, %r15
testq %rbp, %rbp
je 0x96c8
movq %r12, 0x10(%r13)
movq %rbp, %r15
movq (%r14), %rdi
callq 0x30f0
leaq 0x1(%rax), %rdi
callq *%rbx
movq %rax, (%r12)
movq (%r14), %rsi
movq %rax, %rdi
callq 0x3070
movq $0x0, 0x8(%r12)
movq 0x10(%r14), %r14
movq %r12, %r13
movq %r15, %rbp
testq %r14, %r14
jne 0x96af
movq $0x0, 0x10(%r12)
jmp 0x970b
xorl %r15d, %r15d
movq %r15, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/list.c
// Function: listlen
extern size_t listlen(List *s) {
	size_t size;
	for (size = 0; s != NULL; s = s->n)
		size += strlen(s->w) + 1;
	return size;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
testq %rdi, %rdi
je 0x9744
movq %rdi, %r14
xorl %ebx, %ebx
movq (%r14), %rdi
callq 0x30f0
addq %rax, %rbx
incq %rbx
movq 0x10(%r14), %r14
testq %r14, %r14
jne 0x972b
jmp 0x9746
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/list.c
// Function: listnel
extern int listnel(List *s) {
	int nel;
	for (nel = 0; s != NULL; s = s->n)
		nel++;
	return nel;
}

// Assembly:
xorl %eax, %eax
testq %rdi, %rdi
je 0x9760
incl %eax
movq 0x10(%rdi), %rdi
jmp 0x9753
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/main.c
// Function: assigndefault
static void assigndefault(char *name,...) {
	va_list ap;
	List *l;
	char *v;
	va_start(ap, name);
	for (l = NULL; (v = va_arg(ap, char *)) != NULL;)
		l = append(l, word(v, NULL));
	varassign(name, l, FALSE);
	set_exportable(name, FALSE);
	if (streq(name, "path"))
		alias(name, l, FALSE);
	va_end(ap);
}

// Assembly:
pushq %r14
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
leaq 0x20(%rsp), %rdi
movq %rsi, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
movq %r8, 0x20(%rdi)
movq %r9, 0x28(%rdi)
testb %al, %al
je 0x9c18
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
movq %rdi, 0x10(%rsp)
leaq 0xf0(%rsp), %rax
movq %rax, 0x8(%rsp)
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rax, (%rsp)
xorl %r14d, %r14d
movl (%rsp), %ecx
cmpq $0x28, %rcx
ja 0x9c54
movq %rcx, %rax
addq 0x10(%rsp), %rax
addl $0x8, %ecx
movl %ecx, (%rsp)
jmp 0x9c62
movq 0x8(%rsp), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%rsp)
movq (%rax), %rdi
testq %rdi, %rdi
je 0x9c81
xorl %esi, %esi
callq 0x6644
movq %r14, %rdi
movq %rax, %rsi
callq 0x6677
movq %rax, %r14
jmp 0x9c3b
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0xc808
movq %rbx, %rdi
xorl %esi, %esi
callq 0x796a
cmpb $0x70, (%rbx)
jne 0x9cbd
leaq 0x5433(%rip), %rsi      # 0xf0d7
movq %rbx, %rdi
callq 0x31f0
testl %eax, %eax
jne 0x9cbd
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
callq 0xc995
addq $0xd8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/match.c
// Function: match
extern bool match(char *p, char *m, char *s) {
	struct { char *p, *m, *s; } next;
	if (m == NULL)
		return streq(p, s);
	next.s = NULL;
	while (*p || *s) {
		if (*p) {
			if (!*m) {
				/* ordinary character */
				if (*s == *p) {
					p++, m++, s++;
					continue;
				}
			} else switch (*p) {
			case '?':
				if (*s) {
					p++, m++, s++;
					continue;
				}
				break;
			case '[': {
				int r = 1 + rangematch(p+1, *s);
				if (r > 0) {
					p += r, m += r, s++;
					continue;
				}
				break;
			}
			case '*':
				next.p = p++;
				next.m = m++;
				next.s = *s ? s+1 : NULL;
				continue;
			default:
				panic("bad metacharacter in match");
				/* NOTREACHED */
				return FALSE; /* hush up gcc -Wall */
			}
		}
		if (next.s != NULL) {
			p = next.p;
			m = next.m;
			s = next.s;
			continue;
		}
		return FALSE;
	}
	return TRUE;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
testq %rsi, %rsi
je 0x9e4e
xorl %eax, %eax
xorl %r9d, %r9d
movb (%rdi), %bl
testb %bl, %bl
je 0x9d35
leaq 0x1(%rdx), %r10
xorl %r11d, %r11d
movq %rsi, %r14
movq %rdi, %r15
cmpb $0x0, (%rsi,%r11)
je 0x9d6c
cmpb $0x2a, %bl
jne 0x9d54
movq %r15, %r8
incq %r15
movq %r14, %rcx
incq %r14
movb (%rdx), %bpl
testb %bpl, %bpl
movq %r10, %r9
cmoveq %rax, %r9
movb 0x1(%rdi,%r11), %bl
incq %r11
testb %bl, %bl
jne 0x9cf4
leaq (%rsi,%r11), %rcx
decq %rcx
leaq (%rdi,%r11), %r8
decq %r8
jmp 0x9d38
movb (%rdx), %bpl
testb %bpl, %bpl
je 0x9e78
movq %r8, %rdi
movq %rcx, %rsi
movq %r9, %rdx
testq %r9, %r9
jne 0x9ce1
jmp 0x9e67
movzbl %bl, %ebx
cmpl $0x5b, %ebx
je 0x9d81
cmpl $0x3f, %ebx
jne 0x9e40
cmpb $0x0, (%rdx)
jne 0x9d70
jmp 0x9d41
cmpb %bl, (%rdx)
jne 0x9d41
addq %r11, %rdi
incq %rdi
addq %r11, %rsi
incq %rsi
jmp 0x9e38
leaq (%rdi,%r11), %r15
leaq (%rdi,%r11), %rbx
incq %rbx
xorl %r14d, %r14d
cmpb $0x7e, (%rbx)
sete %r14b
xorl %r12d, %r12d
cmpb $0x5d, 0x1(%r14,%r15)
movb (%rdx), %dl
sete %r12b
cmpb $0x5d, %dl
sete %bpl
addq %r14, %rbx
addq %r12, %rbx
andb %bpl, %r12b
movzbl %r12b, %ebp
movzbl (%rbx), %r15d
cmpl $0x5d, %r15d
je 0x9e0e
testl %r15d, %r15d
je 0x9e02
cmpb $0x2d, 0x1(%rbx)
jne 0x9dd8
movb 0x2(%rbx), %r12b
cmpb $0x5d, %r12b
jne 0x9de1
cmpb %dl, %r15b
sete %r15b
jmp 0x9df6
addq $0x2, %rbx
cmpb %dl, %r15b
setle %r13b
cmpb %dl, %r12b
setge %r15b
andb %r13b, %r15b
movzbl %r15b, %r15d
orl %r15d, %ebp
incq %rbx
jmp 0x9db9
xorl %ebx, %ebx
cmpb $0x5b, %dl
setne %bl
negl %ebx
jmp 0x9e1c
cmpl %r14d, %ebp
je 0x9d41
subl %edi, %ebx
subl %r11d, %ebx
testl %ebx, %ebx
js 0x9d41
movl %ebx, %edx
addq %rdx, %rdi
incq %rdi
addq %r11, %rdi
addq %rdx, %rsi
incq %rsi
addq %r11, %rsi
movq %r10, %rdx
jmp 0x9ce1
leaq 0x6028(%rip), %rdi      # 0xfe6f
callq 0xc72e
jmp 0x9e67
movb (%rdi), %al
cmpb (%rdx), %al
jne 0x9e67
movq %rdx, %rsi
callq 0x31f0
movl %eax, %ecx
xorl %eax, %eax
testl %ecx, %ecx
sete %al
jmp 0x9e69
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x1, %eax
jmp 0x9e69
nop
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/nalloc.c
// Function: nalloc
extern void *nalloc(size_t n) {
	size_t base;
	Block *ulp;
	n = alignto(n, sizeof(align_t));
	ulp = ul;
	if (ulp != NULL && n + (base = ulp->used) < ulp->size) {
		ulp->used = base + n;
		return &ulp->mem[base];
	} else {
		getblock(n);
		assert(ul->used == 0);
		(ulp = ul)->used = n;
		return &ulp->mem[0];
	}
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
addq $0x7, %rbx
andq $-0x8, %rbx
movq 0xfd62(%rip), %rcx      # 0x19bf8
testq %rcx, %rcx
je 0x9eb1
movq (%rcx), %rax
leaq (%rax,%rbx), %rdx
cmpq 0x8(%rcx), %rdx
jae 0x9eb1
movq %rdx, (%rcx)
addq 0x10(%rcx), %rax
jmp 0x9f2d
movq 0xfd48(%rip), %r14      # 0x19c00
testq %r14, %r14
je 0x9edf
cmpq %rbx, 0x8(%r14)
jae 0x9f10
movq %r14, %rax
movq 0x18(%r14), %r14
testq %r14, %r14
je 0x9edf
cmpq %rbx, 0x8(%r14)
jb 0x9ec3
movq 0x18(%r14), %rdx
movq %rdx, 0x18(%rax)
jmp 0x9f1b
movl $0x20, %edi
callq 0xa00d
movq %rax, %r14
leaq 0xfff(%rbx), %rdi
andq $-0x1000, %rdi          # imm = 0xF000
movq %rdi, 0x8(%rax)
callq 0xa00d
movq %rax, 0x10(%r14)
movq 0xfcea(%rip), %rcx      # 0x19bf8
jmp 0x9f1b
movq 0x18(%r14), %rax
movq %rax, 0xfce5(%rip)      # 0x19c00
movq %rcx, 0x18(%r14)
movq %r14, 0xfcd2(%rip)      # 0x19bf8
movq %rbx, (%r14)
movq 0x10(%r14), %rax
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/nalloc.c
// Function: nfree
extern void nfree() {
	size_t count;
	Block *r;
	if (ul == NULL)
		return;
	for (r = ul; r->n != NULL; r = r->n)
		;	/* get to end of used list */
	r->n = fl;	/* tack free list onto it */
	fl = ul;	/* and make it the free list */
	ul = NULL;	/* finally, zero out the used list */
	for (r = fl, count = r->size; r->n != NULL; r = r->n, count += r->size) {
		if (count >= MAXMEM) {
			Block *tmp = r;
			r = r->n;
			tmp->n = NULL;		/* terminate the free list */
			while (r != NULL) {	/* free memory off the tail of the free list */
				tmp = r->n;
				efree(r->mem);
				efree(r);
				r = tmp;
			}
		return;
		}
	}
}

// Assembly:
movq 0xfcbc(%rip), %rax      # 0x19bf8
testq %rax, %rax
je 0x9fdd
pushq %r14
pushq %rbx
pushq %rax
movq %rax, %rdx
movq %rdx, %rcx
movq 0x18(%rdx), %rdx
testq %rdx, %rdx
jne 0x9f4c
movq 0xfca1(%rip), %rdx      # 0x19c00
movq %rdx, 0x18(%rcx)
movq %rax, 0xfc96(%rip)      # 0x19c00
movq $0x0, 0xfc83(%rip) # 0x19bf8
movq 0x18(%rax), %rcx
testq %rcx, %rcx
je 0x9fd6
movq 0x8(%rax), %rdx
cmpq $0x7a11f, %rdx          # imm = 0x7A11F
jbe 0x9f90
movq %rcx, %rbx
jmp 0x9fac
movq 0x18(%rcx), %rbx
testq %rbx, %rbx
je 0x9fd6
addq 0x8(%rcx), %rdx
movq %rcx, %rax
movq %rbx, %rcx
cmpq $0x7a120, %rdx          # imm = 0x7A120
jb 0x9f90
movq $0x0, 0x18(%rax)
movq 0x10(%rbx), %rdi
movq 0x18(%rbx), %r14
testq %rdi, %rdi
je 0x9fc6
callq 0x3030
movq %rbx, %rdi
callq 0x3030
movq %r14, %rbx
testq %r14, %r14
jne 0x9fb4
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/nalloc.c
// Function: ealloc
extern void *ealloc(size_t n) {
	void *p;

	assert(n);
	p = malloc(n);
	if (p == NULL) {
		uerror("malloc");
		rc_exit(1);
	}
	return p;
}

// Assembly:
pushq %rbx
testq %rdi, %rdi
je 0xa03b
callq 0x3270
movq %rax, %rbx
testq %rax, %rax
jne 0xa036
leaq 0x5e81(%rip), %rdi      # 0xfea8
callq 0xc6dd
movl $0x1, %edi
callq 0x4eb5
movq %rbx, %rax
popq %rbx
retq
leaq 0x5e8e(%rip), %rdi      # 0xfed0
leaq 0x5e41(%rip), %rsi      # 0xfe8a
leaq 0x5e43(%rip), %rcx      # 0xfe93
movl $0x75, %edx
callq 0x3140
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/nalloc.c
// Function: erealloc
extern void *erealloc(void *p, size_t n) {
	if (p == NULL)		/* erealloc() has POSIX realloc() semantics */
		return ealloc(n);
	if ((p = realloc(p, n)) == NULL) {
		uerror("realloc");
		rc_exit(1);
	}
	return p;
}

// Assembly:
testq %rdi, %rdi
je 0xa084
pushq %rax
callq 0x32a0
testq %rax, %rax
jne 0xa082
leaq 0x5e3e(%rip), %rdi      # 0xfeaf
callq 0xc6dd
movl $0x1, %edi
callq 0x4eb5
xorl %eax, %eax
popq %rcx
retq
movq %rsi, %rdi
jmp 0xa00d
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/open.c
// Function: makeblocking
extern bool makeblocking(int fd) {
	int flags;

	if ((flags = fcntl(fd, F_GETFL)) == -1) {
		uerror("fcntl");
		rc_error(NULL);
	}
	if (! (flags & O_NONBLOCK))
		return FALSE;
	flags &= ~O_NONBLOCK;
	if (fcntl(fd, F_SETFL, (long) flags) == -1) {
		uerror("fcntl");
		rc_error(NULL);
	}
	return TRUE;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebx
xorl %ebp, %ebp
movl $0x3, %esi
xorl %eax, %eax
callq 0x30b0
movl %eax, %r14d
cmpl $-0x1, %eax
je 0xa0eb
btl $0xb, %r14d
jb 0xa0fe
jmp 0xa133
leaq 0x5de0(%rip), %rdi      # 0xfed2
callq 0xc6dd
xorl %edi, %edi
callq 0x46c0
andl $0xfffff7ff, %r14d      # imm = 0xFFFFF7FF
movslq %r14d, %rdx
movl %ebx, %edi
movl $0x4, %esi
xorl %eax, %eax
callq 0x30b0
movl $0x1, %ebp
cmpl $-0x1, %eax
jne 0xa133
leaq 0x5dab(%rip), %rdi      # 0xfed2
callq 0xc6dd
xorl %edi, %edi
callq 0x46c0
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/open.c
// Function: makesamepgrp
extern bool makesamepgrp(int fd) {
	pid_t grp;

	grp = getpgrp();

	if (tcgetpgrp(fd) == grp)
		return FALSE;

	if (tcsetpgrp(fd, grp) < 0) {
		uerror("tcsetgrp");
		return FALSE;
	}
	return TRUE;
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movl %edi, %ebx
callq 0x32d0
movl %eax, %ebp
movl %ebx, %edi
callq 0x3240
movl %eax, %ecx
xorl %eax, %eax
cmpl %ebp, %ecx
je 0xa177
movl %ebx, %edi
movl %ebp, %esi
callq 0x32e0
movl %eax, %ecx
movl $0x1, %eax
testl %ecx, %ecx
jns 0xa177
leaq 0x5d68(%rip), %rdi      # 0xfed8
callq 0xc6dd
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: fmtinstall
extern bool (*fmtinstall(int c, bool (*f)(Format *, int)))(Format *, int) {
/*Conv fmtinstall(int c, Conv f) {*/
	Conv oldf;
	if (fmttab[0] == NULL)
		inittab();
	c &= MAXCONV - 1;
	oldf = fmttab[c];
	if (f != NULL)
		fmttab[c] = f;
	return oldf;
}

// Assembly:
pushq %rbp
pushq %rbx
pushq %rax
movq %rsi, %rbx
movl %edi, %ebp
cmpq $0x0, 0xf074(%rip)      # 0x19c90
jne 0xac23
callq 0xac42
movzbl %bpl, %ecx
leaq 0xf062(%rip), %rdx      # 0x19c90
movq (%rdx,%rcx,8), %rax
testq %rbx, %rbx
je 0xac3b
movq %rbx, (%rdx,%rcx,8)
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: inittab
static void inittab(void) {
	int i;
	for (i = 0; i < MAXCONV; i++)
		fmttab[i] = badconv;

	fmttab['s'] = sconv;
	fmttab['c'] = cconv;
	fmttab['d'] = dconv;
	fmttab['o'] = oconv;
	fmttab['x'] = xconv;
	fmttab['%'] = pctconv;

	fmttab['u'] = uconv;
	fmttab['l'] = rc_lconv;
	fmttab['#'] = altconv;
	fmttab['-'] = leftconv;
	fmttab['.'] = dotconv;

#if HAVE_QUAD_T
	fmttab['q'] = qconv;
#endif

	fmttab['0'] = zeroconv;
	for (i = '1'; i <= '9'; i++)
		fmttab[i] = digitconv;
}

// Assembly:
xorl %ecx, %ecx
leaq 0xf045(%rip), %rax      # 0x19c90
leaq 0x62e(%rip), %rdx       # 0xb280
movq %rdx, %xmm0
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
movdqa %xmm0, (%rcx,%rax)
addq $0x10, %rcx
cmpq $0x800, %rcx            # imm = 0x800
jne 0xac5c
leaq 0x61c(%rip), %rcx       # 0xb291
movq %rcx, 0xf3ac(%rip)      # 0x1a028
leaq 0x709(%rip), %rcx       # 0xb38c
movq %rcx, 0xf31e(%rip)      # 0x19fa8
leaq 0x74a(%rip), %rcx       # 0xb3db
movq %rcx, 0xf318(%rip)      # 0x19fb0
leaq 0x752(%rip), %rcx       # 0xb3f1
movq %rcx, 0xf362(%rip)      # 0x1a008
leaq 0x75a(%rip), %rcx       # 0xb407
movq %rcx, 0xf39c(%rip)      # 0x1a050
leaq 0x762(%rip), %rcx       # 0xb41d
movq %rcx, 0xf0f6(%rip)      # 0x19db8
leaq 0x780(%rip), %rcx       # 0xb449
movq %rcx, 0xf368(%rip)      # 0x1a038
leaq 0x77c(%rip), %rcx       # 0xb453
movq %rcx, 0xf312(%rip)      # 0x19ff0
leaq 0x778(%rip), %rcx       # 0xb45d
movq %rcx, 0xf0bc(%rip)      # 0x19da8
leaq 0x774(%rip), %rcx       # 0xb467
movq %rcx, 0xf0fe(%rip)      # 0x19df8
leaq 0x770(%rip), %rcx       # 0xb471
movq %rcx, 0xf0f8(%rip)      # 0x19e00
leaq 0x76c(%rip), %rcx       # 0xb47b
movq %rcx, 0xf0fa(%rip)      # 0x19e10
xorl %ecx, %ecx
movdqa 0x8ee0(%rip), %xmm0     # 0x13c00
movdqa 0x8ee8(%rip), %xmm1     # 0x13c10
movdqa 0x8ef0(%rip), %xmm2     # 0x13c20
pshufd $0xf5, %xmm2, %xmm3     # xmm3 = xmm2[1,1,3,3]
leaq 0x783(%rip), %rdx       # 0xb4bf
movq %rcx, %xmm4
pshufd $0x44, %xmm4, %xmm4     # xmm4 = xmm4[0,1,0,1]
por %xmm0, %xmm4
pxor %xmm1, %xmm4
movdqa %xmm2, %xmm5
pcmpgtd %xmm4, %xmm5
pshufd $0xf5, %xmm4, %xmm4     # xmm4 = xmm4[1,1,3,3]
pcmpeqd %xmm3, %xmm4
pand %xmm5, %xmm4
movd %xmm4, %esi
testb $0x1, %sil
je 0xad75
movq %rdx, 0x188(%rax,%rcx,8)
pextrw $0x4, %xmm4, %esi
testb $0x1, %sil
je 0xad88
movq %rdx, 0x190(%rax,%rcx,8)
addq $0x2, %rcx
cmpq $0xa, %rcx
jne 0xad3c
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: fmtappend
extern void fmtappend(Format *format, const char *s, size_t len) {
	while (format->buf + len > format->bufend) {
		size_t split = format->bufend - format->buf;
		memcpy(format->buf, s, split);
		format->buf += split;
		s += split;
		len -= split;
		(*format->grow)(format, len);
	}
	memcpy(format->buf, s, len);
	format->buf += len;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r15
movq %rdi, %r14
movq 0x30(%rdi), %rdi
movq 0x40(%r14), %r12
leaq (%rdi,%rdx), %rax
cmpq %r12, %rax
jbe 0xade5
subq %rdi, %r12
movq %r15, %rsi
movq %r12, %rdx
callq 0x3230
addq %r12, 0x30(%r14)
addq %r12, %r15
subq %r12, %rbx
movq %r14, %rdi
movq %rbx, %rsi
callq *0x50(%r14)
movq 0x30(%r14), %rdi
movq 0x40(%r14), %r12
leaq (%rdi,%rbx), %rax
jmp 0xadb0
movq %r15, %rsi
movq %rbx, %rdx
callq 0x3230
addq %rbx, 0x30(%r14)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: printfmt
extern int printfmt(Format *format, const char *fmt) {
	unsigned const char *s = (unsigned const char *) fmt;

	if (fmttab[0] == NULL)
		inittab();

	for (;;) {
		int c = *s++;
		switch (c) {
		case '%':
			format->flags = format->f1 = format->f2 = 0;
			do
				c = *s++;
			while ((*fmttab[c])(format, c));
			break;
		case '\0':
			return format->buf - format->bufbegin + format->flushed;
		default:
			fmtputc(format, c);
			break;
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, 0xee53(%rip)      # 0x19c90
jne 0xae44
callq 0xac42
leaq 0x18(%rbx), %r15
leaq 0xee41(%rip), %r12      # 0x19c90
movzbl (%r14), %ebp
incq %r14
cmpl $0x25, %ebp
je 0xae85
testl %ebp, %ebp
je 0xaea8
movq 0x30(%rbx), %rax
cmpq 0x40(%rbx), %rax
jb 0xae78
movl $0x1, %esi
movq %rbx, %rdi
callq *0x50(%rbx)
movq 0x30(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x30(%rbx)
movb %bpl, (%rax)
jmp 0xae4f
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
movq $0x0, 0x10(%r15)
movzbl (%r14), %esi
incq %r14
movq %rbx, %rdi
callq *(%r12,%rsi,8)
testl %eax, %eax
jne 0xae94
jmp 0xae4f
movl 0x30(%rbx), %eax
subl 0x38(%rbx), %eax
addl 0x48(%rbx), %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: fprint
extern int fprint(int fd, const char *fmt,...) {
	char buf[1024];
	Format format;
	va_list ap;

	format.buf	= buf;
	format.bufbegin	= buf;
	format.bufend	= buf + sizeof buf;
	format.grow	= fprint_flush;
	format.flushed	= 0;
	format.u.n	= fd;

	va_start(ap, fmt);
	va_copy(format.args, ap);
	printfmt(&format, fmt);
	va_end(format.args);

	fprint_flush(&format, 0);
	return format.flushed;
}

// Assembly:
pushq %rbx
subq $0x530, %rsp            # imm = 0x530
leaq 0x20(%rsp), %r10
movq %rdx, 0x10(%r10)
movq %rcx, 0x18(%r10)
movq %r8, 0x20(%r10)
movq %r9, 0x28(%r10)
testb %al, %al
je 0xafe4
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
leaq 0x130(%rsp), %rax
leaq 0xd0(%rsp), %rbx
movq %rax, 0x30(%rbx)
movq %rax, 0x38(%rbx)
leaq 0x530(%rsp), %rax
movq %rax, 0x40(%rbx)
leaq 0x75(%rip), %rax        # 0xb084
movq %rax, 0x50(%rbx)
movl $0x0, 0x48(%rbx)
movl %edi, 0x58(%rbx)
movabsq $0x3000000010, %rax     # imm = 0x3000000010
movq %rax, (%rsp)
leaq 0x540(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %r10, 0x10(%rsp)
movq (%rsp), %rax
movq %rax, (%rbx)
movq 0x8(%rsp), %rax
movq %rax, 0x8(%rbx)
movq 0x10(%rsp), %rax
movq %rax, 0x10(%rbx)
movq %rbx, %rdi
callq 0xae27
movq 0x30(%rbx), %rdx
movq 0x38(%rbx), %rsi
subq %rsi, %rdx
addl %edx, 0x48(%rbx)
movq %rsi, 0x30(%rbx)
movl 0x58(%rbx), %edi
callq 0xbfdc
movl 0x48(%rbx), %eax
addq $0x530, %rsp            # imm = 0x530
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: mprint
extern char *mprint(const char *fmt,...) {
	Format format;
	char *result;
	va_list ap;

	format.u.n = 1;
	va_start(ap, fmt);
	va_copy(format.args, ap);
	result = memprint(&format, fmt, ealloc(PRINT_ALLOCSIZE), PRINT_ALLOCSIZE);
	va_end(format.args);
	return result;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x138, %rsp            # imm = 0x138
movq %rdi, %rbx
leaq 0x20(%rsp), %rdi
movq %rsi, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
movq %r8, 0x20(%rdi)
movq %r9, 0x28(%rdi)
testb %al, %al
je 0xb0ff
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
leaq 0xd0(%rsp), %r14
movl $0x1, 0x58(%r14)
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rax, (%rsp)
leaq 0x150(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq %rdi, 0x10(%r14)
movq (%rsp), %rax
movq %rax, (%r14)
movq 0x8(%rsp), %rax
movq %rax, 0x8(%r14)
movl $0x40, %edi
callq 0xa00d
movq %rax, 0x30(%r14)
movq %rax, 0x38(%r14)
addq $0x3f, %rax
movq %rax, 0x40(%r14)
leaq 0x5cf(%rip), %rax       # 0xb733
movq %rax, 0x50(%r14)
movl $0x0, 0x48(%r14)
movq %r14, %rdi
movq %rbx, %rsi
callq 0xae27
movq 0x30(%r14), %rax
movb $0x0, (%rax)
movq 0x38(%r14), %rax
addq $0x138, %rsp            # imm = 0x138
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: nprint
extern char *nprint(const char *fmt,...) {
	Format format;
	char *result;
	va_list ap;

	format.u.n = 0;
	va_start(ap, fmt);
	va_copy(format.args, ap);
	result = memprint(&format, fmt, nalloc(PRINT_ALLOCSIZE), PRINT_ALLOCSIZE);
	va_end(format.args);
	return result;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
subq $0x130, %rsp            # imm = 0x130
movq %rdi, %rbx
leaq 0x20(%rsp), %rdi
movq %rsi, 0x8(%rdi)
movq %rdx, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
movq %r8, 0x20(%rdi)
movq %r9, 0x28(%rdi)
testb %al, %al
je 0xb1f3
movaps %xmm0, 0x50(%rsp)
movaps %xmm1, 0x60(%rsp)
movaps %xmm2, 0x70(%rsp)
movaps %xmm3, 0x80(%rsp)
movaps %xmm4, 0x90(%rsp)
movaps %xmm5, 0xa0(%rsp)
movaps %xmm6, 0xb0(%rsp)
movaps %xmm7, 0xc0(%rsp)
xorl %ebp, %ebp
leaq 0xd0(%rsp), %r14
movl %ebp, 0x58(%r14)
movabsq $0x3000000008, %rax     # imm = 0x3000000008
movq %rax, (%rsp)
leaq 0x150(%rsp), %rax
movq %rax, 0x8(%rsp)
movq %rdi, 0x10(%rsp)
movq %rdi, 0x10(%r14)
movq (%rsp), %rax
movq %rax, (%r14)
movq 0x8(%rsp), %rax
movq %rax, 0x8(%r14)
movl $0x40, %edi
callq 0x9e80
movq %rax, 0x30(%r14)
movq %rax, 0x38(%r14)
addq $0x3f, %rax
movq %rax, 0x40(%r14)
leaq 0x4dd(%rip), %rax       # 0xb733
movq %rax, 0x50(%r14)
movl %ebp, 0x48(%r14)
movq %r14, %rdi
movq %rbx, %rsi
callq 0xae27
movq 0x30(%r14), %rax
movb $0x0, (%rax)
movq 0x38(%r14), %rax
addq $0x130, %rsp            # imm = 0x130
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: sconv
static bool sconv(Format *format, int ignore) {
	char *s = va_arg(format->args, char *);
	if ((format->flags & FMT_f1set) == 0)
		fmtcat(format, s);
	else {
		size_t len = strlen(s), width = format->f1 - len;
		if (format->flags & FMT_leftside) {
			fmtappend(format, s, len);
			pad(format, width, ' ');
		} else {
			pad(format, width, ' ');
			fmtappend(format, s, len);
		}
	}
	return FALSE;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl (%rdi), %ecx
cmpq $0x28, %rcx
ja 0xb2b5
movq %rcx, %rax
addq 0x10(%rbx), %rax
addl $0x8, %ecx
movl %ecx, (%rbx)
jmp 0xb2c1
movq 0x8(%rbx), %rax
leaq 0x8(%rax), %rcx
movq %rcx, 0x8(%rbx)
movq (%rax), %r15
movq 0x18(%rbx), %r12
movq %r15, %rdi
testb %r12b, %r12b
js 0xb2e0
callq 0x30f0
movq %rbx, %rdi
movq %r15, %rsi
movq %rax, %rdx
jmp 0xb335
callq 0x30f0
movq %rax, %r14
movq 0x20(%rbx), %r13
movq %r13, %rbp
subq %rax, %rbp
testb $0x20, %r12b
jne 0xb34b
testq %rbp, %rbp
je 0xb32c
movq %r14, %r12
subq %r13, %r12
movq 0x30(%rbx), %rax
cmpq 0x40(%rbx), %rax
jb 0xb31c
movl $0x1, %esi
movq %rbx, %rdi
callq *0x50(%rbx)
movq 0x30(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x30(%rbx)
movb $0x20, (%rax)
incq %r12
jne 0xb303
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xad93
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0xad93
testq %rbp, %rbp
je 0xb33a
subq %r13, %r14
movq 0x30(%rbx), %rax
cmpq 0x40(%rbx), %rax
jb 0xb37a
movl $0x1, %esi
movq %rbx, %rdi
callq *0x50(%rbx)
movq 0x30(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x30(%rbx)
movb $0x20, (%rax)
incq %r14
jne 0xb361
jmp 0xb33a
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: zeroconv
static bool zeroconv(Format *format, int ignore) {
	if (format->flags & (FMT_f1set | FMT_f2set))
		return digitconv(format, '0');
	format->flags |= FMT_zeropad;
	return TRUE;
}

// Assembly:
movq 0x18(%rdi), %rax
testl $0x180, %eax            # imm = 0x180
je 0xb4b1
movl $0x28, %ecx
btl $0x8, %eax
jb 0xb4a0
orq $0x80, %rax
movq %rax, 0x18(%rdi)
movl $0x20, %ecx
movq (%rdi,%rcx), %rax
addq %rax, %rax
leaq (%rax,%rax,4), %rax
movq %rax, (%rdi,%rcx)
jmp 0xb4b9
orq $0x10, %rax
movq %rax, 0x18(%rdi)
movl $0x1, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: rc_utoa
static char *rc_utoa(unsigned long u, char *t, unsigned int radix, const char *digit) {
	if (u >= radix) {
		t = rc_utoa(u / radix, t, radix, digit);
		u %= radix;
	}
	*t++ = digit[u];
	return t;
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl %edx, %edi
cmpq %rbx, %rdi
ja 0xb71f
movl %edx, %ecx
movq %rbx, %rax
xorl %edx, %edx
divq %rdi
movq %rdx, %rbx
movq %rax, %rdi
movl %ecx, %edx
callq 0xb6fa
movq %rax, %rsi
leaq 0x852f(%rip), %rax      # 0x13c55
movb (%rbx,%rax), %al
movb %al, (%rsi)
incq %rsi
movq %rsi, %rax
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/print.c
// Function: memprint_grow
static void memprint_grow(Format *format, size_t more) {
	char *buf;
	size_t len = format->bufend - format->bufbegin + 1;
	size_t used = format->buf - format->bufbegin;

	len = (len >= more)
		? len * 2
		: ((len + more) + PRINT_ALLOCSIZE) &~ (PRINT_ALLOCSIZE - 1);
	if (format->u.n)
		buf = erealloc(format->bufbegin, len);
	else {
		buf = nalloc(len);
		memcpy(buf, format->bufbegin, used);
	}
	format->buf = buf + used;
	format->bufbegin = buf;
	format->bufend = buf + len - 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x40(%rdi), %rax
movq 0x30(%rdi), %r14
movq 0x38(%rdi), %rdi
subq %rdi, %rax
leaq 0x1(%rax), %rcx
subq %rdi, %r14
leaq (%rax,%rsi), %rdx
incq %rdx
andq $-0x40, %rdx
addq $0x40, %rdx
cmpq %rsi, %rcx
leaq 0x2(%rax,%rax), %r15
cmovbq %rdx, %r15
cmpl $0x0, 0x58(%rbx)
je 0xb782
movq %r15, %rsi
callq 0xa05a
movq %rax, %r12
jmp 0xb79c
movq %r15, %rdi
callq 0x9e80
movq %rax, %r12
movq 0x38(%rbx), %rsi
movq %rax, %rdi
movq %r14, %rdx
callq 0x3230
addq %r12, %r14
movq %r14, 0x30(%rbx)
movq %r12, 0x38(%rbx)
leaq (%r12,%r15), %rax
decq %rax
movq %rax, 0x40(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
nop
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/signal.c
// Function: sys_signal
void (*sys_signal(int signum, void (*handler)(int)))(int) {
	struct sigaction new, old;

	new.sa_handler = handler;
	new.sa_flags = 0; /* clear SA_RESTART */
	sigfillset(&new.sa_mask);
	if (sigaction(signum, &new, &old) == 0)
		return old.sa_handler;
	return SIG_DFL;
}

// Assembly:
pushq %rbx
subq $0x130, %rsp            # imm = 0x130
movl %edi, %ebx
leaq 0xa0(%rsp), %rdi
movq %rsi, -0x8(%rdi)
movl $0x0, 0x80(%rdi)
callq 0x3220
leaq 0x98(%rsp), %rsi
movq %rsp, %rdx
movl %ebx, %edi
callq 0x30a0
testl %eax, %eax
jne 0xb9c5
movq (%rsp), %rax
jmp 0xb9c7
xorl %eax, %eax
addq $0x130, %rsp            # imm = 0x130
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/signal.c
// Function: sigchk
extern void sigchk() {
	void (*h)(int);
	int s, i;

	if (sigcount == 0)
		return; /* ho hum; life as usual */
	if (forked)
		exit(1); /* exit unconditionally on a signal in a child process */
	for (i = 0, s = -1; i < NUMOFSIGNALS; i++)
		if (caught[i] != 0) {
			s = i;
			--sigcount;
			caught[s] = 0;
			break;
		}
	if (s == -1)
		panic("all-zero sig vector with nonzero sigcount");
	if ((h = sighandlers[s]) == SIG_DFL)
		panic("caught signal set to SIG_DFL");
	if (h == SIG_IGN)
		panic("caught signal set to SIG_IGN");
	(*h)(s);
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
cmpl $0x0, 0xeb90(%rip)      # 0x1a594
je 0xba44
leaq 0xf5bb(%rip), %rax      # 0x1afc8
cmpl $0x0, (%rax)
jne 0xba9a
leaq 0xea73(%rip), %rax      # 0x1a490
xorl %ebx, %ebx
cmpl $0x0, (%rax)
jne 0xba4c
incq %rbx
addq $0x4, %rax
cmpq $0x41, %rbx
jne 0xba1f
leaq 0x88f4(%rip), %rdi      # 0x1432c
callq 0xc72e
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0xba58
addq $0x8, %rsp
popq %rbx
popq %r14
retq
decl 0xeb42(%rip)            # 0x1a594
movl $0x0, (%rax)
movslq %ebx, %rax
leaq 0xeb3e(%rip), %rcx      # 0x1a5a0
movq (%rcx,%rax,8), %rax
testq %rax, %rax
je 0xba7d
cmpq $0x1, %rax
jne 0xba8f
movq %rax, %r14
leaq 0x88f8(%rip), %rdi      # 0x14373
jmp 0xba87
movq %rax, %r14
leaq 0x88cf(%rip), %rdi      # 0x14356
callq 0xc72e
movq %r14, %rax
movl %ebx, %edi
addq $0x8, %rsp
popq %rbx
popq %r14
jmpq *%rax
movl $0x1, %edi
callq 0x3330
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/signal.c
// Function: rc_signal
extern void (*rc_signal(int s, void (*h)(int)))(int) {
	void (*old)(int);
	sigchk();
	old = sighandlers[s];
	sighandlers[s] = h;
	if (h == SIG_DFL || h == SIG_IGN)
		sys_signal(s, h);
	else
		sys_signal(s, catcher);
	return old;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq %rsi, %r14
movl %edi, %ebp
callq 0xb9f9
movslq %ebp, %rax
leaq 0xeae4(%rip), %rcx      # 0x1a5a0
movq (%rcx,%rax,8), %rbx
movq %r14, (%rcx,%rax,8)
cmpq $0x1, %r14
ja 0xbad1
movl %ebp, %edi
movq %r14, %rsi
jmp 0xbada
leaq -0x108(%rip), %rsi      # 0xb9d0
movl %ebp, %edi
callq 0xb984
movq %rbx, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/signal.c
// Function: initsignal
extern void initsignal() {
	void (*h)(int);
	int i;

	/* Ensure that SIGCHLD is not SIG_IGN.  Solaris's rshd does this.  :-( */
	h = sys_signal(SIGCHLD, SIG_IGN);
	if (h != SIG_IGN && h != SIG_ERR)
		sys_signal(SIGCHLD, h);
	else
		sys_signal(SIGCHLD, SIG_DFL);

	for (i = 1; i < NUMOFSIGNALS; i++) {
#ifdef SIGKILL
		if (i == SIGKILL) continue;
#endif
#ifdef SIGSTOP
		if (i == SIGSTOP) continue;
#endif
		h = sys_signal(i, SIG_IGN);
		if (h != SIG_IGN && h != SIG_ERR)
			sys_signal(i, h);
		sighandlers[i] = h;
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movl $0x1, %esi
movl $0x11, %edi
callq 0xb984
cmpq $0x1, %rax
je 0xbb07
cmpq $-0x1, %rax
jne 0xbb09
xorl %eax, %eax
movl $0x11, %edi
movq %rax, %rsi
callq 0xb984
movl $0x1, %ebx
leaq 0xea7e(%rip), %r15      # 0x1a5a0
cmpl $0x9, %ebx
je 0xbb55
cmpl $0x13, %ebx
je 0xbb55
movl $0x1, %esi
movl %ebx, %edi
callq 0xb984
movq %rax, %r14
cmpq $-0x1, %rax
je 0xbb51
cmpq $0x1, %r14
je 0xbb51
movl %ebx, %edi
movq %r14, %rsi
callq 0xb984
movq %r14, (%r15,%rbx,8)
incq %rbx
cmpq $0x41, %rbx
jne 0xbb22
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/status.c
// Function: istrue
extern int istrue() {
	int i;
	for (i = 0; i < pipelength; i++)
		if (statuses[i] != 0)
			return FALSE;
	return TRUE;
}

// Assembly:
movslq 0xdbf5(%rip), %rcx      # 0x19760
movl $0x1, %eax
testq %rcx, %rcx
jle 0xbb91
shlq $0x2, %rcx
xorl %edx, %edx
leaq 0xec2e(%rip), %rsi      # 0x1a7b0
cmpl $0x0, (%rdx,%rsi)
jne 0xbb92
addq $0x4, %rdx
cmpq %rdx, %rcx
jne 0xbb82
retq
xorl %eax, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/status.c
// Function: getstatus
extern int getstatus() {
	int s;
	if (pipelength > 1)
		return !istrue();
	s = statuses[0];
	if (WIFSIGNALED(s))
		return 1;
	return WEXITSTATUS(s);
}

// Assembly:
movslq 0xdbc4(%rip), %rax      # 0x19760
cmpq $0x2, %rax
jl 0xbbc1
shlq $0x2, %rax
xorl %ecx, %ecx
leaq 0xec01(%rip), %rdx      # 0x1a7b0
cmpl $0x0, (%rcx,%rdx)
jne 0xbbe6
addq $0x4, %rcx
cmpq %rcx, %rax
jne 0xbbaf
xorl %eax, %eax
retq
movl 0xebe9(%rip), %ecx      # 0x1a7b0
movl %ecx, %edx
andl $0x7f, %edx
shll $0x18, %edx
addl $0x1000000, %edx        # imm = 0x1000000
movl $0x1, %eax
cmpl $0x1ffffff, %edx        # imm = 0x1FFFFFF
jg 0xbbe5
movzbl %ch, %eax
retq
movl $0x1, %eax
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/status.c
// Function: statprint
static void statprint(pid_t pid, int i) {
	int t = WIFSIGNALED(i) ? WTERMSIG(i) : 0;
	const char *core = ((t > 0) && myWIFDUMPED(i) ? "--core dumped" : "");
	if ((interactive && pid != -1) || (t > 0 && (*core || (t != SIGINT && t != SIGPIPE)))) {
		if (pid != -1)
			fprint(2, "%ld: ", (long)pid);
		if (t == 0)
			fprint(2, "done (%d)\n", WEXITSTATUS(i));
		else if ((t > 0) && (t < NUMOFSIGNALS) && *signals[t].msg != '\0')
			fprint(2, "%s%s\n", signals[t].msg, core);
		else
			fprint(2, "unknown signal %d%s\n", t, core);
	}
	if (i != 0 && dashee && !cond)
		rc_exit(getstatus());
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %esi, %eax
andl $0x7f, %eax
movl %eax, %ecx
shll $0x18, %ecx
addl $0x1000000, %ecx        # imm = 0x1000000
xorl %ebp, %ebp
cmpl $0x2000000, %ecx        # imm = 0x2000000
cmovgel %eax, %ebp
testl %ebp, %ebp
leaq 0x8765(%rip), %rbx      # 0x143ad
leaq 0x41d8(%rip), %rax      # 0xfe27
cmoveq %rax, %rbx
testb %sil, %sil
cmovnsq %rax, %rbx
cmpl $-0x1, %edi
je 0xbca3
leaq 0xdf6e(%rip), %rax      # 0x19bd4
cmpl $0x0, (%rax)
je 0xbca3
movl %esi, %r14d
movslq %edi, %rdx
leaq 0x8743(%rip), %rsi      # 0x143bb
movl $0x2, %edi
xorl %eax, %eax
callq 0xaf8c
testl %ebp, %ebp
jne 0xbcce
movl %r14d, %ebx
movzbl %bh, %edx
leaq 0x872c(%rip), %rsi      # 0x143c1
movl $0x2, %edi
xorl %eax, %eax
callq 0xaf8c
jmp 0xbd19
testl %ebp, %ebp
je 0xbd1c
cmpb $0x0, (%rbx)
je 0xbd4d
movl %esi, %r14d
cmpl $-0x1, %edi
je 0xbcce
movslq %edi, %rdx
leaq 0x86f9(%rip), %rsi      # 0x143bb
movl $0x2, %edi
xorl %eax, %eax
callq 0xaf8c
cmpl $0x40, %ebp
ja 0xbd01
movl %ebp, %eax
shll $0x4, %eax
leaq 0xd671(%rip), %rcx      # 0x19350
movq 0x8(%rcx,%rax), %rdx
cmpb $0x0, (%rdx)
je 0xbd01
leaq 0x86dc(%rip), %rsi      # 0x143cc
movl $0x2, %edi
movq %rbx, %rcx
xorl %eax, %eax
callq 0xaf8c
jmp 0xbd19
leaq 0x86ca(%rip), %rsi      # 0x143d2
movl $0x2, %edi
movl %ebp, %edx
movq %rbx, %rcx
xorl %eax, %eax
callq 0xaf8c
movl %r14d, %esi
testl %esi, %esi
je 0xbd48
leaq 0xdea5(%rip), %rax      # 0x19bcc
cmpl $0x0, (%rax)
je 0xbd48
leaq 0xf2a5(%rip), %rax      # 0x1afd8
cmpl $0x0, (%rax)
jne 0xbd48
callq 0xbb95
movl %eax, %edi
popq %rbx
popq %r14
popq %rbp
jmp 0x4eb5
popq %rbx
popq %r14
popq %rbp
retq
cmpl $0x2, %ebp
je 0xbd1c
cmpl $0xd, %ebp
je 0xbd1c
jmp 0xbcb0
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/status.c
// Function: sgetstatus
extern List *sgetstatus() {
	List *r = NULL;
	int i;

	for (i = 0; i < pipelength; i++) {
		List *q = nnew(List);
		q->w = strstatus(statuses[i]);
		q->m = NULL;
		q->n = r;
		r = q;
	}

	return r;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
cmpl $0x0, 0xd9d8(%rip)      # 0x19760
jle 0xbdd3
leaq 0xea1f(%rip), %r14      # 0x1a7b0
xorl %r15d, %r15d
xorl %r12d, %r12d
movl $0x18, %edi
callq 0x9e80
movq %rax, %rbx
movl (%r14), %edi
callq 0xbde4
movq %rax, (%rbx)
movq $0x0, 0x8(%rbx)
movq %r12, 0x10(%rbx)
incq %r15
movslq 0xd99b(%rip), %rax      # 0x19760
addq $0x4, %r14
movq %rbx, %r12
cmpq %rax, %r15
jl 0xbd97
jmp 0xbdd5
xorl %ebx, %ebx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/status.c
// Function: strstatus
extern char *strstatus(int s) {
	if (WIFSIGNALED(s)) {
		int t = WTERMSIG(s);
		const char *core = myWIFDUMPED(s) ? "+core" : "";
		if ((t > 0) && (t < NUMOFSIGNALS) && *signals[t].name != '\0')
			return nprint("%s%s", signals[t].name, core);
		else
			return nprint("-%d%s", t, core); /* unknown signals are negated */
	} else
		return nprint("%d", WEXITSTATUS(s));
}

// Assembly:
movl %edi, %eax
movl %edi, %esi
andl $0x7f, %esi
movl %esi, %ecx
shll $0x18, %ecx
addl $0x1000000, %ecx        # imm = 0x1000000
cmpl $0x2000000, %ecx        # imm = 0x2000000
jl 0xbe40
testb %al, %al
leaq 0x4020(%rip), %rax      # 0xfe27
leaq 0x8582(%rip), %rdx      # 0x14390
cmovnsq %rax, %rdx
leal -0x1(%rsi), %eax
cmpl $0x3f, %eax
ja 0xbe51
movl %esi, %eax
shll $0x4, %eax
leaq 0xd52a(%rip), %rcx      # 0x19350
movq (%rcx,%rax), %rax
cmpb $0x0, (%rax)
je 0xbe51
leaq 0x8560(%rip), %rdi      # 0x14396
movq %rax, %rsi
xorl %eax, %eax
jmp 0xb191
movzbl %ah, %esi
leaq 0x394b(%rip), %rdi      # 0xf795
xorl %eax, %eax
jmp 0xb191
leaq 0x8543(%rip), %rdi      # 0x1439b
xorl %eax, %eax
jmp 0xb191
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/status.c
// Function: ssetstatus
extern void ssetstatus(char **av) {
	int i, j, k, l;
	bool found;
	for (l = 0; av[l] != NULL; l++)
		; /* count up array length */
	--l;
	for (i = 0; av[i] != NULL; i++) {
		j = a2u(av[i]);
		if (j >= 0) {
			statuses[l - i] = j << 8;
			continue;
		}
		found = FALSE;
		for (k = 0; k < NUMOFSIGNALS; k++) {
			if (streq(signals[k].name, av[i])) {
				statuses[l - i] = k;
				found = TRUE;
				break;
			}
			else {
				size_t len = strlen(signals[k].name);
				if (strncmp(signals[k].name, av[i], len) == 0 && streq(av[i] + len, "+core")) {
					statuses[l - i] = k + 0x80;
					found = TRUE;
					break;
				}
			}
		}
		if (!found) {
			fprint(2, "bad status\n");
			set(FALSE);
			return;
		}
	}
	pipelength = i;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movabsq $-0x200000000, %r14     # imm = 0xFFFFFFFE00000000
movabsq $0x100000000, %rax      # imm = 0x100000000
movq %rdi, %rcx
addq %rax, %r14
cmpq $0x0, (%rcx)
leaq 0x8(%rcx), %rcx
jne 0xbe87
movq (%rbx), %rdi
testq %rdi, %rdi
je 0xbfc3
sarq $0x20, %r14
xorl %r12d, %r12d
leaq 0xe902(%rip), %r13      # 0x1a7b0
movq %rbx, 0x8(%rsp)
movl $0xa, %esi
callq 0xc780
testl %eax, %eax
js 0xbee5
movl %eax, %r15d
shll $0x8, %r15d
movq %r14, %rax
subq %r12, %rax
movl %r15d, (%r13,%rax,4)
movq 0x8(%rbx,%r12,8), %rdi
incq %r12
testq %rdi, %rdi
jne 0xbeb3
jmp 0xbfc6
movq %r12, 0x10(%rsp)
movq (%rbx,%r12,8), %r12
movb (%r12), %al
movb %al, 0x7(%rsp)
leaq 0xd453(%rip), %rbx      # 0x19350
xorl %r15d, %r15d
movq (%rbx), %r13
movb 0x7(%rsp), %al
cmpb %al, (%r13)
jne 0xbf1c
movq %r13, %rdi
movq %r12, %rsi
callq 0x31f0
testl %eax, %eax
je 0xbf69
movq %r13, %rdi
callq 0x30f0
movq %rax, %rbp
movq %r13, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x3060
testl %eax, %eax
jne 0xbf56
cmpb $0x2b, (%r12,%rbp)
jne 0xbf56
addq %r12, %rbp
movq %rbp, %rdi
leaq 0x8443(%rip), %rsi      # 0x14390
callq 0x31f0
testl %eax, %eax
je 0xbf65
incq %r15
addq $0x10, %rbx
cmpq $0x41, %r15
jne 0xbf00
jmp 0xbf7f
subl $-0x80, %r15d
movq 0x8(%rsp), %rbx
movq 0x10(%rsp), %r12
leaq 0xe836(%rip), %r13      # 0x1a7b0
jmp 0xbec8
leaq 0x841b(%rip), %rsi      # 0x143a1
movl $0x2, %edi
xorl %eax, %eax
callq 0xaf8c
movl $0x1, 0xd7c4(%rip)      # 0x19760
movl $0x100, 0xe80a(%rip)    # imm = 0x100
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
movl $0x100, %esi            # imm = 0x100
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xbc20
xorl %r12d, %r12d
movl %r12d, 0xd793(%rip)     # 0x19760
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/system.c
// Function: writeall
extern void writeall(int fd, char *buf, size_t remain) {
	int i;

	for (i = 0; remain > 0; buf += i, remain -= i)
		if ((i = write(fd, buf, remain)) <= 0)
			break; /* abort silently on errors in write() */
	sigchk();
}

// Assembly:
testq %rdx, %rdx
je 0xb9f9
pushq %rbp
pushq %r14
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movl %edi, %ebp
movl %ebp, %edi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x30c0
testl %eax, %eax
jle 0xc00f
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
addq %rax, %r14
subq %rax, %rbx
jne 0xbff1
popq %rbx
popq %r14
popq %rbp
jmp 0xb9f9
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/utils.c
// Function: pr_error
extern void pr_error(char *s, int offset) {
	if (s != NULL) {
		if (interactive)
			fprint(2, RC "%s\n", s);
		else
			fprint(2, RC "line %d: %s\n", lineno + offset, s);
	}
}

// Assembly:
testq %rdi, %rdi
je 0xc6be
movq %rdi, %rcx
leaq 0xd531(%rip), %rax      # 0x19bd4
cmpl $0x0, (%rax)
je 0xc6bf
leaq 0x3695(%rip), %rsi      # 0xfd44
movl $0x2, %edi
movq %rcx, %rdx
xorl %eax, %eax
jmp 0xaf8c
retq
movl %esi, %edx
leaq 0xd4d0(%rip), %rax      # 0x19b98
addl (%rax), %edx
leaq 0x7ef0(%rip), %rsi      # 0x145c1
movl $0x2, %edi
xorl %eax, %eax
jmp 0xaf8c
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/utils.c
// Function: uerror
extern void uerror(char *s) {
	char *err;

	err = strerror(errno);
	if (!err) err = "unknown error";

	if (s)
		fprint(2, RC "%s: %s\n", s, err);
	else
		fprint(2, RC "%s\n", err);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
callq 0x3040
movl (%rax), %edi
callq 0x3360
testq %rax, %rax
leaq 0x7edb(%rip), %rcx      # 0x145d2
cmovneq %rax, %rcx
testq %rbx, %rbx
je 0xc717
leaq 0x7ed9(%rip), %rsi      # 0x145e0
movl $0x2, %edi
movq %rbx, %rdx
xorl %eax, %eax
popq %rbx
jmp 0xaf8c
leaq 0x3626(%rip), %rsi      # 0xfd44
movl $0x2, %edi
movq %rcx, %rdx
xorl %eax, %eax
popq %rbx
jmp 0xaf8c
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/utils.c
// Function: panic
extern void panic(char *s) {
	write(2, PANICMSG, conststrlen(PANICMSG));
	write(2, s, strlen(s));
	write(2, "!\n", 2);
	exit(1);
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
leaq 0x7eb3(%rip), %rsi      # 0x145ec
movl $0xa, %edx
movl $0x2, %edi
callq 0x30c0
movq %rbx, %rdi
callq 0x30f0
movl $0x2, %edi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x30c0
leaq 0x7e90(%rip), %rsi      # 0x145f7
movl $0x2, %edx
movl $0x2, %edi
callq 0x30c0
movl $0x1, %edi
callq 0x3330
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/utils.c
// Function: n2u
extern int n2u(char *s, unsigned int base) {
	unsigned int i;
	for (i = 0; *s != '\0'; s++) {
		unsigned int j = (unsigned int) *s - '0';
		if (j >= base) /* small hack with unsigned ints -- one compare for range test */
			return -1;
		i = i * base + j;
	}
	return (int) i;
}

// Assembly:
movb (%rdi), %cl
testb %cl, %cl
je 0xc7a4
incq %rdi
xorl %eax, %eax
movsbl %cl, %ecx
addl $-0x30, %ecx
cmpl %esi, %ecx
jae 0xc7a7
imull %esi, %eax
addl %ecx, %eax
movb (%rdi), %cl
incq %rdi
testb %cl, %cl
jne 0xc78b
retq
xorl %eax, %eax
retq
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
retq
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/var.c
// Function: varassign
extern void varassign(char *name, List *def, bool stack) {
	Variable *new;
	List *newdef = listcpy(def, ealloc); /* important to do the listcpy first; get_var_place() frees old values */
	new = get_var_place(name, stack);
	new->def = newdef;
	new->extdef = NULL;
	set_exportable(name, TRUE);
	if (streq(name, "TERM") || streq(name, "TERMCAP"))
		termchange();
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edx, %ebp
movq %rsi, %rax
movq %rdi, %rbx
leaq -0x280e(%rip), %rsi     # 0xa00d
movq %rax, %rdi
callq 0x9694
movq %rax, %r14
movq %rbx, %rdi
movl %ebp, %esi
callq 0x760c
movq %r14, (%rax)
movq $0x0, 0x8(%rax)
movq %rbx, %rdi
movl $0x1, %esi
callq 0x796a
cmpb $0x54, (%rbx)
jne 0xc873
leaq 0x7da6(%rip), %rsi      # 0x145fa
movq %rbx, %rdi
callq 0x31f0
testl %eax, %eax
je 0xc878
leaq 0x7d98(%rip), %rsi      # 0x145ff
movq %rbx, %rdi
callq 0x31f0
testl %eax, %eax
je 0xc878
popq %rbx
popq %r14
popq %rbp
retq
popq %rbx
popq %r14
popq %rbp
jmp 0x82a0
// File: /workspace/github_c_makefile_star2_O3/rakitzis[P]rc/var.c
// Function: varassign_string
extern bool varassign_string(char *extdef) {
	static bool aliasset[arraysize(aliases)] = {
		FALSE, FALSE, FALSE, FALSE, FALSE, FALSE
	};
	char *name = get_name(extdef);
	Variable *new;
	int i;
	if (name == NULL)
		return FALSE; /* add it to bozo env */
	if ((i = hasalias(name)) != -1) {
		aliasset[i] = TRUE;
		i ^= 1;			 	/* set i to the "opposite" case subscript and */
		if (i&1 && aliasset[i])		/* don't alias variables that are already set in upper case */
			return TRUE;
	}
	new = get_var_place(name, FALSE);
	new->def = NULL;
	new->extdef = ealloc(strlen(extdef) + 1);
	strcpy(new->extdef, extdef);
	if (i != -1)
		alias(name, varlookup(name), FALSE);
	set_exportable(name, TRUE);
	return TRUE;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %r14
callq 0x5177
testq %rax, %rax
je 0xc8d3
movq %rax, %rbx
movq %rax, %rdi
callq 0xc94c
cmpl $-0x1, %eax
je 0xc8d8
movl %eax, %ebp
movl %eax, %ecx
movslq %eax, %rdx
leaq 0xe6fd(%rip), %rax      # 0x1afb0
movl $0x1, (%rax,%rdx,4)
xorl $0x1, %ebp
testb $0x1, %cl
jne 0xc8dd
movslq %ebp, %rcx
movl $0x1, %r15d
cmpl $0x0, (%rax,%rcx,4)
jne 0xc93e
jmp 0xc8dd
xorl %r15d, %r15d
jmp 0xc93e
movl $0xffffffff, %ebp       # imm = 0xFFFFFFFF
movq %rbx, %rdi
xorl %esi, %esi
callq 0x760c
movq %rax, %r15
movq $0x0, (%rax)
movq %r14, %rdi
callq 0x30f0
leaq 0x1(%rax), %rdi
callq 0xa00d
movq %rax, 0x8(%r15)
movq %rax, %rdi
movq %r14, %rsi
callq 0x3070
cmpl $-0x1, %ebp
je 0xc92b
movq %rbx, %rdi
callq 0xc9da
movq %rbx, %rdi
movq %rax, %rsi
xorl %edx, %edx
callq 0xc995
movl $0x1, %r15d
movq %rbx, %rdi
movl $0x1, %esi
callq 0x796a
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq