// File: /workspace/github_c_makefile_star2_O2/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 $0x38, %rsp
testq %rdi, %rdi
je 0x136bd
movq %rdi, %rbx
movq (%rdi), %rax
testq %rax, %rax
je 0x136dc
movq 0x8(%rax), %rax
testq %rax, %rax
je 0x136fb
cmpl $0x100, (%rax)          # imm = 0x100
jne 0x1371a
movq %rax, -0x30(%rbp)
cmpq $0x0, 0x8(%rbx)
je 0x13739
xorl %r14d, %r14d
leaq 0x2d832(%rip), %r15     # 0x40979
cmpq $0x16, %r14
je 0x13160
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13147
xorl %r14d, %r14d
leaq 0x2d826(%rip), %r15     # 0x40990
cmpq $0x14, %r14
je 0x13183
movsbl (%r14,%r15), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x1316a
movq 0x8(%rbx), %rsi
pushq $0xa
popq %rdi
callq 0x30c0
xorl %r14d, %r14d
movq -0x30(%rbp), %r15
movslq 0x14(%rbx), %rax
cmpq %rax, %r14
jge 0x131b6
movq 0x8(%rbx), %rsi
movq 0x18(%rbx), %rax
movsbl (%rax,%r14), %edi
callq 0x30c0
incq %r14
jmp 0x13196
xorl %r13d, %r13d
pushq $0xa
popq %rdi
movslq 0x44(%r15), %rax
cmpq %rax, %r13
jge 0x135b6
movq 0x48(%r15), %rax
movq (%rax,%r13,8), %r12
testq %r12, %r12
je 0x135c5
movl (%r12), %eax
cmpl $0xa00, %eax            # imm = 0xA00
je 0x13254
cmpl $0xd00, %eax            # imm = 0xD00
je 0x13207
cmpl $0xc00, %eax            # imm = 0xC00
jne 0x135e4
movq %rbx, %rdi
movq %r12, %rsi
callq 0x138a4
jmp 0x13583
movq %r13, -0x38(%rbp)
cmpl $0x2, 0x44(%r12)
jne 0x13603
movq 0x48(%r12), %rax
movq (%rax), %r13
cmpl $0x200, (%r13)          # imm = 0x200
jne 0x13622
movq 0x8(%rax), %r15
xorl %r14d, %r14d
cmpq $0x8, %r14
je 0x1327d
leaq 0x2ccc4(%rip), %rax     # 0x3ff05
movsbl (%r14,%rax), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13234
movl 0x44(%r12), %eax
cmpl $0x4, %eax
movq %r13, -0x38(%rbp)
je 0x132ec
cmpl $0x3, %eax
jne 0x1369e
movq 0x48(%r12), %rcx
leaq 0x10(%rcx), %rax
xorl %r12d, %r12d
jmp 0x132f9
xorl %r14d, %r14d
movq 0x10(%r13), %rax
movslq 0x4(%rax), %rcx
cmpq %rcx, %r14
jge 0x132a4
movq 0x8(%rax), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13280
movl (%r15), %eax
cmpl $0xd01, %eax            # imm = 0xD01
je 0x133ef
cmpl $0x900, %eax            # imm = 0x900
movq -0x38(%rbp), %r13
jne 0x1367f
xorl %r14d, %r14d
movq -0x30(%rbp), %r15
cmpq $0x2, %r14
je 0x13583
leaq 0x2d3a4(%rip), %rax     # 0x4067d
movsbl (%r14,%rax), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x132c8
movq 0x48(%r12), %rcx
movq 0x10(%rcx), %r12
leaq 0x18(%rcx), %rax
movq (%rcx), %r13
cmpl $0x200, (%r13)          # imm = 0x200
jne 0x13660
movq 0x8(%rcx), %r15
cmpl $0xa01, (%r15)          # imm = 0xA01
jne 0x13641
movq (%rax), %rax
movq %rax, -0x50(%rbp)
movq 0x8(%rbx), %rsi
callq 0x30c0
testq %r12, %r12
je 0x1347e
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x6e1c
movq 0x10(%r13), %rax
movq 0x8(%rax), %rsi
movl 0x4(%rax), %edx
movq %r14, %rdi
callq 0x700f
movq %r14, %rdi
leaq 0x2e113(%rip), %rsi     # 0x41470
callq 0x6e99
leaq -0x60(%rbp), %r13
movq %r13, %rdi
callq 0x6e1c
movq %r13, %rdi
movq %r15, %rsi
callq 0x1404d
movq %r14, %rdi
movq %r13, %rsi
callq 0x712e
movq %r13, %rdi
callq 0x72b9
movq %r14, %rdi
leaq 0x2d69c(%rip), %rsi     # 0x40a32
callq 0x6e99
movq %r14, %rdi
movq %r12, %rsi
callq 0x13ba1
xorl %r14d, %r14d
movq -0x30(%rbp), %r15
movq -0x38(%rbp), %r13
movq -0x50(%rbp), %r12
movslq -0x44(%rbp), %rax
cmpq %rax, %r14
jge 0x133d5
movq -0x40(%rbp), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x133b5
movq 0x8(%rbx), %rsi
pushq $0x20
popq %rdi
callq 0x30c0
leaq -0x48(%rbp), %rdi
callq 0x72b9
jmp 0x13546
xorl %r14d, %r14d
leaq 0x2df4d(%rip), %r13     # 0x41346
cmpq $0x3, %r14
je 0x13412
movsbl (%r14,%r13), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x133f9
xorl %r13d, %r13d
pushq $0x9
popq %r14
movslq 0x44(%r15), %rax
cmpq %rax, %r13
jge 0x13443
movq 0x8(%rbx), %rsi
movl %r14d, %edi
callq 0x30c0
movq 0x48(%r15), %rax
movq (%rax,%r13,8), %rsi
movq %rbx, %rdi
callq 0x138a4
incq %r13
jmp 0x13419
cmpb $0x0, 0x68(%r12)
je 0x1358b
xorl %r14d, %r14d
movq -0x30(%rbp), %r15
movq -0x38(%rbp), %r13
leaq 0x2dee9(%rip), %r12     # 0x4134a
cmpq $0x1b, %r14
je 0x13583
movsbl (%r14,%r12), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13461
xorl %r14d, %r14d
leaq 0x2dfe8(%rip), %r12     # 0x41470
cmpq $0x5, %r14
je 0x134a8
leaq 0x2d63c(%rip), %rax     # 0x40ad1
movsbl (%r14,%rax), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13488
xorl %r14d, %r14d
movq 0x10(%r13), %rax
movslq 0x4(%rax), %rcx
cmpq %rcx, %r14
jge 0x134cf
movq 0x8(%rax), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x134ab
xorl %r14d, %r14d
movq -0x38(%rbp), %r13
cmpq $0x2, %r14
je 0x134ef
movsbl (%r14,%r12), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x134d6
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x6e1c
movq %r14, %rdi
movq %r15, %rsi
callq 0x1404d
xorl %r14d, %r14d
movq -0x30(%rbp), %r15
movq -0x50(%rbp), %r12
movslq -0x44(%rbp), %rax
cmpq %rax, %r14
jge 0x13531
movq -0x40(%rbp), %rax
movsbl (%rax,%r14), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13511
leaq -0x48(%rbp), %rdi
callq 0x72b9
movq 0x8(%rbx), %rsi
pushq $0x29
popq %rdi
callq 0x30c0
cmpl $0x900, (%r12)          # imm = 0x900
movq 0x8(%rbx), %rsi
pushq $0xa
popq %r14
jne 0x13562
pushq $0x3b
popq %rdi
callq 0x30c0
jmp 0x13577
movl %r14d, %edi
callq 0x30c0
movq %rbx, %rdi
xorl %esi, %esi
movq %r12, %rdx
callq 0x15e81
movq 0x8(%rbx), %rsi
movl %r14d, %edi
callq 0x30c0
incq %r13
jmp 0x131b9
xorl %r14d, %r14d
movq -0x30(%rbp), %r15
movq -0x38(%rbp), %r13
cmpq $0x3, %r14
je 0x13583
leaq 0x2ddc3(%rip), %rax     # 0x41366
movsbl (%r14,%rax), %edi
movq 0x8(%rbx), %rsi
callq 0x30c0
incq %r14
jmp 0x13596
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x2c826(%rip), %rdi     # 0x3fdf2
leaq 0x2d2e1(%rip), %rsi     # 0x408b4
leaq 0x2d3cb(%rip), %rcx     # 0x409a5
movl $0x743, %edx            # imm = 0x743
callq 0x30a0
leaq 0x28d75(%rip), %rdi     # 0x3c360
leaq 0x2d2c2(%rip), %rsi     # 0x408b4
leaq 0x2d3ac(%rip), %rcx     # 0x409a5
movl $0x753, %edx            # imm = 0x753
callq 0x30a0
leaq 0x3472b(%rip), %rdi     # 0x47d35
leaq 0x2d2a3(%rip), %rsi     # 0x408b4
leaq 0x2dcf6(%rip), %rcx     # 0x4130e
movl $0x4f8, %edx            # imm = 0x4F8
callq 0x30a0
leaq 0x2afe1(%rip), %rdi     # 0x3e60a
leaq 0x2d284(%rip), %rsi     # 0x408b4
leaq 0x2dcd7(%rip), %rcx     # 0x4130e
movl $0x4fb, %edx            # imm = 0x4FB
callq 0x30a0
leaq 0x2c93b(%rip), %rdi     # 0x3ff83
leaq 0x2d265(%rip), %rsi     # 0x408b4
leaq 0x2dd14(%rip), %rcx     # 0x4136a
movl $0x716, %edx            # imm = 0x716
callq 0x30a0
leaq 0x2afa3(%rip), %rdi     # 0x3e60a
leaq 0x2d246(%rip), %rsi     # 0x408b4
leaq 0x2dcf5(%rip), %rcx     # 0x4136a
movl $0x715, %edx            # imm = 0x715
callq 0x30a0
leaq 0x28cda(%rip), %rdi     # 0x3c360
leaq 0x2d227(%rip), %rsi     # 0x408b4
leaq 0x2dc7a(%rip), %rcx     # 0x4130e
movl $0x50f, %edx            # imm = 0x50F
callq 0x30a0
leaq 0x28cbb(%rip), %rdi     # 0x3c360
leaq 0x2d208(%rip), %rsi     # 0x408b4
leaq 0x2dcb7(%rip), %rcx     # 0x4136a
movl $0x713, %edx            # imm = 0x713
callq 0x30a0
leaq 0x2a700(%rip), %rdi     # 0x3ddc4
leaq 0x2d1e9(%rip), %rsi     # 0x408b4
leaq 0x2d1fe(%rip), %rcx     # 0x408d0
movl $0x76d, %edx            # imm = 0x76D
callq 0x30a0
leaq 0x2acd8(%rip), %rdi     # 0x3e3bb
leaq 0x2d1ca(%rip), %rsi     # 0x408b4
leaq 0x2d1df(%rip), %rcx     # 0x408d0
movl $0x76e, %edx            # imm = 0x76E
callq 0x30a0
leaq 0x2acc5(%rip), %rdi     # 0x3e3c7
leaq 0x2d1ab(%rip), %rsi     # 0x408b4
leaq 0x2d1c0(%rip), %rcx     # 0x408d0
movl $0x76f, %edx            # imm = 0x76F
callq 0x30a0
leaq 0x2acb7(%rip), %rdi     # 0x3e3d8
leaq 0x2d18c(%rip), %rsi     # 0x408b4
leaq 0x2d1a1(%rip), %rcx     # 0x408d0
movl $0x770, %edx            # imm = 0x770
callq 0x30a0
leaq 0x2acc1(%rip), %rdi     # 0x3e401
leaq 0x2d16d(%rip), %rsi     # 0x408b4
leaq 0x2d182(%rip), %rcx     # 0x408d0
movl $0x771, %edx            # imm = 0x771
callq 0x30a0