// File: /workspace/github_c_makefile_star2_O1/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 0x146f7
movq %rdi, %rbx
movq (%rdi), %rax
testq %rax, %rax
je 0x14716
movq 0x8(%rax), %rax
testq %rax, %rax
je 0x14735
cmpl $0x100, (%rax)          # imm = 0x100
jne 0x14754
movq %rax, -0x50(%rbp)
cmpq $0x0, 0x8(%rbx)
je 0x14773
xorl %r14d, %r14d
leaq 0x3072e(%rip), %r15     # 0x44881
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x16, %r14
jne 0x14153
xorl %r14d, %r14d
leaq 0x30724(%rip), %r15     # 0x44898
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x14, %r14
jne 0x14174
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
cmpl $0x0, 0x14(%rbx)
jle 0x141c0
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 0x141a2
movq -0x50(%rbp), %rdx
cmpl $0x0, 0x44(%rdx)
jle 0x145f0
xorl %r12d, %r12d
leaq 0x311a0(%rip), %r15     # 0x45378
leaq 0x2fcca(%rip), %rcx     # 0x43ea9
movq 0x48(%rdx), %rax
movq (%rax,%r12,8), %rsi
testq %rsi, %rsi
je 0x145ff
movl (%rsi), %eax
cmpl $0xa00, %eax            # imm = 0xA00
je 0x142e4
cmpl $0xd00, %eax            # imm = 0xD00
je 0x1421c
cmpl $0xc00, %eax            # imm = 0xC00
jne 0x1461e
movq %rbx, %rdi
callq 0x14890
jmp 0x145a5
cmpl $0x2, 0x44(%rsi)
jne 0x1469a
movq %r12, -0x30(%rbp)
movq %rsi, -0x38(%rbp)
movq 0x48(%rsi), %rax
movq (%rax), %r15
cmpl $0x200, (%r15)          # imm = 0x200
jne 0x1463d
movq 0x8(%rax), %r12
xorl %r14d, %r14d
movq %rcx, %r13
movsbl (%r14,%r13), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x8, %r14
jne 0x1424c
movq 0x10(%r15), %rax
cmpl $0x0, 0x4(%rax)
jle 0x14292
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 0x14270
movl (%r12), %eax
cmpl $0xd01, %eax            # imm = 0xD01
leaq 0x30fb0(%rip), %r13     # 0x45252
je 0x14409
cmpl $0x900, %eax            # imm = 0x900
jne 0x146b9
xorl %r14d, %r14d
movq -0x30(%rbp), %r12
leaq 0x310b7(%rip), %r15     # 0x45378
leaq 0x30359(%rip), %rax     # 0x44621
movsbl (%r14,%rax), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x1, %r14
je 0x142c1
jmp 0x145a5
movl 0x44(%rsi), %eax
cmpl $0x4, %eax
je 0x14302
cmpl $0x3, %eax
jne 0x146d8
movq 0x48(%rsi), %rcx
leaq 0x10(%rcx), %rax
xorl %r14d, %r14d
jmp 0x1430e
movq 0x48(%rsi), %rcx
movq 0x10(%rcx), %r14
leaq 0x18(%rcx), %rax
movq %r12, -0x30(%rbp)
movq (%rcx), %r13
cmpl $0x200, (%r13)          # imm = 0x200
jne 0x1465c
movq 0x8(%rcx), %r12
cmpl $0xa01, (%r12)          # imm = 0xA01
jne 0x1467b
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
testq %r14, %r14
je 0x14499
movq %r14, -0x58(%rbp)
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x7548
movq 0x10(%r13), %rax
movq 0x8(%rax), %rsi
movl 0x4(%rax), %edx
movq %r14, %rdi
callq 0x7768
movq %r14, %rdi
movq %r15, %rsi
callq 0x75cf
leaq -0x68(%rbp), %r13
movq %r13, %rdi
callq 0x7548
movq %r13, %rdi
movq %r12, %rsi
callq 0x15083
movq %r14, %rdi
movq %r13, %rsi
callq 0x788c
movq %r13, %rdi
callq 0x7a38
movq %r14, %rdi
leaq 0x30585(%rip), %rsi     # 0x4493a
callq 0x75cf
movq %r14, %rdi
movq -0x58(%rbp), %rsi
callq 0x14ba1
cmpl $0x0, -0x44(%rbp)
jle 0x143ed
xorl %r14d, %r14d
movq -0x40(%rbp), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movslq -0x44(%rbp), %rax
cmpq %rax, %r14
jl 0x143cf
movq 0x8(%rbx), %rsi
movl $0x20, %edi
callq 0x30c0
leaq -0x48(%rbp), %rdi
callq 0x7a38
jmp 0x1455f
xorl %r14d, %r14d
leaq 0x30e3b(%rip), %r15     # 0x4524e
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x3, %r14
jne 0x14413
cmpl $0x0, 0x44(%r12)
jle 0x14461
xorl %r15d, %r15d
movq 0x8(%rbx), %rsi
movl $0x9, %edi
callq 0x30c0
movq 0x48(%r12), %rax
movq (%rax,%r15,8), %rsi
movq %rbx, %rdi
callq 0x14890
incq %r15
movslq 0x44(%r12), %rax
cmpq %rax, %r15
jl 0x14435
movq -0x38(%rbp), %rax
cmpb $0x0, 0x68(%rax)
je 0x145c2
xorl %r14d, %r14d
movq -0x30(%rbp), %r12
leaq 0x30efb(%rip), %r15     # 0x45378
movsbl (%r14,%r13), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x1b, %r14
jne 0x1447d
jmp 0x145a5
xorl %r14d, %r14d
leaq 0x30536(%rip), %r15     # 0x449d9
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x5, %r14
jne 0x144a3
movq 0x10(%r13), %rax
cmpl $0x0, 0x4(%rax)
jle 0x144e9
xorl %r14d, %r14d
movq 0x8(%rax), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movq 0x10(%r13), %rax
movslq 0x4(%rax), %rcx
cmpq %rcx, %r14
jl 0x144c7
xorl %r14d, %r14d
leaq 0x30e85(%rip), %r15     # 0x45378
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x1, %r14
je 0x144f3
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x7548
movq %r14, %rdi
movq %r12, %rsi
callq 0x15083
cmpl $0x0, -0x44(%rbp)
jle 0x14548
xorl %r14d, %r14d
movq -0x40(%rbp), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
movslq -0x44(%rbp), %rax
cmpq %rax, %r14
jl 0x1452a
leaq -0x48(%rbp), %rdi
callq 0x7a38
movq 0x8(%rbx), %rsi
movl $0x29, %edi
callq 0x30c0
movq -0x30(%rbp), %r12
movq -0x38(%rbp), %r14
cmpl $0x900, (%r14)          # imm = 0x900
movq 0x8(%rbx), %rsi
jne 0x14580
movl $0x3b, %edi
callq 0x30c0
jmp 0x14597
movl $0xa, %edi
callq 0x30c0
movq %rbx, %rdi
xorl %esi, %esi
movq %r14, %rdx
callq 0x171ff
movq 0x8(%rbx), %rsi
movl $0xa, %edi
callq 0x30c0
incq %r12
movq -0x50(%rbp), %rdx
movslq 0x44(%rdx), %rax
cmpq %rax, %r12
leaq 0x2f8ef(%rip), %rcx     # 0x43ea9
jl 0x141df
jmp 0x145f0
xorl %r14d, %r14d
movq -0x30(%rbp), %r12
leaq 0x30da8(%rip), %r15     # 0x45378
leaq 0x30c97(%rip), %rax     # 0x4526e
movsbl (%r14,%rax), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
cmpq $0x3, %r14
jne 0x145d0
jmp 0x145a5
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2f790(%rip), %rdi     # 0x43d96
leaq 0x301af(%rip), %rsi     # 0x447bc
leaq 0x30299(%rip), %rcx     # 0x448ad
movl $0x743, %edx            # imm = 0x743
callq 0x30a0
leaq 0x2bd5f(%rip), %rdi     # 0x40384
leaq 0x30190(%rip), %rsi     # 0x447bc
leaq 0x3027a(%rip), %rcx     # 0x448ad
movl $0x753, %edx            # imm = 0x753
callq 0x30a0
leaq 0x2df6a(%rip), %rdi     # 0x425ae
leaq 0x30171(%rip), %rsi     # 0x447bc
leaq 0x30bc4(%rip), %rcx     # 0x45216
movl $0x4fb, %edx            # imm = 0x4FB
callq 0x30a0
leaq 0x2df4b(%rip), %rdi     # 0x425ae
leaq 0x30152(%rip), %rsi     # 0x447bc
leaq 0x30c01(%rip), %rcx     # 0x45272
movl $0x715, %edx            # imm = 0x715
callq 0x30a0
leaq 0x2f8a5(%rip), %rdi     # 0x43f27
leaq 0x30133(%rip), %rsi     # 0x447bc
leaq 0x30be2(%rip), %rcx     # 0x45272
movl $0x716, %edx            # imm = 0x716
callq 0x30a0
leaq 0x375b4(%rip), %rdi     # 0x4bc55
leaq 0x30114(%rip), %rsi     # 0x447bc
leaq 0x30b67(%rip), %rcx     # 0x45216
movl $0x4f8, %edx            # imm = 0x4F8
callq 0x30a0
leaq 0x2bcc4(%rip), %rdi     # 0x40384
leaq 0x300f5(%rip), %rsi     # 0x447bc
leaq 0x30b48(%rip), %rcx     # 0x45216
movl $0x50f, %edx            # imm = 0x50F
callq 0x30a0
leaq 0x2bca5(%rip), %rdi     # 0x40384
leaq 0x300d6(%rip), %rsi     # 0x447bc
leaq 0x30b85(%rip), %rcx     # 0x45272
movl $0x713, %edx            # imm = 0x713
callq 0x30a0
leaq 0x3a268(%rip), %rdi     # 0x4e966
leaq 0x300b7(%rip), %rsi     # 0x447bc
leaq 0x300cc(%rip), %rcx     # 0x447d8
movl $0x76d, %edx            # imm = 0x76D
callq 0x30a0
leaq 0x2dc42(%rip), %rdi     # 0x4235f
leaq 0x30098(%rip), %rsi     # 0x447bc
leaq 0x300ad(%rip), %rcx     # 0x447d8
movl $0x76e, %edx            # imm = 0x76E
callq 0x30a0
leaq 0x2dc2f(%rip), %rdi     # 0x4236b
leaq 0x30079(%rip), %rsi     # 0x447bc
leaq 0x3008e(%rip), %rcx     # 0x447d8
movl $0x76f, %edx            # imm = 0x76F
callq 0x30a0
leaq 0x2dc21(%rip), %rdi     # 0x4237c
leaq 0x3005a(%rip), %rsi     # 0x447bc
leaq 0x3006f(%rip), %rcx     # 0x447d8
movl $0x770, %edx            # imm = 0x770
callq 0x30a0
leaq 0x2dc2b(%rip), %rdi     # 0x423a5
leaq 0x3003b(%rip), %rsi     # 0x447bc
leaq 0x30050(%rip), %rcx     # 0x447d8
movl $0x771, %edx            # imm = 0x771
callq 0x30a0