user: What would the C source look like for the assembly code provided here:

```asm
<mem_test>:
  endbr64
  push   %r12
  push   %rbp
  sub    $0x8,%rsp
  movzbl D194(%rip),%ebp
  cmp    $0x61,%ebp
  je     L118
L35:
  xor    %eax,%eax
  lea    D83(%rip),%rcx
  mov    $0x1b,%edx
  lea    D52(%rip),%rsi
  lea    D226(%rip),%rdi
  call   <__test_assert@plt>
  cmp    $0x61,%ebp
  je     L14
L1:
  lea    D83(%rip),%rcx
  mov    $0x1c,%edx
  lea    D52(%rip),%rsi
  xor    %eax,%eax
  lea    D22(%rip),%rdi
  call   <__test_assert@plt>
L46:
  lea    D139(%rip),%r12
  lea    D194(%rip),%rbp
  mov    $0x4,%edx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  call   <memcmp@plt>
  cmp    $0x64,%eax
  je     L86
  lea    D83(%rip),%rcx
  mov    $0x1e,%edx
  lea    D52(%rip),%rsi
  xor    %eax,%eax
  lea    D104(%rip),%rdi
  call   <__test_assert@plt>
L86:
  mov    $0x4,%edx
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <memcmp@plt>
  cmp    $0xffffff9c,%eax
  je     L8
  lea    D83(%rip),%rcx
  mov    $0x1f,%edx
  lea    D52(%rip),%rsi
  xor    %eax,%eax
  lea    D241(%rip),%rdi
  call   <__test_assert@plt>
L8:
  lea    D4(%rip),%r12
  mov    $0x4,%edx
  mov    %rbp,%rdi
  mov    %r12,%rsi
  call   <memcmp@plt>
  cmp    $0xffffffff,%eax
  je     L2
  lea    D83(%rip),%rcx
  mov    $0x21,%edx
  lea    D52(%rip),%rsi
  xor    %eax,%eax
  lea    D205(%rip),%rdi
  call   <__test_assert@plt>
L2:
  mov    $0x4,%edx
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <memcmp@plt>
  cmp    $0x1,%eax
  je     L111
  lea    D83(%rip),%rcx
  mov    $0x22,%edx
  lea    D52(%rip),%rsi
  xor    %eax,%eax
  lea    D167(%rip),%rdi
  call   <__test_assert@plt>
L111:
  add    $0x8,%rsp
  xor    %eax,%eax
  pop    %rbp
  pop    %r12
  ret
  nopl   (%rax)
L118:
  cmpb   $0x62,D180(%rip)
  jne    L35
  cmpb   $0x63,D90(%rip)
  jne    L35
  cmp    $0x61,%ebp
  jne    L1
L14:
  cmpb   $0x62,D180(%rip)
  jne    L1
  cmpb   $0x63,D90(%rip)
  je     L46
  jmp    L1
```

tool_calls: name: parse_data
arguments: tag: D194
data_type: string
name: parse_data
arguments: tag: D83
data_type: string
name: parse_data
arguments: tag: D52
data_type: string
name: parse_data
arguments: tag: D226
data_type: string
name: parse_data
arguments: tag: D22
data_type: string
name: parse_data
arguments: tag: D139
data_type: string
name: parse_data
arguments: tag: D104
data_type: string
name: parse_data
arguments: tag: D241
data_type: string
name: parse_data
arguments: tag: D4
data_type: string
name: parse_data
arguments: tag: D205
data_type: string
name: parse_data
arguments: tag: D167
data_type: string
name: parse_data
arguments: tag: D180
data_type: byte
name: parse_data
arguments: tag: D90
data_type: byte

tool: D194: abcd

tool: D83: mem_test

tool: D52: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c

tool: D226: memcmp("abcd", "abc", 3) == 0

tool: D22: memcmp("abc", "abcd", 3) == 0

tool: D139: abc

tool: D104: memcmp("abcd", "abc", 4) == 'd'

tool: D241: memcmp("abc", "abcd", 4) == -('d')

tool: D4: abce

tool: D205: memcmp("abcd", "abce", 4) == -1

tool: D167: memcmp("abce", "abcd", 4) == 1

tool: D180: 98

tool: D90: 99

assistant: ```c
int mem_test() {
  char test_buf[100];
  int i;
  ((void)((memcmp("abc", "abc", 3) == 0) ? 0 : __test_assert("memcmp(\"abc\", \"abc\", 3) == 0", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 26, __func__)));
  ((void)((memcmp("abcd", "abc", 3) == 0) ? 0 : __test_assert("memcmp(\"abcd\", \"abc\", 3) == 0", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 27, __func__)));
  ((void)((memcmp("abc", "abcd", 3) == 0) ? 0 : __test_assert("memcmp(\"abc\", \"abcd\", 3) == 0", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 28, __func__)));
  ((void)((memcmp("abcd", "abc", 4) == 'd') ? 0 : __test_assert("memcmp(\"abcd\", \"abc\", 4) == 'd'", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 30, __func__)));
  ((void)((memcmp("abc", "abcd", 4) == -('d')) ? 0 : __test_assert("memcmp(\"abc\", \"abcd\", 4) == -('d')", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 31, __func__)));
  ((void)((memcmp("abcd", "abce", 4) == -1) ? 0 : __test_assert("memcmp(\"abcd\", \"abce\", 4) == -1", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 33, __func__)));
  ((void)((memcmp("abce", "abcd", 4) == 1) ? 0 : __test_assert("memcmp(\"abce\", \"abcd\", 4) == 1", "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/gerryg400/anvilos/refs/heads/master/src/libc/test/libc_test.c", 34, __func__)));
  return 0;
}
```