user: Demonstrate the C code that generates the assembly output below:

```asm
<statdefs>:
  endbr64
  mov    (%rdi),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L264
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %rdi,%rbx
  sub    $0x28,%rsp
  cmp    $0x28,%eax
  jne    L252
L198:
  movslq 0x4(%rbx),%rbp
  mov    0x0(%rbp),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  jne    L27
L8:
  movslq 0x4(%rbp),%r12
  mov    (%r12),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  jne    L60
L250:
  movslq 0x4(%r12),%r13
  mov    0x0(%r13),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  jne    L67
L103:
  movslq 0x4(%r13),%r14
  mov    (%r14),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  jne    L106
L127:
  movslq 0x4(%r14),%r15
  mov    (%r15),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
L110:
  cmp    $0x28,%eax
  jne    L125
  movslq 0x4(%r15),%rdx
  mov    (%rdx),%eax
  lea    -0x2c(%rax),%ecx
  cmp    $0x1,%ecx
  jbe    L99
  cmp    $0x28,%eax
  jne    L237
L293:
  movslq 0x4(%rdx),%rcx
  mov    (%rcx),%eax
  lea    -0x2c(%rax),%esi
  cmp    $0x1,%esi
  jbe    L99
  cmp    $0x28,%eax
  jne    L310
L73:
  movslq 0x4(%rcx),%rsi
  mov    (%rsi),%eax
  lea    -0x2c(%rax),%edi
  cmp    $0x1,%edi
  jbe    L99
L131:
  cmp    $0x28,%eax
  jne    L300
  movslq 0x4(%rsi),%rdi
  xor    %eax,%eax
  mov    %rdx,0x18(%rsp)
  mov    %rcx,0x10(%rsp)
  mov    %rsi,0x8(%rsp)
  call   <statdefs>
  test   %eax,%eax
  jne    L99
  mov    0x8(%rsp),%rsi
  mov    0x10(%rsp),%rcx
  mov    0x18(%rsp),%rdx
  movslq 0x8(%rsi),%rsi
  mov    (%rsi),%eax
  lea    -0x2c(%rax),%edi
  cmp    $0x1,%edi
  ja     L131
L99:
  add    $0x28,%rsp
  mov    $0xffffffff,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L125:
  movslq 0x8(%r14),%r14
  mov    (%r14),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  je     L127
L106:
  movslq 0x8(%r13),%r13
  mov    0x0(%r13),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  je     L103
L67:
  movslq 0x8(%r12),%r12
  mov    (%r12),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  je     L250
L60:
  movslq 0x8(%rbp),%rbp
  mov    0x0(%rbp),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  je     L8
L27:
  movslq 0x8(%rbx),%rbx
  mov    (%rbx),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  jbe    L99
  cmp    $0x28,%eax
  je     L198
L252:
  add    $0x28,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  xchg   %ax,%ax
L300:
  movslq 0x8(%rcx),%rcx
  mov    (%rcx),%eax
  lea    -0x2c(%rax),%esi
  cmp    $0x1,%esi
  jbe    L99
  cmp    $0x28,%eax
  je     L73
L310:
  movslq 0x8(%rdx),%rdx
  mov    (%rdx),%eax
  lea    -0x2c(%rax),%ecx
  cmp    $0x1,%ecx
  jbe    L99
  cmp    $0x28,%eax
  je     L293
L237:
  movslq 0x8(%r15),%r15
  mov    (%r15),%eax
  lea    -0x2c(%rax),%edx
  cmp    $0x1,%edx
  ja     L110
  jmp    L99
L264:
  mov    $0xffffffff,%eax
  ret
```

assistant: ```c
int statdefs(x)
int *x;
{
  if (0 [x] == 44 || 0 [x] == 45)
    return -1;
  if (0 [x] != 40)
    return 0;
  if (statdefs((int *)1 [x]))
    return -1;
  return statdefs((int *)2 [x]);
}
```