user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<test_ulong>:
  endbr64
  push   %r15
  mov    $0x397,%r9d
  mov    $0x397,%r8d
  mov    $0x95,%esi
  push   %r14
  lea    D150(%rip),%r14
  push   %r13
  lea    D223(%rip),%r13
  push   %r12
  mov    %r13,%rcx
  mov    %r13,%rdx
  lea    D41(%rip),%r12
  push   %rbp
  lea    D47(%rip),%rbp
  push   %rbx
  mov    %rbp,%rdi
  sub    $0x8,%rsp
  call   <test_ulong_eq@plt>
  lea    D202(%rip),%rsi
  mov    $0x1,%edi
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  mov    $0x27fa,%r9d
  mov    $0x397,%r8d
  mov    $0x96,%esi
  mov    %eax,%ebx
  call   <test_ulong_eq@plt>
  xor    %edi,%edi
  lea    D96(%rip),%rsi
  mov    %eax,%edx
  call   <test_case@plt>
  test   %ebx,%ebx
  mov    $0x42,%r9d
  mov    %rbp,%rdi
  sete   %bl
  test   %eax,%eax
  mov    $0x1ffe,%r8d
  mov    $0x97,%esi
  sete   %al
  lea    D137(%rip),%rcx
  lea    D49(%rip),%rdx
  or     %eax,%ebx
  call   <test_ulong_ne@plt>
  lea    D185(%rip),%rsi
  mov    $0x1,%edi
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r14,%rcx
  mov    %r14,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x293b,%r9d
  mov    $0x293b,%r8d
  mov    $0x98,%esi
  sete   %r13b
  call   <test_ulong_ne@plt>
  xor    %edi,%edi
  lea    D89(%rip),%rsi
  or     %ebx,%r13d
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r12,%rdx
  mov    %rbp,%rdi
  mov    $0x99,%esi
  test   %eax,%eax
  mov    $0xf4240,%r9d
  mov    $0x27fa,%r8d
  sete   %bl
  or     %r13d,%ebx
  lea    D148(%rip),%r13
  mov    %r13,%rcx
  call   <test_ulong_lt@plt>
  lea    D196(%rip),%rsi
  mov    $0x1,%edi
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x27fa,%r9d
  mov    $0xf4240,%r8d
  mov    $0x9a,%esi
  sete   %r15b
  call   <test_ulong_lt@plt>
  xor    %edi,%edi
  lea    D219(%rip),%rsi
  or     %ebx,%r15d
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r13,%rcx
  mov    %r12,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0xf4240,%r9d
  mov    $0x27fa,%r8d
  mov    $0x9b,%esi
  sete   %bl
  call   <test_ulong_le@plt>
  lea    D186(%rip),%rsi
  mov    $0x1,%edi
  or     %r15d,%ebx
  mov    %eax,%edx
  call   <test_case@plt>
  lea    D93(%rip),%rdx
  mov    %rbp,%rdi
  mov    $0x9c,%esi
  test   %eax,%eax
  mov    %rdx,%rcx
  mov    $0x186a0,%r9d
  mov    $0x186a0,%r8d
  sete   %r15b
  call   <test_ulong_le@plt>
  lea    D17(%rip),%rsi
  mov    $0x1,%edi
  or     %ebx,%r15d
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x27fa,%r9d
  mov    $0xf4240,%r8d
  mov    $0x9d,%esi
  sete   %bl
  lea    D156(%rip),%r12
  lea    D126(%rip),%r13
  call   <test_ulong_le@plt>
  xor    %edi,%edi
  lea    D133(%rip),%rsi
  or     %r15d,%ebx
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x16,%r9d
  mov    $0x5f5e100,%r8d
  mov    $0x9e,%esi
  sete   %r15b
  call   <test_ulong_gt@plt>
  lea    D205(%rip),%rsi
  mov    $0x1,%edi
  or     %ebx,%r15d
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r13,%rcx
  mov    %r12,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x5f5e100,%r9d
  mov    $0x16,%r8d
  mov    $0x9f,%esi
  sete   %bl
  call   <test_ulong_gt@plt>
  xor    %edi,%edi
  lea    D51(%rip),%rsi
  or     %r15d,%ebx
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r12,%rcx
  mov    %r13,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x16,%r9d
  mov    $0x5f5e100,%r8d
  mov    $0xa0,%esi
  sete   %r15b
  call   <test_ulong_ge@plt>
  lea    D78(%rip),%rsi
  mov    $0x1,%edi
  or     %ebx,%r15d
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r14,%rcx
  mov    %r14,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x293b,%r9d
  mov    $0x293b,%r8d
  mov    $0xa1,%esi
  sete   %bl
  call   <test_ulong_ge@plt>
  lea    D194(%rip),%rsi
  mov    $0x1,%edi
  or     %r15d,%ebx
  mov    %eax,%edx
  call   <test_case@plt>
  mov    %r13,%rcx
  mov    %r12,%rdx
  mov    %rbp,%rdi
  test   %eax,%eax
  mov    $0x5f5e100,%r9d
  mov    $0x16,%r8d
  mov    $0xa2,%esi
  sete   %r14b
  call   <test_ulong_ge@plt>
  xor    %edi,%edi
  lea    D234(%rip),%rsi
  or     %ebx,%r14d
  mov    %eax,%edx
  call   <test_case@plt>
  test   %eax,%eax
  sete   %al
  add    $0x8,%rsp
  or     %r14d,%eax
  pop    %rbx
  pop    %rbp
  xor    $0x1,%eax
  pop    %r12
  pop    %r13
  movzbl %al,%eax
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: unpack_data
arguments: data_tag: D150
data_type: string
name: unpack_data
arguments: data_tag: D223
data_type: string
name: unpack_data
arguments: data_tag: D41
data_type: string
name: unpack_data
arguments: data_tag: D47
data_type: string
name: unpack_data
arguments: data_tag: D202
data_type: string
name: unpack_data
arguments: data_tag: D96
data_type: string
name: unpack_data
arguments: data_tag: D137
data_type: string
name: unpack_data
arguments: data_tag: D49
data_type: string
name: unpack_data
arguments: data_tag: D185
data_type: string
name: unpack_data
arguments: data_tag: D89
data_type: string
name: unpack_data
arguments: data_tag: D148
data_type: string
name: unpack_data
arguments: data_tag: D196
data_type: string
name: unpack_data
arguments: data_tag: D219
data_type: string
name: unpack_data
arguments: data_tag: D186
data_type: string
name: unpack_data
arguments: data_tag: D93
data_type: string
name: unpack_data
arguments: data_tag: D17
data_type: string
name: unpack_data
arguments: data_tag: D156
data_type: string
name: unpack_data
arguments: data_tag: D126
data_type: string
name: unpack_data
arguments: data_tag: D133
data_type: string
name: unpack_data
arguments: data_tag: D205
data_type: string
name: unpack_data
arguments: data_tag: D51
data_type: string
name: unpack_data
arguments: data_tag: D78
data_type: string
name: unpack_data
arguments: data_tag: D194
data_type: string
name: unpack_data
arguments: data_tag: D234
data_type: string

