LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: ir_stat_label
static void _ir_stat_label(
	IRGeneratorCContext *ctx,
	int indentLevel,
	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_label = node_stat_label->childs[0];
	assert(node_label->type == FE_NODE_IDENTIFIER);

	_OUT_STR(ctx, node_label->token->content, node_label->token->len);
	_OUT_CSTR(ctx, ":;\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2719c
jmp 0x271bb
leaq 0x553b3(%rip), %rdi     # 0x7c556
leaq 0x4fc3e(%rip), %rsi     # 0x76de8
movl $0x608, %edx            # imm = 0x608
leaq 0x50b20(%rip), %rcx     # 0x77cd6
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x271c4
jmp 0x271e3
leaq 0x4f7cd(%rip), %rdi     # 0x76998
leaq 0x4fc16(%rip), %rsi     # 0x76de8
movl $0x609, %edx            # imm = 0x609
leaq 0x50af8(%rip), %rcx     # 0x77cd6
callq 0x30a0
movq -0x18(%rbp), %rax
cmpl $0xb90, (%rax)          # imm = 0xB90
jne 0x271f1
jmp 0x27210
leaq 0x4f7b0(%rip), %rdi     # 0x769a8
leaq 0x4fbe9(%rip), %rsi     # 0x76de8
movl $0x60a, %edx            # imm = 0x60A
leaq 0x50acb(%rip), %rcx     # 0x77cd6
callq 0x30a0
movq -0x18(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x2721c
jmp 0x2723b
leaq 0x4f7b1(%rip), %rdi     # 0x769d4
leaq 0x4fbbe(%rip), %rsi     # 0x76de8
movl $0x60b, %edx            # imm = 0x60B
leaq 0x50aa0(%rip), %rcx     # 0x77cd6
callq 0x30a0
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpl $0x200, (%rax)          # imm = 0x200
jne 0x27258
jmp 0x27277
leaq 0x50a4a(%rip), %rdi     # 0x77ca9
leaq 0x4fb82(%rip), %rsi     # 0x76de8
movl $0x60e, %edx            # imm = 0x60E
leaq 0x50a64(%rip), %rcx     # 0x77cd6
callq 0x30a0
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movq -0x20(%rbp), %rcx
movq 0x10(%rcx), %rcx
cmpl 0x4(%rcx), %eax
jge 0x272ba
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movslq -0x24(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x2727e
movl $0x0, -0x28(%rbp)
movslq -0x28(%rbp), %rax
cmpq $0x3, %rax
jae 0x272f2
movslq -0x28(%rbp), %rcx
leaq 0x50a41(%rip), %rax     # 0x77d17
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x272c1
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: ir_stat_asm
static void _ir_stat_asm(
	IRGeneratorCContext *ctx,
	int indentLevel,
	ParserASTNode *node_stat_asm
) {
	assert(ctx);
	assert(node_stat_asm);
	assert(node_stat_asm->type == FE_NODE_STAT_ASM);

	_error("asm is not supported.");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2731c
jmp 0x2733b
leaq 0x55233(%rip), %rdi     # 0x7c556
leaq 0x4fabe(%rip), %rsi     # 0x76de8
movl $0x619, %edx            # imm = 0x619
leaq 0x509e5(%rip), %rcx     # 0x77d1b
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x27344
jmp 0x27363
leaq 0x4f6e0(%rip), %rdi     # 0x76a2b
leaq 0x4fa96(%rip), %rsi     # 0x76de8
movl $0x61a, %edx            # imm = 0x61A
leaq 0x509bd(%rip), %rcx     # 0x77d1b
callq 0x30a0
movq -0x18(%rbp), %rax
cmpl $0xba0, (%rax)          # imm = 0xBA0
jne 0x27371
jmp 0x27390
leaq 0x4f6c1(%rip), %rdi     # 0x76a39
leaq 0x4fa69(%rip), %rsi     # 0x76de8
movl $0x61b, %edx            # imm = 0x61B
leaq 0x50990(%rip), %rcx     # 0x77d1b
callq 0x30a0
leaq 0x509c3(%rip), %rdi     # 0x77d5a
callq 0x208b0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: ir_stat_expr
static void _ir_stat_expr(
	IRGeneratorCContext *ctx,
	int indentLevel,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_EXPR);

	_OUT_INDENT(ctx, indentLevel);

	ResizableString rstr_expr;
	rstr_init(&rstr_expr);
	_ir_expr_wrapper(ctx, &rstr_expr, node);
	_OUT_STR(ctx, rstr_expr.buffer, rstr_expr.len);
	rstr_free(&rstr_expr);

	_OUT_CSTR(ctx, ";\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x273cc
jmp 0x273eb
leaq 0x55183(%rip), %rdi     # 0x7c556
leaq 0x4fa0e(%rip), %rsi     # 0x76de8
movl $0x625, %edx            # imm = 0x625
leaq 0x5098a(%rip), %rcx     # 0x77d70
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x273f4
jmp 0x27413
leaq 0x4ebd8(%rip), %rdi     # 0x75fd3
leaq 0x4f9e6(%rip), %rsi     # 0x76de8
movl $0x626, %edx            # imm = 0x626
leaq 0x50962(%rip), %rcx     # 0x77d70
callq 0x30a0
movq -0x18(%rbp), %rax
cmpl $0xe00, (%rax)          # imm = 0xE00
jne 0x27421
jmp 0x27440
leaq 0x4d87c(%rip), %rdi     # 0x74ca4
leaq 0x4f9b9(%rip), %rsi     # 0x76de8
movl $0x627, %edx            # imm = 0x627
leaq 0x50935(%rip), %rcx     # 0x77d70
callq 0x30a0
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x25d00
leaq -0x28(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rdx
leaq -0x28(%rbp), %rsi
callq 0x21d00
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x27499
movq -0x20(%rbp), %rax
movslq -0x2c(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x2746d
leaq -0x28(%rbp), %rdi
callq 0x9310
movl $0x0, -0x30(%rbp)
movslq -0x30(%rbp), %rax
cmpq $0x2, %rax
jae 0x274da
movslq -0x30(%rbp), %rcx
leaq 0x4f6a0(%rip), %rax     # 0x76b5e
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x274a9
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: ir_stat_va_end
static void _ir_stat_va_end(
	IRGeneratorCContext *ctx,
	int indentLevel,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);
	assert(node->type == FE_NODE_STAT_VA_END);
	assert(node->nchilds == 1);

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

	_OUT_INDENT(ctx, indentLevel);

	_OUT_CSTR(ctx, "va_end(");

	ResizableString rstr_expr;
	rstr_init(&rstr_expr);
	_ir_expr_wrapper(ctx, &rstr_expr, node_expr);
	_OUT_STR(ctx, rstr_expr.buffer, rstr_expr.len);
	rstr_free(&rstr_expr);

	_OUT_CSTR(ctx, ");\n");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2779c
jmp 0x277bb
leaq 0x54db3(%rip), %rdi     # 0x7c556
leaq 0x4f63e(%rip), %rsi     # 0x76de8
movl $0x65f, %edx            # imm = 0x65F
leaq 0x50662(%rip), %rcx     # 0x77e18
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x277c4
jmp 0x277e3
leaq 0x4e808(%rip), %rdi     # 0x75fd3
leaq 0x4f616(%rip), %rsi     # 0x76de8
movl $0x660, %edx            # imm = 0x660
leaq 0x5063a(%rip), %rcx     # 0x77e18
callq 0x30a0
movq -0x18(%rbp), %rax
cmpl $0xbd1, (%rax)          # imm = 0xBD1
jne 0x277f1
jmp 0x27810
leaq 0x4f45a(%rip), %rdi     # 0x76c52
leaq 0x4f5e9(%rip), %rsi     # 0x76de8
movl $0x661, %edx            # imm = 0x661
leaq 0x5060d(%rip), %rcx     # 0x77e18
callq 0x30a0
movq -0x18(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x2781c
jmp 0x2783b
leaq 0x578cd(%rip), %rdi     # 0x7f0f0
leaq 0x4f5be(%rip), %rsi     # 0x76de8
movl $0x662, %edx            # imm = 0x662
leaq 0x505e2(%rip), %rcx     # 0x77e18
callq 0x30a0
movq -0x18(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0x25d00
movl $0x0, -0x24(%rbp)
movslq -0x24(%rbp), %rax
cmpq $0x7, %rax
jae 0x2788e
movslq -0x24(%rbp), %rcx
leaq 0x505e8(%rip), %rax     # 0x77e5a
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x2785d
leaq -0x38(%rbp), %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rdx
leaq -0x38(%rbp), %rsi
callq 0x21d00
movl $0x0, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
cmpl -0x34(%rbp), %eax
jge 0x278db
movq -0x30(%rbp), %rax
movslq -0x3c(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x278af
leaq -0x38(%rbp), %rdi
callq 0x9310
movl $0x0, -0x40(%rbp)
movslq -0x40(%rbp), %rax
cmpq $0x3, %rax
jae 0x2791c
movslq -0x40(%rbp), %rcx
leaq 0x4ffce(%rip), %rax     # 0x778ce
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x278eb
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: fe_irgen_llvmir_new_context
IRGeneratorLlvmirContext * fe_irgen_llvmir_new_context(ParserContext *psrctx, FILE *out) {
	assert(psrctx);
	assert(psrctx->ast);
	assert(out);
	
	IRGeneratorLlvmirContext *ctx = (IRGeneratorLlvmirContext *)malloc(sizeof(IRGeneratorLlvmirContext));
	if (ctx == NULL) {
		_error("cannot allocate memory for a new context!");
	}

	ctx->psrctx = psrctx;
	ctx->out = out;

	ctx->global = rstr_new();
	ctx->head = rstr_new();
	ctx->body = rstr_new();
	ctx->foot = rstr_new();
	ctx->local_var_defs = NULL;

	rstr_init(ctx->global);
	rstr_init(ctx->head);
	rstr_init(ctx->body);
	rstr_init(ctx->foot);

	ctx->counter = 0;
	ctx->func_symbol = NULL;

	return ctx;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x28169
jmp 0x28188
leaq 0x4c270(%rip), %rdi     # 0x743e0
leaq 0x4ff59(%rip), %rsi     # 0x780d0
movl $0x1498, %edx           # imm = 0x1498
leaq 0x5005f(%rip), %rcx     # 0x781e2
callq 0x30a0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x28195
jmp 0x281b4
leaq 0x4c250(%rip), %rdi     # 0x743ec
leaq 0x4ff2d(%rip), %rsi     # 0x780d0
movl $0x1499, %edx           # imm = 0x1499
leaq 0x50033(%rip), %rcx     # 0x781e2
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x281bd
jmp 0x281dc
leaq 0x4c262(%rip), %rdi     # 0x74426
leaq 0x4ff05(%rip), %rsi     # 0x780d0
movl $0x149a, %edx           # imm = 0x149A
leaq 0x5000b(%rip), %rcx     # 0x781e2
callq 0x30a0
movl $0x48, %edi
callq 0x3120
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x281fd
leaq 0x4c274(%rip), %rdi     # 0x7446c
callq 0x282c0
movq -0x8(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x8(%rax)
callq 0x91e0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x10(%rax)
callq 0x91e0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
callq 0x91e0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x20(%rax)
callq 0x91e0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x8c90
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x8c90
movq -0x18(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0x8c90
movq -0x18(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x8c90
movq -0x18(%rbp), %rax
movq $0x0, 0x38(%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x40(%rax)
movq -0x18(%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_llvmir.c
// Function: ir_module_item
static void _ir_module_item(IRGeneratorLlvmirContext *ctx, ParserASTNode *node) {
	assert(ctx);
	assert(node);

	ctx->func_symbol = NULL;

	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;
		}
	}

	ctx->func_symbol = NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x284c9
jmp 0x284e8
leaq 0x54086(%rip), %rdi     # 0x7c556
leaq 0x4fbf9(%rip), %rsi     # 0x780d0
movl $0x1450, %edx           # imm = 0x1450
leaq 0x4fdc9(%rip), %rcx     # 0x782ac
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x284f1
jmp 0x28510
leaq 0x4dadb(%rip), %rdi     # 0x75fd3
leaq 0x4fbd1(%rip), %rsi     # 0x780d0
movl $0x1451, %edx           # imm = 0x1451
leaq 0x4fda1(%rip), %rcx     # 0x782ac
callq 0x30a0
movq -0x8(%rbp), %rax
movq $0x0, 0x40(%rax)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x14(%rbp)
subl $0xa00, %eax            # imm = 0xA00
je 0x28564
jmp 0x2852e
movl -0x14(%rbp), %eax
subl $0xc00, %eax            # imm = 0xC00
je 0x28546
jmp 0x2853a
movl -0x14(%rbp), %eax
subl $0xd00, %eax            # imm = 0xD00
je 0x28555
jmp 0x28573
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x285b0
jmp 0x28592
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x28d60
jmp 0x28592
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x290c0
jmp 0x28592
leaq 0x49ee1(%rip), %rdi     # 0x7245b
leaq 0x4fb4f(%rip), %rsi     # 0x780d0
movl $0x1463, %edx           # imm = 0x1463
leaq 0x4fd1f(%rip), %rcx     # 0x782ac
callq 0x30a0
movq -0x8(%rbp), %rax
movq $0x0, 0x40(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_zero_initializer
static void _ir_zero_initializer(
	IRGeneratorLlvmirContext *ctx,
	ResizableString *rstr,
	ParserASTNode *node_type
) {
	assert(ctx);
	assert(rstr);
	assert(node_type);

	switch (node_type->type) {
		case FE_NODE_TYPE_CHAR:
		case FE_NODE_TYPE_INT8:
		case FE_NODE_TYPE_UINT8:
		case FE_NODE_TYPE_INT16:
		case FE_NODE_TYPE_UINT16:
		case FE_NODE_TYPE_INT32:
		case FE_NODE_TYPE_UINT32:
		case FE_NODE_TYPE_INT64:
		case FE_NODE_TYPE_UINT64: {
			rstr_append_with_cstr(rstr, "0");
			break;
		}
		case FE_NODE_TYPE_FLOAT:
		case FE_NODE_TYPE_DOUBLE: {
			rstr_append_with_cstr(rstr, "0.0");
			break;
		}
		case FE_NODE_TYPE_STRUCT:
		case FE_NODE_TYPE_ARRAY: {
			rstr_append_with_cstr(rstr, "zeroinitializer");
			break;
		}
		case FE_NODE_TYPE_POINTER: {
			rstr_append_with_cstr(rstr, "null");
			break;
		}
		default: {
			assert(0);
			break;
		}
	}
}

// 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 0x2a06d
jmp 0x2a08c
leaq 0x524e2(%rip), %rdi     # 0x7c556
leaq 0x4e055(%rip), %rsi     # 0x780d0
movl $0x2fa, %edx            # imm = 0x2FA
leaq 0x4e3d9(%rip), %rcx     # 0x78460
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2a095
jmp 0x2a0b4
leaq 0x48a72(%rip), %rdi     # 0x72b0e
leaq 0x4e02d(%rip), %rsi     # 0x780d0
movl $0x2fb, %edx            # imm = 0x2FB
leaq 0x4e3b1(%rip), %rcx     # 0x78460
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x2a0bd
jmp 0x2a0dc
leaq 0x4a66f(%rip), %rdi     # 0x74733
leaq 0x4e005(%rip), %rsi     # 0x780d0
movl $0x2fc, %edx            # imm = 0x2FC
leaq 0x4e389(%rip), %rcx     # 0x78460
callq 0x30a0
movq -0x18(%rbp), %rax
movl (%rax), %eax
addl $0xfffffc00, %eax       # imm = 0xFFFFFC00
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x40, %eax
ja 0x2a14e
movq -0x20(%rbp), %rax
leaq 0x4ddc7(%rip), %rcx     # 0x77ec4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
leaq 0x4834a(%rip), %rsi     # 0x7245b
callq 0x8d70
jmp 0x2a16d
movq -0x10(%rbp), %rdi
leaq 0x4e397(%rip), %rsi     # 0x784ba
callq 0x8d70
jmp 0x2a16d
movq -0x10(%rbp), %rdi
leaq 0x4e389(%rip), %rsi     # 0x784be
callq 0x8d70
jmp 0x2a16d
movq -0x10(%rbp), %rdi
leaq 0x4e387(%rip), %rsi     # 0x784ce
callq 0x8d70
jmp 0x2a16d
leaq 0x48306(%rip), %rdi     # 0x7245b
leaq 0x4df74(%rip), %rsi     # 0x780d0
movl $0x31a, %edx            # imm = 0x31A
leaq 0x4e2f8(%rip), %rcx     # 0x78460
callq 0x30a0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_constexpr_initializer
static void _ir_constexpr_initializer(
	IRGeneratorLlvmirContext *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, NULL, 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 0x2a19d
jmp 0x2a1bc
leaq 0x523b2(%rip), %rdi     # 0x7c556
leaq 0x4df25(%rip), %rsi     # 0x780d0
movl $0x3ec, %edx            # imm = 0x3EC
leaq 0x4e31c(%rip), %rcx     # 0x784d3
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x2a1c5
jmp 0x2a1e4
leaq 0x48942(%rip), %rdi     # 0x72b0e
leaq 0x4defd(%rip), %rsi     # 0x780d0
movl $0x3ed, %edx            # imm = 0x3ED
leaq 0x4e2f4(%rip), %rcx     # 0x784d3
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x2a1ed
jmp 0x2a20c
leaq 0x4a8a5(%rip), %rdi     # 0x74a99
leaq 0x4ded5(%rip), %rsi     # 0x780d0
movl $0x3ee, %edx            # imm = 0x3EE
leaq 0x4e2cc(%rip), %rcx     # 0x784d3
callq 0x30a0
movq -0x18(%rbp), %rax
testb $0x1, 0x70(%rax)
je 0x2a218
jmp 0x2a237
leaq 0x4a889(%rip), %rdi     # 0x74aa8
leaq 0x4deaa(%rip), %rsi     # 0x780d0
movl $0x3ef, %edx            # imm = 0x3EF
leaq 0x4e2a1(%rip), %rcx     # 0x784d3
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
callq 0x2ca60
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.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_type));
	rstr_init(&(expr_result->rstr_result_val));

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2a275
jmp 0x2a294
leaq 0x4a997(%rip), %rdi     # 0x74c13
leaq 0x4de4d(%rip), %rsi     # 0x780d0
movl $0x57, %edx
leaq 0x4a990(%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
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
addq $0x50, %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
addq $0x60, %rdi
callq 0x8c90
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
callq 0x8c90
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.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_type));
	rstr_free(&(expr_result->rstr_result_val));

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x2c6b5
jmp 0x2c6d4
leaq 0x48557(%rip), %rdi     # 0x74c13
leaq 0x4ba0d(%rip), %rsi     # 0x780d0
movl $0xc4, %edx
leaq 0x499ba(%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
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
callq 0x9310
movq -0x8(%rbp), %rdi
addq $0x50, %rdi
callq 0x9310
movq -0x8(%rbp), %rdi
addq $0x60, %rdi
callq 0x9310
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
callq 0x9310
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_expr_constexpr
static bool _ir_expr_constexpr(
	IRGeneratorLlvmirContext *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_type;
	ResizableString rstr_val;
	rstr_init(&rstr_type);
	rstr_init(&rstr_val);

	_ir_constexpr(ctx, &rstr_type, &rstr_val, node);

	_expr_result_set_result(expr_result, RSTR_CSTR(&rstr_type), RSTR_CSTR(&rstr_val));

	rstr_free(&rstr_type);
	rstr_free(&rstr_val);

	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x2d811
jmp 0x2d830
leaq 0x4ed3e(%rip), %rdi     # 0x7c556
leaq 0x4a8b1(%rip), %rsi     # 0x780d0
movl $0x78e, %edx            # imm = 0x78E
leaq 0x4afd1(%rip), %rcx     # 0x787fc
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x2d839
jmp 0x2d858
leaq 0x452ce(%rip), %rdi     # 0x72b0e
leaq 0x4a889(%rip), %rsi     # 0x780d0
movl $0x78f, %edx            # imm = 0x78F
leaq 0x4afa9(%rip), %rcx     # 0x787fc
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x2d861
jmp 0x2d880
leaq 0x473ab(%rip), %rdi     # 0x74c13
leaq 0x4a861(%rip), %rsi     # 0x780d0
movl $0x790, %edx            # imm = 0x790
leaq 0x4af81(%rip), %rcx     # 0x787fc
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x2d889
jmp 0x2d8a8
leaq 0x48743(%rip), %rdi     # 0x75fd3
leaq 0x4a839(%rip), %rsi     # 0x780d0
movl $0x791, %edx            # imm = 0x791
leaq 0x4af59(%rip), %rcx     # 0x787fc
callq 0x30a0
movq -0x28(%rbp), %rax
testb $0x1, 0x70(%rax)
jne 0x2d8bb
movb $0x0, -0x1(%rbp)
jmp 0x2d951
leaq -0x38(%rbp), %rdi
callq 0x8c90
leaq -0x48(%rbp), %rdi
callq 0x8c90
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rcx
leaq -0x38(%rbp), %rsi
leaq -0x48(%rbp), %rdx
callq 0x2ca60
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x2d8fe
leaq 0x49fbd(%rip), %rax     # 0x778b5
movq %rax, -0x58(%rbp)
jmp 0x2d906
movq -0x30(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0x60(%rbp)
cmpq $0x0, -0x40(%rbp)
jne 0x2d922
leaq 0x49f99(%rip), %rax     # 0x778b5
movq %rax, -0x68(%rbp)
jmp 0x2d92a
movq -0x40(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rsi
movq -0x50(%rbp), %rdi
movq -0x68(%rbp), %rdx
callq 0x358a0
leaq -0x38(%rbp), %rdi
callq 0x9310
leaq -0x48(%rbp), %rdi
callq 0x9310
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_expr_add_sub
static bool _ir_expr_add_sub(
	IRGeneratorLlvmirContext *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 0x31691
jmp 0x316b0
leaq 0x4aebe(%rip), %rdi     # 0x7c556
leaq 0x46a31(%rip), %rsi     # 0x780d0
movl $0xe12, %edx            # imm = 0xE12
leaq 0x478bb(%rip), %rcx     # 0x78f66
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x316b9
jmp 0x316d8
leaq 0x4144e(%rip), %rdi     # 0x72b0e
leaq 0x46a09(%rip), %rsi     # 0x780d0
movl $0xe13, %edx            # imm = 0xE13
leaq 0x47893(%rip), %rcx     # 0x78f66
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x316e1
jmp 0x31700
leaq 0x4352b(%rip), %rdi     # 0x74c13
leaq 0x469e1(%rip), %rsi     # 0x780d0
movl $0xe14, %edx            # imm = 0xE14
leaq 0x4786b(%rip), %rcx     # 0x78f66
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x31709
jmp 0x31728
leaq 0x448c3(%rip), %rdi     # 0x75fd3
leaq 0x469b9(%rip), %rsi     # 0x780d0
movl $0xe15, %edx            # imm = 0xE15
leaq 0x47843(%rip), %rcx     # 0x78f66
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0xea0, %eax            # imm = 0xEA0
je 0x31749
jmp 0x3173a
movl -0x2c(%rbp), %eax
subl $0xea1, %eax            # imm = 0xEA1
je 0x31793
jmp 0x317dd
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x31755
jmp 0x31774
leaq 0x4cf18(%rip), %rdi     # 0x7e674
leaq 0x4696d(%rip), %rsi     # 0x780d0
movl $0xe19, %edx            # imm = 0xE19
leaq 0x477f7(%rip), %rcx     # 0x78f66
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 0x36f30
movb $0x1, -0x1(%rbp)
jmp 0x317e1
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x3179f
jmp 0x317be
leaq 0x4cece(%rip), %rdi     # 0x7e674
leaq 0x46923(%rip), %rsi     # 0x780d0
movl $0xe20, %edx            # imm = 0xE20
leaq 0x477ad(%rip), %rcx     # 0x78f66
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 0x379f0
movb $0x1, -0x1(%rbp)
jmp 0x317e1
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_llvmir.c
// Function: ir_expr_shift
static bool _ir_expr_shift(
	IRGeneratorLlvmirContext *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 0x31811
jmp 0x31830
leaq 0x4ad3e(%rip), %rdi     # 0x7c556
leaq 0x468b1(%rip), %rsi     # 0x780d0
movl $0xedd, %edx            # imm = 0xEDD
leaq 0x47954(%rip), %rcx     # 0x7917f
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x31839
jmp 0x31858
leaq 0x412ce(%rip), %rdi     # 0x72b0e
leaq 0x46889(%rip), %rsi     # 0x780d0
movl $0xede, %edx            # imm = 0xEDE
leaq 0x4792c(%rip), %rcx     # 0x7917f
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x31861
jmp 0x31880
leaq 0x433ab(%rip), %rdi     # 0x74c13
leaq 0x46861(%rip), %rsi     # 0x780d0
movl $0xedf, %edx            # imm = 0xEDF
leaq 0x47904(%rip), %rcx     # 0x7917f
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x31889
jmp 0x318a8
leaq 0x44743(%rip), %rdi     # 0x75fd3
leaq 0x46839(%rip), %rsi     # 0x780d0
movl $0xee0, %edx            # imm = 0xEE0
leaq 0x478dc(%rip), %rcx     # 0x7917f
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0xe90, %eax            # imm = 0xE90
je 0x318c9
jmp 0x318ba
movl -0x2c(%rbp), %eax
subl $0xe91, %eax            # imm = 0xE91
je 0x31913
jmp 0x3195d
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x318d5
jmp 0x318f4
leaq 0x4cd98(%rip), %rdi     # 0x7e674
leaq 0x467ed(%rip), %rsi     # 0x780d0
movl $0xee4, %edx            # imm = 0xEE4
leaq 0x47890(%rip), %rcx     # 0x7917f
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 0x38560
movb $0x1, -0x1(%rbp)
jmp 0x31961
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x3191f
jmp 0x3193e
leaq 0x4cd4e(%rip), %rdi     # 0x7e674
leaq 0x467a3(%rip), %rsi     # 0x780d0
movl $0xeeb, %edx            # imm = 0xEEB
leaq 0x47846(%rip), %rcx     # 0x7917f
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 0x38970
movb $0x1, -0x1(%rbp)
jmp 0x31961
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_llvmir.c
// Function: ir_expr_band_bxor_bor
static bool _ir_expr_band_bxor_bor(
	IRGeneratorLlvmirContext *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 0x32e51
jmp 0x32e70
leaq 0x496fe(%rip), %rdi     # 0x7c556
leaq 0x45271(%rip), %rsi     # 0x780d0
movl $0x1055, %edx           # imm = 0x1055
leaq 0x4666b(%rip), %rcx     # 0x794d6
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x32e79
jmp 0x32e98
leaq 0x3fc8e(%rip), %rdi     # 0x72b0e
leaq 0x45249(%rip), %rsi     # 0x780d0
movl $0x1056, %edx           # imm = 0x1056
leaq 0x46643(%rip), %rcx     # 0x794d6
callq 0x30a0
cmpq $0x0, -0x20(%rbp)
je 0x32ea1
jmp 0x32ec0
leaq 0x41d6b(%rip), %rdi     # 0x74c13
leaq 0x45221(%rip), %rsi     # 0x780d0
movl $0x1057, %edx           # imm = 0x1057
leaq 0x4661b(%rip), %rcx     # 0x794d6
callq 0x30a0
cmpq $0x0, -0x28(%rbp)
je 0x32ec9
jmp 0x32ee8
leaq 0x43103(%rip), %rdi     # 0x75fd3
leaq 0x451f9(%rip), %rsi     # 0x780d0
movl $0x1058, %edx           # imm = 0x1058
leaq 0x465f3(%rip), %rcx     # 0x794d6
callq 0x30a0
movq -0x28(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
subl $0xe40, %eax            # imm = 0xE40
je 0x32f12
jmp 0x32efa
movl -0x2c(%rbp), %eax
subl $0xe50, %eax            # imm = 0xE50
je 0x32f12
jmp 0x32f06
movl -0x2c(%rbp), %eax
subl $0xe60, %eax            # imm = 0xE60
jne 0x32f5c
jmp 0x32f12
movq -0x28(%rbp), %rax
cmpl $0x2, 0x44(%rax)
jne 0x32f1e
jmp 0x32f3d
leaq 0x4b74f(%rip), %rdi     # 0x7e674
leaq 0x451a4(%rip), %rsi     # 0x780d0
movl $0x105e, %edx           # imm = 0x105E
leaq 0x4659e(%rip), %rcx     # 0x794d6
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 0x38ea0
movb $0x1, -0x1(%rbp)
jmp 0x32f60
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_llvmir.c
// Function: expr_result_set_result
static void _expr_result_set_result(
	_ExprResult *result,
	const char *type,
	const char *val
) {
	assert(result);
	assert(type);
	assert(val);

	rstr_appendf(
		&(result->rstr_result),
		"%s %s",
		type,
		val
	);

	rstr_append_with_cstr(&(result->rstr_result_type), type);

	rstr_append_with_cstr(&(result->rstr_result_val), val);
}

// 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 0x358bd
jmp 0x358dc
leaq 0x406fc(%rip), %rdi     # 0x75fc0
leaq 0x42805(%rip), %rsi     # 0x780d0
movl $0x6a, %edx
leaq 0x42f8d(%rip), %rcx     # 0x78864
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x358e5
jmp 0x35904
leaq 0x3ee4c(%rip), %rdi     # 0x74738
leaq 0x427dd(%rip), %rsi     # 0x780d0
movl $0x6b, %edx
leaq 0x42f65(%rip), %rcx     # 0x78864
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x3590d
jmp 0x3592c
leaq 0x3f214(%rip), %rdi     # 0x74b28
leaq 0x427b5(%rip), %rsi     # 0x780d0
movl $0x6c, %edx
leaq 0x42f3d(%rip), %rcx     # 0x78864
callq 0x30a0
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0x42f69(%rip), %rsi     # 0x788ac
movb $0x0, %al
callq 0x94d0
movq -0x8(%rbp), %rdi
addq $0x30, %rdi
movq -0x10(%rbp), %rsi
callq 0x8d70
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
movq -0x18(%rbp), %rsi
callq 0x8d70
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: generate_func_tmp
static size_t _generate_func_tmp(
	IRGeneratorLlvmirContext *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 0x3599d
jmp 0x359bc
leaq 0x46bb2(%rip), %rdi     # 0x7c556
leaq 0x42725(%rip), %rsi     # 0x780d0
movl $0xfa, %edx
leaq 0x42f7a(%rip), %rcx     # 0x78931
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x359c5
jmp 0x359e4
leaq 0x407a7(%rip), %rdi     # 0x76173
leaq 0x426fd(%rip), %rsi     # 0x780d0
movl $0xfb, %edx
leaq 0x42f52(%rip), %rcx     # 0x78931
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x359ed
jmp 0x35a0c
leaq 0x3d11a(%rip), %rdi     # 0x72b0e
leaq 0x426d5(%rip), %rsi     # 0x780d0
movl $0xfc, %edx
leaq 0x42f2a(%rip), %rcx     # 0x78931
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 0x42f5a(%rip), %rsi     # 0x7898a
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_llvmir.c
// Function: expr_result_set_result_ptr
static void _expr_result_set_result_ptr(
	_ExprResult *result,
	const char *type,
	const char *val
) {
	assert(result);
	assert(type);
	assert(val);

	rstr_appendf(
		&(result->rstr_result_ptr),
		"%s* %s",
		type,
		val
	);

	rstr_appendf(
		&(result->rstr_result_ptr_type),
		"%s*",
		type
	);

	rstr_append_with_cstr(&(result->rstr_result_ptr_val), val);
}

// 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 0x35a6d
jmp 0x35a8c
leaq 0x4054c(%rip), %rdi     # 0x75fc0
leaq 0x42655(%rip), %rsi     # 0x780d0
movl $0x98, %edx
leaq 0x42f12(%rip), %rcx     # 0x78999
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x35a95
jmp 0x35ab4
leaq 0x3ec9c(%rip), %rdi     # 0x74738
leaq 0x4262d(%rip), %rsi     # 0x780d0
movl $0x99, %edx
leaq 0x42eea(%rip), %rcx     # 0x78999
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x35abd
jmp 0x35adc
leaq 0x3f064(%rip), %rdi     # 0x74b28
leaq 0x42605(%rip), %rsi     # 0x780d0
movl $0x9a, %edx
leaq 0x42ec2(%rip), %rcx     # 0x78999
callq 0x30a0
movq -0x8(%rbp), %rdi
addq $0x50, %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0x42ef2(%rip), %rsi     # 0x789e5
movb $0x0, %al
callq 0x94d0
movq -0x8(%rbp), %rdi
addq $0x60, %rdi
movq -0x10(%rbp), %rdx
leaq 0x42edf(%rip), %rsi     # 0x789ec
movb $0x0, %al
callq 0x94d0
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
movq -0x18(%rbp), %rsi
callq 0x8d70
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: expr_result_set_func_result
static void _expr_result_set_func_result(
	_ExprResult *result,
	const char *type,
	const char *val
) {
	assert(result);
	assert(type);
	assert(val);

	rstr_appendf(
		&(result->rstr_result),
		"%s* %s",
		type,
		val
	);

	rstr_appendf(
		&(result->rstr_result_type),
		"%s*",
		type
	);

	rstr_append_with_cstr(&(result->rstr_result_val), val);
}

// 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 0x35b4d
jmp 0x35b6c
leaq 0x4046c(%rip), %rdi     # 0x75fc0
leaq 0x42575(%rip), %rsi     # 0x780d0
movl $0x7f, %edx
leaq 0x42e89(%rip), %rcx     # 0x789f0
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x35b75
jmp 0x35b94
leaq 0x3ebbc(%rip), %rdi     # 0x74738
leaq 0x4254d(%rip), %rsi     # 0x780d0
movl $0x80, %edx
leaq 0x42e61(%rip), %rcx     # 0x789f0
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x35b9d
jmp 0x35bbc
leaq 0x3ef84(%rip), %rdi     # 0x74b28
leaq 0x42525(%rip), %rsi     # 0x780d0
movl $0x81, %edx
leaq 0x42e39(%rip), %rcx     # 0x789f0
callq 0x30a0
movq -0x8(%rbp), %rdi
addq $0x20, %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0x42e12(%rip), %rsi     # 0x789e5
movb $0x0, %al
callq 0x94d0
movq -0x8(%rbp), %rdi
addq $0x30, %rdi
movq -0x10(%rbp), %rdx
leaq 0x42dff(%rip), %rsi     # 0x789ec
movb $0x0, %al
callq 0x94d0
movq -0x8(%rbp), %rdi
addq $0x40, %rdi
movq -0x18(%rbp), %rsi
callq 0x8d70
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: expr_result_set_result_ptr_raw
static void _expr_result_set_result_ptr_raw(
	_ExprResult *result,
	const char *type,
	const char *val
) {
	assert(result);
	assert(type);
	assert(val);

	rstr_appendf(
		&(result->rstr_result_ptr),
		"%s %s",
		type,
		val
	);

	rstr_append_with_cstr(&(result->rstr_result_ptr_type), type);

	rstr_append_with_cstr(&(result->rstr_result_ptr_val), val);
}

// 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 0x35c2d
jmp 0x35c4c
leaq 0x4038c(%rip), %rdi     # 0x75fc0
leaq 0x42495(%rip), %rsi     # 0x780d0
movl $0xb1, %edx
leaq 0x43077(%rip), %rcx     # 0x78cbe
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x35c55
jmp 0x35c74
leaq 0x3eadc(%rip), %rdi     # 0x74738
leaq 0x4246d(%rip), %rsi     # 0x780d0
movl $0xb2, %edx
leaq 0x4304f(%rip), %rcx     # 0x78cbe
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x35c7d
jmp 0x35c9c
leaq 0x3eea4(%rip), %rdi     # 0x74b28
leaq 0x42445(%rip), %rsi     # 0x780d0
movl $0xb3, %edx
leaq 0x43027(%rip), %rcx     # 0x78cbe
callq 0x30a0
movq -0x8(%rbp), %rdi
addq $0x50, %rdi
movq -0x10(%rbp), %rdx
movq -0x18(%rbp), %rcx
leaq 0x42bf9(%rip), %rsi     # 0x788ac
movb $0x0, %al
callq 0x94d0
movq -0x8(%rbp), %rdi
addq $0x60, %rdi
movq -0x10(%rbp), %rsi
callq 0x8d70
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
movq -0x18(%rbp), %rsi
callq 0x8d70
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_stats_block
static void _ir_stats_block(
	IRGeneratorLlvmirContext *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 0x39819
jmp 0x39838
leaq 0x42d36(%rip), %rdi     # 0x7c556
leaq 0x3e8a9(%rip), %rsi     # 0x780d0
movl $0x1386, %edx           # imm = 0x1386
leaq 0x402d4(%rip), %rcx     # 0x79b07
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x39841
jmp 0x39860
leaq 0x3ca14(%rip), %rdi     # 0x7625c
leaq 0x3e881(%rip), %rsi     # 0x780d0
movl $0x1387, %edx           # imm = 0x1387
leaq 0x402ac(%rip), %rcx     # 0x79b07
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb00, (%rax)          # imm = 0xB00
jne 0x3986e
jmp 0x3988d
leaq 0x3c9f8(%rip), %rdi     # 0x7626d
leaq 0x3e854(%rip), %rsi     # 0x780d0
movl $0x1388, %edx           # imm = 0x1388
leaq 0x4027f(%rip), %rcx     # 0x79b07
callq 0x30a0
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x44(%rcx), %eax
jge 0x398cc
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 0x39a00
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x39894
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_stat_var
static void _ir_stat_var(
	IRGeneratorLlvmirContext *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 0x39cc9
jmp 0x39ce8
leaq 0x42886(%rip), %rdi     # 0x7c556
leaq 0x3e3f9(%rip), %rsi     # 0x780d0
movl $0x50c, %edx            # imm = 0x50C
leaq 0x3fea1(%rip), %rcx     # 0x79b84
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x39cf1
jmp 0x39d10
leaq 0x3c2db(%rip), %rdi     # 0x75fd3
leaq 0x3e3d1(%rip), %rsi     # 0x780d0
movl $0x50d, %edx            # imm = 0x50D
leaq 0x3fe79(%rip), %rcx     # 0x79b84
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xc00, (%rax)          # imm = 0xC00
jne 0x39d1e
jmp 0x39d3d
leaq 0x44ab1(%rip), %rdi     # 0x7e7d6
leaq 0x3e3a4(%rip), %rsi     # 0x780d0
movl $0x50e, %edx            # imm = 0x50E
leaq 0x3fe4c(%rip), %rcx     # 0x79b84
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x285b0
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_llvmir.c
// Function: ir_stat_continue
static void _ir_stat_continue(
	IRGeneratorLlvmirContext *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 label %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 0x3b7c9
jmp 0x3b7e8
leaq 0x40d86(%rip), %rdi     # 0x7c556
leaq 0x3c8f9(%rip), %rsi     # 0x780d0
movl $0x706, %edx            # imm = 0x706
leaq 0x3e51d(%rip), %rcx     # 0x79d00
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x3b7f1
jmp 0x3b810
leaq 0x3af88(%rip), %rdi     # 0x76780
leaq 0x3c8d1(%rip), %rsi     # 0x780d0
movl $0x707, %edx            # imm = 0x707
leaq 0x3e4f5(%rip), %rcx     # 0x79d00
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb50, (%rax)          # imm = 0xB50
jne 0x3b81e
jmp 0x3b83d
leaq 0x3af6e(%rip), %rdi     # 0x76793
leaq 0x3c8a4(%rip), %rsi     # 0x780d0
movl $0x708, %edx            # imm = 0x708
leaq 0x3e4c8(%rip), %rcx     # 0x79d00
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x0, 0x44(%rax)
jne 0x3b849
jmp 0x3b868
leaq 0x3af75(%rip), %rdi     # 0x767c5
leaq 0x3c879(%rip), %rsi     # 0x780d0
movl $0x709, %edx            # imm = 0x709
leaq 0x3e49d(%rip), %rcx     # 0x79d00
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 0x3b896
jmp 0x3b8b5
leaq 0x3ae9b(%rip), %rdi     # 0x76738
leaq 0x3c82c(%rip), %rsi     # 0x780d0
movl $0x70f, %edx            # imm = 0x70F
leaq 0x3e450(%rip), %rcx     # 0x79d00
callq 0x30a0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x68(%rax)
jne 0x3b8d9
leaq 0x3bfe2(%rip), %rax     # 0x778b5
movq %rax, -0x28(%rbp)
jmp 0x3b8e5
movq -0x18(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rdx
leaq 0x3dee5(%rip), %rsi     # 0x797d9
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_llvmir.c
// Function: ir_stat_goto
static void _ir_stat_goto(
	IRGeneratorLlvmirContext *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 label %%%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 0x3bbb9
jmp 0x3bbd8
leaq 0x40996(%rip), %rdi     # 0x7c556
leaq 0x3c509(%rip), %rsi     # 0x780d0
movl $0x74f, %edx            # imm = 0x74F
leaq 0x3e1c5(%rip), %rcx     # 0x79d98
callq 0x30a0
cmpq $0x0, -0x10(%rbp)
je 0x3bbe1
jmp 0x3bc00
leaq 0x3ad1f(%rip), %rdi     # 0x76907
leaq 0x3c4e1(%rip), %rsi     # 0x780d0
movl $0x750, %edx            # imm = 0x750
leaq 0x3e19d(%rip), %rcx     # 0x79d98
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0xb80, (%rax)          # imm = 0xB80
jne 0x3bc0e
jmp 0x3bc2d
leaq 0x3ad01(%rip), %rdi     # 0x76916
leaq 0x3c4b4(%rip), %rsi     # 0x780d0
movl $0x751, %edx            # imm = 0x751
leaq 0x3e170(%rip), %rcx     # 0x79d98
callq 0x30a0
movq -0x10(%rbp), %rax
cmpl $0x1, 0x44(%rax)
jne 0x3bc39
jmp 0x3bc58
leaq 0x3ad00(%rip), %rdi     # 0x76940
leaq 0x3c489(%rip), %rsi     # 0x780d0
movl $0x752, %edx            # imm = 0x752
leaq 0x3e145(%rip), %rcx     # 0x79d98
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 0x3bca7
leaq 0x3bc14(%rip), %rax     # 0x778b5
movq %rax, -0x38(%rbp)
jmp 0x3bcaf
movq -0x20(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rdx
leaq 0x3e11a(%rip), %rsi     # 0x79dd8
movb $0x0, %al
callq 0x94d0
leaq -0x28(%rbp), %rdi
callq 0x9310
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)