user: Please show me the C implementation that matches the assembly code listed below:

```asm
<testCycle>:
  endbr64
  push   %r15
  xor    %eax,%eax
  lea    D63(%rip),%r15
  push   %r14
  lea    D40(%rip),%r14
  push   %r13
  mov    %edi,%r13d
  push   %r12
  lea    D37(%rip),%r12
  push   %rbp
  lea    D76(%rip),%rbp
  call   <cleanup@plt>
  mov    %rbp,%rdi
  mov    $0x1adb0,%esi
  call   <createZeroFile@plt>
  mov    %r13d,%ecx
  xor    %r8d,%r8d
  mov    %r12,%rdx
  mov    %rbp,%rsi
  mov    %r14,%rdi
  call   <syncAndCheckMd4@plt>
  mov    %rbp,%rsi
  mov    %r14,%rdi
  mov    $0x1adb0,%edx
  call   <checkFileSize@plt>
  mov    %rbp,%rdi
  mov    $0x63,%edx
  mov    $0x5,%esi
  call   <changeByte@plt>
  mov    %r13d,%ecx
  xor    %r8d,%r8d
  mov    %r12,%rdx
  mov    %rbp,%rsi
  mov    %r15,%rdi
  lea    D47(%rip),%r14
  call   <syncAndCheckMd4@plt>
  mov    %r12,%rsi
  mov    %r14,%rdi
  mov    $0x1adb0,%edx
  call   <checkFileSize@plt>
  mov    %rbp,%rdi
  mov    $0x63,%edx
  mov    $0x13880,%esi
  call   <changeByte@plt>
  mov    %r13d,%ecx
  xor    %r8d,%r8d
  mov    %r12,%rdx
  mov    %rbp,%rsi
  mov    %r15,%rdi
  call   <syncAndCheckMd4@plt>
  mov    %r12,%rsi
  mov    %r14,%rdi
  mov    $0x1adb0,%edx
  call   <checkFileSize@plt>
  mov    %rbp,%rdi
  mov    $0x63,%edx
  mov    $0x3,%esi
  call   <addBytes@plt>
  mov    %r13d,%ecx
  xor    %r8d,%r8d
  mov    %r12,%rdx
  mov    %rbp,%rsi
  lea    D65(%rip),%rdi
  call   <syncAndCheckMd4@plt>
  mov    %r12,%rsi
  mov    $0x1adb3,%edx
  lea    D86(%rip),%rdi
  call   <checkFileSize@plt>
  mov    %rbp,%rdi
  mov    $0x63,%edx
  mov    $0x186a1,%esi
  call   <addBytes@plt>
  mov    %r13d,%ecx
  xor    %r8d,%r8d
  mov    %r12,%rdx
  mov    %rbp,%rsi
  lea    D72(%rip),%rdi
  call   <syncAndCheckMd4@plt>
  mov    $0x33454,%edx
  mov    %r12,%rsi
  lea    D25(%rip),%rdi
  call   <checkFileSize@plt>
  mov    %rbp,%rdi
  mov    $0x1e078,%esi
  call   <truncate@plt>
  mov    %rbp,%rsi
  mov    %r12,%rdx
  mov    %r13d,%ecx
  lea    D82(%rip),%rbp
  xor    %r8d,%r8d
  mov    %rbp,%rdi
  call   <syncAndCheckMd4@plt>
  mov    %r12,%rsi
  mov    %rbp,%rdi
  mov    $0x1e078,%edx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    10b0 <checkFileSize@plt>
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D63
type: string
name: extract_symbolic_data
arguments: data_label: D40
type: string
name: extract_symbolic_data
arguments: data_label: D37
type: string
name: extract_symbolic_data
arguments: data_label: D76
type: string
name: extract_symbolic_data
arguments: data_label: D47
type: string
name: extract_symbolic_data
arguments: data_label: D65
type: string
name: extract_symbolic_data
arguments: data_label: D86
type: string
name: extract_symbolic_data
arguments: data_label: D72
type: string
name: extract_symbolic_data
arguments: data_label: D25
type: string
name: extract_symbolic_data
arguments: data_label: D82
type: string

tool: D63: one byte changed 1

tool: D40: sync zero 1

tool: D37: testDest.bin

tool: D76: testSource.bin

tool: D47: one byte changed 2

tool: D65: added 3 bytes 1

tool: D86: added 3 bytes 2

tool: D72: added 8 bytes 1

tool: D25: added 8 bytes 2

tool: D82: truncated

assistant: ```c
void testCycle(int sparseEnabled) {
  cleanup();
  createZeroFile("testSource.bin", 110000);
  syncAndCheckMd4("sync zero 1", "testSource.bin", "testDest.bin", sparseEnabled, 0);
  checkFileSize("sync zero 1", "testSource.bin", 110000);
  changeByte("testSource.bin", 5, 'c');
  syncAndCheckMd4("one byte changed 1", "testSource.bin", "testDest.bin", sparseEnabled, 0);
  checkFileSize("one byte changed 2", "testDest.bin", 110000);
  changeByte("testSource.bin", 80000, 'c');
  syncAndCheckMd4("one byte changed 1", "testSource.bin", "testDest.bin", sparseEnabled, 0);
  checkFileSize("one byte changed 2", "testDest.bin", 110000);
  addBytes("testSource.bin", 3, 'c');
  syncAndCheckMd4("added 3 bytes 1", "testSource.bin", "testDest.bin", sparseEnabled, 0);
  checkFileSize("added 3 bytes 2", "testDest.bin", 110003);
  addBytes("testSource.bin", 100001, 'c');
  syncAndCheckMd4("added 8 bytes 1", "testSource.bin", "testDest.bin", sparseEnabled, 0);
  checkFileSize("added 8 bytes 2", "testDest.bin", 210004);
  truncate("testSource.bin", 123000);
  syncAndCheckMd4("truncated", "testSource.bin", "testDest.bin", sparseEnabled, 0);
  checkFileSize("truncated", "testDest.bin", 123000);
}
```