user: 这段汇编代码用C语言表示是什么样的?

```asm
<neighbor>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x18,%rsp
  mov    %rdi,%r15
  mov    %esi,%r14d
  mov    %edx,%ebp
  mov    %ecx,%ebx
  mov    %r8d,%r13d
  mov    %r9d,%r12d
  mov    %r9d,%ecx
  mov    %esi,%edx
  mov    %ebp,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x0,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %r14d,%r14d
  jg     L779
L561:
  lea    0x1(%r14),%eax
  mov    %eax,0x4(%rsp)
  cmp    %r13d,%eax
  jl     L786
L121:
  test   %ebp,%ebp
  jg     L331
L722:
  lea    0x1(%rbp),%eax
  mov    %eax,0x4(%rsp)
  cmp    %r12d,%eax
  jl     L655
  test   %ebx,%ebx
  jg     L271
L567:
  lea    0x1(%rbx),%eax
  mov    %eax,%ebx
  mov    %eax,0x8(%rsp)
  mov    $0x0,%eax
  cmp    0x50(%rsp),%ebx
  jl     L363
L754:
  add    $0x18,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L779:
  lea    -0x1(%r14),%eax
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %eax,0x4(%rsp)
  mov    %eax,%edx
  mov    %ebp,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebp,%ebp
  jg     L795
L253:
  lea    0x1(%rbp),%eax
  mov    %eax,0x8(%rsp)
  cmp    %r12d,%eax
  jl     L187
  test   %ebx,%ebx
  jg     L27
L98:
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  cmp    0x50(%rsp),%eax
  jge    L561
L550:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  mov    0xc(%rsp),%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L561
  jmp    L754
L795:
  lea    -0x1(%rbp),%esi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %esi,0x8(%rsp)
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L94
L800:
  lea    0x1(%rbx),%edi
  cmp    0x50(%rsp),%edi
  jge    L253
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L253
  jmp    L754
L94:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L800
  jmp    L754
L187:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %eax,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L734
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  cmp    %eax,0x50(%rsp)
  jle    L561
L199:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  mov    0xc(%rsp),%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jle    L550
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  jmp    L550
L734:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  cmp    0x50(%rsp),%eax
  jl     L199
  test   %ebx,%ebx
  jle    L561
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L561
  jmp    L754
L27:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L98
  jmp    L754
L786:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %eax,%edx
  mov    %ebp,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebp,%ebp
  jg     L191
L452:
  lea    0x1(%rbp),%eax
  mov    %eax,0x8(%rsp)
  cmp    %r12d,%eax
  jl     L87
  test   %ebx,%ebx
  jg     L76
L473:
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  cmp    0x50(%rsp),%eax
  jge    L121
L710:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  mov    0xc(%rsp),%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L121
  jmp    L754
L191:
  lea    -0x1(%rbp),%eax
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %eax,0x8(%rsp)
  mov    %eax,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L608
L724:
  lea    0x1(%rbx),%edi
  cmp    0x50(%rsp),%edi
  jge    L452
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L452
  jmp    L754
L608:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L724
  jmp    L754
L87:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %eax,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L50
L445:
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  cmp    0x50(%rsp),%eax
  jl     L360
  test   %ebx,%ebx
  jg     L148
  test   %ebp,%ebp
  jg     L331
  lea    0x1(%rbp),%eax
  mov    %eax,0x4(%rsp)
L655:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    0x4(%rsp),%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L447
  lea    0x1(%rbx),%eax
  mov    %eax,0x8(%rsp)
  cmp    %eax,0x50(%rsp)
  jg     L19
  mov    $0x0,%eax
  jmp    L754
L50:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L445
  jmp    L754
L360:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%esi
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jle    L710
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  lea    0x1(%rbx),%eax
  mov    %eax,0xc(%rsp)
  jmp    L710
L76:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L473
  jmp    L754
L331:
  lea    -0x1(%rbp),%eax
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    %eax,0x4(%rsp)
  mov    %eax,%esi
  mov    %ebx,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L764
L393:
  lea    0x1(%rbx),%edi
  cmp    0x50(%rsp),%edi
  jge    L722
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    0x4(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L722
  jmp    L754
L764:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    0x4(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L393
  jmp    L754
L447:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    0x4(%rsp),%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  lea    0x1(%rbx),%eax
  mov    %eax,0x8(%rsp)
  cmp    0x50(%rsp),%eax
  jl     L19
  test   %ebx,%ebx
  jle    L278
L271:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L567
  jmp    L754
L19:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  test   %ebx,%ebx
  jg     L382
L363:
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%esi
  mov    0x8(%rsp),%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  sete   %al
  movzbl %al,%eax
  jmp    L754
L278:
  mov    $0x0,%eax
  jmp    L754
L382:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  je     L754
  lea    0x1(%rbx),%eax
  mov    %eax,0x8(%rsp)
  jmp    L363
L148:
  lea    -0x1(%rbx),%edi
  mov    %r13d,%r8d
  mov    %r12d,%ecx
  mov    0x4(%rsp),%edx
  mov    %ebp,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    $0x1,%eax
  cmpb   $0x1,(%r15,%rdx,1)
  jne    L121
  jmp    L754
```

