// File: /workspace/github_c_makefile_star2_O0/cirocosta[P]stress/src/mem-rw.c
// Function: allocate_and_use
void
allocate_and_use(int n)
{
	void** p;

	_STRESS_MUST((p = malloc((n + 1) * sizeof(void*))),
	             "couldn't allocate memory array");

	_STRESS_INFO("%d MB will be allocated", n);

	for (int i = 0; i++ < n;) {
		_STRESS_MUST((p[i] = malloc(CHUNK_SIZE * sizeof(char))),
		             "Couldn't allocate.");
		memset(p[i], randoml26(), CHUNK_SIZE);
		_STRESS_INFO("Allocated 1MB at position %p", p[i]);
	}

	_STRESS_INFO("Memory allocated.");
	_STRESS_INFO("Starting dumb memory setting.");

	while (1) {
		for (int i = 0; i++ < n;) {
			memset(p[i], randoml26(), CHUNK_SIZE);
		}
	}
}

// Assembly:
subq $0x28, %rsp
movl %edi, 0x24(%rsp)
movl 0x24(%rsp), %eax
addl $0x1, %eax
movslq %eax, %rdi
shlq $0x3, %rdi
callq 0x10f0
movq %rax, 0x18(%rsp)
cmpq $0x0, %rax
jne 0x19a0
movq 0x2727(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x75d(%rip), %rsi       # 0x2038
movb $0x0, %al
callq 0x10d0
movq 0x270f(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x74b(%rip), %rsi       # 0x203e
movb $0x0, %al
callq 0x10d0
movq 0x26f7(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x815(%rip), %rsi       # 0x2120
movb $0x0, %al
callq 0x10d0
movq 0x26df(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x742(%rip), %rsi       # 0x2065
movb $0x0, %al
callq 0x10d0
movq 0x26c7(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x72d(%rip), %rsi       # 0x2068
leaq 0x7fd(%rip), %rdx       # 0x213f
movb $0x0, %al
callq 0x10d0
movq 0x26a8(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x72a(%rip), %rsi       # 0x2084
movl $0x23, %edx
movb $0x0, %al
callq 0x10d0
movq 0x268b(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x6ef(%rip), %rsi       # 0x2066
movb $0x0, %al
callq 0x10d0
movq 0x2673(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x702(%rip), %rsi       # 0x2091
movb $0x0, %al
callq 0x10d0
movl $0x1, %edi
callq 0x1120
jmp 0x19a2
jmp 0x19a4
movq 0x264d(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x797(%rip), %rsi       # 0x214c
movb $0x0, %al
callq 0x10d0
movq 0x2635(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movl 0x24(%rsp), %edx
leaq 0x783(%rip), %rsi       # 0x2154
movb $0x0, %al
callq 0x10d0
movq 0x2619(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x67d(%rip), %rsi       # 0x2066
movb $0x0, %al
callq 0x10d0
movl $0x0, 0x14(%rsp)
movl 0x14(%rsp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x14(%rsp)
cmpl 0x24(%rsp), %eax
jge 0x1b93
jmp 0x1a11
movl $0x100000, %edi         # imm = 0x100000
callq 0x10f0
movq 0x18(%rsp), %rcx
movslq 0x14(%rsp), %rdx
movq %rax, (%rcx,%rdx,8)
cmpq $0x0, %rax
jne 0x1b09
movq 0x25be(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5f4(%rip), %rsi       # 0x2038
movb $0x0, %al
callq 0x10d0
movq 0x25a6(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5e2(%rip), %rsi       # 0x203e
movb $0x0, %al
callq 0x10d0
movq 0x258e(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x6f8(%rip), %rsi       # 0x216c
movb $0x0, %al
callq 0x10d0
movq 0x2576(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5d9(%rip), %rsi       # 0x2065
movb $0x0, %al
callq 0x10d0
movq 0x255e(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5c4(%rip), %rsi       # 0x2068
leaq 0x694(%rip), %rdx       # 0x213f
movb $0x0, %al
callq 0x10d0
movq 0x253f(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5c1(%rip), %rsi       # 0x2084
movl $0x29, %edx
movb $0x0, %al
callq 0x10d0
movq 0x2522(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x586(%rip), %rsi       # 0x2066
movb $0x0, %al
callq 0x10d0
movq 0x250a(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x599(%rip), %rsi       # 0x2091
movb $0x0, %al
callq 0x10d0
movl $0x1, %edi
callq 0x1120
jmp 0x1b0b
movq 0x18(%rsp), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, 0x8(%rsp)
callq 0x1cf0
movq 0x8(%rsp), %rdi
movsbl %al, %eax
movl $0x100000, %edx         # imm = 0x100000
movzbl %al, %esi
callq 0x10b0
movq 0x24b9(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x603(%rip), %rsi       # 0x214c
movb $0x0, %al
callq 0x10d0
movq 0x24a1(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
movq 0x18(%rsp), %rax
movslq 0x14(%rsp), %rcx
movq (%rax,%rcx,8), %rdx
leaq 0x610(%rip), %rsi       # 0x217f
movb $0x0, %al
callq 0x10d0
movq 0x247b(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x4df(%rip), %rsi       # 0x2066
movb $0x0, %al
callq 0x10d0
jmp 0x19f8
jmp 0x1b95
movq 0x245c(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5a6(%rip), %rsi       # 0x214c
movb $0x0, %al
callq 0x10d0
movq 0x2444(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5de(%rip), %rsi       # 0x219c
movb $0x0, %al
callq 0x10d0
movq 0x242c(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x490(%rip), %rsi       # 0x2066
movb $0x0, %al
callq 0x10d0
jmp 0x1bdf
movq 0x2412(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x55c(%rip), %rsi       # 0x214c
movb $0x0, %al
callq 0x10d0
movq 0x23fa(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x5a6(%rip), %rsi       # 0x21ae
movb $0x0, %al
callq 0x10d0
movq 0x23e2(%rip), %rax      # 0x3ff8
movq (%rax), %rdi
leaq 0x446(%rip), %rsi       # 0x2066
movb $0x0, %al
callq 0x10d0
jmp 0x1c29
movl $0x0, 0x10(%rsp)
movl 0x10(%rsp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rsp)
cmpl 0x24(%rsp), %eax
jge 0x1c71
movq 0x18(%rsp), %rax
movslq 0x10(%rsp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, (%rsp)
callq 0x1cf0
movq (%rsp), %rdi
movsbl %al, %eax
movl $0x100000, %edx         # imm = 0x100000
movzbl %al, %esi
callq 0x10b0
jmp 0x1c31
jmp 0x1c29
nopw %cs:(%rax,%rax)