user: 下面的汇编指令对应的C源代码是什么：

```asm
<neighbor>:
  endbr64
  push   %r15
  mov    %rdi,%r15
  push   %r14
  mov    %esi,%r14d
  push   %r13
  mov    %r9d,%r13d
  push   %r12
  mov    %edx,%r12d
  mov    %esi,%edx
  push   %rbp
  mov    %ecx,%ebp
  mov    %r12d,%esi
  mov    %r9d,%ecx
  push   %rbx
  mov    %ebp,%edi
  mov    %r8d,%ebx
  sub    $0x18,%rsp
  call   <gidz_general@plt>
  xor    %r8d,%r8d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L556
  test   %r14d,%r14d
  jg     L200
L759:
  lea    0x1(%r14),%edx
  cmp    %ebx,%edx
  jl     L744
L431:
  test   %r12d,%r12d
  jg     L173
L60:
  lea    0x1(%r12),%esi
  cmp    %r13d,%esi
  jl     L362
  test   %ebp,%ebp
  jg     L484
  add    $0x1,%ebp
  cmp    0x50(%rsp),%ebp
  jl     L151
L445:
  xor    %r8d,%r8d
L556:
  add    $0x18,%rsp
  mov    %r8d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L200:
  lea    -0x1(%r14),%edx
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %ebp,%edi
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %r12d,%r12d
  jg     L258
L313:
  lea    0x1(%r12),%esi
  cmp    %r13d,%esi
  jl     L354
  test   %ebp,%ebp
  jg     L594
L653:
  lea    0x1(%rbp),%r9d
  cmp    0x50(%rsp),%r9d
  jge    L759
L581:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %r9d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L759
  nopl   0x0(%rax)
L618:
  mov    $0x1,%r8d
  jmp    L556
  nopl   0x0(%rax,%rax,1)
L173:
  lea    -0x1(%r12),%esi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%edi
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  mov    0x4(%rsp),%esi
  jg     L881
  lea    0x1(%rbp),%r9d
L252:
  cmp    0x50(%rsp),%r9d
  jge    L60
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r9d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L60
  jmp    L618
  nopl   (%rax)
L744:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %ebp,%edi
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %r12d,%r12d
  mov    0x4(%rsp),%edx
  jg     L191
L724:
  lea    0x1(%r12),%esi
  cmp    %r13d,%esi
  jl     L834
  test   %ebp,%ebp
  jg     L803
L679:
  lea    0x1(%rbp),%r9d
  cmp    0x50(%rsp),%r9d
  jge    L431
L138:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %r9d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L431
  jmp    L618
  xchg   %ax,%ax
L484:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r12d,%esi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  add    $0x1,%ebp
  cmp    0x50(%rsp),%ebp
  jge    L445
  jmp    L151
  nopl   0x0(%rax,%rax,1)
L258:
  lea    -0x1(%r12),%esi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %ebp,%edi
  mov    %edx,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edx
  jg     L490
L315:
  lea    0x1(%rbp),%edi
  cmp    0x50(%rsp),%edi
  jge    L313
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L313
  jmp    L618
  nopl   0x0(%rax)
L362:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%edi
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  mov    0x4(%rsp),%esi
  lea    0x1(%rbp),%r9d
  jg     L522
L566:
  mov    %r9d,%ebp
  cmp    %r9d,0x50(%rsp)
  jle    L445
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r9d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  nopl   (%rax)
L151:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r12d,%esi
  mov    %ebp,%edi
  call   <gidz_general@plt>
  xor    %r8d,%r8d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  sete   %r8b
  jmp    L556
  xchg   %ax,%ax
L354:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %ebp,%edi
  mov    %edx,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edx
  jg     L571
  lea    0x1(%rbp),%r9d
  cmp    %r9d,0x50(%rsp)
  jle    L759
  mov    %r9d,%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0x8(%rsp)
  mov    %r9d,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%r9d
  mov    0x8(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L581
  jmp    L618
  nopl   0x0(%rax,%rax,1)
L881:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  mov    0x4(%rsp),%esi
  lea    0x1(%rbp),%r9d
  jmp    L252
  nopw   0x0(%rax,%rax,1)
L191:
  lea    -0x1(%r12),%esi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %ebp,%edi
  mov    %edx,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edx
  jg     L120
L792:
  lea    0x1(%rbp),%edi
  cmp    0x50(%rsp),%edi
  jge    L724
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L724
  jmp    L618
  nopl   0x0(%rax)
L594:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L653
  jmp    L618
  nopl   0x0(%rax,%rax,1)
L490:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L315
  jmp    L618
L571:
  lea    -0x1(%rbp),%r10d
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0xc(%rsp)
  mov    %r10d,%edi
  mov    %esi,0x8(%rsp)
  mov    %r10d,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%r10d
  mov    0x8(%rsp),%esi
  cltq
  mov    0xc(%rsp),%edx
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  lea    0x1(%rbp),%r9d
  cmp    0x50(%rsp),%r9d
  jl     L367
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %r10d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L759
  jmp    L618
  nopl   0x0(%rax,%rax,1)
L120:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L792
  jmp    L618
L522:
  lea    -0x1(%rbp),%r9d
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r9d,%edi
  mov    %esi,0x8(%rsp)
  mov    %r9d,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%r9d
  mov    0x8(%rsp),%esi
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  add    $0x1,%ebp
  cmp    0x50(%rsp),%ebp
  jl     L743
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r12d,%esi
  mov    %r9d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L445
  jmp    L618
  nopw   0x0(%rax,%rax,1)
L834:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %ebp,%edi
  mov    %edx,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%edx
  jg     L762
  lea    0x1(%rbp),%r9d
  cmp    %r9d,0x50(%rsp)
  jg     L442
  test   %r12d,%r12d
  jg     L588
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%edi
  mov    %r9d,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%r9d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L566
  jmp    L618
  xchg   %ax,%ax
L803:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L679
  jmp    L618
  nopl   0x0(%rax,%rax,1)
L762:
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0xc(%rsp)
  mov    %esi,0x8(%rsp)
  mov    %edi,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edi
  mov    0x8(%rsp),%esi
  cltq
  mov    0xc(%rsp),%edx
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  lea    0x1(%rbp),%r9d
  cmp    %r9d,0x50(%rsp)
  jg     L442
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L431
  jmp    L618
  xchg   %ax,%ax
L442:
  mov    %r9d,%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %edx,0x8(%rsp)
  mov    %r9d,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%r9d
  mov    0x8(%rsp),%edx
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  test   %ebp,%ebp
  jle    L138
  lea    -0x1(%rbp),%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %r9d,0x8(%rsp)
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%r9d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L138
  jmp    L618
  nopw   0x0(%rax,%rax,1)
L743:
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%edi
  mov    %r9d,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%r9d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %r12d,%esi
  mov    %r9d,%edi
  call   <gidz_general@plt>
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L151
  jmp    L618
L588:
  lea    -0x1(%r12),%esi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r14d,%edx
  mov    %ebp,%edi
  mov    %r9d,0x8(%rsp)
  mov    %esi,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%esi
  mov    0x8(%rsp),%r9d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L252
  jmp    L618
L367:
  mov    %r9d,%edi
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r10d,0xc(%rsp)
  mov    %edx,0x8(%rsp)
  mov    %r9d,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%r9d
  mov    0x8(%rsp),%edx
  cltq
  mov    0xc(%rsp),%r10d
  cmpb   $0x1,(%r15,%rax,1)
  je     L618
  mov    %ebx,%r8d
  mov    %r13d,%ecx
  mov    %r12d,%esi
  mov    %r10d,%edi
  mov    %r9d,0x8(%rsp)
  mov    %edx,0x4(%rsp)
  call   <gidz_general@plt>
  mov    0x4(%rsp),%edx
  mov    0x8(%rsp),%r9d
  cltq
  cmpb   $0x1,(%r15,%rax,1)
  jne    L581
  jmp    L618
```

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;
}
```