LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: reg_addrange
static void reg_addrange(regex_t *preg, int lower, int upper)
{
	if (lower > upper) {
		reg_addrange(preg, upper, lower);
	}

	regc(preg, upper - lower + 1);
	regc(preg, lower);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jle 0x34539
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
movl -0xc(%rbp), %edx
callq 0x34510
movq -0x8(%rbp), %rdi
movl -0x10(%rbp), %esi
subl -0xc(%rbp), %esi
addl $0x1, %esi
callq 0x16000
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x16000
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: parse_hex
static int parse_hex(const char *s, int n, int *uc)
{
	int val = 0;
	int k;

	for (k = 0; k < n; k++) {
		int c = hexdigitval(*s++);
		if (c == -1) {
			break;
		}
		val = (val << 4) | c;
	}
	if (k) {
		*uc = val;
	}
	return k;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movl $0x0, -0x20(%rbp)
movl -0x20(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x34862
movq -0x8(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x8(%rbp)
movsbl (%rax), %edi
callq 0x34880
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jne 0x3484b
jmp 0x34862
movl -0x1c(%rbp), %eax
shll $0x4, %eax
orl -0x24(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x34821
cmpl $0x0, -0x20(%rbp)
je 0x34871
movl -0x1c(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl -0x20(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: hexdigitval
static int hexdigitval(int c)
{
	if (c >= '0' && c <= '9')
		return c - '0';
	if (c >= 'a' && c <= 'f')
		return c - 'a' + 10;
	if (c >= 'A' && c <= 'F')
		return c - 'A' + 10;
	return -1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x8(%rbp)
cmpl $0x30, -0x8(%rbp)
jl 0x3489e
cmpl $0x39, -0x8(%rbp)
jg 0x3489e
movl -0x8(%rbp), %eax
subl $0x30, %eax
movl %eax, -0x4(%rbp)
jmp 0x348d9
cmpl $0x61, -0x8(%rbp)
jl 0x348b8
cmpl $0x66, -0x8(%rbp)
jg 0x348b8
movl -0x8(%rbp), %eax
subl $0x61, %eax
addl $0xa, %eax
movl %eax, -0x4(%rbp)
jmp 0x348d9
cmpl $0x41, -0x8(%rbp)
jl 0x348d2
cmpl $0x46, -0x8(%rbp)
jg 0x348d2
movl -0x8(%rbp), %eax
subl $0x41, %eax
addl $0xa, %eax
movl %eax, -0x4(%rbp)
jmp 0x348d9
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl -0x4(%rbp), %eax
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: reg_iseol
static int reg_iseol(regex_t *preg, int ch)
{
	if (preg->cflags & REG_NEWLINE) {
		return ch == '\0' || ch == '\n';
	}
	else {
		return ch == '\0';
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl 0x4(%rax), %eax
andl $0x1, %eax
cmpl $0x0, %eax
je 0x34fec
movb $0x1, %al
cmpl $0x0, -0x14(%rbp)
movb %al, -0x15(%rbp)
je 0x34fdf
cmpl $0xa, -0x14(%rbp)
sete %al
movb %al, -0x15(%rbp)
movb -0x15(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
jmp 0x34ffb
cmpl $0x0, -0x14(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: reg_range_find
static int reg_range_find(const int *range, int c)
{
	while (*range) {

		if (c >= range[1] && c <= (range[0] + range[1] - 1)) {
			return 1;
		}
		range += 2;
	}
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
je 0x3504e
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jl 0x35040
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
movl (%rcx), %ecx
movq -0x10(%rbp), %rdx
addl 0x4(%rdx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jg 0x35040
movl $0x1, -0x4(%rbp)
jmp 0x35055
movq -0x10(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x10(%rbp)
jmp 0x3500b
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: regmatchsimplerepeat
static int regmatchsimplerepeat(regex_t *preg, int scan, int matchmin)
{
	int nextch = '\0';
	const char *save;
	int no;
	int c;

	int max = preg->program[scan + 2];
	int min = preg->program[scan + 3];
	int next = regnext(preg, scan);

	if (OP(preg, next) == EXACTLY) {
		nextch = preg->program[OPERAND(next)];
	}
	save = preg->reginput;
	no = regrepeat(preg, scan + 5, max);
	if (no < min) {
		return 0;
	}
	if (matchmin) {

		max = no;
		no = min;
	}

	while (1) {
		if (matchmin) {
			if (no > max) {
				break;
			}
		}
		else {
			if (no < min) {
				break;
			}
		}
		preg->reginput = save + utf8_index(save, no);
		reg_utf8_tounicode_case(preg->reginput, &c, (preg->cflags & REG_ICASE));

		if (reg_iseol(preg, nextch) || c == nextch) {
			if (regmatch(preg, next)) {
				return(1);
			}
		}
		if (matchmin) {

			no++;
		}
		else {

			no--;
		}
	}
	return(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl $0x0, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x34(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x14(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x162c0
movl %eax, -0x3c(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movslq -0x3c(%rbp), %rcx
cmpl $0x8, (%rax,%rcx,4)
jne 0x350df
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movl -0x3c(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movl (%rax,%rcx,4), %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x5, %esi
movl -0x34(%rbp), %edx
callq 0x35370
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0x38(%rbp), %eax
jge 0x35114
movl $0x0, -0x4(%rbp)
jmp 0x351d5
cmpl $0x0, -0x18(%rbp)
je 0x35126
movl -0x2c(%rbp), %eax
movl %eax, -0x34(%rbp)
movl -0x38(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x35128
cmpl $0x0, -0x18(%rbp)
je 0x3513d
movl -0x2c(%rbp), %eax
cmpl -0x34(%rbp), %eax
jle 0x3513b
jmp 0x351ce
jmp 0x3514c
movl -0x2c(%rbp), %eax
cmpl -0x38(%rbp), %eax
jge 0x3514a
jmp 0x351ce
jmp 0x3514c
movq -0x28(%rbp), %rcx
movslq -0x2c(%rbp), %rax
addq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x4(%rax), %edx
andl $0x2, %edx
leaq -0x30(%rbp), %rsi
callq 0x344c0
movq -0x10(%rbp), %rdi
movl -0x1c(%rbp), %esi
callq 0x34fb0
cmpl $0x0, %eax
jne 0x35193
movl -0x30(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jne 0x351af
movq -0x10(%rbp), %rdi
movl -0x3c(%rbp), %esi
callq 0x348e0
cmpl $0x0, %eax
je 0x351ad
movl $0x1, -0x4(%rbp)
jmp 0x351d5
jmp 0x351af
cmpl $0x0, -0x18(%rbp)
je 0x351c0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x351c9
movl -0x2c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x35128
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: regmatchrepeat
static int regmatchrepeat(regex_t *preg, int scan, int matchmin)
{
	int *scanpt = preg->program + scan;

	int max = scanpt[2];
	int min = scanpt[3];


	if (scanpt[4] < min) {

		scanpt[4]++;
		if (regmatch(preg, scan + 5)) {
			return 1;
		}
		scanpt[4]--;
		return 0;
	}
	if (scanpt[4] > max) {
		return 0;
	}

	if (matchmin) {

		if (regmatch(preg, regnext(preg, scan))) {
			return 1;
		}

		scanpt[4]++;
		if (regmatch(preg, scan + 5)) {
			return 1;
		}
		scanpt[4]--;
		return 0;
	}

	if (scanpt[4] < max) {
		scanpt[4]++;
		if (regmatch(preg, scan + 5)) {
			return 1;
		}
		scanpt[4]--;
	}

	return regmatch(preg, regnext(preg, scan));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movslq -0x14(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x24(%rbp)
movq -0x20(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x28(%rbp), %eax
jge 0x3526f
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x5, %esi
callq 0x348e0
cmpl $0x0, %eax
je 0x35256
movl $0x1, -0x4(%rbp)
jmp 0x35362
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x10(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x35362
movq -0x20(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x24(%rbp), %eax
jle 0x35287
movl $0x0, -0x4(%rbp)
jmp 0x35362
cmpl $0x0, -0x18(%rbp)
je 0x352fd
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x162c0
movq -0x30(%rbp), %rdi
movl %eax, %esi
callq 0x348e0
cmpl $0x0, %eax
je 0x352bd
movl $0x1, -0x4(%rbp)
jmp 0x35362
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x5, %esi
callq 0x348e0
cmpl $0x0, %eax
je 0x352e7
movl $0x1, -0x4(%rbp)
jmp 0x35362
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x10(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x35362
movq -0x20(%rbp), %rax
movl 0x10(%rax), %eax
cmpl -0x24(%rbp), %eax
jge 0x35340
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
addl $0x5, %esi
callq 0x348e0
cmpl $0x0, %eax
je 0x35333
movl $0x1, -0x4(%rbp)
jmp 0x35362
movq -0x20(%rbp), %rax
movl 0x10(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
callq 0x162c0
movq -0x38(%rbp), %rdi
movl %eax, %esi
callq 0x348e0
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/awl.c
// Function: run_scripts
void run_scripts(awlenv* e, int argc, char** argv) {
    for (int i = 1; i < argc; i++) {
        awlval* args = awlval_add(awlval_sexpr(), awlval_str(argv[i]));
        awlval* x = builtin_import(e, args);

        if (x->type == AWLVAL_ERR) {
            awlval_println(x);
        }
        awlval_del(x);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x2523
callq 0x16bb0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movslq -0x1c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x168c0
movq -0x38(%rbp), %rdi
movq %rax, %rsi
callq 0x16e70
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x6640
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x250f
movq -0x30(%rbp), %rdi
callq 0x159d0
movq -0x30(%rbp), %rdi
callq 0x16cf0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x24ba
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_logic_op
awlval* builtin_logic_op(awlenv* e, awlval* a, char* op) {
    AWLASSERT_ARGCOUNT(a, 2, op);
    EVAL_ARGS(e, a);

    bool eq = awlval_eq(a->cell[0], a->cell[1]);
    bool res;
    if (streq(op, "==")) {
        res = eq;
    }
    if (streq(op, "!=")) {
        res = !eq;
    }
    awlval_del(a);
    return awlval_bool(res);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
je 0x3496
movq -0x20(%rbp), %rsi
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x16c72(%rip), %rdi     # 0x1a0e2
movl $0x2, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3533
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x34ba
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3533
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
callq 0x180b0
andb $0x1, %al
movb %al, -0x29(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x16c39(%rip), %rsi     # 0x1a11f
callq 0x18d50
testb $0x1, %al
jne 0x34f1
jmp 0x34f9
movb -0x29(%rbp), %al
andb $0x1, %al
movb %al, -0x2a(%rbp)
movq -0x20(%rbp), %rdi
leaq 0x16c1e(%rip), %rsi     # 0x1a122
callq 0x18d50
testb $0x1, %al
jne 0x350f
jmp 0x3519
movb -0x29(%rbp), %al
xorb $-0x1, %al
andb $0x1, %al
movb %al, -0x2a(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movb -0x2a(%rbp), %al
andb $0x1, %al
movzbl %al, %edi
callq 0x16930
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_head
awlval* builtin_head(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "head");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "head");
    AWLASSERT_NONEMPTY(a, a->cell[0], "head");

    awlval* v = awlval_take(a, 0);
    return awlval_eval(e, awlval_take(v, 0));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x3a25
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x166ea(%rip), %rdi     # 0x1a0e2
leaq 0x1678b(%rip), %rsi     # 0x1a18a
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3b20
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3a4c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3b20
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x3ab1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x1669f(%rip), %rdi     # 0x1a129
leaq 0x166f9(%rip), %rsi     # 0x1a18a
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3b20
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3aee
leaq 0x166a8(%rip), %rdi     # 0x1a171
leaq 0x166ba(%rip), %rsi     # 0x1a18a
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3b20
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0x7770
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_qhead
awlval* builtin_qhead(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "qhead");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "qhead");
    AWLASSERT_NONEMPTY(a, a->cell[0], "qhead");

    awlval* q = awlval_take(a, 0);
    awlval* v = awlval_take(q, 0);

    if (v->type == AWLVAL_SEXPR) {
        v->type = AWLVAL_QEXPR;
    } else if (v->type == AWLVAL_SYM) {
        v->type = AWLVAL_QSYM;
    }
    return awlval_eval(e, v);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x3b85
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x1658a(%rip), %rdi     # 0x1a0e2
leaq 0x1662a(%rip), %rsi     # 0x1a189
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3caa
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3bac
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3caa
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x3c14
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x48(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x48(%rbp), %rcx
movq %rax, %r8
leaq 0x1653f(%rip), %rdi     # 0x1a129
leaq 0x16598(%rip), %rsi     # 0x1a189
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3caa
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3c51
leaq 0x16545(%rip), %rdi     # 0x1a171
leaq 0x16556(%rip), %rsi     # 0x1a189
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3caa
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
cmpl $0xb, (%rax)
jne 0x3c84
movq -0x40(%rbp), %rax
movl $0xc, (%rax)
jmp 0x3c99
movq -0x40(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x3c97
movq -0x40(%rbp), %rax
movl $0x4, (%rax)
jmp 0x3c99
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x7770
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_tail
awlval* builtin_tail(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "tail");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "tail");
    AWLASSERT_NONEMPTY(a, a->cell[0], "tail");

    awlval* v = awlval_take(a, 0);
    return awlval_slice(v, 1, v->count);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x3d15
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x163fa(%rip), %rdi     # 0x1a0e2
leaq 0x164a0(%rip), %rsi     # 0x1a18f
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3e06
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3d3c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3e06
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x3da1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x163af(%rip), %rdi     # 0x1a129
leaq 0x1640e(%rip), %rsi     # 0x1a18f
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3e06
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3dde
leaq 0x163b8(%rip), %rdi     # 0x1a171
leaq 0x163cf(%rip), %rsi     # 0x1a18f
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3e06
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x38(%rbp), %rax
movl 0x4(%rax), %edx
movl $0x1, %esi
callq 0x17b30
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_first
awlval* builtin_first(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "first");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "first");
    AWLASSERT_NONEMPTY(a, a->cell[0], "first");

    awlval* v = awlval_take(a, 0);
    return awlval_slice(v, 0, 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x3e65
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x162aa(%rip), %rdi     # 0x1a0e2
leaq 0x16355(%rip), %rsi     # 0x1a194
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3f51
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3e8c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3f51
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x3ef1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x1625f(%rip), %rdi     # 0x1a129
leaq 0x162c3(%rip), %rsi     # 0x1a194
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3f51
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x3f2e
leaq 0x16268(%rip), %rdi     # 0x1a171
leaq 0x16284(%rip), %rsi     # 0x1a194
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3f51
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
xorl %esi, %esi
movl $0x1, %edx
callq 0x17b30
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_last
awlval* builtin_last(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "last");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "last");
    AWLASSERT_NONEMPTY(a, a->cell[0], "last");

    awlval* v = awlval_take(a, 0);
    return awlval_slice(v, v->count - 1, v->count);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x3fb5
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x1615a(%rip), %rdi     # 0x1a0e2
leaq 0x16212(%rip), %rsi     # 0x1a1a1
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x40ab
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x3fdc
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x40ab
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x4041
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x1610f(%rip), %rdi     # 0x1a129
leaq 0x16180(%rip), %rsi     # 0x1a1a1
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x40ab
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x407e
leaq 0x16118(%rip), %rdi     # 0x1a171
leaq 0x16141(%rip), %rsi     # 0x1a1a1
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x40ab
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x38(%rbp), %rax
movl 0x4(%rax), %esi
subl $0x1, %esi
movq -0x38(%rbp), %rax
movl 0x4(%rax), %edx
callq 0x17b30
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_exceptlast
awlval* builtin_exceptlast(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "except-last");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "except-last");
    AWLASSERT_NONEMPTY(a, a->cell[0], "except-last");

    awlval* v = awlval_take(a, 0);
    return awlval_slice(v, 0, v->count - 1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x4115
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x15ffa(%rip), %rdi     # 0x1a0e2
leaq 0x160ab(%rip), %rsi     # 0x1a19a
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4206
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x413c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4206
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x41a1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x15faf(%rip), %rdi     # 0x1a129
leaq 0x16019(%rip), %rsi     # 0x1a19a
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4206
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
jne 0x41de
leaq 0x15fb8(%rip), %rdi     # 0x1a171
leaq 0x15fda(%rip), %rsi     # 0x1a19a
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4206
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x38(%rbp), %rax
movl 0x4(%rax), %edx
subl $0x1, %edx
xorl %esi, %esi
callq 0x17b30
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_eval
awlval* builtin_eval(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "eval");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_QEXPR, "eval");

    awlval* x = awlval_take(a, 0);
    x->type = AWLVAL_SEXPR;
    return awlval_eval(e, x);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x42b5
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x15e5a(%rip), %rdi     # 0x1a0e2
leaq 0x15f17(%rip), %rsi     # 0x1a1a6
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x436b
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x42dc
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x436b
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x4341
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x38(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x38(%rbp), %rcx
movq %rax, %r8
leaq 0x15e0f(%rip), %rdi     # 0x1a129
leaq 0x15e85(%rip), %rsi     # 0x1a1a6
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x436b
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movl $0xb, (%rax)
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x7770
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_append
awlval* builtin_append(awlenv* e, awlval* a) {
    AWLASSERT_MINARGCOUNT(a, 2, "append");
    EVAL_ARGS(e, a);

    for (int i = 0; i < a->count; i++) {
        AWLASSERT_TYPE(a, i, AWLVAL_QEXPR, "append");
    }

    awlval* x = awlval_pop(a, 0);
    while (a->count) {
        x = awlval_join(x, awlval_pop(a, 0));
    }

    awlval_del(a);
    return x;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
jge 0x43d5
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x15d07(%rip), %rdi     # 0x1a0af
leaq 0x15dfc(%rip), %rsi     # 0x1a1ab
movl $0x2, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x44e8
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x43fc
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x44e8
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x18(%rbp), %rcx
cmpl 0x4(%rcx), %eax
jge 0x4499
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
cmpl $0xc, (%rax)
je 0x4489
movl -0x24(%rbp), %eax
movl %eax, -0x44(%rbp)
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movslq -0x24(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movl -0x44(%rbp), %edx
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x15cc5(%rip), %rdi     # 0x1a129
leaq 0x15d40(%rip), %rsi     # 0x1a1ab
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x44e8
jmp 0x448b
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4403
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x0, 0x4(%rax)
je 0x44d7
movq -0x38(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq -0x50(%rbp), %rdi
movq %rax, %rsi
callq 0x175a0
movq %rax, -0x38(%rbp)
jmp 0x44a8
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_cons
awlval* builtin_cons(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 2, "cons");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 1, AWLVAL_QEXPR, "cons");

    awlval* v = awlval_pop(a, 0);
    awlval* x = awlval_take(a, 0);
    awlval_add_front(x, v);
    return x;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
je 0x4555
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x15bba(%rip), %rdi     # 0x1a0e2
leaq 0x15c83(%rip), %rsi     # 0x1a1b2
movl $0x2, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4619
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x457c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4619
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0xc, (%rax)
je 0x45e6
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x15b6d(%rip), %rdi     # 0x1a129
leaq 0x15bef(%rip), %rsi     # 0x1a1b2
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4619
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x16ef0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_dictget
awlval* builtin_dictget(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 2, "dict-get");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_DICT, "dict-get");
    AWLASSERT_TYPE(a, 1, AWLVAL_QSYM, "dict-get");

    awlval* d = awlval_pop(a, 0);
    awlval* k = awlval_take(a, 0);

    awlval* v = awlval_get_dict(d, k);
    awlval_del(d);
    awlval_del(k);
    return v;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
je 0x4685
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x15a8a(%rip), %rdi     # 0x1a0e2
leaq 0x15b58(%rip), %rsi     # 0x1a1b7
movl $0x2, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x47c7
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x46ac
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x47c7
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x4714
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x50(%rbp)
movl $0xa, %edi
callq 0x161a0
movq -0x50(%rbp), %rcx
movq %rax, %r8
leaq 0x15a3f(%rip), %rdi     # 0x1a129
leaq 0x15ac6(%rip), %rsi     # 0x1a1b7
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x47c7
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x4, (%rax)
je 0x477e
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x58(%rbp)
movl $0x4, %edi
callq 0x161a0
movq -0x58(%rbp), %rcx
movq %rax, %r8
leaq 0x159d5(%rip), %rdi     # 0x1a129
leaq 0x15a5c(%rip), %rsi     # 0x1a1b7
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x47c7
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x16ff0
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
callq 0x16cf0
movq -0x40(%rbp), %rdi
callq 0x16cf0
movq -0x48(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_dictset
awlval* builtin_dictset(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 3, "dict-set");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_DICT, "dict-set");
    AWLASSERT_TYPE(a, 1, AWLVAL_QSYM, "dict-set");

    awlval* d = awlval_pop(a, 0);
    awlval* k = awlval_pop(a, 0);
    awlval* v = awlval_take(a, 0);

    d = awlval_add_dict(d, k, v);
    awlval_del(k);
    awlval_del(v);
    return d;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x3, 0x4(%rax)
je 0x4835
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x158da(%rip), %rdi     # 0x1a0e2
leaq 0x159b1(%rip), %rsi     # 0x1a1c0
movl $0x3, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x498a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x485c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x498a
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x48c4
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x50(%rbp)
movl $0xa, %edi
callq 0x161a0
movq -0x50(%rbp), %rcx
movq %rax, %r8
leaq 0x1588f(%rip), %rdi     # 0x1a129
leaq 0x1591f(%rip), %rsi     # 0x1a1c0
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x498a
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x4, (%rax)
je 0x492e
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x58(%rbp)
movl $0x4, %edi
callq 0x161a0
movq -0x58(%rbp), %rcx
movq %rax, %r8
leaq 0x15825(%rip), %rdi     # 0x1a129
leaq 0x158b5(%rip), %rsi     # 0x1a1c0
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x498a
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x48(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x48(%rbp), %rdx
callq 0x16f90
movq %rax, -0x38(%rbp)
movq -0x40(%rbp), %rdi
callq 0x16cf0
movq -0x48(%rbp), %rdi
callq 0x16cf0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_dictdel
awlval* builtin_dictdel(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 2, "dict-del");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_DICT, "dict-del");
    AWLASSERT_TYPE(a, 1, AWLVAL_QSYM, "dict-del");

    awlval* d = awlval_pop(a, 0);
    awlval* k = awlval_take(a, 0);

    awlval_rm_dict(d, k);
    awlval_del(k);
    return d;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
je 0x49f5
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x1571a(%rip), %rdi     # 0x1a0e2
leaq 0x157fa(%rip), %rsi     # 0x1a1c9
movl $0x2, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4b2a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x4a1c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4b2a
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x4a84
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x48(%rbp)
movl $0xa, %edi
callq 0x161a0
movq -0x48(%rbp), %rcx
movq %rax, %r8
leaq 0x156cf(%rip), %rdi     # 0x1a129
leaq 0x15768(%rip), %rsi     # 0x1a1c9
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4b2a
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x4, (%rax)
je 0x4aee
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x50(%rbp)
movl $0x4, %edi
callq 0x161a0
movq -0x50(%rbp), %rcx
movq %rax, %r8
leaq 0x15665(%rip), %rdi     # 0x1a129
leaq 0x156fe(%rip), %rsi     # 0x1a1c9
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4b2a
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x17020
movq -0x40(%rbp), %rdi
callq 0x16cf0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_dicthaskey
awlval* builtin_dicthaskey(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 2, "dict-haskey?");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_DICT, "dict-haskey?");
    AWLASSERT_TYPE(a, 1, AWLVAL_QSYM, "dict-haskey?");

    awlval* d = awlval_pop(a, 0);
    awlval* k = awlval_take(a, 0);

    bool v = awlval_haskey_dict(d, k);
    awlval_del(d);
    awlval_del(k);
    return awlval_bool(v);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, 0x4(%rax)
je 0x4b95
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x1557a(%rip), %rdi     # 0x1a0e2
leaq 0x15663(%rip), %rsi     # 0x1a1d2
movl $0x2, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4ce1
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x4bbc
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4ce1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x4c24
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x50(%rbp)
movl $0xa, %edi
callq 0x161a0
movq -0x50(%rbp), %rcx
movq %rax, %r8
leaq 0x1552f(%rip), %rdi     # 0x1a129
leaq 0x155d1(%rip), %rsi     # 0x1a1d2
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4ce1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x4, (%rax)
je 0x4c8e
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x58(%rbp)
movl $0x4, %edi
callq 0x161a0
movq -0x58(%rbp), %rcx
movq %rax, %r8
leaq 0x154c5(%rip), %rdi     # 0x1a129
leaq 0x15567(%rip), %rsi     # 0x1a1d2
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4ce1
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x174b0
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x17070
andb $0x1, %al
movb %al, -0x41(%rbp)
movq -0x38(%rbp), %rdi
callq 0x16cf0
movq -0x40(%rbp), %rdi
callq 0x16cf0
movb -0x41(%rbp), %al
andb $0x1, %al
movzbl %al, %edi
callq 0x16930
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_dictkeys
awlval* builtin_dictkeys(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "dict-keys");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_DICT, "dict-keys");

    awlval* d = awlval_take(a, 0);

    awlval* v = awlval_keys_dict(d);
    awlval_del(d);
    return v;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x4d45
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x153ca(%rip), %rdi     # 0x1a0e2
leaq 0x154c0(%rip), %rsi     # 0x1a1df
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4dfe
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x4d6c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4dfe
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x4dd1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xa, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x1537f(%rip), %rdi     # 0x1a129
leaq 0x1542e(%rip), %rsi     # 0x1a1df
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4dfe
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x170b0
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
callq 0x16cf0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_dictvals
awlval* builtin_dictvals(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "dict-vals");
    EVAL_ARGS(e, a);
    AWLASSERT_TYPE(a, 0, AWLVAL_DICT, "dict-vals");

    awlval* d = awlval_take(a, 0);

    awlval* v = awlval_vals_dict(d);
    awlval_del(d);
    return v;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x4e65
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x152aa(%rip), %rdi     # 0x1a0e2
leaq 0x153aa(%rip), %rsi     # 0x1a1e9
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4f1e
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x4e8c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4f1e
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x4ef1
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, -0x40(%rbp)
movl $0xa, %edi
callq 0x161a0
movq -0x40(%rbp), %rcx
movq %rax, %r8
leaq 0x1525f(%rip), %rdi     # 0x1a129
leaq 0x15318(%rip), %rsi     # 0x1a1e9
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4f1e
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x17560
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
callq 0x17140
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
callq 0x16cf0
movq -0x38(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/voithos[P]awl/src/builtins.c
// Function: builtin_len
awlval* builtin_len(awlenv* e, awlval* a) {
    AWLASSERT_ARGCOUNT(a, 1, "len");
    EVAL_ARGS(e, a);
    AWLASSERT_ISCOLLECTION(a, 0, "len");

    awlval* x = awlval_int(a->cell[0]->length);
    awlval_del(a);
    return x;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x1, 0x4(%rax)
je 0x4f85
movq -0x18(%rbp), %rax
movl 0x4(%rax), %ecx
leaq 0x1518a(%rip), %rdi     # 0x1a0e2
leaq 0x15294(%rip), %rsi     # 0x1a1f3
movl $0x1, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x5058
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x7c60
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x4fac
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x5058
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xc, (%rax)
je 0x502f
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x5, (%rax)
je 0x502f
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0x4, (%rax)
je 0x502f
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
cmpl $0xa, (%rax)
je 0x502f
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movl (%rax), %edi
callq 0x161a0
movq %rax, %rcx
leaq 0x151ef(%rip), %rdi     # 0x1a1f7
leaq 0x151e4(%rip), %rsi     # 0x1a1f3
xorl %edx, %edx
movb $0x0, %al
callq 0x16600
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x5058
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movslq 0x10(%rax), %rdi
callq 0x16770
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rdi
callq 0x16cf0
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)