LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/parser.cc
// Function: Parser::parse_set()
Stmt * Parser::parse_set()
{
	Stmt * stmt = create_stmt(STMT_SET);
	advance();
	
	//stmt->set.left = peek.values.symbol;
	stmt->set.left = parse_expr();
	//advance();

	expect('=');

	stmt->set.right = parse_expr();
	
	return stmt;	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
pushq $0x1
popq %rsi
callq 0x39c0
movq %rax, %r14
movq %rbx, %rdi
callq 0x2c8e
movq %rbx, %rdi
callq 0x379a
movq %rax, 0x8(%r14)
pushq $0x3d
popq %rsi
movq %rbx, %rdi
callq 0x2ef2
movq %rbx, %rdi
callq 0x379a
movq %rax, 0x10(%r14)
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/parser.cc
// Function: Parser::parse_return()
Stmt * Parser::parse_return()
{
	Stmt * stmt = create_stmt(STMT_RETURN);
	advance();
	stmt->_return.expr = parse_expr();
	return stmt;	
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
pushq $0x2
popq %rsi
callq 0x39c0
movq %rax, %r14
movq %rbx, %rdi
callq 0x2c8e
movq %rbx, %rdi
callq 0x379a
movq %rax, 0x8(%r14)
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/parser.cc
// Function: Parser::parse_break()
Stmt * Parser::parse_break()
{
	expect(TOKEN_BREAK);
	auto stmt = create_stmt(STMT_BREAK);
	stmt->_break = parse_expr();
	return stmt;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl $0x113, %esi            # imm = 0x113
callq 0x2ef2
pushq $0x4
popq %rsi
movq %rbx, %rdi
callq 0x39c0
movq %rax, %r14
movq %rbx, %rdi
callq 0x379a
movq %rax, 0x8(%r14)
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/gc.cc
// Function: GC::alloc(unsigned long)
void * alloc(size_t size)
	{
		allocation_acc += size;
		void * ptr = malloc(size + 1);
		allocations.push(ptr);
		return raw_to_opaque(ptr);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
addq %rdi, 0xb61d(%rip)      # 0xf238
incq %rdi
callq 0x1200
movq %rax, %rbx
leaq 0xb5db(%rip), %rdi      # 0xf208
movq %rax, %rsi
callq 0x479a
incq %rbx
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/gc.cc
// Function: GC::free_unmarked()
void free_unmarked()
	{
		List<void*> new_allocations;
		new_allocations.alloc();
		for (int i = 0; i < allocations.size; i++) {
			if (*((uint8_t*) allocations[i])) {
				new_allocations.push(allocations[i]);
			} else {
				free(allocations[i]);
			}
		}
		#if SHOW_TOTAL_ALLOCATIONS
		printf("\n-- %zu allocations\n\n", new_allocations.size);
		#endif
		#if SHOW_COLLECTIONS
		printf("\n-- %zu collections\n\n", allocations.size - new_allocations.size);
		#endif
		allocations.dealloc();
		allocations = new_allocations;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x30, %rsp
leaq -0x48(%rbp), %rbx
andq $0x0, 0x8(%rbx)
movq $0x4, 0x10(%rbx)
movq 0xb316(%rip), %rax      # 0xefd0
movq %rax, 0x18(%rbx)
movq 0xb303(%rip), %rax      # 0xefc8
movq %rax, 0x20(%rbx)
pushq $0x20
popq %rdi
callq 0x1200
movq %rax, (%rbx)
xorl %r14d, %r14d
leaq 0xb52a(%rip), %r15      # 0xf208
cmpq %r14, 0xb52b(%rip)      # 0xf210
jbe 0x3d22
movq %r15, %rdi
movq %r14, %rsi
callq 0x4768
movq (%rax), %rax
movb (%rax), %r12b
movq %r15, %rdi
movq %r14, %rsi
callq 0x4768
movq (%rax), %rsi
testb %r12b, %r12b
je 0x3d15
movq %rbx, %rdi
callq 0x479a
jmp 0x3d1d
movq %rsi, %rdi
callq 0x11f8
incq %r14
jmp 0x3cde
movq 0xb4df(%rip), %rdi      # 0xf208
callq *0xb4f9(%rip)           # 0xf228
movq -0x28(%rbp), %rax
movq %rax, 0xb4ee(%rip)      # 0xf228
movups -0x48(%rbp), %xmm0
movups -0x38(%rbp), %xmm1
movups %xmm1, 0xb4cf(%rip)     # 0xf218
movups %xmm0, 0xb4b8(%rip)     # 0xf208
addq $0x30, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::to_string()
char * Value::to_string()
{
	switch (type) {
	case TYPE_NOTHING:
		return strdup("nothing");
	case TYPE_INTEGER:
		return itoa(integer);
	case TYPE_SYMBOL:
		return strdup(symbol);
	case TYPE_STRING: {
		char * s = (char*) malloc(sizeof(char) * (ref_string->length + 1));
		strncpy(s, ref_string->string, ref_string->length);
		s[ref_string->length] = '\0';
		return s;
	};
	case TYPE_FUNCTION:
		return strdup("@[function]");
	case TYPE_BUILTIN:
		return strdup("@[builtin]");
	case TYPE_CONSTRUCTOR:
		return strdup("@[constructor]");
	case TYPE_OBJECT:
		return strdup("@[object]");
	case TYPE_FILE_UNIT:
		assert(false);
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movl (%rdi), %eax
cmpq $0x8, %rax
ja 0x3e0b
leaq 0x533d(%rip), %rcx      # 0x90b8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x57b8(%rip), %rdi      # 0x9543
jmp 0x3dfc
movq 0x8(%rdi), %r15
movq 0x8(%r15), %rbx
leaq 0x1(%rbx), %rdi
callq 0x1200
movq %rax, %r14
movq (%r15), %rsi
movq %rax, %rdi
movq %rbx, %rdx
callq 0x10b0
movb $0x0, (%r14,%rbx)
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq 0x8(%rdi), %rdi
jmp 0x3dfc
leaq 0x5788(%rip), %rdi      # 0x9557
jmp 0x3dfc
leaq 0x5799(%rip), %rdi      # 0x9571
jmp 0x3dfc
movl 0x8(%rdi), %edi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x16f2
leaq 0x5758(%rip), %rdi      # 0x954b
jmp 0x3dfc
leaq 0x5766(%rip), %rdi      # 0x9562
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x11d0
leaq 0x565c(%rip), %rdi      # 0x946e
leaq 0x5762(%rip), %rsi      # 0x957b
leaq 0x576c(%rip), %rcx      # 0x958c
pushq $0x51
jmp 0x3e3b
leaq 0x5643(%rip), %rdi      # 0x946e
leaq 0x5749(%rip), %rsi      # 0x957b
leaq 0x5753(%rip), %rcx      # 0x958c
pushq $0x4f
popq %rdx
callq 0x10d0
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::gc_mark()
void Value::gc_mark()
{
	switch (type) {
	case TYPE_NOTHING:
		break;
	case TYPE_INTEGER:
		break;
	case TYPE_SYMBOL:
		break;
	case TYPE_STRING:
		GC::mark_opaque(ref_string);
		ref_string->gc_mark();
		break;
	case TYPE_FUNCTION:
		GC::mark_opaque(ref_function);
		ref_function->gc_mark();
		break;
	case TYPE_BUILTIN:
		break;
	case TYPE_CONSTRUCTOR:
		GC::mark_opaque(ref_constructor);
		ref_constructor->gc_mark();
		break;
	case TYPE_OBJECT:
		GC::mark_opaque(ref_object);
		ref_object->gc_mark();
		break;
	case TYPE_FILE_UNIT:
		GC::mark_opaque(ref_file_unit);
		break;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl (%rdi), %eax
addl $-0x4, %eax
cmpl $0x4, %eax
ja 0x3e7d
leaq 0x5285(%rip), %rcx      # 0x90dc
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x8(%rdi), %rax
movb $0x1, %cl
movb %cl, -0x1(%rax)
movq 0x8(%rdi), %rax
movq (%rax), %rax
movb %cl, -0x1(%rax)
jmp 0x3e7d
movq 0x8(%rdi), %rax
movb $0x1, -0x1(%rax)
popq %rbp
retq
movq 0x8(%rdi), %rax
movb $0x1, -0x1(%rax)
movq 0x8(%rdi), %rdi
popq %rbp
jmp 0x4ab0
movq 0x8(%rdi), %rax
movb $0x1, -0x1(%rax)
movq 0x8(%rdi), %rdi
popq %rbp
jmp 0x4ad6
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::add(Value, Value, int)
Value Value::add(Value a, Value b, Assoc_Ptr assoc)
{
	validate_same_type(a, b, assoc);
	switch (a.type) {
	case TYPE_INTEGER:
		return Value::raise(a.integer + b.integer);
	default:
		fatal_assoc(assoc, "+ not valid for type");
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x3ebb
cmpl $0x1, %edi
jne 0x3ec4
addl %esi, %ecx
pushq $0x1
popq %rax
movq %rcx, %rdx
popq %rbp
retq
leaq 0x5931(%rip), %rsi      # 0x97f3
jmp 0x3ecb
leaq 0x56da(%rip), %rsi      # 0x95a5
movl %r8d, %edi
xorl %eax, %eax
callq 0x1b51
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::subtract(Value, Value, int)
Value Value::subtract(Value a, Value b, Assoc_Ptr assoc)
{
	validate_same_type(a, b, assoc);
	switch (a.type) {
	case TYPE_INTEGER:
		return Value::raise(a.integer - b.integer);
	default:
		fatal_assoc(assoc, "- not valid for type");
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x3eed
cmpl $0x1, %edi
jne 0x3ef6
subl %ecx, %esi
pushq $0x1
popq %rax
movq %rsi, %rdx
popq %rbp
retq
leaq 0x58ff(%rip), %rsi      # 0x97f3
jmp 0x3efd
leaq 0x56bd(%rip), %rsi      # 0x95ba
movl %r8d, %edi
xorl %eax, %eax
callq 0x1b51
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::equal(Value, Value, int)
bool Value::equal(Value a, Value b, Assoc_Ptr assoc)
{
	if (a.type != b.type) {
		return false;
	}
	switch (a.type) {
	case TYPE_NOTHING:
		return true;
	case TYPE_INTEGER:
		return a.integer == b.integer;
	case TYPE_SYMBOL:
		return a.symbol == b.symbol;
	case TYPE_STRING:
		if (a.ref_string->length != b.ref_string->length) {
			return false;
		}
		return strncmp(a.ref_string->string,
					   b.ref_string->string,
					   a.ref_string->length);
	case TYPE_FUNCTION:
		return a.ref_function == b.ref_function;
	case TYPE_BUILTIN:
		return a.builtin == b.builtin;
	case TYPE_CONSTRUCTOR:
		return a.ref_constructor == b.ref_constructor;
	case TYPE_OBJECT:
		return a.ref_object == b.ref_object;
	case TYPE_FILE_UNIT:
		assert(false);
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x3fb9
cmpl $0x8, %edi
ja 0x3fbd
movl %edi, %eax
leaq 0x516c(%rip), %rdx      # 0x90f0
movslq (%rdx,%rax,4), %rax
addq %rdx, %rax
jmpq *%rax
cmpq %rcx, %rsi
sete %al
jmp 0x3fbb
movb $0x1, %al
jmp 0x3fbb
cmpl %ecx, %esi
jmp 0x3f90
movq 0x8(%rsi), %rdx
cmpq 0x8(%rcx), %rdx
jne 0x3fb9
movq (%rsi), %rdi
movq (%rcx), %rsi
callq 0x1090
testl %eax, %eax
setne %al
jmp 0x3fbb
xorl %eax, %eax
popq %rbp
retq
leaq 0x54aa(%rip), %rdi      # 0x946e
leaq 0x55b0(%rip), %rsi      # 0x957b
leaq 0x5627(%rip), %rcx      # 0x95f9
movl $0xca, %edx
callq 0x10d0
leaq 0x548b(%rip), %rdi      # 0x946e
leaq 0x5591(%rip), %rsi      # 0x957b
leaq 0x5608(%rip), %rcx      # 0x95f9
movl $0xc8, %edx
callq 0x10d0
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::less_than(Value, Value, int)
bool Value::less_than(Value a, Value b, Assoc_Ptr assoc)
{
	validate_same_type(a, b, assoc);
	switch (a.type) {
	case TYPE_INTEGER:
		return a.integer < b.integer;
	default:
		fatal_assoc(assoc, "< not valid for type");
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x402e
cmpl $0x1, %edi
jne 0x4037
cmpl %ecx, %esi
setl %al
popq %rbp
retq
leaq 0x57be(%rip), %rsi      # 0x97f3
jmp 0x403e
leaq 0x55ed(%rip), %rsi      # 0x962b
movl %r8d, %edi
xorl %eax, %eax
callq 0x1b51
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::greater_than(Value, Value, int)
bool Value::greater_than(Value a, Value b, Assoc_Ptr assoc)
{
	validate_same_type(a, b, assoc);
	switch (a.type) {
	case TYPE_INTEGER:
		return a.integer > b.integer;
	default:
		fatal_assoc(assoc, "> not valid for type");
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x405c
cmpl $0x1, %edi
jne 0x4065
cmpl %ecx, %esi
setg %al
popq %rbp
retq
leaq 0x5790(%rip), %rsi      # 0x97f3
jmp 0x406c
leaq 0x55d4(%rip), %rsi      # 0x9640
movl %r8d, %edi
xorl %eax, %eax
callq 0x1b51
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::less_than_or_equal_to(Value, Value, int)
bool Value::less_than_or_equal_to(Value a, Value b, Assoc_Ptr assoc)
{
	validate_same_type(a, b, assoc);
	switch (a.type) {
	case TYPE_INTEGER:
		return a.integer <= b.integer;
	default:
		fatal_assoc(assoc, "<= not valid for type");
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x408a
cmpl $0x1, %edi
jne 0x4093
cmpl %ecx, %esi
setle %al
popq %rbp
retq
leaq 0x5762(%rip), %rsi      # 0x97f3
jmp 0x409a
leaq 0x55bb(%rip), %rsi      # 0x9655
movl %r8d, %edi
xorl %eax, %eax
callq 0x1b51
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Value::greater_than_or_equal_to(Value, Value, int)
bool Value::greater_than_or_equal_to(Value a, Value b, Assoc_Ptr assoc)
{
	validate_same_type(a, b, assoc);
	switch (a.type) {
	case TYPE_INTEGER:
		return a.integer >= b.integer;
	default:
		fatal_assoc(assoc, ">= not valid for type");
	}
	assert(false); // @linter
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
cmpl %edx, %edi
jne 0x40b8
cmpl $0x1, %edi
jne 0x40c1
cmpl %ecx, %esi
setge %al
popq %rbp
retq
leaq 0x5734(%rip), %rsi      # 0x97f3
jmp 0x40c8
leaq 0x55a3(%rip), %rsi      # 0x966b
movl %r8d, %edi
xorl %eax, %eax
callq 0x1b51
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/builtins.cc
// Function: Builtins::v_abs(Value*)
DEFINE(abs)
	{
		PULL_ONE(n);
		if (n.type != TYPE_INTEGER) {
			fatal("Builtin function abs() takes integer");
		}
		return Value::raise(abs(n.integer));
	}

// Assembly:
cmpl $0x1, (%rdi)
jne 0x40e5
movl 0x8(%rdi), %eax
movl %eax, %edx
negl %edx
cmovsl %eax, %edx
pushq $0x1
popq %rax
retq
pushq %rbp
movq %rsp, %rbp
leaq 0x5591(%rip), %rdi      # 0x9681
xorl %eax, %eax
callq 0x1928
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/builtins.cc
// Function: Builtins::v_print(Value*)
DEFINE(print)
	{
		PULL_ONE(v);
		char * s = v.to_string();
		defer { free(s); };
		printf("%s", s);
		return Value::nothing();
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
subq $0x18, %rsp
movups (%rdi), %xmm0
leaq -0x20(%rbp), %rdi
movaps %xmm0, (%rdi)
callq 0x3d5e
movq %rax, %rbx
leaq 0x53ff(%rip), %rdi      # 0x9540
movq %rax, %rsi
xorl %eax, %eax
callq 0x1030
movq %rbx, %rdi
callq 0x11f8
xorl %eax, %eax
xorl %edx, %edx
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/builtins.cc
// Function: Builtins::lower_from_symbol(char const*)
Builtin_Function lower_from_symbol(Symbol symbol)
	{
		if (0) assert(false);
		CASE("abs", BUILTIN_MATH_ABS);
		CASE("mod", BUILTIN_MATH_MOD);
		CASE("print", BUILTIN_IO_PRINT);
		CASE("println", BUILTIN_IO_PRINTLN);
		else fatal("Foreign function '%s' does not exist!", symbol);
		assert(false); // @linter
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x5448(%rip), %rdi      # 0x96c8
callq 0x15b3
cmpq %rbx, %rax
je 0x42c1
leaq 0x543b(%rip), %rdi      # 0x96cc
callq 0x15b3
cmpq %rbx, %rax
je 0x42c5
leaq 0x542e(%rip), %rdi      # 0x96d0
callq 0x15b3
cmpq %rbx, %rax
je 0x42c9
leaq 0x5423(%rip), %rdi      # 0x96d6
callq 0x15b3
cmpq %rbx, %rax
jne 0x42d3
pushq $0x3
jmp 0x42cb
xorl %eax, %eax
jmp 0x42cc
pushq $0x1
jmp 0x42cb
pushq $0x2
popq %rax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0x5404(%rip), %rdi      # 0x96de
movq %rbx, %rsi
xorl %eax, %eax
callq 0x1928
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/builtins.cc
// Function: Builtins::get_builtin(char const*)
Builtin * get_builtin(Symbol symbol)
	{
		if (builtin_functions.bound(symbol)) {
			return builtin_functions.lookup(symbol);
		}
		// FFI not yet loaded, allocate and load
		Builtin * ffi = (Builtin*) malloc(sizeof(Builtin));
		Builtin_Function kind = lower_from_symbol(symbol);
		ffi->name = symbol;
		ffi->arg_count = builtin_argument_counts[kind];
		ffi->funcptr = builtin_funcptrs[kind];
		builtin_functions.add(symbol, ffi);
		return ffi;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
leaq 0xaf4b(%rip), %rdi      # 0xf240
movq %rbx, %rsi
callq 0x4b82
testb %al, %al
je 0x4314
leaq 0xaf38(%rip), %rdi      # 0xf240
movq %rbx, %rsi
popq %rbx
popq %r14
popq %rbp
jmp 0x4bde
pushq $0x18
popq %rdi
callq 0x1200
movq %rax, %r14
movq %rbx, %rdi
callq 0x4270
movq %rbx, (%r14)
shll $0x3, %eax
leaq 0xadec(%rip), %rcx      # 0xf120
movq (%rax,%rcx), %rcx
movq %rcx, 0x8(%r14)
leaq 0xadfd(%rip), %rcx      # 0xf140
movq (%rax,%rcx), %rax
movq %rax, 0x10(%r14)
leaq 0xaeee(%rip), %rdi      # 0xf240
movq %rbx, %rsi
movq %r14, %rdx
callq 0x4c5c
movq %r14, %rax
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/main.cc
// Function: load_and_compile_file(Blocks*, char const*)
const char * load_and_compile_file(Blocks * blocks, const char * filename)
{
	const char * source = load_string_from_file(filename);
	if (!source) {
		return NULL;
	}
	Lexer lexer;
	lexer.init(source);
	Parser parser;
	parser.init(&lexer);

	Compiler compiler;
	compiler.init(blocks);
	while (!parser.is(TOKEN_EOF)) {
		// The parser feeds from the lexer and returns one
		// statement's worth of abstract syntax tree
		auto stmt = parser.parse_stmt();
		defer {
			stmt->destroy();
			free(stmt);
		};
		
		// Top-level expects terminators for every statement
		parser.expect('.');

		// Here we generate bytecode from our abstract syntax tree
		// (one statement's worth)
		compiler.compile_stmt(stmt);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %rdi, %r12
movq %rsi, %rdi
callq 0x163c
testq %rax, %rax
je 0x446f
leaq -0xc0(%rbp), %rbx
movq %rax, (%rbx)
movq %rax, -0x50(%rbp)
movq %rax, %rdi
callq 0x1080
movq %rax, 0x8(%rbx)
andq $0x0, 0x10(%rbx)
movq $0x1, 0x18(%rbx)
leaq -0x68(%rbp), %r14
movq %rbx, (%r14)
movq %rbx, %rdi
callq 0x2190
movq %rax, %rbx
movq %rax, 0x8(%r14)
movq %rdx, 0x10(%r14)
leaq -0xa0(%rbp), %rdi
movq %r12, %rsi
callq 0x4ca8
leaq -0x48(%rbp), %r15
pushq $0x2e
popq %r12
leaq -0x30(%rbp), %r13
cmpl $0x100, %ebx            # imm = 0x100
je 0x4429
movq %r14, %rdi
callq 0x3890
movq %rax, -0x48(%rbp)
movq %r15, -0x30(%rbp)
movq %r14, %rdi
movl %r12d, %esi
callq 0x2ef2
movq -0x48(%rbp), %rsi
leaq -0xa0(%rbp), %rdi
callq 0x4cf8
movq %r13, %rdi
callq 0x4496
movl -0x60(%rbp), %ebx
jmp 0x43e9
movabsq $-0xfffffffe, %rax      # imm = 0xFFFFFFFF00000002
movq %rax, -0x48(%rbp)
andl $0x0, -0x40(%rbp)
andq $0x0, -0x38(%rbp)
movups -0x48(%rbp), %xmm0
movups %xmm0, (%rsp)
andq $0x0, 0x10(%rsp)
leaq -0xa0(%rbp), %rbx
movq %rbx, %rdi
callq 0x6ef2
movq %rbx, %rdi
callq 0x4e9c
movq (%rbx), %rdi
callq *0x20(%rbx)
movq -0x50(%rbp), %rax
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x4496
movq %rbx, %rdi
callq 0x11c0
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/main.cc
// Function: main
int main(int argc, char ** argv)
{	
	if (argc != 2) {
		fatal("Provide one source file");
	}

	Files::init(argv[1]);
	Global_Alloc::init();
	Intern::init();
	GC::init();
	Builtins::init();
	Assoc_Allocator::init();
	
	work_from_source(argv[1]);

	Assoc_Allocator::destroy();
	Builtins::destroy();
	GC::destroy();
	Intern::destroy();
	Global_Alloc::destroy();
	Files::destroy();
	
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
cmpl $0x2, %edi
jne 0x475a
movq %rsi, %rbx
movq 0x8(%rsi), %rdi
callq 0x1bbf
callq 0x12fc
callq 0x1522
callq 0x3b8a
callq 0x41a0
callq 0x174b
movq 0x8(%rbx), %rdi
callq 0x44c3
movq 0xaaaa(%rip), %rdi      # 0xf1c0
callq *0xaac4(%rip)           # 0xf1e0
xorps %xmm0, %xmm0
movups %xmm0, 0xaaa2(%rip)     # 0xf1c8
callq 0x422f
movq 0xaad6(%rip), %rdi      # 0xf208
callq *0xaaf0(%rip)           # 0xf228
xorps %xmm0, %xmm0
movups %xmm0, 0xaace(%rip)     # 0xf210
callq 0x1566
callq 0x1340
callq 0x1dba
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
leaq 0x4fed(%rip), %rdi      # 0x974e
xorl %eax, %eax
callq 0x1928
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/ast.cc
// Function: Expr::with_kind(Expr_Kind, int)
static Expr * with_kind(Expr_Kind kind, Assoc_Ptr assoc)
	{
		Expr * expr = (Expr*) malloc(sizeof(Expr));
		expr->kind = kind;
		expr->assoc = assoc;
		return expr;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movl %esi, %ebx
movl %edi, %r14d
pushq $0x60
popq %rdi
callq 0x1200
movl %r14d, (%rax)
movl %ebx, 0x4(%rax)
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/value-def.cc
// Function: Function::gc_mark()
void gc_mark()
	{
		GC::mark_opaque(parameters);
		if (!GC::is_marked_opaque(closure)) {
			GC::mark_opaque(closure);
			closure->gc_mark();
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq (%rdi), %rax
movb $0x1, -0x1(%rax)
movq 0x18(%rdi), %rax
cmpb $0x0, -0x1(%rax)
je 0x4ac7
popq %rbp
retq
movb $0x1, -0x1(%rax)
movq 0x18(%rdi), %rdi
popq %rbp
jmp 0x5bfa
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/map.cc
// Function: Map<char const*, Builtin*>::bound(char const*)
bool Map<K, V>::bound(K key)
{
	for (int i = 0; i < keys.size; i++) {
		if (comparator(keys[i], key)) {
			return true;
		}
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, -0x30(%rbp)
movq %rdi, %r14
leaq 0x8(%rdi), %r15
xorl %ecx, %ecx
movq %rcx, %r12
movq 0x10(%r14), %r13
cmpq %rcx, %r13
jbe 0x4bc9
movq (%r14), %rbx
movq %r15, %rdi
movq %r12, %rsi
callq 0x4838
movq (%rax), %rdi
movq -0x30(%rbp), %rsi
callq *%rbx
leaq 0x1(%r12), %rcx
testb %al, %al
je 0x4b9d
cmpq %r12, %r13
seta %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/map.cc
// Function: Map<char const*, Builtin*>::lookup(char const*)
V Map<K, V>::lookup(K key)
{
	for (int i = 0; i < keys.size; i++) {
		if (comparator(keys[i], key)) {
			return values[i];
		}
	}
	assert("Not bound in Map!" && 0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x8(%rdi), %r12
pushq $-0x1
popq %r14
incq %r14
cmpq %r14, 0x10(%rbx)
jbe 0x4c3f
movq (%rbx), %r13
movq %r12, %rdi
movq %r14, %rsi
callq 0x4838
movq (%rax), %rdi
movq %r15, %rsi
callq *%r13
testb %al, %al
je 0x4bfa
addq $0x30, %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x4b24
movq (%rax), %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x541d(%rip), %rdi      # 0xa063
leaq 0x542f(%rip), %rsi      # 0xa07c
leaq 0x57f6(%rip), %rcx      # 0xa44a
pushq $0x5b
popq %rdx
callq 0x10d0
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/compiler.cc
// Function: Compiler::finalize()
void finalize()
	{
		BC * final_bc = (BC*) malloc(sizeof(BC) * bytecode.size);
		for (int i = 0; i < bytecode.size; i++) {
			final_bc[i] = bytecode[i];
		}
		blocks->finalize_block(block_reference, final_bc, bytecode.size);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x8(%rdi), %r15
imulq $0x18, %r15, %rdi
callq 0x1200
movq %rax, %r14
xorl %r12d, %r12d
movq %rax, %r13
cmpq %r12, %r15
jbe 0x4ef0
movq %rbx, %rdi
movq %r12, %rsi
callq 0x6db8
movq 0x10(%rax), %rcx
movq %rcx, 0x10(%r13)
movups (%rax), %xmm0
movups %xmm0, (%r13)
incq %r12
movq 0x8(%rbx), %r15
addq $0x18, %r13
jmp 0x4ec3
movq 0x28(%rbx), %rdi
movq 0x30(%rbx), %rsi
movq %r14, %rdx
movq %r15, %rcx
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x6ff4
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/environment.cc
// Function: Environment::alloc()
static Environment * alloc()
	{
		Environment * env = (Environment*) GC::alloc(sizeof(Environment));
		env->names.alloc();
		env->values.alloc();
		env->next_env = NULL;
		return env;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
pushq $0x58
popq %rdi
callq 0x3c0e
movq %rax, %rbx
movq %rax, %rdi
callq 0x7092
leaq 0x28(%rbx), %rdi
callq 0x70ce
andq $0x0, 0x50(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::init(Blocks*, Environment*, unsigned long)
void init(Blocks * blocks, Environment * export_scope, size_t block_reference)
	{
		this->blocks = blocks;
		this->export_scope = export_scope;

		export_queue.alloc();
		stack.alloc();
		
		call_stack.alloc();
		call_stack.push(Call_Frame::alloc(blocks, block_reference, NULL, NULL));
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r15
movq %rsi, (%rdi)
movq %rdx, 0x8(%rdi)
andq $0x0, 0x18(%rdi)
movq %rcx, -0x30(%rbp)
pushq $0x4
popq %rax
movq %rax, 0x20(%rdi)
movq 0x9fea(%rip), %r14      # 0xefd0
movq %r14, 0x28(%rdi)
movq 0x9fd7(%rip), %r13      # 0xefc8
movq %r13, 0x30(%rdi)
pushq $0x40
popq %r12
movq %r12, %rdi
callq 0x1200
movq %rax, 0x10(%r15)
andq $0x0, 0x40(%r15)
pushq $0x4
popq %rax
movq %rax, 0x48(%r15)
movq %r14, 0x50(%r15)
movq %r13, 0x58(%r15)
movq %r12, %rdi
callq 0x1200
movq %rax, 0x38(%r15)
andq $0x0, 0x68(%r15)
leaq 0x60(%r15), %r12
pushq $0x4
popq %rax
movq %rax, 0x70(%r15)
movq %r14, 0x78(%r15)
movq %r13, 0x80(%r15)
pushq $0x20
popq %rdi
callq 0x1200
movq %rax, 0x60(%r15)
movq %rbx, %rdi
movq -0x30(%rbp), %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x713c
movq %r12, %rdi
movq %rax, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x710a
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::destroy()
void destroy()
	{
		export_queue.dealloc();
		stack.dealloc();
		// The call stack should be empty if we're destructing
		assert(call_stack.size == 0);
		call_stack.dealloc();
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rdi
callq *0x30(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rbx)
movq 0x38(%rbx), %rdi
callq *0x58(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rbx)
cmpq $0x0, 0x68(%rbx)
jne 0x5aa9
leaq 0x68(%rbx), %r14
movq 0x60(%rbx), %rdi
callq *0x80(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%r14)
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x4683(%rip), %rdi      # 0xa133
leaq 0x415e(%rip), %rsi      # 0x9c15
leaq 0x468a(%rip), %rcx      # 0xa148
pushq $0x66
popq %rdx
callq 0x10d0
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::mark_reachable()
void mark_reachable()
	{
		GC::mark_opaque(export_scope);
		export_scope->gc_mark();
		for (int i = 0; i < call_stack.size; i++) {
			call_stack[i]->gc_mark();
		}
		for (int i = 0; i < stack.size; i++) {
			stack[i].gc_mark();
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movb $0x1, -0x1(%rax)
movq 0x8(%rdi), %rdi
callq 0x5bfa
leaq 0x60(%rbx), %r14
xorl %r15d, %r15d
cmpq %r15, 0x68(%rbx)
jbe 0x5b71
movq %r14, %rdi
movq %r15, %rsi
callq 0x797e
movq (%rax), %rdi
callq 0x7fd4
incq %r15
jmp 0x5b53
leaq 0x38(%rbx), %r14
xorl %r15d, %r15d
cmpq %r15, 0x40(%rbx)
jbe 0x5b96
movq %r14, %rdi
movq %r15, %rsi
callq 0x5c5c
movq %rax, %rdi
callq 0x3e42
incq %r15
jmp 0x5b78
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/blocks.cc
// Function: Blocks::destroy()
void destroy()
	{
		for (int i = 0; i < blocks.size; i++) {
			free(blocks[i]);
		}
		blocks.dealloc();
		sizes.dealloc();
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x8(%rdi), %r15
xorl %r14d, %r14d
cmpq %r14, (%r15)
jbe 0x5bd3
movq %rbx, %rdi
movq %r14, %rsi
callq 0x702e
movq (%rax), %rdi
callq 0x11f8
incq %r14
jmp 0x5bb6
movq (%rbx), %rdi
callq *0x20(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
movq 0x28(%rbx), %rdi
callq *0x48(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x30(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/environment.cc
// Function: Environment::gc_mark()
void gc_mark()
	{
		names.gc_mark();
		values.gc_mark();
		for (int i = 0; i < values.size; i++) {
			values[i].gc_mark();
		}
		if (next_env) {
			GC::mark_opaque(next_env);
			next_env->gc_mark();
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
movb $0x1, %r12b
movq (%rbx), %rax
movb %r12b, -0x1(%rax)
leaq 0x28(%rbx), %r14
movq 0x28(%rbx), %rax
movb %r12b, -0x1(%rax)
xorl %r15d, %r15d
cmpq %r15, 0x30(%rbx)
jbe 0x5c3f
movq %r14, %rdi
movq %r15, %rsi
callq 0x5c5c
movq %rax, %rdi
callq 0x3e42
incq %r15
jmp 0x5c21
movq 0x50(%rbx), %rax
testq %rax, %rax
je 0x5c52
movb $0x1, -0x1(%rax)
movq 0x50(%rbx), %rbx
jmp 0x5c0b
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/list.cc
// Function: List<BC*>::resize(unsigned long)
void List<T>::resize(size_t new_capacity)
{
	assert(new_capacity >= size);
	T * new_arr = (T*) allocator.__malloc(sizeof(T) * new_capacity);
	memcpy(new_arr, arr, sizeof(T) * size);
	allocator.__free(arr);
	arr = new_arr;
	capacity = new_capacity;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
cmpq %rsi, 0x8(%rdi)
ja 0x5dc7
movq %rsi, %rbx
movq %rdi, %r14
leaq (,%rsi,8), %rdi
callq *0x18(%r14)
movq %rax, %r15
movq (%r14), %rsi
movq 0x8(%r14), %rdx
shlq $0x3, %rdx
movq %rax, %rdi
callq 0x10e0
movq (%r14), %rdi
callq *0x20(%r14)
movq %r15, (%r14)
movq %rbx, 0x10(%r14)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
leaq 0x3a45(%rip), %rdi      # 0x9813
leaq 0x39e3(%rip), %rsi      # 0x97b8
leaq 0x3a4c(%rip), %rcx      # 0x9828
pushq $0x4a
popq %rdx
callq 0x10d0
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: Call_Frame::alloc(Blocks*, unsigned long, Function*, Environment*)
static Call_Frame * alloc(Blocks * blocks, size_t block_reference,
							  Function * origin, Environment * closure)
	{
		Call_Frame * frame = (Call_Frame*) malloc(sizeof(Call_Frame));
		frame->origin = origin;
		frame->environment = Environment::alloc();
		frame->environment->next_env = closure;
		frame->block_reference = block_reference;

		frame->call_flags = Environment::alloc();
	
		frame->bytecode = blocks->retrieve_block(block_reference);
		frame->bc_pointer = 0;
		frame->bc_length = blocks->size_block(block_reference);

		frame->body_stack.alloc();
		return frame;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r14
movq %rdi, %r15
pushq $0x60
popq %rdi
callq 0x1200
movq %rax, %rbx
movq %r13, (%rax)
callq 0x4f82
movq %rax, 0x8(%rbx)
movq %r12, 0x50(%rax)
movq %r14, 0x10(%rbx)
callq 0x4f82
movq %rax, 0x18(%rbx)
movq %r15, %rdi
movq %r14, %rsi
callq 0x72aa
movq %rax, 0x20(%rbx)
andq $0x0, 0x28(%rbx)
movq %r15, %rdi
movq %r14, %rsi
callq 0x72f2
movq %rax, 0x30(%rbx)
andq $0x0, 0x40(%rbx)
movq $0x4, 0x48(%rbx)
movq 0x7e1b(%rip), %rax      # 0xefd0
movq %rax, 0x50(%rbx)
movq 0x7e08(%rip), %rax      # 0xefc8
movq %rax, 0x58(%rbx)
pushq $0x10
popq %rdi
callq 0x1200
movq %rax, 0x38(%rbx)
movq %rbx, %rax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::do_halting_tasks()
void do_halting_tasks()
	{
		// Push exported names to export_scope
		for (int i = 0; i < export_queue.size; i++) {
			auto _export = export_queue[i];
			current_assoc = _export.assoc;
			auto val = resolve_binding(_export.symbol);
			export_scope->create_binding(_export.symbol, val);
		}
		// Clear out the stack so that the garbage
		// collector can clean everything up
		size_t remaining = stack.size;
		for (int i = 0; i < remaining; i++) {
			pop();
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
leaq 0x10(%rdi), %r14
xorl %r15d, %r15d
cmpq %r15, 0x18(%rbx)
jbe 0x7395
movq %r14, %rdi
movq %r15, %rsi
callq 0x79b0
movq (%rax), %r12
movl 0x8(%rax), %eax
movl %eax, 0x88(%rbx)
movq %rbx, %rdi
movq %r12, %rsi
callq 0x7596
movq %rdx, %rcx
movq 0x8(%rbx), %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x79e2
incq %r15
jmp 0x7357
movq 0x40(%rbx), %r14
addq $0x38, %rbx
subq $0x1, %r14
jb 0x73ad
movq %rbx, %rdi
callq 0x7cd0
jmp 0x739d
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::return_function()
void return_function()
	{
		GC::heuristic_return();
		auto frame = call_stack.pop();
		frame->destroy();
		free(frame);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
cvtss2sd 0x7e6c(%rip), %xmm0     # 0xf230
addsd 0x1d84(%rip), %xmm0     # 0x9150
cvtsd2ss %xmm0, %xmm0
movss %xmm0, 0x7e58(%rip)     # 0xf230
addq $0x60, %rdi
callq 0x7c0c
movq %rax, %rbx
movq 0x38(%rax), %rdi
callq *0x58(%rax)
movq %rbx, %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x11f8
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::create_binding(char const*, Value)
void create_binding(Symbol symbol, Value value)
	{
		auto frame = frame_reference();
		bool success = frame->environment->create_binding(symbol, value);
		if (!success) {
			error("Can't create new variable '%s' -- already bound in this scope!",
				  symbol);
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rcx, %r15
movl %edx, %r12d
movq %rsi, %rbx
movq %rdi, %r14
callq 0x7304
movq 0x8(%rax), %rdi
movq %rbx, %rsi
movl %r12d, %edx
movq %r15, %rcx
callq 0x79e2
testb %al, %al
je 0x7467
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2adf(%rip), %rsi      # 0x9f4d
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x7522
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/environment.cc
// Function: Environment::update_binding(char const*, Value)
bool update_binding(Symbol symbol, Value value)
	{
		assert(names.size == values.size);
		for (int i = 0; i < names.size; i++) {
			if (symbol == names[i]) {
				values[i] = value;
				return true;
			}
		}
		if (next_env) {
			return next_env->update_binding(symbol, value);
		}
		return false;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, -0x30(%rbp)
movl %edx, %r14d
movq %rsi, %r13
movq %rdi, %r15
movq 0x8(%r15), %rax
cmpq 0x30(%r15), %rax
jne 0x7505
pushq $-0x1
popq %r12
incq %r12
movq 0x8(%r15), %rbx
cmpq %r12, %rbx
jbe 0x74cb
movq %r15, %rdi
movq %r12, %rsi
callq 0x4838
cmpq %r13, (%rax)
jne 0x74ad
jmp 0x74d6
movq 0x50(%r15), %r15
testq %r15, %r15
jne 0x749f
jmp 0x74f0
addq $0x28, %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x5c5c
movl %r14d, (%rax)
movq -0x30(%rbp), %rcx
movq %rcx, 0x8(%rax)
cmpq %r12, %rbx
seta %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x293e(%rip), %rdi      # 0x9e4a
leaq 0x2951(%rip), %rsi      # 0x9e64
leaq 0x2a72(%rip), %rcx      # 0x9f8c
pushq $0x36
popq %rdx
callq 0x10d0
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::resolve_binding(char const*)
Value resolve_binding(Symbol symbol)
	{
		auto frame = frame_reference();
		Value value;
		if (frame->environment->resolve_binding(symbol, &value)) {
			return value;
		}
		// TODO(pixlark): Make it so that every environment implicity
		// links to the global environment, thus removing the need for
		// this call frame?
		auto global = call_stack[0];
		if (global->environment->resolve_binding(symbol, &value)) {
			return value;
		}
		// Finally, check in our export scope
		if (export_scope->resolve_binding(symbol, &value)) {
			return value;
		}
		error("Variable '%s' is not bound", symbol);
		assert(false); // @linter
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
callq 0x7304
movq 0x8(%rax), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x7d9a
testb %al, %al
jne 0x75f6
leaq 0x60(%r14), %rdi
xorl %esi, %esi
callq 0x797e
movq (%rax), %rax
movq 0x8(%rax), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x7d9a
testb %al, %al
jne 0x75f6
movq 0x8(%r14), %rdi
leaq -0x20(%rbp), %rdx
movq %rbx, %rsi
callq 0x7d9a
testb %al, %al
je 0x7606
movl -0x20(%rbp), %eax
movq -0x18(%rbp), %rdx
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
leaq 0x29af(%rip), %rsi      # 0x9fbc
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x7522
leaq 0x1e4d(%rip), %rdi      # 0x946e
leaq 0x25ed(%rip), %rsi      # 0x9c15
leaq 0x29a8(%rip), %rcx      # 0x9fd7
movl $0xb8, %edx
callq 0x10d0
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/map.cc
// Function: Map<char const*, Value>::update(char const*, Value)
bool Map<K, V>::update(K key, V value)
{
	for (int i = 0; i < keys.size; i++) {
		if (comparator(keys[i], key)) {
			values[i] = value;
			return true;
		}
	}
	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rcx, -0x38(%rbp)
movl %edx, -0x2c(%rbp)
movq %rsi, -0x40(%rbp)
movq %rdi, %r12
leaq 0x8(%rdi), %rbx
pushq $-0x1
popq %r15
incq %r15
movq 0x10(%r12), %r14
cmpq %r15, %r14
jbe 0x7853
movq (%r12), %r13
movq %rbx, %rdi
movq %r15, %rsi
callq 0x4838
movq (%rax), %rdi
movq -0x40(%rbp), %rsi
callq *%r13
testb %al, %al
je 0x780d
addq $0x30, %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x5c5c
movl -0x2c(%rbp), %ecx
movl %ecx, (%rax)
movq -0x38(%rbp), %rcx
movq %rcx, 0x8(%rax)
cmpq %r15, %r14
seta %al
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: VM::lookup_call_flag(char const*)
Value lookup_call_flag(Symbol symbol)
	{
		for (int i = call_stack.size - 1; i >= 0; i--) {
			auto frame = call_stack[i];
			Value value;
			if (frame->call_flags->resolve_binding(symbol, &value)) {
				return value;
			}
		}
		error("Call flag '%s' is not bound", symbol);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x60(%rdi), %r15
movl 0x68(%rdi), %r13d
decq %r13
leaq -0x38(%rbp), %r12
testl %r13d, %r13d
js 0x7969
movl %r13d, %esi
andl $0x7fffffff, %esi       # imm = 0x7FFFFFFF
movq %r15, %rdi
callq 0x797e
movq (%rax), %rax
movq 0x18(%rax), %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x7d9a
decq %r13
testb %al, %al
je 0x7924
movl -0x38(%rbp), %eax
movq -0x30(%rbp), %rdx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x27a7(%rip), %rsi      # 0xa117
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x7522
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/environment.cc
// Function: Environment::create_binding(char const*, Value)
bool create_binding(Symbol symbol, Value value)
	{
		assert(names.size == values.size);
		// TODO(pixlark): Do we want to be able to shadow closed
		// variables? Probably...
		if (is_bound(symbol, false)) {
			return false;
		}
		names.push(symbol);
		values.push(value);
		return true;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0x8(%rdi), %rax
cmpq 0x30(%rdi), %rax
jne 0x7a4c
movq %rcx, %rbx
movl %edx, %r14d
movq %rsi, %r15
movq %rdi, %r13
xorl %edx, %edx
callq 0x7a6a
movl %eax, %r12d
testb %al, %al
jne 0x7a36
movq %rbx, -0x30(%rbp)
leaq 0x28(%r13), %rbx
movq %r13, %rdi
movq %r15, %rsi
callq 0x486a
movq %rbx, %rdi
movl %r14d, %esi
movq -0x30(%rbp), %rdx
callq 0x7afe
xorb $0x1, %r12b
movl %r12d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x23f7(%rip), %rdi      # 0x9e4a
leaq 0x240a(%rip), %rsi      # 0x9e64
leaq 0x2416(%rip), %rcx      # 0x9e77
pushq $0x2a
popq %rdx
callq 0x10d0
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/environment.cc
// Function: Environment::is_bound(char const*, bool)
bool is_bound(Symbol symbol, bool recurse=true)
	{
		assert(names.size == values.size);
		for (int i = 0; i < names.size; i++) {
			if (symbol == names[i]) {
				return true;
			}
		}
		if (recurse && next_env) {
			return next_env->is_bound(symbol);
		}
		return false;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %edx, %r15d
movq %rsi, %rbx
movq %rdi, %r14
xorb $0x1, %r15b
movq 0x8(%r14), %rax
cmpq 0x30(%r14), %rax
jne 0x7ae1
xorl %ecx, %ecx
movq %rcx, %r12
movq 0x8(%r14), %r13
cmpq %rcx, %r13
jbe 0x7ab4
movq %r14, %rdi
movq %r12, %rsi
callq 0x4838
leaq 0x1(%r12), %rcx
cmpq %rbx, (%rax)
jne 0x7a91
jmp 0x7acc
seta %al
orb %al, %r15b
testb $0x1, %r15b
jne 0x7acc
movq 0x50(%r14), %r14
xorl %r15d, %r15d
testq %r14, %r14
jne 0x7a85
cmpq %r12, %r13
seta %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2362(%rip), %rdi      # 0x9e4a
leaq 0x2375(%rip), %rsi      # 0x9e64
leaq 0x23b1(%rip), %rcx      # 0x9ea7
pushq $0x1d
popq %rdx
callq 0x10d0
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/environment.cc
// Function: Environment::resolve_binding(char const*, Value*)
bool resolve_binding(Symbol symbol, Value * value)
	{
		assert(names.size == values.size);
		for (int i = 0; i < names.size; i++) {
			if (symbol == names[i]) {
				*value = values[i];
				return true;
			}
		}
		if (next_env) {
			return next_env->resolve_binding(symbol, value);
		}
		return false;
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %rbx
movq %rsi, %r12
movq %rdi, %r14
movq 0x8(%r14), %rax
cmpq 0x30(%r14), %rax
jne 0x7e12
pushq $-0x1
popq %r15
incq %r15
movq 0x8(%r14), %r13
cmpq %r15, %r13
jbe 0x7ddd
movq %r14, %rdi
movq %r15, %rsi
callq 0x4838
cmpq %r12, (%rax)
jne 0x7dbf
jmp 0x7de8
movq 0x50(%r14), %r14
testq %r14, %r14
jne 0x7db1
jmp 0x7dfd
addq $0x28, %r14
movq %r14, %rdi
movq %r15, %rsi
callq 0x5c5c
movups (%rax), %xmm0
movups %xmm0, (%rbx)
cmpq %r15, %r13
seta %al
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2031(%rip), %rdi      # 0x9e4a
leaq 0x2044(%rip), %rsi      # 0x9e64
leaq 0x21d2(%rip), %rcx      # 0x9ff9
pushq $0x44
popq %rdx
callq 0x10d0
nop
// File: /workspace/github_cpp_makefile_star2_O2/pixlark[P]Badge/src/vm.cc
// Function: Call_Frame::gc_mark()
void gc_mark()
	{
		if (origin) {
			GC::mark_opaque(origin);
			origin->gc_mark();
		}
		// TODO(pixlark): Why do we check if this is marked opaque??
		// The whole point is that we just do it regardless...
		if (!GC::is_marked_opaque(environment)) {
			GC::mark_opaque(environment);
			environment->gc_mark();
		}
		if (!GC::is_marked_opaque(call_flags)) {
			GC::mark_opaque(call_flags);
			call_flags->gc_mark();
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq (%rdi), %rax
testq %rax, %rax
je 0x7ff1
movb $0x1, -0x1(%rax)
movq (%rbx), %rdi
callq 0x4ab0
movq 0x8(%rbx), %rax
cmpb $0x0, -0x1(%rax)
jne 0x8008
movb $0x1, -0x1(%rax)
movq 0x8(%rbx), %rdi
callq 0x5bfa
movq 0x18(%rbx), %rax
cmpb $0x0, -0x1(%rax)
je 0x8019
addq $0x8, %rsp
popq %rbx
popq %rbp
retq
movb $0x1, -0x1(%rax)
movq 0x18(%rbx), %rdi
addq $0x8, %rsp
popq %rbx
popq %rbp
jmp 0x5bfa
// File: /workspace/github_cpp_makefile_star2_O2/ArashPartow[P]exprtk-extras/exprtk_vector_benchmark_multithreaded.cpp
// Function: main
int main(int argc, char* argv[])
{
   const std::size_t vec_size     = ((argc >= 2) ? atoi(argv[1]) : 100000);
   const std::size_t thread_count = ((argc == 3) ? atoi(argv[2]) : 1     );

   if (thread_count > 36)
      return -1;

   run_threaded_benchmark<double>(vec_size,thread_count);

   return 0;
}

// Assembly:
pushq %rbp
pushq %rbx
subq $0x18, %rsp
cmpl $0x1, %edi
jle 0x1135bb
movq %rsi, %rbx
movl %edi, %ebp
movq 0x8(%rsi), %rdi
callq 0x110180
cltq
movq %rax, 0x10(%rsp)
cmpl $0x3, %ebp
jne 0x1135c4
movq 0x10(%rbx), %rdi
callq 0x110180
cltq
movq %rax, 0x8(%rsp)
cmpl $0x24, %eax
jbe 0x1135cd
pushq $-0x1
popq %rax
jmp 0x1135de
movq $0x186a0, 0x10(%rsp)    # imm = 0x186A0
movq $0x1, 0x8(%rsp)
leaq 0x10(%rsp), %rdi
leaq 0x8(%rsp), %rsi
callq 0x1136c1
xorl %eax, %eax
addq $0x18, %rsp
popq %rbx
popq %rbp
retq
// File: /workspace/github_cpp_makefile_star2_O2/isovic[P]cigargen/cigargen_main.cc
// Function: main
int main() {
  std::string reference = "ACTGCTGCCTGCAAAAAAAAAAA";
  std::string query = "AGTGTGCCCT";

  std::string cigar;
  std::string alignment = "";
  uint32_t alignment_length = 0;
  int32_t edit_distance = GenerateCigar((char *) query.c_str(), query.size(), (char *) reference.c_str(), reference.size(), &cigar, &alignment_length, &alignment);

  printf ("Reference sequence:\t%s\n", reference.c_str());
  printf ("Query sequence:\t\t%s\n", query.c_str());
  printf ("Returned CIGAR: %s\n", cigar.c_str());
  printf ("Alignment: %s\n", alignment.c_str());
  printf ("Alignment length: %d\n", alignment_length);
  printf ("Edit distance: %d\n", edit_distance);

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
leaq 0x1ced(%rip), %rsi      # 0x4004
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0x2482
leaq 0x1cee(%rip), %rsi      # 0x401c
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x2482
leaq -0x60(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq 0x1d8b(%rip), %rsi      # 0x40dd
leaq -0xb0(%rbp), %rbx
leaq -0x2c(%rbp), %rdx
movq %rbx, %rdi
callq 0x2482
leaq -0x2c(%rbp), %r9
andl $0x0, (%r9)
movq -0x50(%rbp), %rdi
movl -0x48(%rbp), %esi
movq -0x90(%rbp), %rdx
movl -0x88(%rbp), %ecx
movq %rbx, (%rsp)
leaq -0x70(%rbp), %r8
callq 0x255c
movl %eax, %r14d
leaq -0x90(%rbp), %rbx
movq (%rbx), %rsi
leaq 0x1c85(%rip), %rdi      # 0x4027
xorl %eax, %eax
callq 0x2030
leaq -0x50(%rbp), %r15
movq (%r15), %rsi
leaq 0x1c88(%rip), %rdi      # 0x403f
xorl %eax, %eax
callq 0x2030
leaq -0x70(%rbp), %r12
movq (%r12), %rsi
leaq 0x1c87(%rip), %rdi      # 0x4054
xorl %eax, %eax
callq 0x2030
leaq -0xb0(%rbp), %r13
movq (%r13), %rsi
leaq 0x1c82(%rip), %rdi      # 0x4068
xorl %eax, %eax
callq 0x2030
movl -0x2c(%rbp), %esi
leaq 0x1c80(%rip), %rdi      # 0x4077
xorl %eax, %eax
callq 0x2030
leaq 0x1c88(%rip), %rdi      # 0x408d
movl %r14d, %esi
xorl %eax, %eax
callq 0x2030
movq %r13, %rdi
callq 0x2080
movq %r12, %rdi
callq 0x2080
movq %r15, %rdi
callq 0x2080
movq %rbx, %rdi
callq 0x2080
xorl %eax, %eax
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x2080
jmp 0x2457
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x2080
leaq -0x50(%rbp), %rdi
callq 0x2080
jmp 0x246e
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x2080
movq %rbx, %rdi
callq 0x21d0
// File: /workspace/github_cpp_makefile_star2_O2/XuhuiSun95[P]Ticket-Booking-Service/server/Server.cpp
// Function: Server::Server(std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int> const&, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int> const&)
Server::Server(const std::pair<std::string, int> &server,
               const std::pair<std::string, int> &pair) {

    mTickets = 50;
    mServer = new ServerSocket();
    mServerInfo = server;
    mPairInfo = pair;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r15
movq %rdi, %r12
leaq 0x20(%rdi), %rax
movq %rax, 0x10(%rdi)
andq $0x0, 0x18(%rdi)
movq %rsi, %r13
leaq 0x10(%rdi), %rax
movq %rax, -0x30(%rbp)
xorl %eax, %eax
movb %al, 0x20(%rdi)
andl $0x0, 0x30(%rdi)
leaq 0x48(%rdi), %rcx
movq %rcx, 0x38(%rdi)
andq $0x0, 0x40(%rdi)
movb %al, 0x48(%rdi)
andl $0x0, 0x58(%rdi)
leaq 0x38(%rdi), %r14
xorps %xmm0, %xmm0
movups %xmm0, 0x60(%rdi)
movups %xmm0, 0x70(%rdi)
andq $0x0, 0x80(%rdi)
movl $0x32, (%rdi)
movl $0x41c, %edi            # imm = 0x41C
callq 0x21d0
movq %rax, %rbx
movq %rax, %rdi
callq 0x3748
movq %rbx, 0x8(%r12)
movq -0x30(%rbp), %rdi
movq %r13, %rsi
callq 0x28ce
movq %r14, %rdi
movq %r15, %rsi
callq 0x28ce
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
movq %rbx, %rdi
callq 0x21b0
jmp 0x2592
movq %rax, %r15
movq %r14, %rdi
callq 0x20c0
movq -0x30(%rbp), %rdi
callq 0x20c0
movq %r15, %rdi
callq 0x22b0
nop