// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/backend/asmgen_gas32.c
// Function: be_asmgen_gas32_generate
void be_asmgen_gas32_generate(
	ASMGeneratorGas32Context *ctx
) {
	assert(ctx);
	assert(ctx->psrctx);
	assert(ctx->psrctx->ast);
	assert(ctx->psrctx->ast->type == BE_NODE_MODULE);
	assert(ctx->out);

	_asm_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 $0x60, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0xf2a5
jmp 0xf2c4
leaq 0x70eb5(%rip), %rdi     # 0x80161
leaq 0x66645(%rip), %rsi     # 0x758f8
movl $0x2cb8, %edx           # imm = 0x2CB8
leaq 0x66659(%rip), %rcx     # 0x75918
callq 0x30a0
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
je 0xf2d0
jmp 0xf2ef
leaq 0x6667b(%rip), %rdi     # 0x75952
leaq 0x6661a(%rip), %rsi     # 0x758f8
movl $0x2cb9, %edx           # imm = 0x2CB9
leaq 0x6662e(%rip), %rcx     # 0x75918
callq 0x30a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
cmpq $0x0, 0x8(%rax)
je 0xf2ff
jmp 0xf31e
leaq 0x66658(%rip), %rdi     # 0x7595e
leaq 0x665eb(%rip), %rsi     # 0x758f8
movl $0x2cba, %edx           # imm = 0x2CBA
leaq 0x665ff(%rip), %rcx     # 0x75918
callq 0x30a0
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x100, (%rax)          # imm = 0x100
jne 0xf333
jmp 0xf352
leaq 0x66635(%rip), %rdi     # 0x7596f
leaq 0x665b7(%rip), %rsi     # 0x758f8
movl $0x2cbb, %edx           # imm = 0x2CBB
leaq 0x665cb(%rip), %rcx     # 0x75918
callq 0x30a0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xf35f
jmp 0xf37e
leaq 0x66632(%rip), %rdi     # 0x75998
leaq 0x6658b(%rip), %rsi     # 0x758f8
movl $0x2cbc, %edx           # imm = 0x2CBC
leaq 0x6659f(%rip), %rcx     # 0x75918
callq 0x30a0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rsi
callq 0xf590
movl $0x0, -0xc(%rbp)
movslq -0xc(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf3bd
leaq 0x66b88(%rip), %rax     # 0x75f3f
movq %rax, -0x28(%rbp)
jmp 0xf3cd
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x3080
movq %rax, %rcx
movq -0x20(%rbp), %rax
cmpq %rcx, %rax
jae 0xf435
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf3fe
leaq 0x66b47(%rip), %rax     # 0x75f3f
movq %rax, -0x30(%rbp)
jmp 0xf40e
movq -0x8(%rbp), %rax
movq 0x18(%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 0xf399
movl $0x0, -0x10(%rbp)
movslq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf460
leaq 0x66ae5(%rip), %rax     # 0x75f3f
movq %rax, -0x40(%rbp)
jmp 0xf470
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0x3080
movq %rax, %rcx
movq -0x38(%rbp), %rax
cmpq %rcx, %rax
jae 0xf4d8
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf4a1
leaq 0x66aa4(%rip), %rax     # 0x75f3f
movq %rax, -0x48(%rbp)
jmp 0xf4b1
movq -0x8(%rbp), %rax
movq 0x20(%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 0xf43c
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf503
leaq 0x66a42(%rip), %rax     # 0x75f3f
movq %rax, -0x58(%rbp)
jmp 0xf513
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x3080
movq %rax, %rcx
movq -0x50(%rbp), %rax
cmpq %rcx, %rax
jae 0xf57b
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, 0x8(%rax)
jne 0xf544
leaq 0x66a01(%rip), %rax     # 0x75f3f
movq %rax, -0x60(%rbp)
jmp 0xf554
movq -0x8(%rbp), %rax
movq 0x28(%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 0xf4df
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)