tool: D150: 10555ul

tool: D223: 919ul

tool: D41: 10234ul

tool: D47: /scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c

tool: D202: TEST_ulong_eq(919ul, 919ul)

tool: D96: TEST_ulong_eq(919ul, 10234ul)

tool: D137: 66ul

tool: D49: 8190ul

tool: D185: TEST_ulong_ne(8190ul, 66ul)

tool: D89: TEST_ulong_ne(10555ul, 10555ul)

tool: D148: 1000000ul

tool: D196: TEST_ulong_lt(10234ul, 1000000ul)

tool: D219: TEST_ulong_lt(1000000ul, 10234ul)

tool: D186: TEST_ulong_le(10234ul, 1000000ul)

tool: D93: 100000ul

tool: D17: TEST_ulong_le(100000ul, 100000ul)

tool: D156: 22ul

tool: D126: 100000000ul

tool: D133: TEST_ulong_le(1000000ul, 10234ul)

tool: D205: TEST_ulong_gt(100000000ul, 22ul)

tool: D51: TEST_ulong_gt(22ul, 100000000ul)

tool: D78: TEST_ulong_ge(100000000ul, 22ul)

tool: D194: TEST_ulong_ge(10555ul, 10555ul)

tool: D234: TEST_ulong_ge(22ul, 100000000ul)

assistant: ```c
int test_ulong(void) {
  if (!test_case((1), "TEST_ulong_eq(919ul, 919ul)", (test_ulong_eq("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 149, "919ul", "919ul", 919ul, 919ul))) | !test_case((0), "TEST_ulong_eq(919ul, 10234ul)", (test_ulong_eq("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 150, "919ul", "10234ul", 919ul, 10234ul))) | !test_case((1), "TEST_ulong_ne(8190ul, 66ul)", (test_ulong_ne("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 151, "8190ul", "66ul", 8190ul, 66ul))) | !test_case((0), "TEST_ulong_ne(10555ul, 10555ul)", (test_ulong_ne("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 152, "10555ul", "10555ul", 10555ul, 10555ul))) | !test_case((1), "TEST_ulong_lt(10234ul, 1000000ul)", (test_ulong_lt("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 153, "10234ul", "1000000ul", 10234ul, 1000000ul))) | !test_case((0), "TEST_ulong_lt(1000000ul, 10234ul)", (test_ulong_lt("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 154, "1000000ul", "10234ul", 1000000ul, 10234ul))) | !test_case((1), "TEST_ulong_le(10234ul, 1000000ul)", (test_ulong_le("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 155, "10234ul", "1000000ul", 10234ul, 1000000ul))) | !test_case((1), "TEST_ulong_le(100000ul, 100000ul)", (test_ulong_le("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 156, "100000ul", "100000ul", 100000ul, 100000ul))) | !test_case((0), "TEST_ulong_le(1000000ul, 10234ul)", (test_ulong_le("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 157, "1000000ul", "10234ul", 1000000ul, 10234ul))) | !test_case((1), "TEST_ulong_gt(100000000ul, 22ul)", (test_ulong_gt("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 158, "100000000ul", "22ul", 100000000ul, 22ul))) | !test_case((0), "TEST_ulong_gt(22ul, 100000000ul)", (test_ulong_gt("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 159, "22ul", "100000000ul", 22ul, 100000000ul))) | !test_case((1), "TEST_ulong_ge(100000000ul, 22ul)", (test_ulong_ge("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 160, "100000000ul", "22ul", 100000000ul, 22ul))) | !test_case((1), "TEST_ulong_ge(10555ul, 10555ul)", (test_ulong_ge("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 161, "10555ul", "10555ul", 10555ul, 10555ul))) | !test_case((0), "TEST_ulong_ge(22ul, 100000000ul)", (test_ulong_ge("/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/papyrussolution/OpenPapyrus/refs/heads/master/Src/OSF/OpenSSL-111/test/test_test.c", 162, "22ul", "100000000ul", 22ul, 100000000ul))))
    goto err;
  return 1;
err:
  return 0;
}
```