user: Converte this assembly snippet into its equivalent C code:

```asm
<neighbor>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %esi,-0xc(%rbp)
  mov    %edx,-0x10(%rbp)
  mov    %ecx,-0x14(%rbp)
  mov    %r8d,-0x18(%rbp)
  mov    %r9d,-0x1c(%rbp)
  mov    -0x18(%rbp),%edi
  mov    -0x1c(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x14(%rbp),%eax
  mov    %edi,%r8d
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L140
  mov    $0x0,%eax
  jmp    L572
L140:
  cmpl   $0x0,-0xc(%rbp)
  jle    L657
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x14(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L743
  mov    $0x1,%eax
  jmp    L572
L743:
  cmpl   $0x0,-0x10(%rbp)
  jle    L758
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L777
  mov    $0x1,%eax
  jmp    L572
L777:
  cmpl   $0x0,-0x14(%rbp)
  jle    L554
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L554
  mov    $0x1,%eax
  jmp    L572
L554:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L758
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L758
  mov    $0x1,%eax
  jmp    L572
L758:
  mov    -0x10(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x1c(%rbp)
  jle    L304
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L668
  mov    $0x1,%eax
  jmp    L572
L668:
  cmpl   $0x0,-0x14(%rbp)
  jle    L109
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L109
  mov    $0x1,%eax
  jmp    L572
L109:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L304
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L304
  mov    $0x1,%eax
  jmp    L572
L304:
  cmpl   $0x0,-0x14(%rbp)
  jle    L471
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %esi,%edx
  mov    %eax,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L471
  mov    $0x1,%eax
  jmp    L572
L471:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L657
  mov    -0xc(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %esi,%edx
  mov    %eax,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L657
  mov    $0x1,%eax
  jmp    L572
L657:
  mov    -0xc(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x18(%rbp)
  jle    L778
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x10(%rbp),%esi
  mov    -0x14(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L206
  mov    $0x1,%eax
  jmp    L572
L206:
  cmpl   $0x0,-0x10(%rbp)
  jle    L222
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L606
  mov    $0x1,%eax
  jmp    L572
L606:
  cmpl   $0x0,-0x14(%rbp)
  jle    L478
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L478
  mov    $0x1,%eax
  jmp    L572
L478:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L222
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L222
  mov    $0x1,%eax
  jmp    L572
L222:
  mov    -0x10(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x1c(%rbp)
  jle    L116
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %edi,%edx
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L689
  mov    $0x1,%eax
  jmp    L572
L689:
  cmpl   $0x0,-0x14(%rbp)
  jle    L711
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L711
  mov    $0x1,%eax
  jmp    L572
L711:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L116
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%eax
  mov    %ecx,%r8d
  mov    %eax,%ecx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L116
  mov    $0x1,%eax
  jmp    L572
L116:
  cmpl   $0x0,-0x14(%rbp)
  jle    L153
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %esi,%edx
  mov    %eax,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L153
  mov    $0x1,%eax
  jmp    L572
L153:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L778
  mov    -0xc(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %esi,%edx
  mov    %eax,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L778
  mov    $0x1,%eax
  jmp    L572
L778:
  cmpl   $0x0,-0x10(%rbp)
  jle    L171
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x18(%rbp),%edi
  mov    -0x1c(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %edi,%r8d
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L560
  mov    $0x1,%eax
  jmp    L572
L560:
  cmpl   $0x0,-0x14(%rbp)
  jle    L436
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0xc(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %eax,%edx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L436
  mov    $0x1,%eax
  jmp    L572
L436:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L171
  mov    -0x10(%rbp),%eax
  lea    -0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0xc(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %eax,%edx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L171
  mov    $0x1,%eax
  jmp    L572
L171:
  mov    -0x10(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,-0x1c(%rbp)
  jle    L177
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x18(%rbp),%edi
  mov    -0x1c(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x14(%rbp),%eax
  mov    %edi,%r8d
  mov    %eax,%edi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L516
  mov    $0x1,%eax
  jmp    L572
L516:
  cmpl   $0x0,-0x14(%rbp)
  jle    L147
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0xc(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %eax,%edx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L147
  mov    $0x1,%eax
  jmp    L572
L147:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L177
  mov    -0x10(%rbp),%eax
  lea    0x1(%rax),%esi
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%ecx
  mov    -0x1c(%rbp),%edx
  mov    -0xc(%rbp),%eax
  mov    %ecx,%r8d
  mov    %edx,%ecx
  mov    %eax,%edx
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L177
  mov    $0x1,%eax
  jmp    L572
L177:
  cmpl   $0x0,-0x14(%rbp)
  jle    L241
  mov    -0x14(%rbp),%eax
  lea    -0x1(%rax),%edi
  mov    -0x18(%rbp),%esi
  mov    -0x1c(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %esi,%r8d
  mov    %eax,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L241
  mov    $0x1,%eax
  jmp    L572
L241:
  mov    -0x14(%rbp),%eax
  add    $0x1,%eax
  cmp    %eax,0x10(%rbp)
  jle    L397
  mov    -0x14(%rbp),%eax
  lea    0x1(%rax),%edi
  mov    -0x18(%rbp),%esi
  mov    -0x1c(%rbp),%ecx
  mov    -0xc(%rbp),%edx
  mov    -0x10(%rbp),%eax
  mov    %esi,%r8d
  mov    %eax,%esi
  call   <gidz_general@plt>
  movslq %eax,%rdx
  mov    -0x8(%rbp),%rax
  add    %rdx,%rax
  movzbl (%rax),%eax
  cmp    $0x1,%al
  jne    L397
  mov    $0x1,%eax
  jmp    L572
L397:
  mov    $0x0,%eax
L572:
  leave
  ret
```

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