LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_label
static void _asm_stat_label(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_LABEL);
	assert(node->nchilds == 1);

	ParserASTNode *node_id = node->childs[0];
	assert(node_id->type == BE_NODE_IDENTIFIER);

	_out_label(ctx, ctx->body, NULL, node_id);
	rstr_append_with_cstr(ctx->body, ":\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2b039
jmp 0x2b058
leaq 0x55121(%rip), %rdi     # 0x80161
leaq 0x4fabd(%rip), %rsi     # 0x7ab04
movl $0xecc, %edx            # imm = 0xECC
leaq 0x508f6(%rip), %rcx     # 0x7b949
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2b061
jmp 0x2b080
leaq 0x4b4f4(%rip), %rdi     # 0x7655c
leaq 0x4fa95(%rip), %rsi     # 0x7ab04
movl $0xecd, %edx            # imm = 0xECD
leaq 0x508ce(%rip), %rcx     # 0x7b949
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb30, (%rax)          # imm = 0xB30
jne 0x2b08e
jmp 0x2b0ad
leaq 0x4beec(%rip), %rdi     # 0x76f81
leaq 0x4fa68(%rip), %rsi     # 0x7ab04
movl $0xece, %edx            # imm = 0xECE
leaq 0x508a1(%rip), %rcx     # 0x7b949
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x2b0b9
jmp 0x2b0d8
leaq 0x4c34e(%rip), %rdi     # 0x7740e
leaq 0x4fa3d(%rip), %rsi     # 0x7ab04
movl $0xecf, %edx            # imm = 0xECF
leaq 0x50876(%rip), %rcx     # 0x7b949
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2b0f5
jmp 0x2b114
leaq 0x4bea6(%rip), %rdi     # 0x76fa2
leaq 0x4fa01(%rip), %rsi     # 0x7ab04
movl $0xed2, %edx            # imm = 0xED2
leaq 0x5083a(%rip), %rcx     # 0x7b949
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x18(%rbp), %rcx
xorl %eax, %eax
movl %eax, %edx
callq 0x34a50
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
leaq 0x4b0e4(%rip), %rsi     # 0x76220
callq 0x8d70
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_return
static void _asm_stat_return(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_RETURN);
	assert(node->nchilds == 0
			|| node->nchilds == 1);

	if (node->nchilds == 1) {
		ParserASTNode *node_ret_val = node->childs[0];
		_move_id_or_constexpr_to_reg(
			ctx,
			_ASM_REG_AX,
			node_ret_val
		);
	}

	ResizableString rstr_ret;
	rstr_init(&rstr_ret);
	__out_label(
		ctx,
		&rstr_ret,
		_ASM_FUNC_RETURN_LABEL_PREFIX,
		_ASM_FUNC_RETURN_LABEL
	);
	_asm_inst_jmp_x(ctx, ctx->body, RSTR_CSTR(&rstr_ret));
	rstr_free(&rstr_ret);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2b659
jmp 0x2b678
leaq 0x54b01(%rip), %rdi     # 0x80161
leaq 0x4f49d(%rip), %rsi     # 0x7ab04
movl $0xf44, %edx            # imm = 0xF44
leaq 0x505c2(%rip), %rcx     # 0x7bc35
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2b681
jmp 0x2b6a0
leaq 0x4aed4(%rip), %rdi     # 0x7655c
leaq 0x4f475(%rip), %rsi     # 0x7ab04
movl $0xf45, %edx            # imm = 0xF45
leaq 0x5059a(%rip), %rcx     # 0x7bc35
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb20, (%rax)          # imm = 0xB20
jne 0x2b6ae
jmp 0x2b6cd
leaq 0x4bd21(%rip), %rdi     # 0x773d6
leaq 0x4f448(%rip), %rsi     # 0x7ab04
movl $0xf46, %edx            # imm = 0xF46
leaq 0x5056d(%rip), %rcx     # 0x7bc35
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x44(%rax)
je 0x2b6e1
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x2b6e3
jmp 0x2b702
leaq 0x4bd0e(%rip), %rdi     # 0x773f8
leaq 0x4f413(%rip), %rsi     # 0x7ab04
movl $0xf48, %edx            # imm = 0xF48
leaq 0x50538(%rip), %rcx     # 0x7bc35
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x2b72a
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
xorl %esi, %esi
callq 0x334a0
leaq -0x28(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
leaq -0x28(%rbp), %rsi
leaq 0x4aae1(%rip), %rdx     # 0x76223
leaq 0x4aadf(%rip), %rcx     # 0x76228
callq 0x29fe0
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x2b776
leaq 0x4a7cf(%rip), %rax     # 0x75f3f
movq %rax, -0x40(%rbp)
jmp 0x2b77e
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdi
movq -0x40(%rbp), %rdx
callq 0x34b60
leaq -0x28(%rbp), %rdi
callq 0x9310
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_ref
static void _asm_stat_ref(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_REF);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);

	ParserASTNode *node_source = node->childs[1];
	assert(node_source->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_source = _get_var_symbol_by_id_node(ctx, node_source);

	_asm_inst_lea_sym_sym(
		ctx,
		ctx->body,
		symbol_target,
		symbol_source
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2b7b9
jmp 0x2b7d8
leaq 0x549a1(%rip), %rdi     # 0x80161
leaq 0x4f33d(%rip), %rsi     # 0x7ab04
movl $0xf63, %edx            # imm = 0xF63
leaq 0x504a5(%rip), %rcx     # 0x7bc78
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2b7e1
jmp 0x2b800
leaq 0x4ad74(%rip), %rdi     # 0x7655c
leaq 0x4f315(%rip), %rsi     # 0x7ab04
movl $0xf64, %edx            # imm = 0xF64
leaq 0x5047d(%rip), %rcx     # 0x7bc78
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbea, (%rax)          # imm = 0xBEA
jne 0x2b80e
jmp 0x2b82d
leaq 0x4bc4c(%rip), %rdi     # 0x77461
leaq 0x4f2e8(%rip), %rsi     # 0x7ab04
movl $0xf65, %edx            # imm = 0xF65
leaq 0x50450(%rip), %rcx     # 0x7bc78
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2b839
jmp 0x2b858
leaq 0x57504(%rip), %rdi     # 0x82d44
leaq 0x4f2bd(%rip), %rsi     # 0x7ab04
movl $0xf66, %edx            # imm = 0xF66
leaq 0x50425(%rip), %rcx     # 0x7bc78
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2b875
jmp 0x2b894
leaq 0x4ab41(%rip), %rdi     # 0x763bd
leaq 0x4f281(%rip), %rsi     # 0x7ab04
movl $0xf69, %edx            # imm = 0xF69
leaq 0x503e9(%rip), %rcx     # 0x7bc78
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2b8c3
jmp 0x2b8e2
leaq 0x4bbb6(%rip), %rdi     # 0x77480
leaq 0x4f233(%rip), %rsi     # 0x7ab04
movl $0xf6d, %edx            # imm = 0xF6D
leaq 0x5039b(%rip), %rcx     # 0x7bc78
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x32820
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x20(%rbp), %rdx
movq -0x30(%rbp), %rcx
callq 0x35000
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_trunc
static void _asm_stat_trunc(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_TRUNC);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

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

	uint8_t type_source = _move_id_or_constexpr_to_reg(
		ctx,
		_ASM_REG_AX,
		node_source
	);

	_asm_inst_mov_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_asm_inst_reg(ctx, type_target, _ASM_REG_AX)
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2bd19
jmp 0x2bd38
leaq 0x54441(%rip), %rdi     # 0x80161
leaq 0x4eddd(%rip), %rsi     # 0x7ab04
movl $0xfd1, %edx            # imm = 0xFD1
leaq 0x50130(%rip), %rcx     # 0x7be63
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2bd41
jmp 0x2bd60
leaq 0x4a814(%rip), %rdi     # 0x7655c
leaq 0x4edb5(%rip), %rsi     # 0x7ab04
movl $0xfd2, %edx            # imm = 0xFD2
leaq 0x50108(%rip), %rcx     # 0x7be63
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbc0, (%rax)          # imm = 0xBC0
jne 0x2bd6e
jmp 0x2bd8d
leaq 0x4b979(%rip), %rdi     # 0x776ee
leaq 0x4ed88(%rip), %rsi     # 0x7ab04
movl $0xfd3, %edx            # imm = 0xFD3
leaq 0x500db(%rip), %rcx     # 0x7be63
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2bd99
jmp 0x2bdb8
leaq 0x56fa4(%rip), %rdi     # 0x82d44
leaq 0x4ed5d(%rip), %rsi     # 0x7ab04
movl $0xfd4, %edx            # imm = 0xFD4
leaq 0x500b0(%rip), %rcx     # 0x7be63
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2bdd5
jmp 0x2bdf4
leaq 0x4a5e1(%rip), %rdi     # 0x763bd
leaq 0x4ed21(%rip), %rsi     # 0x7ab04
movl $0xfd7, %edx            # imm = 0xFD7
leaq 0x50074(%rip), %rcx     # 0x7be63
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
xorl %esi, %esi
callq 0x334a0
movb %al, -0x31(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movzbl -0x21(%rbp), %esi
callq 0x334d0
movq -0x50(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rax, %rcx
callq 0x32d40
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_inttoptr
static void _asm_stat_inttoptr(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_INTTOPTR);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);
	assert(type_target == BE_TYPE_POINTER);

	ParserASTNode *node_source = node->childs[1];
	_zero_extend64(ctx, _ASM_REG_AX, node_source);

	_asm_inst_mov_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_ASM_REG_NAME_RAX
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2c239
jmp 0x2c258
leaq 0x53f21(%rip), %rdi     # 0x80161
leaq 0x4e8bd(%rip), %rsi     # 0x7ab04
movl $0x105e, %edx           # imm = 0x105E
leaq 0x4ff4e(%rip), %rcx     # 0x7c1a1
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2c261
jmp 0x2c280
leaq 0x4a2f4(%rip), %rdi     # 0x7655c
leaq 0x4e895(%rip), %rsi     # 0x7ab04
movl $0x105f, %edx           # imm = 0x105F
leaq 0x4ff26(%rip), %rcx     # 0x7c1a1
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbc3, (%rax)          # imm = 0xBC3
jne 0x2c28e
jmp 0x2c2ad
leaq 0x4ba47(%rip), %rdi     # 0x77cdc
leaq 0x4e868(%rip), %rsi     # 0x7ab04
movl $0x1060, %edx           # imm = 0x1060
leaq 0x4fef9(%rip), %rcx     # 0x7c1a1
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2c2b9
jmp 0x2c2d8
leaq 0x56a84(%rip), %rdi     # 0x82d44
leaq 0x4e83d(%rip), %rsi     # 0x7ab04
movl $0x1061, %edx           # imm = 0x1061
leaq 0x4fece(%rip), %rcx     # 0x7c1a1
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2c2f5
jmp 0x2c314
leaq 0x4a0c1(%rip), %rdi     # 0x763bd
leaq 0x4e801(%rip), %rsi     # 0x7ab04
movl $0x1064, %edx           # imm = 0x1064
leaq 0x4fe92(%rip), %rcx     # 0x7c1a1
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %eax
cmpl $0x10, %eax
jne 0x2c33a
jmp 0x2c359
leaq 0x4b2cc(%rip), %rdi     # 0x7760d
leaq 0x4e7bc(%rip), %rsi     # 0x7ab04
movl $0x1067, %edx           # imm = 0x1067
leaq 0x4fe4d(%rip), %rcx     # 0x7c1a1
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
xorl %esi, %esi
callq 0x359d0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x20(%rbp), %rdx
leaq 0x4ed2b(%rip), %rcx     # 0x7b0ba
callq 0x32d40
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_zext
static void _asm_stat_zext(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_ZEXT);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

	ParserASTNode *node_source = node->childs[1];
	_zero_extend64(ctx, _ASM_REG_AX, node_source);

	_asm_inst_mov_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_asm_inst_reg(ctx, type_target, _ASM_REG_AX)
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2c3b9
jmp 0x2c3d8
leaq 0x53da1(%rip), %rdi     # 0x80161
leaq 0x4e73d(%rip), %rsi     # 0x7ab04
movl $0x1078, %edx           # imm = 0x1078
leaq 0x4fe68(%rip), %rcx     # 0x7c23b
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2c3e1
jmp 0x2c400
leaq 0x4a174(%rip), %rdi     # 0x7655c
leaq 0x4e715(%rip), %rsi     # 0x7ab04
movl $0x1079, %edx           # imm = 0x1079
leaq 0x4fe40(%rip), %rcx     # 0x7c23b
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbc4, (%rax)          # imm = 0xBC4
jne 0x2c40e
jmp 0x2c42d
leaq 0x4b92c(%rip), %rdi     # 0x77d41
leaq 0x4e6e8(%rip), %rsi     # 0x7ab04
movl $0x107a, %edx           # imm = 0x107A
leaq 0x4fe13(%rip), %rcx     # 0x7c23b
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2c439
jmp 0x2c458
leaq 0x56904(%rip), %rdi     # 0x82d44
leaq 0x4e6bd(%rip), %rsi     # 0x7ab04
movl $0x107b, %edx           # imm = 0x107B
leaq 0x4fde8(%rip), %rcx     # 0x7c23b
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2c475
jmp 0x2c494
leaq 0x49f41(%rip), %rdi     # 0x763bd
leaq 0x4e681(%rip), %rsi     # 0x7ab04
movl $0x107e, %edx           # imm = 0x107E
leaq 0x4fdac(%rip), %rcx     # 0x7c23b
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
xorl %esi, %esi
callq 0x359d0
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movzbl -0x21(%rbp), %esi
callq 0x334d0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq %rax, %rcx
callq 0x32d40
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_fpext
static void _asm_stat_fpext(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_FPEXT);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

	ParserASTNode *node_source = node->childs[1];
	uint8_t type_source = _move_id_or_constexpr_to_xmm_reg(
		ctx,
		_ASM_REG_NAME_XMM0,
		node_source
	);

	_asm_inst_cvtss2sd_x_x(
		ctx,
		ctx->body,
		_ASM_REG_NAME_XMM0,
		_ASM_REG_NAME_XMM0
	);

	_asm_inst_movsd_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_ASM_REG_NAME_XMM0
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2ceb9
jmp 0x2ced8
leaq 0x532a1(%rip), %rdi     # 0x80161
leaq 0x4dc3d(%rip), %rsi     # 0x7ab04
movl $0x11a2, %edx           # imm = 0x11A2
leaq 0x4f94a(%rip), %rcx     # 0x7c81d
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2cee1
jmp 0x2cf00
leaq 0x49674(%rip), %rdi     # 0x7655c
leaq 0x4dc15(%rip), %rsi     # 0x7ab04
movl $0x11a3, %edx           # imm = 0x11A3
leaq 0x4f922(%rip), %rcx     # 0x7c81d
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbc8, (%rax)          # imm = 0xBC8
jne 0x2cf0e
jmp 0x2cf2d
leaq 0x4b669(%rip), %rdi     # 0x7857e
leaq 0x4dbe8(%rip), %rsi     # 0x7ab04
movl $0x11a4, %edx           # imm = 0x11A4
leaq 0x4f8f5(%rip), %rcx     # 0x7c81d
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2cf39
jmp 0x2cf58
leaq 0x55e04(%rip), %rdi     # 0x82d44
leaq 0x4dbbd(%rip), %rsi     # 0x7ab04
movl $0x11a5, %edx           # imm = 0x11A5
leaq 0x4f8ca(%rip), %rcx     # 0x7c81d
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2cf75
jmp 0x2cf94
leaq 0x49441(%rip), %rdi     # 0x763bd
leaq 0x4db81(%rip), %rsi     # 0x7ab04
movl $0x11a8, %edx           # imm = 0x11A8
leaq 0x4f88e(%rip), %rcx     # 0x7c81d
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x4a938(%rip), %rsi     # 0x77906
callq 0x36060
movb %al, -0x31(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
leaq 0x4a91d(%rip), %rcx     # 0x77906
movq %rcx, %rdx
callq 0x369b0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x20(%rbp), %rdx
leaq 0x4a8fe(%rip), %rcx     # 0x77906
callq 0x356e0
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_fptrunc
static void _asm_stat_fptrunc(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_FPTRUNC);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

	ParserASTNode *node_source = node->childs[1];
	uint8_t type_source = _move_id_or_constexpr_to_xmm_reg(
		ctx,
		_ASM_REG_NAME_XMM0,
		node_source
	);

	_asm_inst_cvtsd2ss_x_x(
		ctx,
		ctx->body,
		_ASM_REG_NAME_XMM0,
		_ASM_REG_NAME_XMM0
	);

	_asm_inst_movss_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_ASM_REG_NAME_XMM0
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2d039
jmp 0x2d058
leaq 0x53121(%rip), %rdi     # 0x80161
leaq 0x4dabd(%rip), %rsi     # 0x7ab04
movl $0x11c6, %edx           # imm = 0x11C6
leaq 0x4f873(%rip), %rcx     # 0x7c8c6
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2d061
jmp 0x2d080
leaq 0x494f4(%rip), %rdi     # 0x7655c
leaq 0x4da95(%rip), %rsi     # 0x7ab04
movl $0x11c7, %edx           # imm = 0x11C7
leaq 0x4f84b(%rip), %rcx     # 0x7c8c6
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbc9, (%rax)          # imm = 0xBC9
jne 0x2d08e
jmp 0x2d0ad
leaq 0x4b5be(%rip), %rdi     # 0x78653
leaq 0x4da68(%rip), %rsi     # 0x7ab04
movl $0x11c8, %edx           # imm = 0x11C8
leaq 0x4f81e(%rip), %rcx     # 0x7c8c6
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2d0b9
jmp 0x2d0d8
leaq 0x55c84(%rip), %rdi     # 0x82d44
leaq 0x4da3d(%rip), %rsi     # 0x7ab04
movl $0x11c9, %edx           # imm = 0x11C9
leaq 0x4f7f3(%rip), %rcx     # 0x7c8c6
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2d0f5
jmp 0x2d114
leaq 0x492c1(%rip), %rdi     # 0x763bd
leaq 0x4da01(%rip), %rsi     # 0x7ab04
movl $0x11cc, %edx           # imm = 0x11CC
leaq 0x4f7b7(%rip), %rcx     # 0x7c8c6
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
leaq 0x4a7b8(%rip), %rsi     # 0x77906
callq 0x36060
movb %al, -0x31(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
leaq 0x4a79d(%rip), %rcx     # 0x77906
movq %rcx, %rdx
callq 0x36aa0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rsi
movq -0x20(%rbp), %rdx
leaq 0x4a77e(%rip), %rcx     # 0x77906
callq 0x35460
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_ptrtoint
static void _asm_stat_ptrtoint(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_PTRTOINT);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

	ParserASTNode *node_source = node->childs[1];
	_move_id_or_constexpr_to_reg(
		ctx,
		_ASM_REG_AX,
		node_source
	);

	_asm_inst_mov_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_asm_inst_reg(ctx, type_target, _ASM_REG_AX)
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2d1b9
jmp 0x2d1d8
leaq 0x52fa1(%rip), %rdi     # 0x80161
leaq 0x4d93d(%rip), %rsi     # 0x7ab04
movl $0x11ea, %edx           # imm = 0x11EA
leaq 0x4f79e(%rip), %rcx     # 0x7c971
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2d1e1
jmp 0x2d200
leaq 0x49374(%rip), %rdi     # 0x7655c
leaq 0x4d915(%rip), %rsi     # 0x7ab04
movl $0x11eb, %edx           # imm = 0x11EB
leaq 0x4f776(%rip), %rcx     # 0x7c971
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbca, (%rax)          # imm = 0xBCA
jne 0x2d20e
jmp 0x2d22d
leaq 0x4b516(%rip), %rdi     # 0x7872b
leaq 0x4d8e8(%rip), %rsi     # 0x7ab04
movl $0x11ec, %edx           # imm = 0x11EC
leaq 0x4f749(%rip), %rcx     # 0x7c971
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2d239
jmp 0x2d258
leaq 0x55b04(%rip), %rdi     # 0x82d44
leaq 0x4d8bd(%rip), %rsi     # 0x7ab04
movl $0x11ed, %edx           # imm = 0x11ED
leaq 0x4f71e(%rip), %rcx     # 0x7c971
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2d275
jmp 0x2d294
leaq 0x49141(%rip), %rdi     # 0x763bd
leaq 0x4d881(%rip), %rsi     # 0x7ab04
movl $0x11f0, %edx           # imm = 0x11F0
leaq 0x4f6e2(%rip), %rcx     # 0x7c971
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
xorl %esi, %esi
callq 0x334a0
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movzbl -0x21(%rbp), %esi
callq 0x334d0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq %rax, %rcx
callq 0x32d40
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_bitcast
static void _asm_stat_bitcast(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_BITCAST);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

	ParserASTNode *node_source = node->childs[1];
	_move_id_or_constexpr_to_reg(
		ctx,
		_ASM_REG_AX,
		node_source
	);

	_asm_inst_mov_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_asm_inst_reg(ctx, type_target, _ASM_REG_AX)
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2d339
jmp 0x2d358
leaq 0x52e21(%rip), %rdi     # 0x80161
leaq 0x4d7bd(%rip), %rsi     # 0x7ab04
movl $0x1207, %edx           # imm = 0x1207
leaq 0x4f663(%rip), %rcx     # 0x7c9b6
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2d361
jmp 0x2d380
leaq 0x491f4(%rip), %rdi     # 0x7655c
leaq 0x4d795(%rip), %rsi     # 0x7ab04
movl $0x1208, %edx           # imm = 0x1208
leaq 0x4f63b(%rip), %rcx     # 0x7c9b6
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbcb, (%rax)          # imm = 0xBCB
jne 0x2d38e
jmp 0x2d3ad
leaq 0x4b3fe(%rip), %rdi     # 0x78793
leaq 0x4d768(%rip), %rsi     # 0x7ab04
movl $0x1209, %edx           # imm = 0x1209
leaq 0x4f60e(%rip), %rcx     # 0x7c9b6
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2d3b9
jmp 0x2d3d8
leaq 0x55984(%rip), %rdi     # 0x82d44
leaq 0x4d73d(%rip), %rsi     # 0x7ab04
movl $0x120a, %edx           # imm = 0x120A
leaq 0x4f5e3(%rip), %rcx     # 0x7c9b6
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2d3f5
jmp 0x2d414
leaq 0x48fc1(%rip), %rdi     # 0x763bd
leaq 0x4d701(%rip), %rsi     # 0x7ab04
movl $0x120d, %edx           # imm = 0x120D
leaq 0x4f5a7(%rip), %rcx     # 0x7c9b6
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rdx
xorl %esi, %esi
callq 0x334a0
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movzbl -0x21(%rbp), %esi
callq 0x334d0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq %rax, %rcx
callq 0x32d40
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_vcall
static void _asm_stat_vcall(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_VCALL);
	assert(node->nchilds == 1);

	ParserASTNode *node_func_call = node->childs[0];
	assert(node_func_call->type == BE_NODE_STAT_FUNC_CALL);
	_asm_stat_func_call(ctx, node_func_call);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2d4b9
jmp 0x2d4d8
leaq 0x52ca1(%rip), %rdi     # 0x80161
leaq 0x4d63d(%rip), %rsi     # 0x7ab04
movl $0x126b, %edx           # imm = 0x126B
leaq 0x4f527(%rip), %rcx     # 0x7c9fa
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2d4e1
jmp 0x2d500
leaq 0x49074(%rip), %rdi     # 0x7655c
leaq 0x4d615(%rip), %rsi     # 0x7ab04
movl $0x126c, %edx           # imm = 0x126C
leaq 0x4f4ff(%rip), %rcx     # 0x7c9fa
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbd1, (%rax)          # imm = 0xBD1
jne 0x2d50e
jmp 0x2d52d
leaq 0x4b2e3(%rip), %rdi     # 0x787f8
leaq 0x4d5e8(%rip), %rsi     # 0x7ab04
movl $0x126d, %edx           # imm = 0x126D
leaq 0x4f4d2(%rip), %rcx     # 0x7c9fa
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x2d539
jmp 0x2d558
leaq 0x49ece(%rip), %rdi     # 0x7740e
leaq 0x4d5bd(%rip), %rsi     # 0x7ab04
movl $0x126e, %edx           # imm = 0x126E
leaq 0x4f4a7(%rip), %rcx     # 0x7c9fa
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0xbd2, (%rax)          # imm = 0xBD2
jne 0x2d575
jmp 0x2d594
leaq 0x4b29d(%rip), %rdi     # 0x78819
leaq 0x4d581(%rip), %rsi     # 0x7ab04
movl $0x1271, %edx           # imm = 0x1271
leaq 0x4f46b(%rip), %rcx     # 0x7c9fa
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x36b90
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_stat_call
static void _asm_stat_call(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_STAT_CALL);
	assert(node->nchilds == 2);

	ParserASTNode *node_target = node->childs[0];
	assert(node_target->type == BE_NODE_IDENTIFIER);
	ParserSymbol *symbol_target = _get_var_symbol_by_id_node(ctx, node_target);
	uint8_t type_target = BE_VAR_SYMBOL_GET_TYPE(symbol_target);

	ParserASTNode *node_func_call = node->childs[1];
	assert(node_func_call->type == BE_NODE_STAT_FUNC_CALL);
	_asm_stat_func_call(ctx, node_func_call);

	_asm_inst_mov_sym_x(
		ctx,
		ctx->body,
		symbol_target,
		_asm_inst_reg(ctx, type_target, _ASM_REG_AX)
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2d5c9
jmp 0x2d5e8
leaq 0x52b91(%rip), %rdi     # 0x80161
leaq 0x4d52d(%rip), %rsi     # 0x7ab04
movl $0x1279, %edx           # imm = 0x1279
leaq 0x4f553(%rip), %rcx     # 0x7cb36
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2d5f1
jmp 0x2d610
leaq 0x48f64(%rip), %rdi     # 0x7655c
leaq 0x4d505(%rip), %rsi     # 0x7ab04
movl $0x127a, %edx           # imm = 0x127A
leaq 0x4f52b(%rip), %rcx     # 0x7cb36
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xbd0, (%rax)          # imm = 0xBD0
jne 0x2d61e
jmp 0x2d63d
leaq 0x4b383(%rip), %rdi     # 0x789a8
leaq 0x4d4d8(%rip), %rsi     # 0x7ab04
movl $0x127b, %edx           # imm = 0x127B
leaq 0x4f4fe(%rip), %rcx     # 0x7cb36
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x2d649
jmp 0x2d668
leaq 0x556f4(%rip), %rdi     # 0x82d44
leaq 0x4d4ad(%rip), %rsi     # 0x7ab04
movl $0x127c, %edx           # imm = 0x127C
leaq 0x4f4d3(%rip), %rcx     # 0x7cb36
callq 0x30a0
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x2d685
jmp 0x2d6a4
leaq 0x48d31(%rip), %rdi     # 0x763bd
leaq 0x4d471(%rip), %rsi     # 0x7ab04
movl $0x127f, %edx           # imm = 0x127F
leaq 0x4f497(%rip), %rcx     # 0x7cb36
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x32820
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x21(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
cmpl $0xbd2, (%rax)          # imm = 0xBD2
jne 0x2d6dd
jmp 0x2d6fc
leaq 0x4b135(%rip), %rdi     # 0x78819
leaq 0x4d419(%rip), %rsi     # 0x7ab04
movl $0x1284, %edx           # imm = 0x1284
leaq 0x4f43f(%rip), %rcx     # 0x7cb36
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x36b90
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movzbl -0x21(%rbp), %esi
callq 0x334d0
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq %rax, %rcx
callq 0x32d40
addq $0x50, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: get_var_symbol_by_id_node
static ParserSymbol * _get_var_symbol_by_id_node(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_IDENTIFIER);

	ParserSymbol *symbol = parser_get_symbol_from_node(
		ctx->psrctx, node, BE_SYM_VAR, node->token
	);
	if (symbol == NULL) {
		assert(0);
	}

	return symbol;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x32839
jmp 0x32858
leaq 0x4d921(%rip), %rdi     # 0x80161
leaq 0x482bd(%rip), %rsi     # 0x7ab04
movl $0xc57, %edx            # imm = 0xC57
leaq 0x4886c(%rip), %rcx     # 0x7b0bf
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x32861
jmp 0x32880
leaq 0x43cf4(%rip), %rdi     # 0x7655c
leaq 0x48295(%rip), %rsi     # 0x7ab04
movl $0xc58, %edx            # imm = 0xC58
leaq 0x48844(%rip), %rcx     # 0x7b0bf
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x3288e
jmp 0x328ad
leaq 0x43bb0(%rip), %rdi     # 0x76445
leaq 0x48268(%rip), %rsi     # 0x7ab04
movl $0xc59, %edx            # imm = 0xC59
leaq 0x48817(%rip), %rcx     # 0x7b0bf
callq 0x30a0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
movl $0x1, %edx
callq 0x82f0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x328f4
leaq 0x40b7e(%rip), %rdi     # 0x7345a
leaq 0x48221(%rip), %rsi     # 0x7ab04
movl $0xc5f, %edx            # imm = 0xC5F
leaq 0x487d0(%rip), %rcx     # 0x7b0bf
callq 0x30a0
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: get_symbol_by_id_node
static ParserSymbol * _get_symbol_by_id_node(
	ASMGeneratorGas64Context *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == BE_NODE_IDENTIFIER);

	ParserSymbol *symbol = parser_get_symbol_from_node(
		ctx->psrctx, node, 0, node->token
	);
	if (symbol == NULL) {
		assert(0);
	}

	return symbol;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x32919
jmp 0x32938
leaq 0x4d841(%rip), %rdi     # 0x80161
leaq 0x481dd(%rip), %rsi     # 0x7ab04
movl $0xc69, %edx            # imm = 0xC69
leaq 0x487e2(%rip), %rcx     # 0x7b115
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x32941
jmp 0x32960
leaq 0x43c14(%rip), %rdi     # 0x7655c
leaq 0x481b5(%rip), %rsi     # 0x7ab04
movl $0xc6a, %edx            # imm = 0xC6A
leaq 0x487ba(%rip), %rcx     # 0x7b115
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x3296e
jmp 0x3298d
leaq 0x43ad0(%rip), %rdi     # 0x76445
leaq 0x48188(%rip), %rsi     # 0x7ab04
movl $0xc6b, %edx            # imm = 0xC6B
leaq 0x4878d(%rip), %rcx     # 0x7b115
callq 0x30a0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
xorl %edx, %edx
callq 0x82f0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x329d1
leaq 0x40aa1(%rip), %rdi     # 0x7345a
leaq 0x48144(%rip), %rsi     # 0x7ab04
movl $0xc71, %edx            # imm = 0xC71
leaq 0x48749(%rip), %rcx     # 0x7b115
callq 0x30a0
movq -0x18(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_inst_mov_sym_sym
static void _asm_inst_mov_sym_sym(
	ASMGeneratorGas64Context *ctx,
	ResizableString *rstr,
	ParserSymbol *target,
	ParserSymbol *source
) {
	assert(ctx);
	assert(rstr);
	assert(target);
	assert(source);
	assert(BE_VAR_SYMBOL_GET_TYPE_SIZE(target) == BE_VAR_SYMBOL_GET_TYPE_SIZE(source));

	const char *reg = "";
	switch (BE_VAR_SYMBOL_GET_TYPE_SIZE(target)) {
		case 1: {
			reg = _ASM_REG_NAME_AL;
			break;
		}
		case 2: {
			reg = _ASM_REG_NAME_AX;
			break;
		}
		case 4: {
			reg = _ASM_REG_NAME_EAX;
			break;
		}
		case 8: {
			reg = _ASM_REG_NAME_RAX;
			break;
		}
		default: {
			assert(0);
			break;
		}
	}

	_asm_inst_mov_x_sym(ctx, rstr, reg, source);
	_asm_inst_mov_sym_x(ctx, rstr, target, reg);
}

// 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 0x32a01
jmp 0x32a20
leaq 0x4d759(%rip), %rdi     # 0x80161
leaq 0x480f5(%rip), %rsi     # 0x7ab04
movl $0x31b, %edx            # imm = 0x31B
leaq 0x4874c(%rip), %rcx     # 0x7b167
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x32a29
jmp 0x32a48
leaq 0x410dd(%rip), %rdi     # 0x73b0d
leaq 0x480cd(%rip), %rsi     # 0x7ab04
movl $0x31c, %edx            # imm = 0x31C
leaq 0x48724(%rip), %rcx     # 0x7b167
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x32a51
jmp 0x32a70
leaq 0x4c8dc(%rip), %rdi     # 0x7f334
leaq 0x480a5(%rip), %rsi     # 0x7ab04
movl $0x31d, %edx            # imm = 0x31D
leaq 0x486fc(%rip), %rcx     # 0x7b167
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x32a79
jmp 0x32a98
leaq 0x497b4(%rip), %rdi     # 0x7c234
leaq 0x4807d(%rip), %rsi     # 0x7ab04
movl $0x31e, %edx            # imm = 0x31E
leaq 0x486d4(%rip), %rcx     # 0x7b167
callq 0x30a0
movq -0x18(%rbp), %rax
movq 0x70(%rax), %rax
movq -0x20(%rbp), %rcx
cmpq 0x70(%rcx), %rax
jne 0x32aac
jmp 0x32acb
leaq 0x43c56(%rip), %rdi     # 0x76709
leaq 0x4804a(%rip), %rsi     # 0x7ab04
movl $0x31f, %edx            # imm = 0x31F
leaq 0x486a1(%rip), %rcx     # 0x7b167
callq 0x30a0
leaq 0x4346d(%rip), %rax     # 0x75f3f
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq 0x70(%rax), %rax
decq %rax
movq %rax, -0x30(%rbp)
subq $0x7, %rax
ja 0x32b33
movq -0x30(%rbp), %rax
leaq 0x47f2e(%rip), %rcx     # 0x7aa24
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x43c4e(%rip), %rax     # 0x76754
movq %rax, -0x28(%rbp)
jmp 0x32b52
leaq 0x43c45(%rip), %rax     # 0x76758
movq %rax, -0x28(%rbp)
jmp 0x32b52
leaq 0x438c5(%rip), %rax     # 0x763e5
movq %rax, -0x28(%rbp)
jmp 0x32b52
leaq 0x4858d(%rip), %rax     # 0x7b0ba
movq %rax, -0x28(%rbp)
jmp 0x32b52
leaq 0x40920(%rip), %rdi     # 0x7345a
leaq 0x47fc3(%rip), %rsi     # 0x7ab04
movl $0x334, %edx            # imm = 0x334
leaq 0x4861a(%rip), %rcx     # 0x7b167
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x28(%rbp), %rdx
movq -0x20(%rbp), %rcx
callq 0x33600
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq -0x28(%rbp), %rcx
callq 0x32d40
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_inst_mov_x_fsym
static void _asm_inst_mov_x_fsym(
	ASMGeneratorGas64Context *ctx,
	ResizableString *rstr,
	const char *target,
	ParserSymbol *source
) {
	assert(ctx);
	assert(rstr);
	assert(target);
	assert(source);
	assert(source->type == BE_SYM_FUNC);

	ResizableString rstr_func_name;
	rstr_init_with_raw(
		&rstr_func_name,
		source->token->content,
		source->token->len
	);

	ResizableString rstr_source;
	rstr_init(&rstr_source);
	_asm_inst_memref_base_disp(
		ctx,
		&rstr_source,
		_ASM_REG_NAME_RIP,
		RSTR_CSTR(&rstr_func_name)
	);

	_asm_inst_lea_x_x(
		ctx,
		rstr,
		target,
		RSTR_CSTR(&rstr_source)
	);

	rstr_free(&rstr_func_name);
	rstr_free(&rstr_source);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x32bb1
jmp 0x32bd0
leaq 0x4d5a9(%rip), %rdi     # 0x80161
leaq 0x47f45(%rip), %rsi     # 0x7ab04
movl $0x382, %edx            # imm = 0x382
leaq 0x48780(%rip), %rcx     # 0x7b34b
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x32bd9
jmp 0x32bf8
leaq 0x40f2d(%rip), %rdi     # 0x73b0d
leaq 0x47f1d(%rip), %rsi     # 0x7ab04
movl $0x383, %edx            # imm = 0x383
leaq 0x48758(%rip), %rcx     # 0x7b34b
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x32c01
jmp 0x32c20
leaq 0x4c72c(%rip), %rdi     # 0x7f334
leaq 0x47ef5(%rip), %rsi     # 0x7ab04
movl $0x384, %edx            # imm = 0x384
leaq 0x48730(%rip), %rcx     # 0x7b34b
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x32c29
jmp 0x32c48
leaq 0x49604(%rip), %rdi     # 0x7c234
leaq 0x47ecd(%rip), %rsi     # 0x7ab04
movl $0x385, %edx            # imm = 0x385
leaq 0x48708(%rip), %rcx     # 0x7b34b
callq 0x30a0
movq -0x20(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x32c53
jmp 0x32c72
leaq 0x43c0d(%rip), %rdi     # 0x76867
leaq 0x47ea3(%rip), %rsi     # 0x7ab04
movl $0x386, %edx            # imm = 0x386
leaq 0x486de(%rip), %rcx     # 0x7b34b
callq 0x30a0
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rsi
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movl 0x4(%rax), %edx
leaq -0x30(%rbp), %rdi
callq 0x8ee0
leaq -0x40(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x32cb7
leaq 0x4328e(%rip), %rax     # 0x75f3f
movq %rax, -0x50(%rbp)
jmp 0x32cbf
movq -0x28(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x48(%rbp), %rdi
movq -0x50(%rbp), %rcx
leaq -0x40(%rbp), %rsi
leaq 0x47fda(%rip), %rdx     # 0x7acac
callq 0x29520
movq -0x8(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x32d03
leaq 0x43242(%rip), %rax     # 0x75f3f
movq %rax, -0x70(%rbp)
jmp 0x32d0b
movq -0x38(%rbp), %rax
movq %rax, -0x70(%rbp)
movq -0x58(%rbp), %rdx
movq -0x60(%rbp), %rsi
movq -0x68(%rbp), %rdi
movq -0x70(%rbp), %rcx
callq 0x33a10
leaq -0x30(%rbp), %rdi
callq 0x9310
leaq -0x40(%rbp), %rdi
callq 0x9310
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_inst_reg
static const char * _asm_inst_reg(
	ASMGeneratorGas64Context *ctx,
	uint8_t type,
	int reg
) {
	assert(ctx);

	const char *regs[][4] = {
		{_ASM_REG_NAME_AL, _ASM_REG_NAME_AX, _ASM_REG_NAME_EAX, _ASM_REG_NAME_RAX},
		{_ASM_REG_NAME_BL, _ASM_REG_NAME_BX, _ASM_REG_NAME_EBX, _ASM_REG_NAME_RBX},
		{_ASM_REG_NAME_CL, _ASM_REG_NAME_CX, _ASM_REG_NAME_ECX, _ASM_REG_NAME_RCX},
		{_ASM_REG_NAME_DL, _ASM_REG_NAME_DX, _ASM_REG_NAME_EDX, _ASM_REG_NAME_RDX}
	};
	assert(reg < sizeof(regs) / sizeof(regs[0]));

	int idx = 0;
	switch (type) {
		case BE_TYPE_CHAR:
		case BE_TYPE_INT8:
		case BE_TYPE_UINT8: {
			idx = 0;
			break;
		}
		case BE_TYPE_INT16:
		case BE_TYPE_UINT16: {
			idx = 1;
			break;
		}
		case BE_TYPE_INT32:
		case BE_TYPE_UINT32:
		case BE_TYPE_FLOAT: {
			idx = 2;
			break;
		}
		case BE_TYPE_INT64:
		case BE_TYPE_UINT64:
		case BE_TYPE_DOUBLE:
		case BE_TYPE_POINTER: {
			idx = 3;
			break;
		}
		default: {
			assert(0);
			break;
		}
	}

	return regs[reg][idx];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movl %edx, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x334f1
jmp 0x33510
leaq 0x4cc69(%rip), %rdi     # 0x80161
leaq 0x47605(%rip), %rsi     # 0x7ab04
movl $0x1e8, %edx            # imm = 0x1E8
leaq 0x481b0(%rip), %rcx     # 0x7b6bb
callq 0x30a0
leaq -0x90(%rbp), %rdi
leaq 0x60842(%rip), %rsi     # 0x93d60
movl $0x80, %edx
callq 0x3110
movslq -0x10(%rbp), %rax
cmpq $0x4, %rax
jae 0x33534
jmp 0x33553
leaq 0x43626(%rip), %rdi     # 0x76b61
leaq 0x475c2(%rip), %rsi     # 0x7ab04
movl $0x1f0, %edx            # imm = 0x1F0
leaq 0x4816d(%rip), %rcx     # 0x7b6bb
callq 0x30a0
movl $0x0, -0x94(%rbp)
movzbl -0x9(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0xa0(%rbp)
subl $0xf, %eax
ja 0x335b8
movq -0xa0(%rbp), %rax
leaq 0x47505(%rip), %rcx     # 0x7aa84
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movl $0x0, -0x94(%rbp)
jmp 0x335d7
movl $0x1, -0x94(%rbp)
jmp 0x335d7
movl $0x2, -0x94(%rbp)
jmp 0x335d7
movl $0x3, -0x94(%rbp)
jmp 0x335d7
leaq 0x3fe9b(%rip), %rdi     # 0x7345a
leaq 0x4753e(%rip), %rsi     # 0x7ab04
movl $0x20d, %edx            # imm = 0x20D
leaq 0x480e9(%rip), %rcx     # 0x7b6bb
callq 0x30a0
movslq -0x10(%rbp), %rcx
leaq -0x90(%rbp), %rax
shlq $0x5, %rcx
addq %rcx, %rax
movslq -0x94(%rbp), %rcx
movq (%rax,%rcx,8), %rax
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_inst_mov_x_sym
static void _asm_inst_mov_x_sym(
	ASMGeneratorGas64Context *ctx,
	ResizableString *rstr,
	const char *target,
	ParserSymbol *source
) {
	assert(ctx);
	assert(rstr);
	assert(target);
	assert(source);

	_asm_inst_mov_x_x(
		ctx,
		rstr,
		BE_VAR_SYMBOL_GET_TYPE(source),
		target,
		RSTR_CSTR(BE_VAR_SYMBOL_GET_CODE_GEN_NAME(source))
	);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x33621
jmp 0x33640
leaq 0x4cb39(%rip), %rdi     # 0x80161
leaq 0x474d5(%rip), %rsi     # 0x7ab04
movl $0x307, %edx            # imm = 0x307
leaq 0x47b96(%rip), %rcx     # 0x7b1d1
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x33649
jmp 0x33668
leaq 0x404bd(%rip), %rdi     # 0x73b0d
leaq 0x474ad(%rip), %rsi     # 0x7ab04
movl $0x308, %edx            # imm = 0x308
leaq 0x47b6e(%rip), %rcx     # 0x7b1d1
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x33671
jmp 0x33690
leaq 0x4bcbc(%rip), %rdi     # 0x7f334
leaq 0x47485(%rip), %rsi     # 0x7ab04
movl $0x309, %edx            # imm = 0x309
leaq 0x47b46(%rip), %rcx     # 0x7b1d1
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x33699
jmp 0x336b8
leaq 0x48b94(%rip), %rdi     # 0x7c234
leaq 0x4745d(%rip), %rsi     # 0x7ab04
movl $0x30a, %edx            # imm = 0x30A
leaq 0x47b1e(%rip), %rcx     # 0x7b1d1
callq 0x30a0
movq -0x8(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x20(%rbp), %rax
movb 0x30(%rax), %al
movb %al, -0x29(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x58(%rax)
jne 0x336f2
leaq 0x42853(%rip), %rax     # 0x75f3f
movq %rax, -0x48(%rbp)
jmp 0x336fe
movq -0x20(%rbp), %rax
movq 0x58(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x28(%rbp), %rcx
movb -0x29(%rbp), %al
movq -0x38(%rbp), %rsi
movq -0x40(%rbp), %rdi
movq -0x48(%rbp), %r8
movzbl %al, %edx
callq 0x33720
addq $0x50, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas64.c
// Function: asm_inst_type_suffix
static char _asm_inst_type_suffix(
	ASMGeneratorGas64Context *ctx,
	uint8_t type
) {
	assert(ctx);

	switch (type) {
		case BE_TYPE_CHAR:
		case BE_TYPE_INT8:
		case BE_TYPE_UINT8: {
			return 'b';
		}
		case BE_TYPE_INT16:
		case BE_TYPE_UINT16: {
			return 'w';
		}
		case BE_TYPE_INT32:
		case BE_TYPE_UINT32:
		case BE_TYPE_FLOAT: {
			return 'l';
		}
		case BE_TYPE_INT64:
		case BE_TYPE_UINT64:
		case BE_TYPE_DOUBLE:
		case BE_TYPE_POINTER: {
			return 'q';
		}
		default: {
			assert(0);
			return '\0';
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x3387b
jmp 0x3389a
leaq 0x4c8df(%rip), %rdi     # 0x80161
leaq 0x4727b(%rip), %rsi     # 0x7ab04
movl $0x1bc, %edx            # imm = 0x1BC
leaq 0x47a0d(%rip), %rcx     # 0x7b2a2
callq 0x30a0
movzbl -0x11(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0xf, %eax
ja 0x338d7
movq -0x20(%rbp), %rax
leaq 0x4720e(%rip), %rcx     # 0x7aac4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movb $0x62, -0x1(%rbp)
jmp 0x338f6
movb $0x77, -0x1(%rbp)
jmp 0x338f6
movb $0x6c, -0x1(%rbp)
jmp 0x338f6
movb $0x71, -0x1(%rbp)
jmp 0x338f6
leaq 0x3fb7c(%rip), %rdi     # 0x7345a
leaq 0x4721f(%rip), %rsi     # 0x7ab04
movl $0x1d4, %edx            # imm = 0x1D4
leaq 0x479b1(%rip), %rcx     # 0x7b2a2
callq 0x30a0
movb -0x1(%rbp), %al
addq $0x20, %rsp
popq %rbp
retq
nop