assistant: ```c
int neighbor(char *iphi, int l, int m, int n, int extx, int exty, int extz) {
  if (*(iphi + gidz_general(n, m, l, exty, extx)) == 1)
    return 0;
  if (l > 0) {
    if (*(iphi + gidz_general(n, m, l - 1, exty, extx)) == 1)
      return 1;
    if (m > 0) {
      if (*(iphi + gidz_general(n, m - 1, l - 1, exty, extx)) == 1)
        return 1;
      if (n > 0)
        if (*(iphi + gidz_general(n - 1, m - 1, l - 1, exty, extx)) == 1)
          return 1;
      if ((n + 1) < extz)
        if (*(iphi + gidz_general(n + 1, m - 1, l - 1, exty, extx)) == 1)
          return 1;
    }
    if ((m + 1) < exty) {
      if (*(iphi + gidz_general(n, m + 1, l - 1, exty, extx)) == 1)
        return 1;
      if (n > 0)
        if (*(iphi + gidz_general(n - 1, m + 1, l - 1, exty, extx)) == 1)
          return 1;
      if ((n + 1) < extz)
        if (*(iphi + gidz_general(n + 1, m + 1, l - 1, exty, extx)) == 1)
          return 1;
    }
    if (n > 0)
      if (*(iphi + gidz_general(n - 1, m, l - 1, exty, extx)) == 1)
        return 1;
    if ((n + 1) < extz)
      if (*(iphi + gidz_general(n + 1, m, l - 1, exty, extx)) == 1)
        return 1;
  }
  if ((l + 1) < extx) {
    if (*(iphi + gidz_general(n, m, l + 1, exty, extx)) == 1)
      return 1;
    if (m > 0) {
      if (*(iphi + gidz_general(n, m - 1, l + 1, exty, extx)) == 1)
        return 1;
      if (n > 0)
        if (*(iphi + gidz_general(n - 1, m - 1, l + 1, exty, extx)) == 1)
          return 1;
      if ((n + 1) < extz)
        if (*(iphi + gidz_general(n + 1, m - 1, l + 1, exty, extx)) == 1)
          return 1;
    }
    if ((m + 1) < exty) {
      if (*(iphi + gidz_general(n, m + 1, l + 1, exty, extx)) == 1)
        return 1;
      if (n > 0)
        if (*(iphi + gidz_general(n - 1, m + 1, l + 1, exty, extx)) == 1)
          return 1;
      if ((n + 1) < extz)
        if (*(iphi + gidz_general(n + 1, m + 1, l + 1, exty, extx)) == 1)
          return 1;
    }
    if (n > 0)
      if (*(iphi + gidz_general(n - 1, m, l + 1, exty, extx)) == 1)
        return 1;
    if ((n + 1) < extz)
      if (*(iphi + gidz_general(n + 1, m, l + 1, exty, extx)) == 1)
        return 1;
  }
  if (m > 0) {
    if (*(iphi + gidz_general(n, m - 1, l, exty, extx)) == 1)
      return 1;
    if (n > 0)
      if (*(iphi + gidz_general(n - 1, m - 1, l, exty, extx)) == 1)
        return 1;
    if ((n + 1) < extz)
      if (*(iphi + gidz_general(n + 1, m - 1, l, exty, extx)) == 1)
        return 1;
  }
  if ((m + 1) < exty) {
    if (*(iphi + gidz_general(n, m + 1, l, exty, extx)) == 1)
      return 1;
    if (n > 0)
      if (*(iphi + gidz_general(n - 1, m + 1, l, exty, extx)) == 1)
        return 1;
    if ((n + 1) < extz)
      if (*(iphi + gidz_general(n + 1, m + 1, l, exty, extx)) == 1)
        return 1;
  }
  if (n > 0)
    if (*(iphi + gidz_general(n - 1, m, l, exty, extx)) == 1)
      return 1;
  if ((n + 1) < extz)
    if (*(iphi + gidz_general(n + 1, m, l, exty, extx)) == 1)
      return 1;
  return 0;
}
```