LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_module_item
static void _ir_module_item(IRGeneratorContext *ctx, ParserASTNode *node) {
	assert(ctx);
	assert(node);

	switch (node->type) {
		case FE_NODE_VAR: {
			_ir_var(ctx, node);
			break;
		}
		case FE_NODE_STRUCT: {
			_ir_struct(ctx, node);
			break;
		}
		case FE_NODE_FUNC: {
			_ir_func(ctx, node);
			break;
		}
		default: {
			assert(0);
			break;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0xfa79
jmp 0xfa98
leaq 0x6cad6(%rip), %rdi     # 0x7c556
leaq 0x6490d(%rip), %rsi     # 0x74394
movl $0x1327, %edx           # imm = 0x1327
leaq 0x64ab2(%rip), %rcx     # 0x74545
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0xfaa1
jmp 0xfac0
leaq 0x6652b(%rip), %rdi     # 0x75fd3
leaq 0x648e5(%rip), %rsi     # 0x74394
movl $0x1328, %edx           # imm = 0x1328
leaq 0x64a8a(%rip), %rcx     # 0x74545
callq 0x30a0
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
subl $0xa00, %eax            # imm = 0xA00
je 0xfb08
jmp 0xfad2
movl -0x14(%rbp), %eax
subl $0xc00, %eax            # imm = 0xC00
je 0xfaea
jmp 0xfade
movl -0x14(%rbp), %eax
subl $0xd00, %eax            # imm = 0xD00
je 0xfaf9
jmp 0xfb17
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xfb40
jmp 0xfb36
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x10460
jmp 0xfb36
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x106c0
jmp 0xfb36
leaq 0x6293d(%rip), %rdi     # 0x7245b
leaq 0x6486f(%rip), %rsi     # 0x74394
movl $0x1338, %edx           # imm = 0x1338
leaq 0x64a14(%rip), %rcx     # 0x74545
callq 0x30a0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_identifier_name
static void _ir_identifier_name(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	ParserASTNode *node_identifier
) {
	assert(ctx);
	assert(rstr);
	assert(node_identifier);

	rstr_append_with_char(rstr, '_');
	rstr_append_with_raw(rstr, node_identifier->token->content, node_identifier->token->len);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x10bfd
jmp 0x10c1c
leaq 0x6b952(%rip), %rdi     # 0x7c556
leaq 0x63789(%rip), %rsi     # 0x74394
movl $0x7b, %edx
leaq 0x63a71(%rip), %rcx     # 0x74688
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x10c25
jmp 0x10c44
leaq 0x61ee2(%rip), %rdi     # 0x72b0e
leaq 0x63761(%rip), %rsi     # 0x74394
movl $0x7c, %edx
leaq 0x63a49(%rip), %rcx     # 0x74688
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x10c4d
jmp 0x10c6c
leaq 0x63a87(%rip), %rdi     # 0x746db
leaq 0x63739(%rip), %rsi     # 0x74394
movl $0x7d, %edx
leaq 0x63a21(%rip), %rcx     # 0x74688
callq 0x30a0
movq -0x10(%rbp), %rdi
movl $0x5f, %esi
callq 0x8ea0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %edx
callq 0x8f90
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_constexpr_initializer
static void _ir_constexpr_initializer(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	ParserASTNode *node_constexpr
) {
	assert(ctx);
	assert(rstr);
	assert(node_constexpr);
	assert(FE_EXPR_AST_NODE_GET_CONSTANT(node_constexpr));

	_ir_constexpr(ctx, rstr, node_constexpr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x112fd
jmp 0x1131c
leaq 0x6b252(%rip), %rdi     # 0x7c556
leaq 0x63089(%rip), %rsi     # 0x74394
movl $0xe7a, %edx            # imm = 0xE7A
leaq 0x63729(%rip), %rcx     # 0x74a40
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x11325
jmp 0x11344
leaq 0x617e2(%rip), %rdi     # 0x72b0e
leaq 0x63061(%rip), %rsi     # 0x74394
movl $0xe7b, %edx            # imm = 0xE7B
leaq 0x63701(%rip), %rcx     # 0x74a40
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x1134d
jmp 0x1136c
leaq 0x63745(%rip), %rdi     # 0x74a99
leaq 0x63039(%rip), %rsi     # 0x74394
movl $0xe7c, %edx            # imm = 0xE7C
leaq 0x636d9(%rip), %rcx     # 0x74a40
callq 0x30a0
movq -0x18(%rbp), %rax
testb $0x1, 0x70(%rax)
je 0x11378
jmp 0x11397
leaq 0x63729(%rip), %rdi     # 0x74aa8
leaq 0x6300e(%rip), %rsi     # 0x74394
movl $0xe7d, %edx            # imm = 0xE7D
leaq 0x636ae(%rip), %rcx     # 0x74a40
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x13550
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: expr_result_init
static void _expr_result_init(
	_ExprResult *expr_result
) {
	assert(expr_result);

	rstr_init(&(expr_result->rstr_for_result));
	rstr_init(&(expr_result->rstr_for_result_ptr));

	rstr_init(&(expr_result->rstr_result));

	rstr_init(&(expr_result->rstr_result_ptr));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x113c5
jmp 0x113e4
leaq 0x63847(%rip), %rdi     # 0x74c13
leaq 0x62fc1(%rip), %rsi     # 0x74394
movl $0x3b, %edx
leaq 0x63840(%rip), %rcx     # 0x74c1f
callq 0x30a0
movq -0x8(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
addq $0x30, %rdi
callq 0x8c90
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: expr_result_free
static void _expr_result_free(
	_ExprResult *expr_result
) {
	assert(expr_result);

	rstr_free(&(expr_result->rstr_for_result));
	rstr_free(&(expr_result->rstr_for_result_ptr));

	rstr_free(&(expr_result->rstr_result));

	rstr_free(&(expr_result->rstr_result_ptr));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x130b5
jmp 0x130d4
leaq 0x61b57(%rip), %rdi     # 0x74c13
leaq 0x612d1(%rip), %rsi     # 0x74394
movl $0x48, %edx
leaq 0x62fba(%rip), %rcx     # 0x76089
callq 0x30a0
movq -0x8(%rbp), %rdi
callq 0x9310
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
callq 0x9310
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
callq 0x9310
movq -0x8(%rbp), %rdi
addq $0x30, %rdi
callq 0x9310
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_identifier_name_tk
static void _ir_identifier_name_tk(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	LexerToken *tk_identifier
) {
	assert(ctx);
	assert(rstr);
	assert(tk_identifier);

	rstr_append_with_char(rstr, '_');
	rstr_append_with_raw(rstr, tk_identifier->content, tk_identifier->len);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x134ad
jmp 0x134cc
leaq 0x690a2(%rip), %rdi     # 0x7c556
leaq 0x60ed9(%rip), %rsi     # 0x74394
movl $0x88, %edx
leaq 0x61518(%rip), %rcx     # 0x749df
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x134d5
jmp 0x134f4
leaq 0x5f632(%rip), %rdi     # 0x72b0e
leaq 0x60eb1(%rip), %rsi     # 0x74394
movl $0x89, %edx
leaq 0x614f0(%rip), %rcx     # 0x749df
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x134fd
jmp 0x1351c
leaq 0x6152e(%rip), %rdi     # 0x74a32
leaq 0x60e89(%rip), %rsi     # 0x74394
movl $0x8a, %edx
leaq 0x614c8(%rip), %rcx     # 0x749df
callq 0x30a0
movq -0x10(%rbp), %rdi
movl $0x5f, %esi
callq 0x8ea0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movl 0x4(%rax), %edx
callq 0x8f90
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_expr_wrapper
static void _ir_expr_wrapper(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	_ExprResult *expr_result,
	ParserASTNode *node
) {
	assert(ctx);
	assert(rstr);
	assert(expr_result);
	assert(node);
	assert(node->type == FE_NODE_EXPR);
	assert(node->nchilds == 1);

	ParserASTNode *child = node->childs[0];
	_ir_expr(ctx, rstr, expr_result, child);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x13bf1
jmp 0x13c10
leaq 0x6895e(%rip), %rdi     # 0x7c556
leaq 0x60795(%rip), %rsi     # 0x74394
movl $0xe4c, %edx            # imm = 0xE4C
leaq 0x6103a(%rip), %rcx     # 0x74c45
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x13c19
jmp 0x13c38
leaq 0x5eeee(%rip), %rdi     # 0x72b0e
leaq 0x6076d(%rip), %rsi     # 0x74394
movl $0xe4d, %edx            # imm = 0xE4D
leaq 0x61012(%rip), %rcx     # 0x74c45
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x13c41
jmp 0x13c60
leaq 0x60fcb(%rip), %rdi     # 0x74c13
leaq 0x60745(%rip), %rsi     # 0x74394
movl $0xe4e, %edx            # imm = 0xE4E
leaq 0x60fea(%rip), %rcx     # 0x74c45
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x13c69
jmp 0x13c88
leaq 0x62363(%rip), %rdi     # 0x75fd3
leaq 0x6071d(%rip), %rsi     # 0x74394
movl $0xe4f, %edx            # imm = 0xE4F
leaq 0x60fc2(%rip), %rcx     # 0x74c45
callq 0x30a0
movq -0x20(%rbp), %rax
cmpl $0xe00, (%rax)          # imm = 0xE00
jne 0x13c96
jmp 0x13cb5
leaq 0x61007(%rip), %rdi     # 0x74ca4
leaq 0x606f0(%rip), %rsi     # 0x74394
movl $0xe50, %edx            # imm = 0xE50
leaq 0x60f95(%rip), %rcx     # 0x74c45
callq 0x30a0
movq -0x20(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x13cc1
jmp 0x13ce0
leaq 0x6b428(%rip), %rdi     # 0x7f0f0
leaq 0x606c5(%rip), %rsi     # 0x74394
movl $0xe51, %edx            # imm = 0xE51
leaq 0x60f6a(%rip), %rcx     # 0x74c45
callq 0x30a0
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x13d10
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_expr_constexpr
static bool _ir_expr_constexpr(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	_ExprResult *expr_result,
	ParserASTNode *node
) {
	assert(ctx);
	assert(rstr);
	assert(expr_result);
	assert(node);

	if (!FE_EXPR_AST_NODE_GET_CONSTANT(node)) {
		return false;
	}

	ResizableString rstr_val;
	rstr_init(&rstr_val);

	_ir_constexpr(ctx, &rstr_val, node);

	_expr_result_set_result(expr_result, RSTR_CSTR(&rstr_val));

	rstr_free(&rstr_val);

	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x13fa1
jmp 0x13fc0
leaq 0x685ae(%rip), %rdi     # 0x7c556
leaq 0x603e5(%rip), %rsi     # 0x74394
movl $0x374, %edx            # imm = 0x374
leaq 0x60d69(%rip), %rcx     # 0x74d24
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x13fc9
jmp 0x13fe8
leaq 0x5eb3e(%rip), %rdi     # 0x72b0e
leaq 0x603bd(%rip), %rsi     # 0x74394
movl $0x375, %edx            # imm = 0x375
leaq 0x60d41(%rip), %rcx     # 0x74d24
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x13ff1
jmp 0x14010
leaq 0x60c1b(%rip), %rdi     # 0x74c13
leaq 0x60395(%rip), %rsi     # 0x74394
movl $0x376, %edx            # imm = 0x376
leaq 0x60d19(%rip), %rcx     # 0x74d24
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x14019
jmp 0x14038
leaq 0x61fb3(%rip), %rdi     # 0x75fd3
leaq 0x6036d(%rip), %rsi     # 0x74394
movl $0x377, %edx            # imm = 0x377
leaq 0x60cf1(%rip), %rcx     # 0x74d24
callq 0x30a0
movq -0x28(%rbp), %rax
testb $0x1, 0x70(%rax)
jne 0x14048
movb $0x0, -0x1(%rbp)
jmp 0x140a0
leaq -0x38(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq -0x38(%rbp), %rsi
callq 0x13550
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x1407e
leaq 0x6383d(%rip), %rax     # 0x778b5
movq %rax, -0x48(%rbp)
jmp 0x14086
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %rsi
callq 0x1a6c0
leaq -0x38(%rbp), %rdi
callq 0x9310
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_expr_add_sub
static bool _ir_expr_add_sub(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	_ExprResult *expr_result,
	ParserASTNode *node
) {
	assert(ctx);
	assert(rstr);
	assert(expr_result);
	assert(node);

	switch (node->type) {
		case FE_NODE_EXPR_ADD: {
			assert(node->nchilds == 2);

			_ir_expr_add(ctx, rstr, NULL, expr_result, node);

			return true;
		}
		case FE_NODE_EXPR_SUB: {
			assert(node->nchilds == 2);

			_ir_expr_sub(ctx, rstr, NULL, expr_result, node);

			return true;
		}
		default: {
			return false;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x17131
jmp 0x17150
leaq 0x6541e(%rip), %rdi     # 0x7c556
leaq 0x5d255(%rip), %rsi     # 0x74394
movl $0x979, %edx            # imm = 0x979
leaq 0x5e4fa(%rip), %rcx     # 0x75645
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x17159
jmp 0x17178
leaq 0x5b9ae(%rip), %rdi     # 0x72b0e
leaq 0x5d22d(%rip), %rsi     # 0x74394
movl $0x97a, %edx            # imm = 0x97A
leaq 0x5e4d2(%rip), %rcx     # 0x75645
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x17181
jmp 0x171a0
leaq 0x5da8b(%rip), %rdi     # 0x74c13
leaq 0x5d205(%rip), %rsi     # 0x74394
movl $0x97b, %edx            # imm = 0x97B
leaq 0x5e4aa(%rip), %rcx     # 0x75645
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x171a9
jmp 0x171c8
leaq 0x5ee23(%rip), %rdi     # 0x75fd3
leaq 0x5d1dd(%rip), %rsi     # 0x74394
movl $0x97c, %edx            # imm = 0x97C
leaq 0x5e482(%rip), %rcx     # 0x75645
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0xea0, %eax            # imm = 0xEA0
je 0x171e9
jmp 0x171da
movl -0x2c(%rbp), %eax
subl $0xea1, %eax            # imm = 0xEA1
je 0x17233
jmp 0x1727d
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x171f5
jmp 0x17214
leaq 0x67478(%rip), %rdi     # 0x7e674
leaq 0x5d191(%rip), %rsi     # 0x74394
movl $0x980, %edx            # imm = 0x980
leaq 0x5e436(%rip), %rcx     # 0x75645
callq 0x30a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
xorl %eax, %eax
movl %eax, %edx
callq 0x1ba00
movb $0x1, -0x1(%rbp)
jmp 0x17281
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x1723f
jmp 0x1725e
leaq 0x6742e(%rip), %rdi     # 0x7e674
leaq 0x5d147(%rip), %rsi     # 0x74394
movl $0x987, %edx            # imm = 0x987
leaq 0x5e3ec(%rip), %rcx     # 0x75645
callq 0x30a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
xorl %eax, %eax
movl %eax, %edx
callq 0x1c0f0
movb $0x1, -0x1(%rbp)
jmp 0x17281
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_expr_shift
static bool _ir_expr_shift(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	_ExprResult *expr_result,
	ParserASTNode *node
) {
	assert(ctx);
	assert(rstr);
	assert(expr_result);
	assert(node);

	switch (node->type) {
		case FE_NODE_EXPR_SHIFT_LEFT: {
			assert(node->nchilds == 2);

			_ir_expr_shift_left(ctx, rstr, NULL, expr_result, node);

			return true;
		}
		case FE_NODE_EXPR_SHIFT_RIGHT: {
			assert(node->nchilds == 2);

			_ir_expr_shift_right(ctx, rstr, NULL, expr_result, node);

			return true;
		}
		default: {
			return false;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x172b1
jmp 0x172d0
leaq 0x6529e(%rip), %rdi     # 0x7c556
leaq 0x5d0d5(%rip), %rsi     # 0x74394
movl $0xa41, %edx            # imm = 0xA41
leaq 0x5e557(%rip), %rcx     # 0x75822
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x172d9
jmp 0x172f8
leaq 0x5b82e(%rip), %rdi     # 0x72b0e
leaq 0x5d0ad(%rip), %rsi     # 0x74394
movl $0xa42, %edx            # imm = 0xA42
leaq 0x5e52f(%rip), %rcx     # 0x75822
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x17301
jmp 0x17320
leaq 0x5d90b(%rip), %rdi     # 0x74c13
leaq 0x5d085(%rip), %rsi     # 0x74394
movl $0xa43, %edx            # imm = 0xA43
leaq 0x5e507(%rip), %rcx     # 0x75822
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x17329
jmp 0x17348
leaq 0x5eca3(%rip), %rdi     # 0x75fd3
leaq 0x5d05d(%rip), %rsi     # 0x74394
movl $0xa44, %edx            # imm = 0xA44
leaq 0x5e4df(%rip), %rcx     # 0x75822
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0xe90, %eax            # imm = 0xE90
je 0x17369
jmp 0x1735a
movl -0x2c(%rbp), %eax
subl $0xe91, %eax            # imm = 0xE91
je 0x173b3
jmp 0x173fd
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x17375
jmp 0x17394
leaq 0x672f8(%rip), %rdi     # 0x7e674
leaq 0x5d011(%rip), %rsi     # 0x74394
movl $0xa48, %edx            # imm = 0xA48
leaq 0x5e493(%rip), %rcx     # 0x75822
callq 0x30a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
xorl %eax, %eax
movl %eax, %edx
callq 0x1c7e0
movb $0x1, -0x1(%rbp)
jmp 0x17401
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x173bf
jmp 0x173de
leaq 0x672ae(%rip), %rdi     # 0x7e674
leaq 0x5cfc7(%rip), %rsi     # 0x74394
movl $0xa4f, %edx            # imm = 0xA4F
leaq 0x5e449(%rip), %rcx     # 0x75822
callq 0x30a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
xorl %eax, %eax
movl %eax, %edx
callq 0x1cbb0
movb $0x1, -0x1(%rbp)
jmp 0x17401
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_expr_band_bxor_bor
static bool _ir_expr_band_bxor_bor(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	_ExprResult *expr_result,
	ParserASTNode *node
) {
	assert(ctx);
	assert(rstr);
	assert(expr_result);
	assert(node);

	switch (node->type) {
		case FE_NODE_EXPR_BAND:
		case FE_NODE_EXPR_BXOR:
		case FE_NODE_EXPR_BOR: {
			assert(node->nchilds == 2);

			_ir_expr_bitwise(ctx, rstr, NULL, expr_result, node);

			return true;
		}
		default: {
			return false;
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x17d81
jmp 0x17da0
leaq 0x647ce(%rip), %rdi     # 0x7c556
leaq 0x5c605(%rip), %rsi     # 0x74394
movl $0xb81, %edx            # imm = 0xB81
leaq 0x5dd54(%rip), %rcx     # 0x75aef
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x17da9
jmp 0x17dc8
leaq 0x5ad5e(%rip), %rdi     # 0x72b0e
leaq 0x5c5dd(%rip), %rsi     # 0x74394
movl $0xb82, %edx            # imm = 0xB82
leaq 0x5dd2c(%rip), %rcx     # 0x75aef
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x17dd1
jmp 0x17df0
leaq 0x5ce3b(%rip), %rdi     # 0x74c13
leaq 0x5c5b5(%rip), %rsi     # 0x74394
movl $0xb83, %edx            # imm = 0xB83
leaq 0x5dd04(%rip), %rcx     # 0x75aef
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x17df9
jmp 0x17e18
leaq 0x5e1d3(%rip), %rdi     # 0x75fd3
leaq 0x5c58d(%rip), %rsi     # 0x74394
movl $0xb84, %edx            # imm = 0xB84
leaq 0x5dcdc(%rip), %rcx     # 0x75aef
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0xe40, %eax            # imm = 0xE40
je 0x17e42
jmp 0x17e2a
movl -0x2c(%rbp), %eax
subl $0xe50, %eax            # imm = 0xE50
je 0x17e42
jmp 0x17e36
movl -0x2c(%rbp), %eax
subl $0xe60, %eax            # imm = 0xE60
jne 0x17e8c
jmp 0x17e42
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x17e4e
jmp 0x17e6d
leaq 0x6681f(%rip), %rdi     # 0x7e674
leaq 0x5c538(%rip), %rsi     # 0x74394
movl $0xb8a, %edx            # imm = 0xB8A
leaq 0x5dc87(%rip), %rcx     # 0x75aef
callq 0x30a0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %r8
xorl %eax, %eax
movl %eax, %edx
callq 0x1cf80
movb $0x1, -0x1(%rbp)
jmp 0x17e90
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: generate_func_tmp_ptr_var
static size_t _generate_func_tmp_ptr_var(
	IRGeneratorContext *ctx,
	ParserSymbol *func_symbol,
	ResizableString *rstr,
	ParserASTNode *node_type
) {
	assert(ctx);
	assert(func_symbol);
	assert(rstr);
	assert(node_type);

	ResizableString rstr_type;
	rstr_init(&rstr_type);
	_ir_type(ctx, &rstr_type, node_type);

	size_t no = _generate_func_tmp_ptr_var_cstr(ctx, func_symbol, rstr, RSTR_CSTR(&rstr_type));

	rstr_free(&rstr_type);

	return no;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1a761
jmp 0x1a780
leaq 0x61dee(%rip), %rdi     # 0x7c556
leaq 0x59c25(%rip), %rsi     # 0x74394
movl $0x1c7, %edx            # imm = 0x1C7
leaq 0x5a6b5(%rip), %rcx     # 0x74e30
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1a789
jmp 0x1a7a8
leaq 0x5b9e3(%rip), %rdi     # 0x76173
leaq 0x59bfd(%rip), %rsi     # 0x74394
movl $0x1c8, %edx            # imm = 0x1C8
leaq 0x5a68d(%rip), %rcx     # 0x74e30
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x1a7b1
jmp 0x1a7d0
leaq 0x58356(%rip), %rdi     # 0x72b0e
leaq 0x59bd5(%rip), %rsi     # 0x74394
movl $0x1c9, %edx            # imm = 0x1C9
leaq 0x5a665(%rip), %rcx     # 0x74e30
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x1a7d9
jmp 0x1a7f8
leaq 0x59f53(%rip), %rdi     # 0x74733
leaq 0x59bad(%rip), %rsi     # 0x74394
movl $0x1ca, %edx            # imm = 0x1CA
leaq 0x5a63d(%rip), %rcx     # 0x74e30
callq 0x30a0
leaq -0x30(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq -0x30(%rbp), %rsi
callq 0x10ca0
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x1a83e
leaq 0x5d07d(%rip), %rax     # 0x778b5
movq %rax, -0x58(%rbp)
jmp 0x1a846
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x40(%rbp), %rdx
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
movq -0x58(%rbp), %rcx
callq 0x1a900
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x9310
movq -0x38(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: generate_func_tmp_ptr_var_cstr
static size_t _generate_func_tmp_ptr_var_cstr(
	IRGeneratorContext *ctx,
	ParserSymbol *func_symbol,
	ResizableString *rstr,
	const char *type
) {
	assert(ctx);
	assert(func_symbol);
	assert(rstr);
	assert(type);

	size_t no = _generate_func_tmp(ctx, func_symbol, rstr);

	rstr_appendf(
		ctx->local_var_defs,
		"var %s:*%s;\n",
		RSTR_CSTR(rstr),
		type
	);

	return no;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1a921
jmp 0x1a940
leaq 0x61c2e(%rip), %rdi     # 0x7c556
leaq 0x59a65(%rip), %rsi     # 0x74394
movl $0x19a, %edx            # imm = 0x19A
leaq 0x5a561(%rip), %rcx     # 0x74e9c
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1a949
jmp 0x1a968
leaq 0x5b823(%rip), %rdi     # 0x76173
leaq 0x59a3d(%rip), %rsi     # 0x74394
movl $0x19b, %edx            # imm = 0x19B
leaq 0x5a539(%rip), %rcx     # 0x74e9c
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x1a971
jmp 0x1a990
leaq 0x58196(%rip), %rdi     # 0x72b0e
leaq 0x59a15(%rip), %rsi     # 0x74394
movl $0x19c, %edx            # imm = 0x19C
leaq 0x5a511(%rip), %rcx     # 0x74e9c
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x1a999
jmp 0x1a9b8
leaq 0x59d98(%rip), %rdi     # 0x74738
leaq 0x599ed(%rip), %rsi     # 0x74394
movl $0x19d, %edx            # imm = 0x19D
leaq 0x5a4e9(%rip), %rcx     # 0x74e9c
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1aa30
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x1a9f1
leaq 0x5ceca(%rip), %rax     # 0x778b5
movq %rax, -0x38(%rbp)
jmp 0x1a9fd
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rdx
movq -0x20(%rbp), %rcx
leaq 0x5a4fa(%rip), %rsi     # 0x74f0a
movb $0x0, %al
callq 0x94d0
movq -0x28(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: generate_func_tmp
static size_t _generate_func_tmp(
	IRGeneratorContext *ctx,
	ParserSymbol *func_symbol,
	ResizableString *rstr
) {
	assert(ctx);
	assert(func_symbol);
	assert(rstr);

	size_t no = FE_FUNC_SYMBOL_NEXT_NO(func_symbol);

	rstr_appendf(rstr, "__tmp.%zu__", no);

	return no;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1aa4d
jmp 0x1aa6c
leaq 0x61b02(%rip), %rdi     # 0x7c556
leaq 0x59939(%rip), %rsi     # 0x74394
movl $0x167, %edx            # imm = 0x167
leaq 0x5a4b0(%rip), %rcx     # 0x74f17
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1aa75
jmp 0x1aa94
leaq 0x5b6f7(%rip), %rdi     # 0x76173
leaq 0x59911(%rip), %rsi     # 0x74394
movl $0x168, %edx            # imm = 0x168
leaq 0x5a488(%rip), %rcx     # 0x74f17
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x1aa9d
jmp 0x1aabc
leaq 0x5806a(%rip), %rdi     # 0x72b0e
leaq 0x598e9(%rip), %rsi     # 0x74394
movl $0x169, %edx            # imm = 0x169
leaq 0x5a460(%rip), %rcx     # 0x74f17
callq 0x30a0
movq -0x10(%rbp), %rcx
movl 0x54(%rcx), %eax
movl %eax, %edx
addl $0x1, %edx
movl %edx, 0x54(%rcx)
movl %eax, %eax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq 0x5a48a(%rip), %rsi     # 0x74f6a
movb $0x0, %al
callq 0x94d0
movq -0x20(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: generate_func_tmp_var
static size_t _generate_func_tmp_var(
	IRGeneratorContext *ctx,
	ParserSymbol *func_symbol,
	ResizableString *rstr,
	ParserASTNode *node_type
) {
	assert(ctx);
	assert(func_symbol);
	assert(rstr);
	assert(node_type);

	ResizableString rstr_type;
	rstr_init(&rstr_type);
	_ir_type(ctx, &rstr_type, node_type);

	size_t no = _generate_func_tmp_var_cstr(ctx, func_symbol, rstr, RSTR_CSTR(&rstr_type));

	rstr_free(&rstr_type);

	return no;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1ab21
jmp 0x1ab40
leaq 0x61a2e(%rip), %rdi     # 0x7c556
leaq 0x59865(%rip), %rsi     # 0x74394
movl $0x1b1, %edx            # imm = 0x1B1
leaq 0x5a6a1(%rip), %rcx     # 0x751dc
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1ab49
jmp 0x1ab68
leaq 0x5b623(%rip), %rdi     # 0x76173
leaq 0x5983d(%rip), %rsi     # 0x74394
movl $0x1b2, %edx            # imm = 0x1B2
leaq 0x5a679(%rip), %rcx     # 0x751dc
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x1ab71
jmp 0x1ab90
leaq 0x57f96(%rip), %rdi     # 0x72b0e
leaq 0x59815(%rip), %rsi     # 0x74394
movl $0x1b3, %edx            # imm = 0x1B3
leaq 0x5a651(%rip), %rcx     # 0x751dc
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x1ab99
jmp 0x1abb8
leaq 0x59b93(%rip), %rdi     # 0x74733
leaq 0x597ed(%rip), %rsi     # 0x74394
movl $0x1b4, %edx            # imm = 0x1B4
leaq 0x5a629(%rip), %rcx     # 0x751dc
callq 0x30a0
leaq -0x30(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq -0x30(%rbp), %rsi
callq 0x10ca0
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x1abfe
leaq 0x5ccbd(%rip), %rax     # 0x778b5
movq %rax, -0x58(%rbp)
jmp 0x1ac06
movq -0x28(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x40(%rbp), %rdx
movq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
movq -0x58(%rbp), %rcx
callq 0x1ac40
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x9310
movq -0x38(%rbp), %rax
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: const_int
static void _const_int(
	IRGeneratorContext *ctx,
	ResizableString *rstr,
	ParserASTNode *type,
	int v
) {
	assert(ctx);
	assert(rstr);
	assert(type);

	ResizableString rstr_type;
	rstr_init(&rstr_type);
	_ir_type(ctx, &rstr_type, type);

	rstr_appendf(
		rstr,
		"cast<%s>(%d)",
		RSTR_CSTR(&rstr_type),
		v
	);

	rstr_free(&rstr_type);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1d650
jmp 0x1d66f
leaq 0x5eeff(%rip), %rdi     # 0x7c556
leaq 0x56d36(%rip), %rsi     # 0x74394
movl $0x1dd, %edx            # imm = 0x1DD
leaq 0x586eb(%rip), %rcx     # 0x75d55
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1d678
jmp 0x1d697
leaq 0x5548f(%rip), %rdi     # 0x72b0e
leaq 0x56d0e(%rip), %rsi     # 0x74394
movl $0x1de, %edx            # imm = 0x1DE
leaq 0x586c3(%rip), %rcx     # 0x75d55
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x1d6a0
jmp 0x1d6bf
leaq 0x57091(%rip), %rdi     # 0x74738
leaq 0x56ce6(%rip), %rsi     # 0x74394
movl $0x1df, %edx            # imm = 0x1DF
leaq 0x5869b(%rip), %rcx     # 0x75d55
callq 0x30a0
leaq -0x30(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq -0x30(%rbp), %rsi
callq 0x10ca0
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x1d6f5
leaq 0x5a1c6(%rip), %rax     # 0x778b5
movq %rax, -0x40(%rbp)
jmp 0x1d6fd
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rdx
movl -0x1c(%rbp), %ecx
leaq 0x58695(%rip), %rsi     # 0x75da4
movb $0x0, %al
callq 0x94d0
leaq -0x30(%rbp), %rdi
callq 0x9310
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stats_block
static void _ir_stats_block(
	IRGeneratorContext *ctx,
	ParserASTNode *node_stats_block
) {
	assert(ctx);
	assert(node_stats_block);
	assert(node_stats_block->type == FE_NODE_STATS_BLOCK);

	for (int i = 0; i < node_stats_block->nchilds; i++) {
		ParserASTNode *node_stat = node_stats_block->childs[i];
		_ir_stat(ctx, node_stat);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1d969
jmp 0x1d988
leaq 0x5ebe6(%rip), %rdi     # 0x7c556
leaq 0x56a1d(%rip), %rsi     # 0x74394
movl $0x12b3, %edx           # imm = 0x12B3
leaq 0x5889d(%rip), %rcx     # 0x76220
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1d991
jmp 0x1d9b0
leaq 0x588c4(%rip), %rdi     # 0x7625c
leaq 0x569f5(%rip), %rsi     # 0x74394
movl $0x12b4, %edx           # imm = 0x12B4
leaq 0x58875(%rip), %rcx     # 0x76220
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb00, (%rax)          # imm = 0xB00
jne 0x1d9be
jmp 0x1d9dd
leaq 0x588a8(%rip), %rdi     # 0x7626d
leaq 0x569c8(%rip), %rsi     # 0x74394
movl $0x12b5, %edx           # imm = 0x12B5
leaq 0x58848(%rip), %rcx     # 0x76220
callq 0x30a0
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x44(%rcx), %eax
jge 0x1da1c
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x1da30
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1d9e4
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_var
static void _ir_stat_var(
	IRGeneratorContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_VAR);

	_ir_var(ctx, node);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1dcf9
jmp 0x1dd18
leaq 0x5e856(%rip), %rdi     # 0x7c556
leaq 0x5668d(%rip), %rsi     # 0x74394
movl $0xf69, %edx            # imm = 0xF69
leaq 0x585c7(%rip), %rcx     # 0x762da
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1dd21
jmp 0x1dd40
leaq 0x582ab(%rip), %rdi     # 0x75fd3
leaq 0x56665(%rip), %rsi     # 0x74394
movl $0xf6a, %edx            # imm = 0xF6A
leaq 0x5859f(%rip), %rcx     # 0x762da
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xc00, (%rax)          # imm = 0xC00
jne 0x1dd4e
jmp 0x1dd6d
leaq 0x60a81(%rip), %rdi     # 0x7e7d6
leaq 0x56638(%rip), %rsi     # 0x74394
movl $0xf6b, %edx            # imm = 0xF6B
leaq 0x58572(%rip), %rcx     # 0x762da
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0xfb40
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_continue
static void _ir_stat_continue(
	IRGeneratorContext *ctx,
	ParserASTNode *node_stat_continue
) {
	assert(ctx);
	assert(node_stat_continue);
	assert(node_stat_continue->type == FE_NODE_STAT_CONTINUE);
	assert(node_stat_continue->nchilds == 0);

	ParserASTNode *node_loop = fe_sem_search_node_along_parent(
		node_stat_continue->parent,
		FE_NODE_STAT_WHILE, FE_NODE_STAT_DO, FE_NODE_STAT_FOR, 0
	);
	assert(node_loop);

	rstr_appendf(
		ctx->body,
		"br %s;\n",
		RSTR_CSTR(FE_LOOP_AST_NODE_GET_LABEL_REPEAT(node_loop))
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1f469
jmp 0x1f488
leaq 0x5d0e6(%rip), %rdi     # 0x7c556
leaq 0x54f1d(%rip), %rsi     # 0x74394
movl $0x111d, %edx           # imm = 0x111D
leaq 0x572bf(%rip), %rcx     # 0x76742
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1f491
jmp 0x1f4b0
leaq 0x572e8(%rip), %rdi     # 0x76780
leaq 0x54ef5(%rip), %rsi     # 0x74394
movl $0x111e, %edx           # imm = 0x111E
leaq 0x57297(%rip), %rcx     # 0x76742
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb50, (%rax)          # imm = 0xB50
jne 0x1f4be
jmp 0x1f4dd
leaq 0x572ce(%rip), %rdi     # 0x76793
leaq 0x54ec8(%rip), %rsi     # 0x74394
movl $0x111f, %edx           # imm = 0x111F
leaq 0x5726a(%rip), %rcx     # 0x76742
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jne 0x1f4e9
jmp 0x1f508
leaq 0x572d5(%rip), %rdi     # 0x767c5
leaq 0x54e9d(%rip), %rsi     # 0x74394
movl $0x1120, %edx           # imm = 0x1120
leaq 0x5723f(%rip), %rcx     # 0x76742
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rdi
movl $0xb20, %esi            # imm = 0xB20
movl $0xb30, %edx            # imm = 0xB30
movl $0xb40, %ecx            # imm = 0xB40
xorl %r8d, %r8d
movb $0x0, %al
callq 0x4d940
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x1f536
jmp 0x1f555
leaq 0x571fb(%rip), %rdi     # 0x76738
leaq 0x54e50(%rip), %rsi     # 0x74394
movl $0x1126, %edx           # imm = 0x1126
leaq 0x571f2(%rip), %rcx     # 0x76742
callq 0x30a0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x68(%rax)
jne 0x1f579
leaq 0x58342(%rip), %rax     # 0x778b5
movq %rax, -0x28(%rbp)
jmp 0x1f585
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq 0x567b9(%rip), %rsi     # 0x75d4d
movb $0x0, %al
callq 0x94d0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_goto
static void _ir_stat_goto(
	IRGeneratorContext *ctx,
	ParserASTNode *node_stat_goto
) {
	assert(ctx);
	assert(node_stat_goto);
	assert(node_stat_goto->type == FE_NODE_STAT_GOTO);
	assert(node_stat_goto->nchilds == 1);

	ParserASTNode *node_id = node_stat_goto->childs[0];

	ResizableString rstr_label;
	rstr_init_with_raw(&rstr_label, node_id->token->content, node_id->token->len);

	rstr_appendf(
		ctx->body,
		"br %s;\n",
		RSTR_CSTR(&rstr_label)
	);

	rstr_free(&rstr_label);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1f849
jmp 0x1f868
leaq 0x5cd06(%rip), %rdi     # 0x7c556
leaq 0x54b3d(%rip), %rsi     # 0x74394
movl $0x1165, %edx           # imm = 0x1165
leaq 0x5706a(%rip), %rcx     # 0x768cd
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1f871
jmp 0x1f890
leaq 0x5708f(%rip), %rdi     # 0x76907
leaq 0x54b15(%rip), %rsi     # 0x74394
movl $0x1166, %edx           # imm = 0x1166
leaq 0x57042(%rip), %rcx     # 0x768cd
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb80, (%rax)          # imm = 0xB80
jne 0x1f89e
jmp 0x1f8bd
leaq 0x57071(%rip), %rdi     # 0x76916
leaq 0x54ae8(%rip), %rsi     # 0x74394
movl $0x1167, %edx           # imm = 0x1167
leaq 0x57015(%rip), %rcx     # 0x768cd
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x1f8c9
jmp 0x1f8e8
leaq 0x57070(%rip), %rdi     # 0x76940
leaq 0x54abd(%rip), %rsi     # 0x74394
movl $0x1168, %edx           # imm = 0x1168
leaq 0x56fea(%rip), %rcx     # 0x768cd
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %edx
leaq -0x28(%rbp), %rdi
callq 0x8ee0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x1f937
leaq 0x57f84(%rip), %rax     # 0x778b5
movq %rax, -0x38(%rbp)
jmp 0x1f93f
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rdx
leaq 0x563ff(%rip), %rsi     # 0x75d4d
movb $0x0, %al
callq 0x94d0
leaq -0x28(%rbp), %rdi
callq 0x9310
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_label
static void _ir_stat_label(
	IRGeneratorContext *ctx,
	ParserASTNode *node_stat_label
) {
	assert(ctx);
	assert(node_stat_label);
	assert(node_stat_label->type == FE_NODE_STAT_LABEL);
	assert(node_stat_label->nchilds == 1);

	ParserASTNode *node_id = node_stat_label->childs[0];

	ResizableString rstr_label;
	rstr_init_with_raw(&rstr_label, node_id->token->content, node_id->token->len);

	rstr_appendf(
		ctx->body,
		"%s:\n",
		RSTR_CSTR(&rstr_label)
	);

	rstr_free(&rstr_label);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1f989
jmp 0x1f9a8
leaq 0x5cbc6(%rip), %rdi     # 0x7c556
leaq 0x549fd(%rip), %rsi     # 0x74394
movl $0x117c, %edx           # imm = 0x117C
leaq 0x56fba(%rip), %rcx     # 0x7695d
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x1f9b1
jmp 0x1f9d0
leaq 0x56fe0(%rip), %rdi     # 0x76998
leaq 0x549d5(%rip), %rsi     # 0x74394
movl $0x117d, %edx           # imm = 0x117D
leaq 0x56f92(%rip), %rcx     # 0x7695d
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb90, (%rax)          # imm = 0xB90
jne 0x1f9de
jmp 0x1f9fd
leaq 0x56fc3(%rip), %rdi     # 0x769a8
leaq 0x549a8(%rip), %rsi     # 0x74394
movl $0x117e, %edx           # imm = 0x117E
leaq 0x56f65(%rip), %rcx     # 0x7695d
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x1fa09
jmp 0x1fa28
leaq 0x56fc4(%rip), %rdi     # 0x769d4
leaq 0x5497d(%rip), %rsi     # 0x74394
movl $0x117f, %edx           # imm = 0x117F
leaq 0x56f3a(%rip), %rcx     # 0x7695d
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movl 0x4(%rax), %edx
leaq -0x28(%rbp), %rdi
callq 0x8ee0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x1fa77
leaq 0x57e44(%rip), %rax     # 0x778b5
movq %rax, -0x38(%rbp)
jmp 0x1fa7f
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rdx
leaq 0x59bce(%rip), %rsi     # 0x7965c
movb $0x0, %al
callq 0x94d0
leaq -0x28(%rbp), %rdi
callq 0x9310
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_expr
static void _ir_stat_expr(
	IRGeneratorContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_EXPR);

	_ExprResult expr_result;
	_expr_result_init(&expr_result);

	ResizableString rstr;
	rstr_init(&rstr);

	_ir_expr_wrapper_val(ctx, &rstr, &expr_result, node);

	rstr_append_with_rstr(ctx->body, &rstr);

	_expr_result_free(&expr_result);
	rstr_free(&rstr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x1fff9
jmp 0x20018
leaq 0x5c556(%rip), %rdi     # 0x7c556
leaq 0x5438d(%rip), %rsi     # 0x74394
movl $0x11f5, %edx           # imm = 0x11F5
leaq 0x56b57(%rip), %rcx     # 0x76b6a
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x20021
jmp 0x20040
leaq 0x55fab(%rip), %rdi     # 0x75fd3
leaq 0x54365(%rip), %rsi     # 0x74394
movl $0x11f6, %edx           # imm = 0x11F6
leaq 0x56b2f(%rip), %rcx     # 0x76b6a
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xe00, (%rax)          # imm = 0xE00
jne 0x2004e
jmp 0x2006d
leaq 0x54c4f(%rip), %rdi     # 0x74ca4
leaq 0x54338(%rip), %rsi     # 0x74394
movl $0x11f7, %edx           # imm = 0x11F7
leaq 0x56b02(%rip), %rcx     # 0x76b6a
callq 0x30a0
leaq -0x50(%rbp), %rdi
callq 0x113b0
leaq -0x60(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rcx
leaq -0x60(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x11420
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x60(%rbp), %rsi
callq 0x9100
leaq -0x50(%rbp), %rdi
callq 0x130a0
leaq -0x60(%rbp), %rdi
callq 0x9310
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_va_start
static void _ir_stat_va_start(
	IRGeneratorContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_STAT_VA_START);

	ParserASTNode *node_expr = node->childs[0];

	_ExprResult result_expr;
	_expr_result_init(&result_expr);

	_ir_expr_wrapper_ptr(ctx, ctx->body, &result_expr, node_expr);

	rstr_appendf(
		ctx->body,
		"__va_start %s;\n",
		RSTR_CSTR(&(result_expr.rstr_result_ptr))
	);

	_expr_result_free(&result_expr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x200d9
jmp 0x200f8
leaq 0x5c476(%rip), %rdi     # 0x7c556
leaq 0x542ad(%rip), %rsi     # 0x74394
movl $0x120b, %edx           # imm = 0x120B
leaq 0x56ab1(%rip), %rcx     # 0x76ba4
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x20101
jmp 0x20120
leaq 0x55ecb(%rip), %rdi     # 0x75fd3
leaq 0x54285(%rip), %rsi     # 0x74394
movl $0x120c, %edx           # imm = 0x120C
leaq 0x56a89(%rip), %rcx     # 0x76ba4
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbd0, (%rax)          # imm = 0xBD0
jne 0x2012e
jmp 0x2014d
leaq 0x56aad(%rip), %rdi     # 0x76be2
leaq 0x54258(%rip), %rsi     # 0x74394
movl $0x120d, %edx           # imm = 0x120D
leaq 0x56a5c(%rip), %rcx     # 0x76ba4
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x113b0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x18(%rbp), %rcx
leaq -0x58(%rbp), %rdx
callq 0x204c0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x2019e
leaq 0x5771d(%rip), %rax     # 0x778b5
movq %rax, -0x68(%rbp)
jmp 0x201a6
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x56a51(%rip), %rsi     # 0x76c06
movb $0x0, %al
callq 0x94d0
leaq -0x58(%rbp), %rdi
callq 0x130a0
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_va_end
static void _ir_stat_va_end(
	IRGeneratorContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_STAT_VA_END);

	ParserASTNode *node_expr = node->childs[0];

	_ExprResult result_expr;
	_expr_result_init(&result_expr);

	_ir_expr_wrapper_ptr(ctx, ctx->body, &result_expr, node_expr);

	rstr_appendf(
		ctx->body,
		"__va_end %s;\n",
		RSTR_CSTR(&(result_expr.rstr_result_ptr))
	);

	_expr_result_free(&result_expr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x201e9
jmp 0x20208
leaq 0x5c366(%rip), %rdi     # 0x7c556
leaq 0x5419d(%rip), %rsi     # 0x74394
movl $0x1223, %edx           # imm = 0x1223
leaq 0x56a13(%rip), %rcx     # 0x76c16
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x20211
jmp 0x20230
leaq 0x55dbb(%rip), %rdi     # 0x75fd3
leaq 0x54175(%rip), %rsi     # 0x74394
movl $0x1224, %edx           # imm = 0x1224
leaq 0x569eb(%rip), %rcx     # 0x76c16
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbd1, (%rax)          # imm = 0xBD1
jne 0x2023e
jmp 0x2025d
leaq 0x56a0d(%rip), %rdi     # 0x76c52
leaq 0x54148(%rip), %rsi     # 0x74394
movl $0x1225, %edx           # imm = 0x1225
leaq 0x569be(%rip), %rcx     # 0x76c16
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x113b0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x18(%rbp), %rcx
leaq -0x58(%rbp), %rdx
callq 0x204c0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x202ae
leaq 0x5760d(%rip), %rax     # 0x778b5
movq %rax, -0x68(%rbp)
jmp 0x202b6
movq -0x20(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x569af(%rip), %rsi     # 0x76c74
movb $0x0, %al
callq 0x94d0
leaq -0x58(%rbp), %rdi
callq 0x130a0
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: ir_stat_va_copy
static void _ir_stat_va_copy(
	IRGeneratorContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_STAT_VA_COPY);

	ParserASTNode *node_target = node->childs[0];
	ParserASTNode *node_source = node->childs[1];

	_ExprResult result_target;
	_expr_result_init(&result_target);
	_ir_expr_wrapper_ptr(ctx, ctx->body, &result_target, node_target);

	_ExprResult result_source;
	_expr_result_init(&result_source);
	_ir_expr_wrapper_ptr(ctx, ctx->body, &result_source, node_source);

	rstr_appendf(
		ctx->body,
		"__va_copy %s, %s;\n",
		RSTR_CSTR(&(result_target.rstr_result_ptr)),
		RSTR_CSTR(&(result_source.rstr_result_ptr))
	);

	_expr_result_free(&result_target);
	_expr_result_free(&result_source);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x202fc
jmp 0x2031b
leaq 0x5c253(%rip), %rdi     # 0x7c556
leaq 0x5408a(%rip), %rsi     # 0x74394
movl $0x123b, %edx           # imm = 0x123B
leaq 0x5696c(%rip), %rcx     # 0x76c82
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x20324
jmp 0x20343
leaq 0x55ca8(%rip), %rdi     # 0x75fd3
leaq 0x54062(%rip), %rsi     # 0x74394
movl $0x123c, %edx           # imm = 0x123C
leaq 0x56944(%rip), %rcx     # 0x76c82
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbd2, (%rax)          # imm = 0xBD2
jne 0x20351
jmp 0x20370
leaq 0x56967(%rip), %rdi     # 0x76cbf
leaq 0x54035(%rip), %rsi     # 0x74394
movl $0x123d, %edx           # imm = 0x123D
leaq 0x56917(%rip), %rcx     # 0x76c82
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
leaq -0x60(%rbp), %rdi
callq 0x113b0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x18(%rbp), %rcx
leaq -0x60(%rbp), %rdx
callq 0x204c0
leaq -0xa0(%rbp), %rdi
callq 0x113b0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x20(%rbp), %rcx
leaq -0xa0(%rbp), %rdx
callq 0x204c0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xa8(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x203ff
leaq 0x574bf(%rip), %rax     # 0x778b5
movq %rax, -0xb0(%rbp)
jmp 0x2040a
movq -0x28(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0xb8(%rbp)
cmpq $0x0, -0x68(%rbp)
jne 0x2042f
leaq 0x5748f(%rip), %rax     # 0x778b5
movq %rax, -0xc0(%rbp)
jmp 0x2043a
movq -0x68(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rdx
movq -0xa8(%rbp), %rdi
movq -0xc0(%rbp), %rcx
leaq 0x5688c(%rip), %rsi     # 0x76ce2
movb $0x0, %al
callq 0x94d0
leaq -0x60(%rbp), %rdi
callq 0x130a0
leaq -0xa0(%rbp), %rdi
callq 0x130a0
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax,%rax)