// File: /workspace/github_c_makefile_star2_O0/markdryan[P]subtilis/common/ir.c
// Function: prv_dump_sys_call
static void prv_dump_sys_call(subtilis_ir_sys_call_t *s)
{
	size_t i;
	size_t max_reg;

	printf("\tsyscall %zx", s->call_id);
	if (s->in_mask) {
		max_reg = 0;
		for (i = 0; i < 16; i++)
			if ((1 << i) & s->in_mask)
				max_reg++;
		i = 0;
		do {
			printf(", ");
			if ((1 << i) & s->in_mask)
				printf("%zu", s->in_regs[i]);
			i++;
		} while (i < max_reg);
	}

	if (s->out_mask) {
		printf("to ");
		max_reg = 0;
		for (i = 0; i < 16; i++)
			if ((1 << i) & s->out_mask)
				max_reg++;
		i = 0;
		do {
			if ((1 << i) & s->out_mask) {
				if (s->out_regs[i].local)
					printf("%zu", s->out_regs[i].reg);
				else
					printf("[%zu]", s->out_regs[i].reg);
			}
			i++;
			if (i == max_reg)
				break;
			printf(", ");
		} while (true);
	}

	if (s->flags_reg != SIZE_MAX) {
		if (s->flags_local)
			printf(" : %zu", s->flags_reg);
		else
			printf(" : [%zu]", s->flags_reg);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rsi
leaq 0x705bc(%rip), %rdi     # 0xab2a6
movb $0x0, %al
callq 0x120f0
movq -0x8(%rbp), %rax
cmpl $0x0, 0x8(%rax)
je 0x3adb0
movq $0x0, -0x18(%rbp)
movq $0x0, -0x10(%rbp)
cmpq $0x10, -0x10(%rbp)
jae 0x3ad4b
movq -0x10(%rbp), %rax
movl %eax, %ecx
movl $0x1, %eax
shll %cl, %eax
movq -0x8(%rbp), %rcx
andl 0x8(%rcx), %eax
cmpl $0x0, %eax
je 0x3ad3b
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x3ad3d
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x3ad0f
movq $0x0, -0x10(%rbp)
leaq 0x7292e(%rip), %rdi     # 0xad688
movb $0x0, %al
callq 0x120f0
movq -0x10(%rbp), %rax
movl %eax, %ecx
movl $0x1, %eax
shll %cl, %eax
movq -0x8(%rbp), %rcx
andl 0x8(%rcx), %eax
cmpl $0x0, %eax
je 0x3ad98
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x70529(%rip), %rdi     # 0xab2ba
movb $0x0, %al
callq 0x120f0
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jb 0x3ad53
jmp 0x3adb0
movq -0x8(%rbp), %rax
cmpl $0x0, 0xc(%rax)
je 0x3aed2
leaq 0x704ee(%rip), %rdi     # 0xab2b3
movb $0x0, %al
callq 0x120f0
movq $0x0, -0x18(%rbp)
movq $0x0, -0x10(%rbp)
cmpq $0x10, -0x10(%rbp)
jae 0x3ae18
movq -0x10(%rbp), %rax
movl %eax, %ecx
movl $0x1, %eax
shll %cl, %eax
movq -0x8(%rbp), %rcx
andl 0xc(%rcx), %eax
cmpl $0x0, %eax
je 0x3ae08
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x3ae0a
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x3addc
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl %eax, %ecx
movl $0x1, %eax
shll %cl, %eax
movq -0x8(%rbp), %rcx
andl 0xc(%rcx), %eax
cmpl $0x0, %eax
je 0x3ae9e
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
testb $0x1, 0x8(%rax)
je 0x3ae78
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
leaq 0x7044b(%rip), %rdi     # 0xab2ba
movb $0x0, %al
callq 0x120f0
jmp 0x3ae9c
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq -0x10(%rbp), %rcx
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
leaq 0x7042c(%rip), %rdi     # 0xab2c1
movb $0x0, %al
callq 0x120f0
jmp 0x3ae9e
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpq -0x18(%rbp), %rax
jne 0x3aeb6
jmp 0x3aed0
leaq 0x727cb(%rip), %rdi     # 0xad688
movb $0x0, %al
callq 0x120f0
movb $0x1, %al
testb $0x1, %al
jne 0x3ae20
jmp 0x3aed0
jmp 0x3aed2
movq -0x8(%rbp), %rax
cmpq $-0x1, 0x10(%rax)
je 0x3af17
movq -0x8(%rbp), %rax
testb $0x1, 0x18(%rax)
je 0x3aeff
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x703c1(%rip), %rdi     # 0xab2b7
movb $0x0, %al
callq 0x120f0
jmp 0x3af15
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x703b0(%rip), %rdi     # 0xab2be
movb $0x0, %al
callq 0x120f0
jmp 0x3af17
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)