// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen.c
// Function: fe_irgen_generate
void fe_irgen_generate(IRGeneratorContext *ctx) {
	assert(ctx);
	assert(ctx->psrctx);
	assert(ctx->psrctx->ast);
	assert(ctx->psrctx->ast->type == FE_NODE_MODULE);
	assert(ctx->out);

	_OUT_CSTR(ctx, RSTR_CSTR(ctx->global));

	_ir_module(ctx, ctx->psrctx->ast);

	_OUT_CSTR(ctx, RSTR_CSTR(ctx->head));
	_OUT_CSTR(ctx, RSTR_CSTR(ctx->body));
	_OUT_CSTR(ctx, RSTR_CSTR(ctx->foot));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0xf2a8
jmp 0xf2c7
leaq 0x6d2a7(%rip), %rdi     # 0x7c556
leaq 0x650de(%rip), %rsi     # 0x74394
movl $0x134c, %edx           # imm = 0x134C
leaq 0x650ec(%rip), %rcx     # 0x743ae
callq 0x30a0
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
je 0xf2d3
jmp 0xf2f2
leaq 0x65101(%rip), %rdi     # 0x743db
leaq 0x650b3(%rip), %rsi     # 0x74394
movl $0x134d, %edx           # imm = 0x134D
leaq 0x650c1(%rip), %rcx     # 0x743ae
callq 0x30a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0xf302
jmp 0xf321
leaq 0x650de(%rip), %rdi     # 0x743e7
leaq 0x65084(%rip), %rsi     # 0x74394
movl $0x134e, %edx           # imm = 0x134E
leaq 0x65092(%rip), %rcx     # 0x743ae
callq 0x30a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x100, (%rax)          # imm = 0x100
jne 0xf336
jmp 0xf355
leaq 0x650bb(%rip), %rdi     # 0x743f8
leaq 0x65050(%rip), %rsi     # 0x74394
movl $0x134f, %edx           # imm = 0x134F
leaq 0x6505e(%rip), %rcx     # 0x743ae
callq 0x30a0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xf362
jmp 0xf381
leaq 0x650b8(%rip), %rdi     # 0x74421
leaq 0x65024(%rip), %rsi     # 0x74394
movl $0x1350, %edx           # imm = 0x1350
leaq 0x65032(%rip), %rcx     # 0x743ae
callq 0x30a0
movl $0x0, -0xc(%rbp)
movslq -0xc(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf3ac
leaq 0x6850f(%rip), %rax     # 0x778b5
movq %rax, -0x28(%rbp)
jmp 0xf3bc
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x3070
movq %rax, %rcx
movq -0x20(%rbp), %rax
cmpq %rcx, %rax
jae 0xf424
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf3ed
leaq 0x684ce(%rip), %rax     # 0x778b5
movq %rax, -0x30(%rbp)
jmp 0xf3fd
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movslq -0xc(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0xf388
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
callq 0xf630
movl $0x0, -0x10(%rbp)
movslq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf463
leaq 0x68458(%rip), %rax     # 0x778b5
movq %rax, -0x40(%rbp)
jmp 0xf473
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0x3070
movq %rax, %rcx
movq -0x38(%rbp), %rax
cmpq %rcx, %rax
jae 0xf4db
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf4a4
leaq 0x68417(%rip), %rax     # 0x778b5
movq %rax, -0x48(%rbp)
jmp 0xf4b4
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movslq -0x10(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xf43f
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf506
leaq 0x683b5(%rip), %rax     # 0x778b5
movq %rax, -0x58(%rbp)
jmp 0xf516
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x3070
movq %rax, %rcx
movq -0x50(%rbp), %rax
cmpq %rcx, %rax
jae 0xf57e
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf547
leaq 0x68374(%rip), %rax     # 0x778b5
movq %rax, -0x60(%rbp)
jmp 0xf557
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movslq -0x14(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0xf4e2
movl $0x0, -0x18(%rbp)
movslq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf5a9
leaq 0x68312(%rip), %rax     # 0x778b5
movq %rax, -0x70(%rbp)
jmp 0xf5b9
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
callq 0x3070
movq %rax, %rcx
movq -0x68(%rbp), %rax
cmpq %rcx, %rax
jae 0xf621
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf5ea
leaq 0x682d1(%rip), %rax     # 0x778b5
movq %rax, -0x78(%rbp)
jmp 0xf5fa
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movslq -0x18(%rbp), %rcx
movsbl (%rax,%rcx), %edi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x30d0
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xf585
addq $0x80, %rsp
popq %rbp
retq
nopw (%rax,%rax)