// File: /workspace/github_c_makefile_star2_O0/cirocosta[P]stress/src/locks-fcntl.c
// Function: create_file
void
create_file(const char* base, const int i)
{
	FILE* fp;
	char* filename;
	struct flock lock = { 0 };

	lock.l_type = F_WRLCK;

	_STRESS_MUST(asprintf(&filename, "%s/file%d", base, i) > 0,
	             "Couldn't create name for file %d",
	             i);
	_STRESS_MUST(
	  (fp = fopen(filename, "a")), "Couldn't create file %s", filename);

	_STRESS_MUST_P(fcntl(fileno(fp), F_SETLKW, &lock) != -1,
	               "fcntl",
	               "Couldn't acquire lock on %s",
	               filename);

	fprintf(fp, "dummy");
	free(filename);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movl %esi, 0x3c(%rsp)
leaq 0x8(%rsp), %rdi
xorl %esi, %esi
movl $0x20, %edx
callq 0x10e0
movw $0x1, 0x8(%rsp)
movq 0x40(%rsp), %rdx
movl 0x3c(%rsp), %ecx
leaq 0x28(%rsp), %rdi
leaq 0x7eb(%rip), %rsi       # 0x2125
movb $0x0, %al
callq 0x1130
cmpl $0x0, %eax
jg 0x1a24
movq 0x26a7(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x844(%rip), %rsi       # 0x219f
movb $0x0, %al
callq 0x1100
movq 0x268f(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x832(%rip), %rsi       # 0x21a5
movb $0x0, %al
callq 0x1100
movq 0x2677(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movl 0x3c(%rsp), %edx
leaq 0x7a0(%rip), %rsi       # 0x212f
movb $0x0, %al
callq 0x1100
movq 0x265b(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x6c3(%rip), %rsi       # 0x206a
movb $0x0, %al
callq 0x1100
movq 0x2643(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x6ae(%rip), %rsi       # 0x206d
leaq 0x78a(%rip), %rdx       # 0x2150
movb $0x0, %al
callq 0x1100
movq 0x2624(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x6ab(%rip), %rsi       # 0x2089
movl $0x21, %edx
movb $0x0, %al
callq 0x1100
movq 0x2607(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x670(%rip), %rsi       # 0x206b
movb $0x0, %al
callq 0x1100
movq 0x25ef(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x683(%rip), %rsi       # 0x2096
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
jmp 0x1a26
jmp 0x1a28
movq 0x28(%rsp), %rdi
leaq 0x72e(%rip), %rsi       # 0x2162
callq 0x1140
movq %rax, 0x30(%rsp)
cmpq $0x0, %rax
jne 0x1b23
movq 0x25a9(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x746(%rip), %rsi       # 0x219f
movb $0x0, %al
callq 0x1100
movq 0x2591(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x734(%rip), %rsi       # 0x21a5
movb $0x0, %al
callq 0x1100
movq 0x2579(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movq 0x28(%rsp), %rdx
leaq 0x6d6(%rip), %rsi       # 0x2164
movb $0x0, %al
callq 0x1100
movq 0x255c(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5c4(%rip), %rsi       # 0x206a
movb $0x0, %al
callq 0x1100
movq 0x2544(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5af(%rip), %rsi       # 0x206d
leaq 0x68b(%rip), %rdx       # 0x2150
movb $0x0, %al
callq 0x1100
movq 0x2525(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5ac(%rip), %rsi       # 0x2089
movl $0x23, %edx
movb $0x0, %al
callq 0x1100
movq 0x2508(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x571(%rip), %rsi       # 0x206b
movb $0x0, %al
callq 0x1100
movq 0x24f0(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x584(%rip), %rsi       # 0x2096
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
jmp 0x1b25
jmp 0x1b27
movq 0x30(%rsp), %rdi
callq 0x1120
movl %eax, %edi
movl $0x7, %esi
leaq 0x8(%rsp), %rdx
movb $0x0, %al
callq 0x1080
cmpl $-0x1, %eax
jne 0x1c64
movq 0x24a4(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x641(%rip), %rsi       # 0x219f
movb $0x0, %al
callq 0x1100
movq 0x248c(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x62f(%rip), %rsi       # 0x21a5
movb $0x0, %al
callq 0x1100
movq 0x2474(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movq 0x28(%rsp), %rdx
leaq 0x5e9(%rip), %rsi       # 0x217c
movb $0x0, %al
callq 0x1100
movq 0x2457(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x4bf(%rip), %rsi       # 0x206a
movb $0x0, %al
callq 0x1100
movq 0x243f(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x4aa(%rip), %rsi       # 0x206d
leaq 0x586(%rip), %rdx       # 0x2150
movb $0x0, %al
callq 0x1100
movq 0x2420(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x4a7(%rip), %rsi       # 0x2089
movl $0x28, %edx
movb $0x0, %al
callq 0x1100
movq 0x2403(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x46c(%rip), %rsi       # 0x206b
movb $0x0, %al
callq 0x1100
movq 0x23eb(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x581(%rip), %rsi       # 0x2198
movb $0x0, %al
callq 0x1100
leaq 0x584(%rip), %rdi       # 0x21a9
callq 0x1150
movq 0x23c7(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x56a(%rip), %rsi       # 0x21a5
movb $0x0, %al
callq 0x1100
movq 0x23af(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x443(%rip), %rsi       # 0x2096
movb $0x0, %al
callq 0x1100
movl $0x1, %edi
callq 0x1180
jmp 0x1c66
movq 0x30(%rsp), %rdi
leaq 0x53d(%rip), %rsi       # 0x21af
movb $0x0, %al
callq 0x1100
movq 0x28(%rsp), %rdi
callq 0x1030
addq $0x48, %rsp
retq
nopl (%rax,%rax)