// File: /workspace/github_c_makefile_star2_O3/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: fe_irgen_c_generate
void fe_irgen_c_generate(IRGeneratorCContext *ctx) {
	assert(ctx);
	assert(ctx->psrctx);
	assert(ctx->psrctx->ast);
	assert(ctx->psrctx->ast->type == FE_NODE_MODULE);
	assert(ctx->out);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
testq %rdi, %rdi
je 0x14480
movq %rdi, %rbx
movq (%rdi), %rax
testq %rax, %rax
je 0x1449f
movq 0x8(%rax), %r12
testq %r12, %r12
je 0x144be
cmpl $0x100, (%r12)          # imm = 0x100
jne 0x144dd
cmpq $0x0, 0x8(%rbx)
je 0x144fc
xorl %r14d, %r14d
leaq 0x2fa58(%rip), %r15     # 0x43951
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x16, %r14
jne 0x13ef9
xorl %r14d, %r14d
leaq 0x2fa4e(%rip), %r15     # 0x43968
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x14, %r14
jne 0x13f1a
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
cmpl $0x0, 0x14(%rbx)
jle 0x13f66
xorl %r14d, %r14d
movq 0x8(%rbx), %rsi
movq 0x18(%rbx), %rax
movsbl (%rax,%r14), %edi
callq 0x30c0
incq %r14
movslq 0x14(%rbx), %rax
cmpq %rax, %r14
jl 0x13f48
cmpl $0x0, 0x44(%r12)
jle 0x14379
xorl %r13d, %r13d
movq %r12, -0x38(%rbp)
movq 0x48(%r12), %rax
movq (%rax,%r13,8), %rsi
testq %rsi, %rsi
je 0x14388
movl (%rsi), %eax
cmpl $0xa00, %eax            # imm = 0xA00
je 0x140df
cmpl $0xd00, %eax            # imm = 0xD00
je 0x13fb7
cmpl $0xc00, %eax            # imm = 0xC00
jne 0x143a7
movq %rbx, %rdi
callq 0x14619
jmp 0x1433b
cmpl $0x2, 0x44(%rsi)
jne 0x14423
movq %r13, -0x30(%rbp)
movq %rsi, -0x40(%rbp)
movq 0x48(%rsi), %rax
movq (%rax), %r12
cmpl $0x200, (%r12)          # imm = 0x200
jne 0x143c6
movq 0x8(%rax), %r13
xorl %r14d, %r14d
leaq 0x2ef09(%rip), %r15     # 0x42ef5
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x8, %r14
jne 0x13fec
movq 0x10(%r12), %rax
cmpl $0x0, 0x4(%rax)
jle 0x14034
xorl %r14d, %r14d
movq 0x8(%rax), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movq 0x10(%r12), %rax
movslq 0x4(%rax), %rcx
cmpq %rcx, %r14
jl 0x14011
movl (%r13), %eax
cmpl $0x900, %eax            # imm = 0x900
je 0x14207
cmpl $0xd01, %eax            # imm = 0xD01
leaq 0x302cc(%rip), %r15     # 0x4431b
jne 0x14442
xorl %r14d, %r14d
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x3, %r14
jne 0x14058
cmpl $0x0, 0x44(%r13)
jle 0x140a3
xorl %r12d, %r12d
movq 0x8(%rbx), %rsi
movl $0x9, %edi
callq 0x30c0
movq 0x48(%r13), %rax
movq (%rax,%r12,8), %rsi
movq %rbx, %rdi
callq 0x14619
incq %r12
movslq 0x44(%r13), %rax
cmpq %rax, %r12
jl 0x14079
movq -0x40(%rbp), %rax
cmpb $0x0, 0x68(%rax)
je 0x1434e
xorl %r14d, %r14d
movq -0x38(%rbp), %r12
movq -0x30(%rbp), %r13
leaq 0x3025c(%rip), %r15     # 0x4431f
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x1b, %r14
jne 0x140c3
jmp 0x1433b
movl 0x44(%rsi), %eax
cmpl $0x4, %eax
je 0x140fd
cmpl $0x3, %eax
jne 0x14461
movq 0x48(%rsi), %rcx
leaq 0x10(%rcx), %rax
xorl %r14d, %r14d
jmp 0x14109
movq 0x48(%rsi), %rcx
movq 0x10(%rcx), %r14
leaq 0x18(%rcx), %rax
movq %r13, -0x30(%rbp)
movq (%rcx), %r15
cmpl $0x200, (%r15)          # imm = 0x200
jne 0x143e5
movq 0x8(%rcx), %r13
cmpl $0xa01, (%r13)          # imm = 0xA01
jne 0x14404
movq (%rax), %rax
movq %rax, -0x40(%rbp)
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
testq %r14, %r14
je 0x14230
movq %r14, -0x58(%rbp)
leaq -0x50(%rbp), %r14
movq %r14, %rdi
callq 0x7354
movq 0x10(%r15), %rax
movq 0x8(%rax), %rsi
movl 0x4(%rax), %edx
movq %r14, %rdi
callq 0x7577
movq %r14, %rdi
leaq 0x302cb(%rip), %rsi     # 0x44445
callq 0x73db
leaq -0x68(%rbp), %r15
movq %r15, %rdi
callq 0x7354
movq %r15, %rdi
movq %r13, %rsi
callq 0x14de0
movq %r14, %rdi
movq %r15, %rsi
callq 0x769e
movq %r15, %rdi
callq 0x7852
movq %r14, %rdi
leaq 0x2f857(%rip), %rsi     # 0x43a0a
callq 0x73db
movq %r14, %rdi
movq -0x58(%rbp), %rsi
callq 0x14901
cmpl $0x0, -0x4c(%rbp)
jle 0x141eb
xorl %r14d, %r14d
movq -0x48(%rbp), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movslq -0x4c(%rbp), %rax
cmpq %rax, %r14
jl 0x141cd
movq 0x8(%rbx), %rsi
movl $0x20, %edi
callq 0x30c0
leaq -0x50(%rbp), %rdi
callq 0x7852
jmp 0x142f5
movq 0x8(%rbx), %rsi
movl $0x3b, %edi
callq 0x30c0
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
movq -0x38(%rbp), %r12
movq -0x30(%rbp), %r13
jmp 0x1433b
xorl %r14d, %r14d
leaq 0x2f86c(%rip), %r12     # 0x43aa6
movsbl (%r14,%r12), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x5, %r14
jne 0x1423a
movq 0x10(%r15), %rax
cmpl $0x0, 0x4(%rax)
movq -0x38(%rbp), %r12
jle 0x14284
xorl %r14d, %r14d
movq 0x8(%rax), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movq 0x10(%r15), %rax
movslq 0x4(%rax), %rcx
cmpq %rcx, %r14
jl 0x14262
movq 0x8(%rbx), %rsi
movl $0x20, %edi
callq 0x30c0
movq 0x8(%rbx), %rsi
movl $0x28, %edi
callq 0x30c0
leaq -0x50(%rbp), %r14
movq %r14, %rdi
callq 0x7354
movq %r14, %rdi
movq %r13, %rsi
callq 0x14de0
cmpl $0x0, -0x4c(%rbp)
jle 0x142de
xorl %r14d, %r14d
movq -0x48(%rbp), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movslq -0x4c(%rbp), %rax
cmpq %rax, %r14
jl 0x142c0
leaq -0x50(%rbp), %rdi
callq 0x7852
movq 0x8(%rbx), %rsi
movl $0x29, %edi
callq 0x30c0
movq -0x30(%rbp), %r13
movq -0x40(%rbp), %r14
cmpl $0x900, (%r14)          # imm = 0x900
movq 0x8(%rbx), %rsi
jne 0x14316
movl $0x3b, %edi
callq 0x30c0
jmp 0x1432d
movl $0xa, %edi
callq 0x30c0
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x16ea5
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
incq %r13
movslq 0x44(%r12), %rax
cmpq %rax, %r13
jl 0x13f79
jmp 0x14379
xorl %r14d, %r14d
movq -0x38(%rbp), %r12
movq -0x30(%rbp), %r13
leaq 0x2ffdb(%rip), %r15     # 0x4433b
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x3, %r14
jne 0x14360
jmp 0x1433b
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2ea53(%rip), %rdi     # 0x42de2
leaq 0x2f4f6(%rip), %rsi     # 0x4388c
leaq 0x2f5e0(%rip), %rcx     # 0x4397d
movl $0x743, %edx            # imm = 0x743
callq 0x30a0
leaq 0x2afb2(%rip), %rdi     # 0x3f360
leaq 0x2f4d7(%rip), %rsi     # 0x4388c
leaq 0x2f5c1(%rip), %rcx     # 0x4397d
movl $0x753, %edx            # imm = 0x753
callq 0x30a0
leaq 0x2d22d(%rip), %rdi     # 0x415fa
leaq 0x2f4b8(%rip), %rsi     # 0x4388c
leaq 0x2ff08(%rip), %rcx     # 0x442e3
movl $0x4fb, %edx            # imm = 0x4FB
callq 0x30a0
leaq 0x2d20e(%rip), %rdi     # 0x415fa
leaq 0x2f499(%rip), %rsi     # 0x4388c
leaq 0x2ff45(%rip), %rcx     # 0x4433f
movl $0x715, %edx            # imm = 0x715
callq 0x30a0
leaq 0x2eb68(%rip), %rdi     # 0x42f73
leaq 0x2f47a(%rip), %rsi     # 0x4388c
leaq 0x2ff26(%rip), %rcx     # 0x4433f
movl $0x716, %edx            # imm = 0x716
callq 0x30a0
leaq 0x368cb(%rip), %rdi     # 0x4acf5
leaq 0x2f45b(%rip), %rsi     # 0x4388c
leaq 0x2feab(%rip), %rcx     # 0x442e3
movl $0x4f8, %edx            # imm = 0x4F8
callq 0x30a0
leaq 0x2af17(%rip), %rdi     # 0x3f360
leaq 0x2f43c(%rip), %rsi     # 0x4388c
leaq 0x2fe8c(%rip), %rcx     # 0x442e3
movl $0x50f, %edx            # imm = 0x50F
callq 0x30a0
leaq 0x2aef8(%rip), %rdi     # 0x3f360
leaq 0x2f41d(%rip), %rsi     # 0x4388c
leaq 0x2fec9(%rip), %rcx     # 0x4433f
movl $0x713, %edx            # imm = 0x713
callq 0x30a0
leaq 0x2c92d(%rip), %rdi     # 0x40db4
leaq 0x2f3fe(%rip), %rsi     # 0x4388c
leaq 0x2f413(%rip), %rcx     # 0x438a8
movl $0x76d, %edx            # imm = 0x76D
callq 0x30a0
leaq 0x2cf05(%rip), %rdi     # 0x413ab
leaq 0x2f3df(%rip), %rsi     # 0x4388c
leaq 0x2f3f4(%rip), %rcx     # 0x438a8
movl $0x76e, %edx            # imm = 0x76E
callq 0x30a0
leaq 0x2cef2(%rip), %rdi     # 0x413b7
leaq 0x2f3c0(%rip), %rsi     # 0x4388c
leaq 0x2f3d5(%rip), %rcx     # 0x438a8
movl $0x76f, %edx            # imm = 0x76F
callq 0x30a0
leaq 0x2cee4(%rip), %rdi     # 0x413c8
leaq 0x2f3a1(%rip), %rsi     # 0x4388c
leaq 0x2f3b6(%rip), %rcx     # 0x438a8
movl $0x770, %edx            # imm = 0x770
callq 0x30a0
leaq 0x2ceee(%rip), %rdi     # 0x413f1
leaq 0x2f382(%rip), %rsi     # 0x4388c
leaq 0x2f397(%rip), %rcx     # 0x438a8
movl $0x771, %edx            # imm = 0x771
callq 0x30a0