// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/irgen_c.c
// Function: ir_stat
static void _ir_stat(
	IRGeneratorCContext *ctx,
	int indentLevel,
	ParserASTNode *node_stat
) {
	assert(ctx);
	assert(node_stat);

	switch (node_stat->type) {
		case FE_NODE_VAR: {
			_ir_stat_var(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_IF: {
			_ir_stat_if(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_WHILE: {
			_ir_stat_while(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_DO: {
			_ir_stat_do(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_FOR: {
			_ir_stat_for(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_BREAK: {
			_ir_stat_break(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_CONTINUE: {
			_ir_stat_continue(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_RETURN: {
			_ir_stat_return(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_GOTO: {
			_ir_stat_goto(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_LABEL: {
			_ir_stat_label(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_ASM: {
			_ir_stat_asm(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_EXPR: {
			_ir_stat_expr(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_DUMMY: {
			
			break;
		}
		case FE_NODE_STAT_VA_START: {
			_ir_stat_va_start(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_VA_END: {
			_ir_stat_va_end(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STAT_VA_COPY: {
			_ir_stat_va_copy(ctx, indentLevel, node_stat);
			break;
		}
		case FE_NODE_STATS_BLOCK: {
			_ir_stats_block(ctx, indentLevel, node_stat);
			break;
		}
		default: {
			assert(0);
			break;
		}
	}
}

// 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 0x25d6c
jmp 0x25d8b
leaq 0x567e3(%rip), %rdi     # 0x7c556
leaq 0x5106e(%rip), %rsi     # 0x76de8
movl $0x69a, %edx            # imm = 0x69A
leaq 0x51bc8(%rip), %rcx     # 0x7794e
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x25d94
jmp 0x25db3
leaq 0x50535(%rip), %rdi     # 0x762d0
leaq 0x51046(%rip), %rsi     # 0x76de8
movl $0x69b, %edx            # imm = 0x69B
leaq 0x51ba0(%rip), %rcx     # 0x7794e
callq 0x30a0
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
subl $0xb00, %eax            # imm = 0xB00
je 0x25ff6
jmp 0x25dc9
movl -0x1c(%rbp), %eax
subl $0xb10, %eax            # imm = 0xB10
je 0x25edd
jmp 0x25dd9
movl -0x1c(%rbp), %eax
subl $0xb20, %eax            # imm = 0xB20
je 0x25ef2
jmp 0x25de9
movl -0x1c(%rbp), %eax
subl $0xb30, %eax            # imm = 0xB30
je 0x25f07
jmp 0x25df9
movl -0x1c(%rbp), %eax
subl $0xb40, %eax            # imm = 0xB40
je 0x25f1c
jmp 0x25e09
movl -0x1c(%rbp), %eax
subl $0xb50, %eax            # imm = 0xB50
je 0x25f46
jmp 0x25e19
movl -0x1c(%rbp), %eax
subl $0xb60, %eax            # imm = 0xB60
je 0x25f31
jmp 0x25e29
movl -0x1c(%rbp), %eax
subl $0xb70, %eax            # imm = 0xB70
je 0x25f5b
jmp 0x25e39
movl -0x1c(%rbp), %eax
subl $0xb80, %eax            # imm = 0xB80
je 0x25f70
jmp 0x25e49
movl -0x1c(%rbp), %eax
subl $0xb90, %eax            # imm = 0xB90
je 0x25f85
jmp 0x25e59
movl -0x1c(%rbp), %eax
subl $0xba0, %eax            # imm = 0xBA0
je 0x25f9a
jmp 0x25e69
movl -0x1c(%rbp), %eax
subl $0xbc0, %eax            # imm = 0xBC0
je 0x25fbe
jmp 0x25e79
movl -0x1c(%rbp), %eax
subl $0xbd0, %eax            # imm = 0xBD0
je 0x25fc0
jmp 0x25e89
movl -0x1c(%rbp), %eax
subl $0xbd1, %eax            # imm = 0xBD1
je 0x25fd2
jmp 0x25e99
movl -0x1c(%rbp), %eax
subl $0xbd2, %eax            # imm = 0xBD2
je 0x25fe4
jmp 0x25ea9
movl -0x1c(%rbp), %eax
subl $0xc00, %eax            # imm = 0xC00
je 0x25ec8
jmp 0x25eb5
movl -0x1c(%rbp), %eax
subl $0xe00, %eax            # imm = 0xE00
je 0x25fac
jmp 0x26008
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x26030
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x260e0
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x26440
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x265d0
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x267a0
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x26b80
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x26c90
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x26da0
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x26fc0
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x27180
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x27300
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x273b0
jmp 0x26027
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x274e0
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x27780
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x27930
jmp 0x26027
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movq -0x18(%rbp), %rdx
callq 0x25b90
jmp 0x26027
leaq 0x4c44c(%rip), %rdi     # 0x7245b
leaq 0x50dd2(%rip), %rsi     # 0x76de8
movl $0x6e3, %edx            # imm = 0x6E3
leaq 0x5192c(%rip), %rcx     # 0x7794e
callq 0x30a0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)