
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void net_select_result(int fd,int event)

{
  int iVar1;
  _func_void_Plug_char_ptr_int_int *p_Var2;
  addrinfo *paVar3;
  Actual_Socket_conflict s;
  int iVar4;
  ulong uVar5;
  SockAddr pSVar6;
  int iVar7;
  int iVar8;
  accept_ctx_t fd_00;
  int *piVar9;
  char *pcVar10;
  int iVar11;
  Plug pppVar12;
  SockAddr_tag *pSVar13;
  sockaddr_union *psVar14;
  int in_GS_OFFSET;
  byte bVar15;
  char *local_5450;
  SockAddr_tag local_544c;
  int err;
  u_long atmark;
  sockaddr_union su;
  char buf [20480];
  
  iVar4 = event;
  bVar15 = 0;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  s = (Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch);
  if (s == (Actual_Socket_conflict)0x0) goto LAB_00067c51;
  noise_ultralight(iVar4);
  if (iVar4 != 2) {
    if (iVar4 == 4) {
      if (s->oobinline == 0) {
        uVar5 = recv(s->s,buf,0x5000,1);
        noise_ultralight(uVar5);
        if ((int)uVar5 < 1) {
          pppVar12 = s->plug;
          p_Var2 = (*pppVar12)->closing;
          piVar9 = __errno_location();
          iVar4 = *piVar9;
          pcVar10 = "Internal networking trouble";
          if (uVar5 != 0) {
            pcVar10 = strerror(iVar4);
            pppVar12 = s->plug;
          }
          (*p_Var2)(pppVar12,pcVar10,iVar4,0);
        }
        else {
          pSVar6 = s->addr;
          if (pSVar6 != (SockAddr)0x0) {
            iVar4 = pSVar6->refcount + -1;
            pSVar6->refcount = iVar4;
            if (iVar4 < 1) {
              sk_addr_free(pSVar6);
            }
            s->addr = (SockAddr)0x0;
          }
          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);
        }
      }
      else {
        s->oobpending = 1;
      }
      goto LAB_00067c51;
    }
    if (iVar4 != 1) goto LAB_00067c51;
    if (s->listener != 0) {
      atmark = 0x80;
      psVar14 = &su;
      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {
        *(undefined4 *)psVar14 = 0;
        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);
      }
      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);
      if (-1 < fd_00.i) {
        nonblock(fd_00.i);
        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&
             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||
           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {
          close(fd_00.i);
        }
      }
      goto LAB_00067c51;
    }
    if (s->frozen != 0) goto LAB_00067c51;
    iVar4 = s->oobpending;
    iVar11 = s->s;
    atmark = 1;
    if ((s->oobinline == 0) || (iVar4 == 0)) {
LAB_00067cc8:
      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;
    }
    else {
      iVar4 = ioctl(iVar11,0x8905,&atmark);
      if (iVar4 != 0) {
        iVar4 = s->oobpending;
        iVar11 = s->s;
        goto LAB_00067cc8;
      }
      iVar11 = s->s;
      if (atmark == 0) {
        iVar4 = s->oobpending;
        goto LAB_00067cc8;
      }
      s->oobpending = 0;
      iVar4 = 0x5000;
    }
    uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);
    noise_ultralight(uVar5);
    if ((int)uVar5 < 0) {
      piVar9 = __errno_location();
      iVar4 = *piVar9;
      if (iVar4 != 0xb) {
        p_Var2 = (*s->plug)->closing;
        pcVar10 = strerror(iVar4);
        (*p_Var2)(s->plug,pcVar10,iVar4,0);
      }
    }
    else if (uVar5 == 0) {
      s->incomingeof = 1;
      uxsel_tell(s);
      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);
    }
    else {
      pSVar6 = s->addr;
      if (pSVar6 != (SockAddr)0x0) {
        iVar4 = pSVar6->refcount + -1;
        pSVar6->refcount = iVar4;
        if (iVar4 < 1) {
          sk_addr_free(pSVar6);
        }
        s->addr = (SockAddr)0x0;
      }
      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);
    }
    goto LAB_00067c51;
  }
  if (s->connected != 0) {
    iVar4 = s->sending_oob;
    s->writable = 1;
    iVar7 = bufchain_size(&s->output_data);
    try_send(s);
    iVar11 = s->sending_oob;
    iVar8 = bufchain_size(&s->output_data);
    iVar8 = iVar8 + iVar11;
    if (iVar8 < iVar4 + iVar7) {
      (*(*s->plug)->sent)(s->plug,iVar8);
    }
    goto LAB_00067c51;
  }
  atmark = 4;
  iVar4 = getsockopt(s->s,1,4,&err,&atmark);
  if (iVar4 < 0) {
    piVar9 = __errno_location();
    pcVar10 = strerror(*piVar9);
    local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);
    err = *piVar9;
LAB_00067fe0:
    pSVar6 = s->addr;
    if (local_5450 != (char *)0x0) {
      if (pSVar6 == (SockAddr)0x0) {
                    /* WARNING: Subroutine does not return */
        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");
      }
      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);
      pppVar12 = s->plug;
      pSVar13 = &local_544c;
      psVar14 = &su;
      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {
        *(int *)psVar14 = pSVar13->refcount;
        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);
        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);
      }
      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);
      iVar4 = err;
      while (err = iVar4, iVar4 != 0) {
        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||
           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {
          p_Var2 = (*s->plug)->closing;
          pcVar10 = strerror(iVar4);
          (*p_Var2)(s->plug,pcVar10,iVar4,0);
          break;
        }
        (s->step).ai = paVar3;
        iVar4 = try_connect(s);
      }
      if (s->connected == 0) goto LAB_00067c51;
      goto LAB_00067dbf;
    }
  }
  else {
    if (err != 0) {
      pcVar10 = strerror(err);
      local_5450 = dupstr(pcVar10);
      goto LAB_00067fe0;
    }
LAB_00067dbf:
    pSVar6 = s->addr;
  }
  if (pSVar6 != (SockAddr)0x0) {
    iVar4 = pSVar6->refcount + -1;
    pSVar6->refcount = iVar4;
    if (iVar4 < 1) {
      sk_addr_free(pSVar6);
    }
    s->addr = (SockAddr)0x0;
  }
  s->writable = 1;
  s->connected = 1;
  uxsel_tell(s);
LAB_00067c51:
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_00067be0(undefined4 param_1,int param_2)

{
  undefined4 uVar1;
  code *pcVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  ssize_t sVar9;
  int *piVar10;
  char *pcVar11;
  int *piVar12;
  undefined4 *puVar13;
  sockaddr *psVar14;
  int in_GS_OFFSET;
  byte bVar15;
  int local_5450;
  undefined4 local_544c [133];
  int local_5238;
  socklen_t local_5234;
  sockaddr local_5230 [33];
  undefined1 local_5020 [20480];
  int local_20;
  undefined4 uStack_14;
  
  iVar5 = param_2;
  bVar15 = 0;
  uStack_14 = 0x67be9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);
  if (iVar4 == 0) goto LAB_00067c51;
  FUN_00068c10(iVar5);
  if (iVar5 != 2) {
    if (iVar5 == 4) {
      if (*(int *)(iVar4 + 0x38) == 0) {
        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);
        FUN_00068c10(sVar9);
        if (sVar9 < 1) {
          piVar10 = *(int **)(iVar4 + 0xc);
          pcVar2 = *(code **)(*piVar10 + 4);
          piVar12 = __errno_location();
          iVar5 = *piVar12;
          pcVar11 = "Internal networking trouble";
          if (sVar9 != 0) {
            pcVar11 = strerror(iVar5);
            piVar10 = *(int **)(iVar4 + 0xc);
          }
          (*pcVar2)(piVar10,pcVar11,iVar5,0);
        }
        else {
          piVar10 = *(int **)(iVar4 + 0x5c);
          if (piVar10 != (int *)0x0) {
            iVar5 = *piVar10;
            *piVar10 = iVar5 + -1;
            if (iVar5 + -1 < 1) {
              FUN_00066cb0();
            }
            *(undefined4 *)(iVar4 + 0x5c) = 0;
          }
          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);
        }
      }
      else {
        *(undefined4 *)(iVar4 + 0x34) = 1;
      }
      goto LAB_00067c51;
    }
    if (iVar5 != 1) goto LAB_00067c51;
    if (*(int *)(iVar4 + 0x48) != 0) {
      local_5234 = 0x80;
      psVar14 = local_5230;
      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {
        psVar14->sa_family = 0;
        psVar14->sa_data[0] = '\0';
        psVar14->sa_data[1] = '\0';
        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);
      }
      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);
      if (-1 < iVar5) {
        FUN_00065db0(iVar5);
        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&
             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||
           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))
                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {
          close(iVar5);
        }
      }
      goto LAB_00067c51;
    }
    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;
    iVar5 = *(int *)(iVar4 + 0x34);
    iVar8 = *(int *)(iVar4 + 8);
    local_5234 = 1;
    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {
LAB_00067cc8:
      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;
    }
    else {
      iVar5 = ioctl(iVar8,0x8905,&local_5234);
      if (iVar5 != 0) {
        iVar5 = *(int *)(iVar4 + 0x34);
        iVar8 = *(int *)(iVar4 + 8);
        goto LAB_00067cc8;
      }
      iVar8 = *(int *)(iVar4 + 8);
      if (local_5234 == 0) {
        iVar5 = *(int *)(iVar4 + 0x34);
        goto LAB_00067cc8;
      }
      *(undefined4 *)(iVar4 + 0x34) = 0;
      iVar5 = 0x5000;
    }
    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);
    FUN_00068c10(iVar5);
    if (iVar5 < 0) {
      piVar10 = __errno_location();
      iVar5 = *piVar10;
      if (iVar5 != 0xb) {
        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);
        pcVar11 = strerror(iVar5);
        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);
      }
    }
    else if (iVar5 == 0) {
      *(undefined4 *)(iVar4 + 0x40) = 1;
      FUN_00066500();
      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);
    }
    else {
      piVar10 = *(int **)(iVar4 + 0x5c);
      if (piVar10 != (int *)0x0) {
        iVar8 = *piVar10;
        *piVar10 = iVar8 + -1;
        if (iVar8 + -1 < 1) {
          FUN_00066cb0();
        }
        *(undefined4 *)(iVar4 + 0x5c) = 0;
      }
      (**(code **)(**(int **)(iVar4 + 0xc) + 8))
                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);
    }
    goto LAB_00067c51;
  }
  if (*(int *)(iVar4 + 0x1c) != 0) {
    iVar5 = *(int *)(iVar4 + 0x30);
    *(undefined4 *)(iVar4 + 0x20) = 1;
    iVar6 = FUN_0001a810(iVar4 + 0x10);
    FUN_00067a60(iVar4);
    iVar8 = *(int *)(iVar4 + 0x30);
    iVar7 = FUN_0001a810(iVar4 + 0x10);
    iVar7 = iVar7 + iVar8;
    if (iVar7 < iVar5 + iVar6) {
      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);
    }
    goto LAB_00067c51;
  }
  local_5234 = 4;
  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);
  if (iVar5 < 0) {
    piVar10 = __errno_location();
    pcVar11 = strerror(*piVar10);
    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);
    local_5238 = *piVar10;
LAB_00067fe0:
    piVar10 = *(int **)(iVar4 + 0x5c);
    if (local_5450 != 0) {
      if (piVar10 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");
      }
      FUN_00066710();
      puVar3 = *(undefined4 **)(iVar4 + 0xc);
      puVar13 = local_544c;
      psVar14 = local_5230;
      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {
        uVar1 = *puVar13;
        psVar14->sa_family = (short)uVar1;
        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);
        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);
        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;
        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);
      }
      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);
      iVar5 = local_5238;
      while (local_5238 = iVar5, iVar5 != 0) {
        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||
           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {
          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);
          pcVar11 = strerror(iVar5);
          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);
          break;
        }
        *(int *)(iVar4 + 0x60) = iVar8;
        iVar5 = FUN_000667a0();
      }
      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;
      goto LAB_00067dbf;
    }
  }
  else {
    if (local_5238 != 0) {
      pcVar11 = strerror(local_5238);
      local_5450 = FUN_0001aac0(pcVar11);
      goto LAB_00067fe0;
    }
LAB_00067dbf:
    piVar10 = *(int **)(iVar4 + 0x5c);
  }
  if (piVar10 != (int *)0x0) {
    iVar5 = *piVar10;
    *piVar10 = iVar5 + -1;
    if (iVar5 + -1 < 1) {
      FUN_00066cb0();
    }
    *(undefined4 *)(iVar4 + 0x5c) = 0;
  }
  *(undefined4 *)(iVar4 + 0x20) = 1;
  *(undefined4 *)(iVar4 + 0x1c) = 1;
  FUN_00066500();
LAB_00067c51:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0006f430();
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00014970
ADD EBX,0x421a7
SUB ESP,0x5450
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x5440],EAX
XOR EAX,EAX
MOV ESI,dword ptr [ESP + 0x5468]
LEA EAX,[EBX + 0xfffbc550]
PUSH EAX
LEA EAX,[ESP + 0x5468]
PUSH EAX
PUSH dword ptr [EBX + 0xd70]
CALL 0x00063f80
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00067c51
SUB ESP,0xc
MOV EBP,EAX
PUSH ESI
CALL 0x00068c10
ADD ESP,0x10
CMP ESI,0x2
JZ 0x00067d70
CMP ESI,0x4
JZ 0x00067d50
CMP ESI,0x1
JZ 0x00067c70
MOV EAX,dword ptr [ESP + 0x543c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00068155
ADD ESP,0x544c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [EBP + 0x48]
TEST EAX,EAX
JNZ 0x00067e58
MOV EAX,dword ptr [EBP + 0x24]
TEST EAX,EAX
JNZ 0x00067c51
MOV EDI,dword ptr [EBP + 0x38]
MOV EAX,dword ptr [EBP + 0x34]
MOV EDX,dword ptr [EBP + 0x8]
MOV dword ptr [ESP + 0x228],0x1
TEST EDI,EDI
JZ 0x00067cc8
TEST EAX,EAX
JZ 0x00067cc8
SUB ESP,0x4
LEA EAX,[ESP + 0x22c]
PUSH EAX
PUSH 0x8905
PUSH EDX
CALL 0x00014270
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0006812e
MOV EAX,dword ptr [EBP + 0x34]
MOV EDX,dword ptr [EBP + 0x8]
LEA ESI,[ESI]
CMP EAX,0x1
SBB EAX,EAX
AND EAX,0x4fff
ADD EAX,0x1
SUB ESP,0xc
PUSH 0x0
PUSH 0x5000
PUSH EAX
LEA ESI,[ESP + 0x454]
PUSH ESI
PUSH EDX
CALL 0x00014420
ADD ESP,0x14
PUSH EAX
MOV EDI,EAX
CALL 0x00068c10
ADD ESP,0x10
TEST EDI,EDI
JS 0x00067f58
JZ 0x000680c8
MOV EAX,dword ptr [EBP + 0x5c]
TEST EAX,EAX
JZ 0x00067d28
MOV ECX,dword ptr [EAX]
LEA EDX,[ECX + -0x1]
MOV dword ptr [EAX],EDX
TEST EDX,EDX
JG 0x00067d21
CALL 0x00066cb0
MOV dword ptr [EBP + 0x5c],0x0
MOV EAX,dword ptr [EBP + 0xc]
XOR ECX,ECX
MOV EDX,dword ptr [EAX]
PUSH EDI
PUSH ESI
MOV EBX,dword ptr [ESP + 0x230]
TEST EBX,EBX
SETZ CL
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0x8]
ADD ESP,0x10
JMP 0x00067c51
MOV EAX,dword ptr [EBP + 0x38]
TEST EAX,EAX
JZ 0x00067ef8
MOV dword ptr [EBP + 0x34],0x1
JMP 0x00067c51
MOV ECX,dword ptr [EBP + 0x1c]
TEST ECX,ECX
JNZ 0x00067e00
MOV dword ptr [ESP + 0x228],0x4
SUB ESP,0xc
LEA EAX,[ESP + 0x234]
PUSH EAX
LEA EAX,[ESP + 0x234]
PUSH EAX
PUSH 0x4
PUSH 0x1
PUSH dword ptr [EBP + 0x8]
CALL 0x00014260
ADD ESP,0x20
TEST EAX,EAX
JS 0x00068090
MOV EAX,dword ptr [ESP + 0x224]
TEST EAX,EAX
JNZ 0x00067fc8
MOV EAX,dword ptr [EBP + 0x5c]
TEST EAX,EAX
JZ 0x00067ddd
MOV ECX,dword ptr [EAX]
LEA EDX,[ECX + -0x1]
MOV dword ptr [EAX],EDX
TEST EDX,EDX
JG 0x00067dd6
CALL 0x00066cb0
MOV dword ptr [EBP + 0x5c],0x0
MOV dword ptr [EBP + 0x20],0x1
MOV EAX,EBP
MOV dword ptr [EBP + 0x1c],0x1
CALL 0x00066500
JMP 0x00067c51
SUB ESP,0xc
LEA EDI,[EBP + 0x10]
MOV ESI,dword ptr [EBP + 0x30]
MOV dword ptr [EBP + 0x20],0x1
PUSH EDI
CALL 0x0001a810
MOV dword ptr [ESP],EBP
ADD ESI,EAX
CALL 0x00067a60
MOV EAX,dword ptr [EBP + 0x30]
MOV dword ptr [ESP],EDI
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x0001a810
ADD EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
CMP ESI,EAX
JLE 0x00067c51
MOV EDX,dword ptr [EBP + 0xc]
SUB ESP,0x8
MOV ECX,dword ptr [EDX]
PUSH EAX
PUSH EDX
CALL dword ptr [ECX + 0xc]
ADD ESP,0x10
JMP 0x00067c51
LEA ESI,[ESP + 0x22c]
XOR EAX,EAX
MOV ECX,0x20
MOV dword ptr [ESP + 0x228],0x80
MOV EDI,ESI
SUB ESP,0x4
STOSD.REP ES:EDI
LEA EAX,[ESP + 0x22c]
PUSH EAX
PUSH ESI
PUSH dword ptr [EBP + 0x8]
CALL 0x000142b0
ADD ESP,0x10
MOV EDI,EAX
TEST EAX,EAX
JS 0x00067c51
SUB ESP,0xc
PUSH EAX
CALL 0x00065db0
MOV EAX,dword ptr [EBP + 0x5c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00067eaf
CMP dword ptr [EAX + 0x8],0x1
JZ 0x00067ec1
MOV EAX,dword ptr [EBP + 0x28]
TEST EAX,EAX
JZ 0x00067ec1
MOV EAX,ESI
CALL 0x00066740
TEST EAX,EAX
JZ 0x00067ee0
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x4
LEA ECX,[EBX + 0xfffbc890]
MOV EDX,dword ptr [EAX]
PUSH EDI
PUSH ECX
PUSH EAX
CALL dword ptr [EDX + 0x10]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00067c51
SUB ESP,0xc
PUSH EDI
CALL 0x00014810
ADD ESP,0x10
JMP 0x00067c51
PUSH 0x1
PUSH 0x5000
LEA ESI,[ESP + 0x444]
PUSH ESI
PUSH dword ptr [EBP + 0x8]
CALL 0x00014800
MOV EDI,EAX
MOV dword ptr [ESP],EAX
CALL 0x00068c10
ADD ESP,0x10
TEST EDI,EDI
JLE 0x00067f90
MOV EAX,dword ptr [EBP + 0x5c]
TEST EAX,EAX
JZ 0x00067f3e
MOV EDX,dword ptr [EAX]
SUB EDX,0x1
MOV dword ptr [EAX],EDX
TEST EDX,EDX
JG 0x00067f37
CALL 0x00066cb0
MOV dword ptr [EBP + 0x5c],0x0
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX]
PUSH EDI
PUSH ESI
PUSH 0x2
PUSH EAX
CALL dword ptr [EDX + 0x8]
ADD ESP,0x10
JMP 0x00067c51
CALL 0x00014550
MOV ESI,dword ptr [EAX]
CMP ESI,0xb
JZ 0x00067c51
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV EDI,dword ptr [EAX + 0x4]
PUSH ESI
CALL 0x00014390
PUSH 0x0
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL EDI
ADD ESP,0x20
JMP 0x00067c51
MOV EDX,dword ptr [EBP + 0xc]
MOV EAX,dword ptr [EDX]
MOV dword ptr [ESP + 0xc],EDX
MOV ESI,dword ptr [EAX + 0x4]
CALL 0x00014550
TEST EDI,EDI
MOV EDX,dword ptr [ESP + 0xc]
MOV ECX,dword ptr [EAX]
LEA EAX,[EBX + 0xfffd7a7f]
JNZ 0x00068112
PUSH 0x0
PUSH ECX
PUSH EAX
PUSH EDX
CALL ESI
ADD ESP,0x10
JMP 0x00067c51
SUB ESP,0xc
PUSH EAX
CALL 0x00014390
MOV dword ptr [ESP],EAX
CALL 0x0001aac0
MOV dword ptr [ESP + 0x1c],EAX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EBP + 0x5c]
TEST ECX,ECX
JZ 0x00067dc2
TEST EAX,EAX
JZ 0x0006815a
LEA ESI,[ESP + 0x10]
MOV EDX,EAX
LEA ECX,[EBP + 0x60]
MOV EAX,ESI
LEA EDI,[ESP + 0x22c]
CALL 0x00066710
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0x8
MOV ECX,0x84
MOVSD.REP ES:EDI,ESI
MOV EDX,dword ptr [EAX]
PUSH dword ptr [ESP + 0x22c]
PUSH dword ptr [ESP + 0x18]
PUSH dword ptr [EBP + 0x58]
LEA ECX,[ESP + 0x240]
PUSH ECX
PUSH 0x1
PUSH EAX
CALL dword ptr [EDX]
MOV ESI,dword ptr [ESP + 0x244]
ADD ESP,0x20
TEST ESI,ESI
JZ 0x00068080
MOV EDX,dword ptr [EBP + 0x5c]
TEST EDX,EDX
JZ 0x000680f0
MOV EAX,dword ptr [EBP + 0x60]
TEST EAX,EAX
JZ 0x000680f0
MOV EAX,dword ptr [EAX + 0x1c]
TEST EAX,EAX
JZ 0x000680f0
MOV dword ptr [EBP + 0x60],EAX
MOV EAX,EBP
CALL 0x000667a0
MOV ESI,EAX
MOV dword ptr [ESP + 0x224],EAX
TEST EAX,EAX
JNZ 0x00068046
NOP
MOV EAX,dword ptr [EBP + 0x1c]
TEST EAX,EAX
JNZ 0x00067dbf
JMP 0x00067c51
CALL 0x00014550
SUB ESP,0xc
PUSH dword ptr [EAX]
MOV ESI,EAX
CALL 0x00014390
POP EDI
POP EDX
PUSH EAX
LEA EAX,[EBX + 0xfffd7a9b]
PUSH EAX
CALL 0x0001b020
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x234],EAX
ADD ESP,0x10
JMP 0x00067fe0
MOV dword ptr [EBP + 0x40],0x1
MOV EAX,EBP
CALL 0x00066500
MOV EAX,dword ptr [EBP + 0xc]
MOV EDX,dword ptr [EAX]
PUSH 0x0
PUSH 0x0
PUSH 0x0
PUSH EAX
CALL dword ptr [EDX + 0x4]
ADD ESP,0x10
JMP 0x00067c51
MOV EAX,dword ptr [EBP + 0xc]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
MOV EDI,dword ptr [EAX + 0x4]
PUSH ESI
CALL 0x00014390
PUSH 0x0
PUSH ESI
PUSH EAX
PUSH dword ptr [EBP + 0xc]
CALL EDI
ADD ESP,0x20
JMP 0x00068080
SUB ESP,0xc
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x00014390
ADD ESP,0x10
MOV EDX,dword ptr [EBP + 0xc]
MOV ECX,dword ptr [ESP + 0xc]
JMP 0x00067fb5
MOV ESI,dword ptr [ESP + 0x228]
MOV EDX,dword ptr [EBP + 0x8]
TEST ESI,ESI
JNZ 0x00068144
MOV EAX,dword ptr [EBP + 0x34]
JMP 0x00067cc8
MOV dword ptr [EBP + 0x34],0x0
MOV EAX,0x5000
JMP 0x00067cd5
CALL 0x0006f430
LEA EAX,[EBX + 0xfffd7be4]
PUSH EAX
LEA EAX,[EBX + 0xfffd79ea]
PUSH 0x593
PUSH EAX
LEA EAX,[EBX + 0xfffd7ab4]
PUSH EAX
CALL 0x00014870
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00067be0(undefined4 param_1,int param_2)\n\n{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006f430();\n}\n\n" comment (function_definition "void FUN_00067be0(undefined4 param_1,int param_2)\n\n{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006f430();\n}" primitive_type (function_declarator "FUN_00067be0(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006f430();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ssize_t sVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "sockaddr *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int local_5450;" primitive_type identifier ;) (declaration "undefined4 local_544c [133];" type_identifier (array_declarator "local_544c [133]" identifier [ number_literal ]) ;) (declaration "int local_5238;" primitive_type identifier ;) (declaration "socklen_t local_5234;" type_identifier identifier ;) (declaration "sockaddr local_5230 [33];" type_identifier (array_declarator "local_5230 [33]" identifier [ number_literal ]) ;) (declaration "undefined1 local_5020 [20480];" type_identifier (array_declarator "local_5020 [20480]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar5 = param_2;" (assignment_expression "iVar5 = param_2" identifier = identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x67be9;" (assignment_expression "uStack_14 = 0x67be9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);" (assignment_expression "iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0)" identifier = (call_expression "FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0)" identifier (argument_list "(DAT_000aab00,&param_1,FUN_000662e0)" ( identifier , (pointer_expression "&param_1" & identifier) , identifier )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00067c51;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (expression_statement "FUN_00068c10(iVar5);" (call_expression "FUN_00068c10(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (compound_statement "{\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }" { (if_statement "if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }" if (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }" { (if_statement "if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x38) == 0" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }" { (expression_statement "sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);" (assignment_expression "sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1)" identifier = (call_expression "recv(*(int *)(iVar4 + 8),local_5020,0x5000,1)" identifier (argument_list "(*(int *)(iVar4 + 8),local_5020,0x5000,1)" ( (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier , number_literal , number_literal )))) ;) (expression_statement "FUN_00068c10(sVar9);" (call_expression "FUN_00068c10(sVar9)" identifier (argument_list "(sVar9)" ( identifier ))) ;) (if_statement "if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" if (parenthesized_expression "(sVar9 < 1)" ( (binary_expression "sVar9 < 1" identifier < number_literal) )) (compound_statement "{\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }" { (expression_statement "piVar10 = *(int **)(iVar4 + 0xc);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0xc)" identifier = (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = *(code **)(*piVar10 + 4);" (assignment_expression "pcVar2 = *(code **)(*piVar10 + 4)" identifier = (pointer_expression "*(code **)(*piVar10 + 4)" * (cast_expression "(code **)(*piVar10 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 4)" ( (binary_expression "*piVar10 + 4" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar11 = "Internal networking trouble";" (assignment_expression "pcVar11 = "Internal networking trouble"" identifier = (string_literal ""Internal networking trouble"" " string_content ")) ;) (if_statement "if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }" { (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "piVar10 = *(int **)(iVar4 + 0xc);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0xc)" identifier = (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar2)(piVar10,pcVar11,iVar5,0);" (call_expression "(*pcVar2)(piVar10,pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(piVar10,pcVar11,iVar5,0)" ( identifier , identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" else (compound_statement "{\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" { (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }" { (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*piVar10 = iVar5 + -1;" (assignment_expression "*piVar10 = iVar5 + -1" (pointer_expression "*piVar10" * identifier) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (if_statement "if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }" if (parenthesized_expression "(iVar5 + -1 < 1)" ( (binary_expression "iVar5 + -1 < 1" (binary_expression "iVar5 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n              FUN_00066cb0();\n            }" { (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 8)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 8)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 8" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),2,local_5020,sVar9)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , number_literal , identifier , identifier ))) ;) }))) }) (else_clause "else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" else (compound_statement "{\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" { (expression_statement "*(undefined4 *)(iVar4 + 0x34) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" * (cast_expression "(undefined4 *)(iVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (iVar5 != 1) goto LAB_00067c51;" if (parenthesized_expression "(iVar5 != 1)" ( (binary_expression "iVar5 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x48) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x48) != 0" (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }" { (expression_statement "local_5234 = 0x80;" (assignment_expression "local_5234 = 0x80" identifier = number_literal) ;) (expression_statement "psVar14 = local_5230;" (assignment_expression "psVar14 = local_5230" identifier = identifier) ;) (for_statement "for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" for ( (assignment_expression "iVar5 = 0x20" identifier = number_literal) ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" { (expression_statement "psVar14->sa_family = 0;" (assignment_expression "psVar14->sa_family = 0" (field_expression "psVar14->sa_family" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar14->sa_data[0] = '\0';" (assignment_expression "psVar14->sa_data[0] = '\0'" (subscript_expression "psVar14->sa_data[0]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar14->sa_data[1] = '\0';" (assignment_expression "psVar14->sa_data[1] = '\0'" (subscript_expression "psVar14->sa_data[1]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);" (assignment_expression "psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4)" identifier = (cast_expression "(sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (binary_expression "(int)psVar14 + (uint)bVar15 * -8 + 4" (binary_expression "(int)psVar14 + (uint)bVar15 * -8" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -8" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);" (assignment_expression "iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234)" identifier = (call_expression "accept(*(int *)(iVar4 + 8),local_5230,&local_5234)" identifier (argument_list "(*(int *)(iVar4 + 8),local_5230,&local_5234)" ( (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "&local_5234" & identifier) )))) ;) (if_statement "if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }" { (expression_statement "FUN_00065db0(iVar5);" (call_expression "FUN_00065db0(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }" if (parenthesized_expression "(((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0))" ( (binary_expression "((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)" (parenthesized_expression "((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0))" ( (binary_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)" (parenthesized_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0))" ( (binary_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)" (parenthesized_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1))" ( (binary_expression "(*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)" (parenthesized_expression "(*(int *)(iVar4 + 0x5c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5c) == 0" (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)" ( (binary_expression "*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1" (pointer_expression "*(int *)(*(int *)(iVar4 + 0x5c) + 8)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x5c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x5c) + 8)" ( (binary_expression "*(int *)(iVar4 + 0x5c) + 8" (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar8 = FUN_00066740(), iVar8 == 0)" ( (comma_expression "iVar8 = FUN_00066740(), iVar8 == 0" (assignment_expression "iVar8 = FUN_00066740()" identifier = (call_expression "FUN_00066740()" identifier (argument_list "()" ( )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)" ( (comma_expression "iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" identifier = (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 0x10)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 0x10" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          close(iVar5);\n        }" { (expression_statement "close(iVar5);" (call_expression "close(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;" if (parenthesized_expression "(*(int *)(iVar4 + 0x24) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x24) != 0" (pointer_expression "*(int *)(iVar4 + 0x24)" * (cast_expression "(int *)(iVar4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_5234 = 1;" (assignment_expression "local_5234 = 1" identifier = number_literal) ;) (if_statement "if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0))" ( (binary_expression "(*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)" (parenthesized_expression "(*(int *)(iVar4 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x38) == 0" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }" { (labeled_statement "LAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;" statement_identifier : (expression_statement "iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;" (assignment_expression "iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1" identifier = (binary_expression "(-(uint)(iVar5 == 0) & 0x4fff) + 1" (parenthesized_expression "(-(uint)(iVar5 == 0) & 0x4fff)" ( (binary_expression "-(uint)(iVar5 == 0) & 0x4fff" (unary_expression "-(uint)(iVar5 == 0)" - (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;)) }) (else_clause "else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" else (compound_statement "{\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" { (expression_statement "iVar5 = ioctl(iVar8,0x8905,&local_5234);" (assignment_expression "iVar5 = ioctl(iVar8,0x8905,&local_5234)" identifier = (call_expression "ioctl(iVar8,0x8905,&local_5234)" identifier (argument_list "(iVar8,0x8905,&local_5234)" ( identifier , number_literal , (pointer_expression "&local_5234" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00067cc8;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (if_statement "if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }" if (parenthesized_expression "(local_5234 == 0)" ( (binary_expression "local_5234 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00067cc8;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" * (cast_expression "(undefined4 *)(iVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = 0x5000;" (assignment_expression "iVar5 = 0x5000" identifier = number_literal) ;) }))) (expression_statement "iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);" (assignment_expression "iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0)" identifier = (call_expression "__recv_chk(iVar8,local_5020,iVar5,0x5000,0)" identifier (argument_list "(iVar8,local_5020,iVar5,0x5000,0)" ( identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "FUN_00068c10(iVar5);" (call_expression "FUN_00068c10(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }" { (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (if_statement "if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }" if (parenthesized_expression "(iVar5 != 0xb)" ( (binary_expression "iVar5 != 0xb" identifier != number_literal) )) (compound_statement "{\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }" { (expression_statement "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);" (assignment_expression "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4)" identifier = (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);" (call_expression "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier , identifier , number_literal ))) ;) })) }) (else_clause "else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" else (if_statement "if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }" { (expression_statement "*(undefined4 *)(iVar4 + 0x40) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x40) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x40)" * (cast_expression "(undefined4 *)(iVar4 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),0,0,0)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" else (compound_statement "{\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" { (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }" { (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*piVar10 = iVar8 + -1;" (assignment_expression "*piVar10 = iVar8 + -1" (pointer_expression "*piVar10" * identifier) = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }" if (parenthesized_expression "(iVar8 + -1 < 1)" ( (binary_expression "iVar8 + -1 < 1" (binary_expression "iVar8 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n          FUN_00066cb0();\n        }" { (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 8)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 8)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 8" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , (binary_expression "local_5234 == 0" identifier == number_literal) , identifier , identifier ))) ;) }))))) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x1c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x1c) != 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x30)" identifier = (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001a810(iVar4 + 0x10);" (assignment_expression "iVar6 = FUN_0001a810(iVar4 + 0x10)" identifier = (call_expression "FUN_0001a810(iVar4 + 0x10)" identifier (argument_list "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) ;) (expression_statement "FUN_00067a60(iVar4);" (call_expression "FUN_00067a60(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar8 = *(int *)(iVar4 + 0x30)" identifier = (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = FUN_0001a810(iVar4 + 0x10);" (assignment_expression "iVar7 = FUN_0001a810(iVar4 + 0x10)" identifier = (call_expression "FUN_0001a810(iVar4 + 0x10)" identifier (argument_list "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) ;) (expression_statement "iVar7 = iVar7 + iVar8;" (assignment_expression "iVar7 = iVar7 + iVar8" identifier = (binary_expression "iVar7 + iVar8" identifier + identifier)) ;) (if_statement "if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }" if (parenthesized_expression "(iVar7 < iVar5 + iVar6)" ( (binary_expression "iVar7 < iVar5 + iVar6" identifier < (binary_expression "iVar5 + iVar6" identifier + identifier)) )) (compound_statement "{\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }" { (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 0xc)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 0xc)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 0xc" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),iVar7)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier ))) ;) })) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (expression_statement "local_5234 = 4;" (assignment_expression "local_5234 = 4" identifier = number_literal) ;) (expression_statement "iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);" (assignment_expression "iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" identifier = (call_expression "getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" identifier (argument_list "(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" ( (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_5238" & identifier) , (pointer_expression "&local_5234" & identifier) )))) ;) (if_statement "if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }" { (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar11 = strerror(*piVar10);" (assignment_expression "pcVar11 = strerror(*piVar10)" identifier = (call_expression "strerror(*piVar10)" identifier (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);" (assignment_expression "local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11)" identifier = (call_expression "FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11)" identifier (argument_list "("getsockopt(SO_ERROR): %s",pcVar11)" ( (string_literal ""getsockopt(SO_ERROR): %s"" " string_content ") , identifier )))) ;) (expression_statement "local_5238 = *piVar10;" (assignment_expression "local_5238 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (labeled_statement "LAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);" statement_identifier : (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;)) (if_statement "if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" if (parenthesized_expression "(local_5450 != 0)" ( (binary_expression "local_5450 != 0" identifier != number_literal) )) (compound_statement "{\n      if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" { (if_statement "if (piVar10 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" { comment (expression_statement "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");" (call_expression "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result")" identifier (argument_list "("s->addr","unix/uxnet.c",0x593,"net_select_result")" ( (string_literal ""s->addr"" " string_content ") , (string_literal ""unix/uxnet.c"" " string_content ") , number_literal , (string_literal ""net_select_result"" " string_content ") ))) ;) })) (expression_statement "FUN_00066710();" (call_expression "FUN_00066710()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = *(undefined4 **)(iVar4 + 0xc);" (assignment_expression "puVar3 = *(undefined4 **)(iVar4 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0xc)" * (cast_expression "(undefined4 **)(iVar4 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = local_544c;" (assignment_expression "puVar13 = local_544c" identifier = identifier) ;) (expression_statement "psVar14 = local_5230;" (assignment_expression "psVar14 = local_5230" identifier = identifier) ;) (for_statement "for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }" for ( (assignment_expression "iVar5 = 0x84" identifier = number_literal) ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }" { (expression_statement "uVar1 = *puVar13;" (assignment_expression "uVar1 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "psVar14->sa_family = (short)uVar1;" (assignment_expression "psVar14->sa_family = (short)uVar1" (field_expression "psVar14->sa_family" identifier -> field_identifier) = (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);" (assignment_expression "psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10)" (subscript_expression "psVar14->sa_data[0]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar1 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar1 >> 0x10)" ( (binary_expression "(uint)uVar1 >> 0x10" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);" (assignment_expression "psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18)" (subscript_expression "psVar14->sa_data[1]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar1 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar1 >> 0x18)" ( (binary_expression "(uint)uVar1 >> 0x18" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar13 = puVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar13 + (uint)bVar15 * -2 + 1" (binary_expression "puVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);" (assignment_expression "psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" identifier = (cast_expression "(sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" ( (binary_expression "(int)psVar14 + ((uint)bVar15 * -2 + 1) * 4" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "((uint)bVar15 * -2 + 1) * 4" (parenthesized_expression "((uint)bVar15 * -2 + 1)" ( (binary_expression "(uint)bVar15 * -2 + 1" (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal)) )))) ;) })) (expression_statement "(**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);" (call_expression "(**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238)" (parenthesized_expression "(**(code **)*puVar3)" ( (pointer_expression "**(code **)*puVar3" * (pointer_expression "*(code **)*puVar3" * (cast_expression "(code **)*puVar3" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar3" * identifier)))) )) (argument_list "(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar4 + 0x58)" * (cast_expression "(undefined4 *)(iVar4 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar5 = local_5238;" (assignment_expression "iVar5 = local_5238" identifier = identifier) ;) (while_statement "while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }" while (parenthesized_expression "(local_5238 = iVar5, iVar5 != 0)" ( (comma_expression "local_5238 = iVar5, iVar5 != 0" (assignment_expression "local_5238 = iVar5" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }" { (if_statement "if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }" if (parenthesized_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0))" ( (binary_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)" (parenthesized_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0))" ( (binary_expression "(*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)" (parenthesized_expression "(*(int *)(iVar4 + 0x5c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5c) == 0" (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar4 + 0x60) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x60) == 0" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "(iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)" ( (comma_expression "iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x60) + 0x1c)" ( (binary_expression "*(int *)(iVar4 + 0x60) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }" { (expression_statement "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);" (assignment_expression "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4)" identifier = (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);" (call_expression "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier , identifier , number_literal ))) ;) (break_statement "break;" break ;) })) (expression_statement "*(int *)(iVar4 + 0x60) = iVar8;" (assignment_expression "*(int *)(iVar4 + 0x60) = iVar8" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = FUN_000667a0();" (assignment_expression "iVar5 = FUN_000667a0()" identifier = (call_expression "FUN_000667a0()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;" if (parenthesized_expression "(*(int *)(iVar4 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x1c) == 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (goto_statement "goto LAB_00067dbf;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" else (compound_statement "{\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" { (if_statement "if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }" if (parenthesized_expression "(local_5238 != 0)" ( (binary_expression "local_5238 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }" { (expression_statement "pcVar11 = strerror(local_5238);" (assignment_expression "pcVar11 = strerror(local_5238)" identifier = (call_expression "strerror(local_5238)" identifier (argument_list "(local_5238)" ( identifier )))) ;) (expression_statement "local_5450 = FUN_0001aac0(pcVar11);" (assignment_expression "local_5450 = FUN_0001aac0(pcVar11)" identifier = (call_expression "FUN_0001aac0(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (goto_statement "goto LAB_00067fe0;" goto statement_identifier ;) })) (labeled_statement "LAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);" statement_identifier : (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;)) }))) (if_statement "if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }" { (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*piVar10 = iVar5 + -1;" (assignment_expression "*piVar10 = iVar5 + -1" (pointer_expression "*piVar10" * identifier) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (if_statement "if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }" if (parenthesized_expression "(iVar5 + -1 < 1)" ( (binary_expression "iVar5 + -1 < 1" (binary_expression "iVar5 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n      FUN_00066cb0();\n    }" { (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x1c) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1c) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "FUN_0006f430();" (call_expression "FUN_0006f430()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid net_select_result(int fd,int event)\n\n{\n  int iVar1;\n  _func_void_Plug_char_ptr_int_int *p_Var2;\n  addrinfo *paVar3;\n  Actual_Socket_conflict s;\n  int iVar4;\n  ulong uVar5;\n  SockAddr pSVar6;\n  int iVar7;\n  int iVar8;\n  accept_ctx_t fd_00;\n  int *piVar9;\n  char *pcVar10;\n  int iVar11;\n  Plug pppVar12;\n  SockAddr_tag *pSVar13;\n  sockaddr_union *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  char *local_5450;\n  SockAddr_tag local_544c;\n  int err;\n  u_long atmark;\n  sockaddr_union su;\n  char buf [20480];\n  \n  iVar4 = event;\n  bVar15 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  s = (Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch);\n  if (s == (Actual_Socket_conflict)0x0) goto LAB_00067c51;\n  noise_ultralight(iVar4);\n  if (iVar4 != 2) {\n    if (iVar4 == 4) {\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar4 != 1) goto LAB_00067c51;\n    if (s->listener != 0) {\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (s->frozen != 0) goto LAB_00067c51;\n    iVar4 = s->oobpending;\n    iVar11 = s->s;\n    atmark = 1;\n    if ((s->oobinline == 0) || (iVar4 == 0)) {\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }\n    uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);\n    noise_ultralight(uVar5);\n    if ((int)uVar5 < 0) {\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }\n    else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (s->connected != 0) {\n    iVar4 = s->sending_oob;\n    s->writable = 1;\n    iVar7 = bufchain_size(&s->output_data);\n    try_send(s);\n    iVar11 = s->sending_oob;\n    iVar8 = bufchain_size(&s->output_data);\n    iVar8 = iVar8 + iVar11;\n    if (iVar8 < iVar4 + iVar7) {\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }\n    goto LAB_00067c51;\n  }\n  atmark = 4;\n  iVar4 = getsockopt(s->s,1,4,&err,&atmark);\n  if (iVar4 < 0) {\n    piVar9 = __errno_location();\n    pcVar10 = strerror(*piVar9);\n    local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);\n    err = *piVar9;\nLAB_00067fe0:\n    pSVar6 = s->addr;\n    if (local_5450 != (char *)0x0) {\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    pSVar6 = s->addr;\n  }\n  if (pSVar6 != (SockAddr)0x0) {\n    iVar4 = pSVar6->refcount + -1;\n    pSVar6->refcount = iVar4;\n    if (iVar4 < 1) {\n      sk_addr_free(pSVar6);\n    }\n    s->addr = (SockAddr)0x0;\n  }\n  s->writable = 1;\n  s->connected = 1;\n  uxsel_tell(s);\nLAB_00067c51:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "void net_select_result(int fd,int event)\n\n{\n  int iVar1;\n  _func_void_Plug_char_ptr_int_int *p_Var2;\n  addrinfo *paVar3;\n  Actual_Socket_conflict s;\n  int iVar4;\n  ulong uVar5;\n  SockAddr pSVar6;\n  int iVar7;\n  int iVar8;\n  accept_ctx_t fd_00;\n  int *piVar9;\n  char *pcVar10;\n  int iVar11;\n  Plug pppVar12;\n  SockAddr_tag *pSVar13;\n  sockaddr_union *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  char *local_5450;\n  SockAddr_tag local_544c;\n  int err;\n  u_long atmark;\n  sockaddr_union su;\n  char buf [20480];\n  \n  iVar4 = event;\n  bVar15 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  s = (Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch);\n  if (s == (Actual_Socket_conflict)0x0) goto LAB_00067c51;\n  noise_ultralight(iVar4);\n  if (iVar4 != 2) {\n    if (iVar4 == 4) {\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar4 != 1) goto LAB_00067c51;\n    if (s->listener != 0) {\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (s->frozen != 0) goto LAB_00067c51;\n    iVar4 = s->oobpending;\n    iVar11 = s->s;\n    atmark = 1;\n    if ((s->oobinline == 0) || (iVar4 == 0)) {\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }\n    uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);\n    noise_ultralight(uVar5);\n    if ((int)uVar5 < 0) {\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }\n    else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (s->connected != 0) {\n    iVar4 = s->sending_oob;\n    s->writable = 1;\n    iVar7 = bufchain_size(&s->output_data);\n    try_send(s);\n    iVar11 = s->sending_oob;\n    iVar8 = bufchain_size(&s->output_data);\n    iVar8 = iVar8 + iVar11;\n    if (iVar8 < iVar4 + iVar7) {\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }\n    goto LAB_00067c51;\n  }\n  atmark = 4;\n  iVar4 = getsockopt(s->s,1,4,&err,&atmark);\n  if (iVar4 < 0) {\n    piVar9 = __errno_location();\n    pcVar10 = strerror(*piVar9);\n    local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);\n    err = *piVar9;\nLAB_00067fe0:\n    pSVar6 = s->addr;\n    if (local_5450 != (char *)0x0) {\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    pSVar6 = s->addr;\n  }\n  if (pSVar6 != (SockAddr)0x0) {\n    iVar4 = pSVar6->refcount + -1;\n    pSVar6->refcount = iVar4;\n    if (iVar4 < 1) {\n      sk_addr_free(pSVar6);\n    }\n    s->addr = (SockAddr)0x0;\n  }\n  s->writable = 1;\n  s->connected = 1;\n  uxsel_tell(s);\nLAB_00067c51:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (function_declarator "net_select_result(int fd,int event)" identifier (parameter_list "(int fd,int event)" ( (parameter_declaration "int fd" primitive_type identifier) , (parameter_declaration "int event" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  _func_void_Plug_char_ptr_int_int *p_Var2;\n  addrinfo *paVar3;\n  Actual_Socket_conflict s;\n  int iVar4;\n  ulong uVar5;\n  SockAddr pSVar6;\n  int iVar7;\n  int iVar8;\n  accept_ctx_t fd_00;\n  int *piVar9;\n  char *pcVar10;\n  int iVar11;\n  Plug pppVar12;\n  SockAddr_tag *pSVar13;\n  sockaddr_union *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  char *local_5450;\n  SockAddr_tag local_544c;\n  int err;\n  u_long atmark;\n  sockaddr_union su;\n  char buf [20480];\n  \n  iVar4 = event;\n  bVar15 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  s = (Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch);\n  if (s == (Actual_Socket_conflict)0x0) goto LAB_00067c51;\n  noise_ultralight(iVar4);\n  if (iVar4 != 2) {\n    if (iVar4 == 4) {\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar4 != 1) goto LAB_00067c51;\n    if (s->listener != 0) {\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (s->frozen != 0) goto LAB_00067c51;\n    iVar4 = s->oobpending;\n    iVar11 = s->s;\n    atmark = 1;\n    if ((s->oobinline == 0) || (iVar4 == 0)) {\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }\n    uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);\n    noise_ultralight(uVar5);\n    if ((int)uVar5 < 0) {\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }\n    else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (s->connected != 0) {\n    iVar4 = s->sending_oob;\n    s->writable = 1;\n    iVar7 = bufchain_size(&s->output_data);\n    try_send(s);\n    iVar11 = s->sending_oob;\n    iVar8 = bufchain_size(&s->output_data);\n    iVar8 = iVar8 + iVar11;\n    if (iVar8 < iVar4 + iVar7) {\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }\n    goto LAB_00067c51;\n  }\n  atmark = 4;\n  iVar4 = getsockopt(s->s,1,4,&err,&atmark);\n  if (iVar4 < 0) {\n    piVar9 = __errno_location();\n    pcVar10 = strerror(*piVar9);\n    local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);\n    err = *piVar9;\nLAB_00067fe0:\n    pSVar6 = s->addr;\n    if (local_5450 != (char *)0x0) {\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    pSVar6 = s->addr;\n  }\n  if (pSVar6 != (SockAddr)0x0) {\n    iVar4 = pSVar6->refcount + -1;\n    pSVar6->refcount = iVar4;\n    if (iVar4 < 1) {\n      sk_addr_free(pSVar6);\n    }\n    s->addr = (SockAddr)0x0;\n  }\n  s->writable = 1;\n  s->connected = 1;\n  uxsel_tell(s);\nLAB_00067c51:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "_func_void_Plug_char_ptr_int_int *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "addrinfo *paVar3;" type_identifier (pointer_declarator "*paVar3" * identifier) ;) (declaration "Actual_Socket_conflict s;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "SockAddr pSVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "accept_ctx_t fd_00;" type_identifier identifier ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "Plug pppVar12;" type_identifier identifier ;) (declaration "SockAddr_tag *pSVar13;" type_identifier (pointer_declarator "*pSVar13" * identifier) ;) (declaration "sockaddr_union *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "char *local_5450;" primitive_type (pointer_declarator "*local_5450" * identifier) ;) (declaration "SockAddr_tag local_544c;" type_identifier identifier ;) (declaration "int err;" primitive_type identifier ;) (declaration "u_long atmark;" type_identifier identifier ;) (declaration "sockaddr_union su;" type_identifier identifier ;) (declaration "char buf [20480];" primitive_type (array_declarator "buf [20480]" identifier [ number_literal ]) ;) (expression_statement "iVar4 = event;" (assignment_expression "iVar4 = event" identifier = identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "s = (Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch);" (assignment_expression "s = (Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch)" identifier = (cast_expression "(Actual_Socket_conflict)find234(sktree,&fd,cmpforsearch)" ( (type_descriptor "Actual_Socket_conflict" type_identifier) ) (call_expression "find234(sktree,&fd,cmpforsearch)" identifier (argument_list "(sktree,&fd,cmpforsearch)" ( identifier , (pointer_expression "&fd" & identifier) , identifier ))))) ;) (if_statement "if (s == (Actual_Socket_conflict)0x0) goto LAB_00067c51;" if (parenthesized_expression "(s == (Actual_Socket_conflict)0x0)" ( (binary_expression "s == (Actual_Socket_conflict)0x0" identifier == (cast_expression "(Actual_Socket_conflict)0x0" ( (type_descriptor "Actual_Socket_conflict" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (expression_statement "noise_ultralight(iVar4);" (call_expression "noise_ultralight(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (if_statement "if (iVar4 != 2) {\n    if (iVar4 == 4) {\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar4 != 1) goto LAB_00067c51;\n    if (s->listener != 0) {\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (s->frozen != 0) goto LAB_00067c51;\n    iVar4 = s->oobpending;\n    iVar11 = s->s;\n    atmark = 1;\n    if ((s->oobinline == 0) || (iVar4 == 0)) {\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }\n    uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);\n    noise_ultralight(uVar5);\n    if ((int)uVar5 < 0) {\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }\n    else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }\n    goto LAB_00067c51;\n  }" if (parenthesized_expression "(iVar4 != 2)" ( (binary_expression "iVar4 != 2" identifier != number_literal) )) (compound_statement "{\n    if (iVar4 == 4) {\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar4 != 1) goto LAB_00067c51;\n    if (s->listener != 0) {\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (s->frozen != 0) goto LAB_00067c51;\n    iVar4 = s->oobpending;\n    iVar11 = s->s;\n    atmark = 1;\n    if ((s->oobinline == 0) || (iVar4 == 0)) {\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }\n    uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);\n    noise_ultralight(uVar5);\n    if ((int)uVar5 < 0) {\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }\n    else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }\n    goto LAB_00067c51;\n  }" { (if_statement "if (iVar4 == 4) {\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }" if (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) )) (compound_statement "{\n      if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }\n      goto LAB_00067c51;\n    }" { (if_statement "if (s->oobinline == 0) {\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }\n      else {\n        s->oobpending = 1;\n      }" if (parenthesized_expression "(s->oobinline == 0)" ( (binary_expression "s->oobinline == 0" (field_expression "s->oobinline" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        uVar5 = recv(s->s,buf,0x5000,1);\n        noise_ultralight(uVar5);\n        if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }\n      }" { (expression_statement "uVar5 = recv(s->s,buf,0x5000,1);" (assignment_expression "uVar5 = recv(s->s,buf,0x5000,1)" identifier = (call_expression "recv(s->s,buf,0x5000,1)" identifier (argument_list "(s->s,buf,0x5000,1)" ( (field_expression "s->s" identifier -> field_identifier) , identifier , number_literal , number_literal )))) ;) (expression_statement "noise_ultralight(uVar5);" (call_expression "noise_ultralight(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if ((int)uVar5 < 1) {\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }\n        else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }" if (parenthesized_expression "((int)uVar5 < 1)" ( (binary_expression "(int)uVar5 < 1" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          pppVar12 = s->plug;\n          p_Var2 = (*pppVar12)->closing;\n          piVar9 = __errno_location();\n          iVar4 = *piVar9;\n          pcVar10 = "Internal networking trouble";\n          if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }\n          (*p_Var2)(pppVar12,pcVar10,iVar4,0);\n        }" { (expression_statement "pppVar12 = s->plug;" (assignment_expression "pppVar12 = s->plug" identifier = (field_expression "s->plug" identifier -> field_identifier)) ;) (expression_statement "p_Var2 = (*pppVar12)->closing;" (assignment_expression "p_Var2 = (*pppVar12)->closing" identifier = (field_expression "(*pppVar12)->closing" (parenthesized_expression "(*pppVar12)" ( (pointer_expression "*pppVar12" * identifier) )) -> field_identifier)) ;) (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "pcVar10 = "Internal networking trouble";" (assignment_expression "pcVar10 = "Internal networking trouble"" identifier = (string_literal ""Internal networking trouble"" " string_content ")) ;) (if_statement "if (uVar5 != 0) {\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar10 = strerror(iVar4);\n            pppVar12 = s->plug;\n          }" { (expression_statement "pcVar10 = strerror(iVar4);" (assignment_expression "pcVar10 = strerror(iVar4)" identifier = (call_expression "strerror(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "pppVar12 = s->plug;" (assignment_expression "pppVar12 = s->plug" identifier = (field_expression "s->plug" identifier -> field_identifier)) ;) })) (expression_statement "(*p_Var2)(pppVar12,pcVar10,iVar4,0);" (call_expression "(*p_Var2)(pppVar12,pcVar10,iVar4,0)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(pppVar12,pcVar10,iVar4,0)" ( identifier , identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }" else (compound_statement "{\n          pSVar6 = s->addr;\n          if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }\n          (*(*s->plug)->receive)(s->plug,2,buf,uVar5);\n        }" { (expression_statement "pSVar6 = s->addr;" (assignment_expression "pSVar6 = s->addr" identifier = (field_expression "s->addr" identifier -> field_identifier)) ;) (if_statement "if (pSVar6 != (SockAddr)0x0) {\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }" if (parenthesized_expression "(pSVar6 != (SockAddr)0x0)" ( (binary_expression "pSVar6 != (SockAddr)0x0" identifier != (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) )) (compound_statement "{\n            iVar4 = pSVar6->refcount + -1;\n            pSVar6->refcount = iVar4;\n            if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }\n            s->addr = (SockAddr)0x0;\n          }" { (expression_statement "iVar4 = pSVar6->refcount + -1;" (assignment_expression "iVar4 = pSVar6->refcount + -1" identifier = (binary_expression "pSVar6->refcount + -1" (field_expression "pSVar6->refcount" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pSVar6->refcount = iVar4;" (assignment_expression "pSVar6->refcount = iVar4" (field_expression "pSVar6->refcount" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar4 < 1) {\n              sk_addr_free(pSVar6);\n            }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\n              sk_addr_free(pSVar6);\n            }" { (expression_statement "sk_addr_free(pSVar6);" (call_expression "sk_addr_free(pSVar6)" identifier (argument_list "(pSVar6)" ( identifier ))) ;) })) (expression_statement "s->addr = (SockAddr)0x0;" (assignment_expression "s->addr = (SockAddr)0x0" (field_expression "s->addr" identifier -> field_identifier) = (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) ;) })) (expression_statement "(*(*s->plug)->receive)(s->plug,2,buf,uVar5);" (call_expression "(*(*s->plug)->receive)(s->plug,2,buf,uVar5)" (parenthesized_expression "(*(*s->plug)->receive)" ( (pointer_expression "*(*s->plug)->receive" * (field_expression "(*s->plug)->receive" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(s->plug,2,buf,uVar5)" ( (field_expression "s->plug" identifier -> field_identifier) , number_literal , identifier , identifier ))) ;) }))) }) (else_clause "else {\n        s->oobpending = 1;\n      }" else (compound_statement "{\n        s->oobpending = 1;\n      }" { (expression_statement "s->oobpending = 1;" (assignment_expression "s->oobpending = 1" (field_expression "s->oobpending" identifier -> field_identifier) = number_literal) ;) }))) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (iVar4 != 1) goto LAB_00067c51;" if (parenthesized_expression "(iVar4 != 1)" ( (binary_expression "iVar4 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (if_statement "if (s->listener != 0) {\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }" if (parenthesized_expression "(s->listener != 0)" ( (binary_expression "s->listener != 0" (field_expression "s->listener" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      atmark = 0x80;\n      psVar14 = &su;\n      for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);\n      if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }\n      goto LAB_00067c51;\n    }" { (expression_statement "atmark = 0x80;" (assignment_expression "atmark = 0x80" identifier = number_literal) ;) (expression_statement "psVar14 = &su;" (assignment_expression "psVar14 = &su" identifier = (pointer_expression "&su" & identifier)) ;) (for_statement "for (iVar4 = 0x20; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" for ( (assignment_expression "iVar4 = 0x20" identifier = number_literal) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n        *(undefined4 *)psVar14 = 0;\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" { (expression_statement "*(undefined4 *)psVar14 = 0;" (assignment_expression "*(undefined4 *)psVar14 = 0" (pointer_expression "*(undefined4 *)psVar14" * (cast_expression "(undefined4 *)psVar14" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);" (assignment_expression "psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4)" identifier = (cast_expression "(sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (type_descriptor "sockaddr_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (binary_expression "(int)psVar14 + (uint)bVar15 * -8 + 4" (binary_expression "(int)psVar14 + (uint)bVar15 * -8" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -8" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark);" (assignment_expression "fd_00.i = accept(s->s,(sockaddr *)&su.storage,&atmark)" (field_expression "fd_00.i" identifier . field_identifier) = (call_expression "accept(s->s,(sockaddr *)&su.storage,&atmark)" identifier (argument_list "(s->s,(sockaddr *)&su.storage,&atmark)" ( (field_expression "s->s" identifier -> field_identifier) , (cast_expression "(sockaddr *)&su.storage" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&su.storage" & (field_expression "su.storage" identifier . field_identifier))) , (pointer_expression "&atmark" & identifier) )))) ;) (if_statement "if (-1 < fd_00.i) {\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }" if (parenthesized_expression "(-1 < fd_00.i)" ( (binary_expression "-1 < fd_00.i" number_literal < (field_expression "fd_00.i" identifier . field_identifier)) )) (compound_statement "{\n        nonblock(fd_00.i);\n        if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }\n      }" { (expression_statement "nonblock(fd_00.i);" (call_expression "nonblock(fd_00.i)" identifier (argument_list "(fd_00.i)" ( (field_expression "fd_00.i" identifier . field_identifier) ))) ;) (if_statement "if (((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)) {\n          close(fd_00.i);\n        }" if (parenthesized_expression "(((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0))" ( (binary_expression "((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)) ||\n           (iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)" (parenthesized_expression "((((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0))" ( (binary_expression "(((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)) && (iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)" (parenthesized_expression "(((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0))" ( (binary_expression "((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)) &&\n             (s->localhost_only != 0)" (parenthesized_expression "((s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4))" ( (binary_expression "(s->addr == (SockAddr)0x0) || (s->addr->superfamily != ADDRTYPE_IPV4)" (parenthesized_expression "(s->addr == (SockAddr)0x0)" ( (binary_expression "s->addr == (SockAddr)0x0" (field_expression "s->addr" identifier -> field_identifier) == (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(s->addr->superfamily != ADDRTYPE_IPV4)" ( (binary_expression "s->addr->superfamily != ADDRTYPE_IPV4" (field_expression "s->addr->superfamily" (field_expression "s->addr" identifier -> field_identifier) -> field_identifier) != identifier) ))) )) && (parenthesized_expression "(s->localhost_only != 0)" ( (binary_expression "s->localhost_only != 0" (field_expression "s->localhost_only" identifier -> field_identifier) != number_literal) ))) )) && (parenthesized_expression "(iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0)" ( (comma_expression "iVar4 = sockaddr_is_loopback(&su.sa), iVar4 == 0" (assignment_expression "iVar4 = sockaddr_is_loopback(&su.sa)" identifier = (call_expression "sockaddr_is_loopback(&su.sa)" identifier (argument_list "(&su.sa)" ( (pointer_expression "&su.sa" & (field_expression "su.sa" identifier . field_identifier)) )))) , (binary_expression "iVar4 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0)" ( (comma_expression "iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00), iVar4 != 0" (assignment_expression "iVar4 = (*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00)" identifier = (call_expression "(*(*s->plug)->accepting)(s->plug,sk_tcp_accept,fd_00)" (parenthesized_expression "(*(*s->plug)->accepting)" ( (pointer_expression "*(*s->plug)->accepting" * (field_expression "(*s->plug)->accepting" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(s->plug,sk_tcp_accept,fd_00)" ( (field_expression "s->plug" identifier -> field_identifier) , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          close(fd_00.i);\n        }" { (expression_statement "close(fd_00.i);" (call_expression "close(fd_00.i)" identifier (argument_list "(fd_00.i)" ( (field_expression "fd_00.i" identifier . field_identifier) ))) ;) })) })) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (s->frozen != 0) goto LAB_00067c51;" if (parenthesized_expression "(s->frozen != 0)" ( (binary_expression "s->frozen != 0" (field_expression "s->frozen" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (expression_statement "iVar4 = s->oobpending;" (assignment_expression "iVar4 = s->oobpending" identifier = (field_expression "s->oobpending" identifier -> field_identifier)) ;) (expression_statement "iVar11 = s->s;" (assignment_expression "iVar11 = s->s" identifier = (field_expression "s->s" identifier -> field_identifier)) ;) (expression_statement "atmark = 1;" (assignment_expression "atmark = 1" identifier = number_literal) ;) (if_statement "if ((s->oobinline == 0) || (iVar4 == 0)) {\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }" if (parenthesized_expression "((s->oobinline == 0) || (iVar4 == 0))" ( (binary_expression "(s->oobinline == 0) || (iVar4 == 0)" (parenthesized_expression "(s->oobinline == 0)" ( (binary_expression "s->oobinline == 0" (field_expression "s->oobinline" identifier -> field_identifier) == number_literal) )) || (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;\n    }" { (labeled_statement "LAB_00067cc8:\n      iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;" statement_identifier : (expression_statement "iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1;" (assignment_expression "iVar4 = (-(uint)(iVar4 == 0) & 0x4fff) + 1" identifier = (binary_expression "(-(uint)(iVar4 == 0) & 0x4fff) + 1" (parenthesized_expression "(-(uint)(iVar4 == 0) & 0x4fff)" ( (binary_expression "-(uint)(iVar4 == 0) & 0x4fff" (unary_expression "-(uint)(iVar4 == 0)" - (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;)) }) (else_clause "else {\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }" else (compound_statement "{\n      iVar4 = ioctl(iVar11,0x8905,&atmark);\n      if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }\n      iVar11 = s->s;\n      if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }\n      s->oobpending = 0;\n      iVar4 = 0x5000;\n    }" { (expression_statement "iVar4 = ioctl(iVar11,0x8905,&atmark);" (assignment_expression "iVar4 = ioctl(iVar11,0x8905,&atmark)" identifier = (call_expression "ioctl(iVar11,0x8905,&atmark)" identifier (argument_list "(iVar11,0x8905,&atmark)" ( identifier , number_literal , (pointer_expression "&atmark" & identifier) )))) ;) (if_statement "if (iVar4 != 0) {\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar4 = s->oobpending;\n        iVar11 = s->s;\n        goto LAB_00067cc8;\n      }" { (expression_statement "iVar4 = s->oobpending;" (assignment_expression "iVar4 = s->oobpending" identifier = (field_expression "s->oobpending" identifier -> field_identifier)) ;) (expression_statement "iVar11 = s->s;" (assignment_expression "iVar11 = s->s" identifier = (field_expression "s->s" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00067cc8;" goto statement_identifier ;) })) (expression_statement "iVar11 = s->s;" (assignment_expression "iVar11 = s->s" identifier = (field_expression "s->s" identifier -> field_identifier)) ;) (if_statement "if (atmark == 0) {\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }" if (parenthesized_expression "(atmark == 0)" ( (binary_expression "atmark == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = s->oobpending;\n        goto LAB_00067cc8;\n      }" { (expression_statement "iVar4 = s->oobpending;" (assignment_expression "iVar4 = s->oobpending" identifier = (field_expression "s->oobpending" identifier -> field_identifier)) ;) (goto_statement "goto LAB_00067cc8;" goto statement_identifier ;) })) (expression_statement "s->oobpending = 0;" (assignment_expression "s->oobpending = 0" (field_expression "s->oobpending" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar4 = 0x5000;" (assignment_expression "iVar4 = 0x5000" identifier = number_literal) ;) }))) (expression_statement "uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0);" (assignment_expression "uVar5 = __recv_chk(iVar11,buf,iVar4,0x5000,0)" identifier = (call_expression "__recv_chk(iVar11,buf,iVar4,0x5000,0)" identifier (argument_list "(iVar11,buf,iVar4,0x5000,0)" ( identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "noise_ultralight(uVar5);" (call_expression "noise_ultralight(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (if_statement "if ((int)uVar5 < 0) {\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }\n    else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }" if (parenthesized_expression "((int)uVar5 < 0)" ( (binary_expression "(int)uVar5 < 0" (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      piVar9 = __errno_location();\n      iVar4 = *piVar9;\n      if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }\n    }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = *piVar9;" (assignment_expression "iVar4 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (if_statement "if (iVar4 != 0xb) {\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }" if (parenthesized_expression "(iVar4 != 0xb)" ( (binary_expression "iVar4 != 0xb" identifier != number_literal) )) (compound_statement "{\n        p_Var2 = (*s->plug)->closing;\n        pcVar10 = strerror(iVar4);\n        (*p_Var2)(s->plug,pcVar10,iVar4,0);\n      }" { (expression_statement "p_Var2 = (*s->plug)->closing;" (assignment_expression "p_Var2 = (*s->plug)->closing" identifier = (field_expression "(*s->plug)->closing" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) ;) (expression_statement "pcVar10 = strerror(iVar4);" (assignment_expression "pcVar10 = strerror(iVar4)" identifier = (call_expression "strerror(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "(*p_Var2)(s->plug,pcVar10,iVar4,0);" (call_expression "(*p_Var2)(s->plug,pcVar10,iVar4,0)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(s->plug,pcVar10,iVar4,0)" ( (field_expression "s->plug" identifier -> field_identifier) , identifier , identifier , number_literal ))) ;) })) }) (else_clause "else if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }" else (if_statement "if (uVar5 == 0) {\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }\n    else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      s->incomingeof = 1;\n      uxsel_tell(s);\n      (*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);\n    }" { (expression_statement "s->incomingeof = 1;" (assignment_expression "s->incomingeof = 1" (field_expression "s->incomingeof" identifier -> field_identifier) = number_literal) ;) (expression_statement "uxsel_tell(s);" (call_expression "uxsel_tell(s)" identifier (argument_list "(s)" ( identifier ))) ;) (expression_statement "(*(*s->plug)->closing)(s->plug,(char *)0x0,0,0);" (call_expression "(*(*s->plug)->closing)(s->plug,(char *)0x0,0,0)" (parenthesized_expression "(*(*s->plug)->closing)" ( (pointer_expression "*(*s->plug)->closing" * (field_expression "(*s->plug)->closing" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(s->plug,(char *)0x0,0,0)" ( (field_expression "s->plug" identifier -> field_identifier) , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal ))) ;) }) (else_clause "else {\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }" else (compound_statement "{\n      pSVar6 = s->addr;\n      if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }\n      (*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);\n    }" { (expression_statement "pSVar6 = s->addr;" (assignment_expression "pSVar6 = s->addr" identifier = (field_expression "s->addr" identifier -> field_identifier)) ;) (if_statement "if (pSVar6 != (SockAddr)0x0) {\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }" if (parenthesized_expression "(pSVar6 != (SockAddr)0x0)" ( (binary_expression "pSVar6 != (SockAddr)0x0" identifier != (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) )) (compound_statement "{\n        iVar4 = pSVar6->refcount + -1;\n        pSVar6->refcount = iVar4;\n        if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }\n        s->addr = (SockAddr)0x0;\n      }" { (expression_statement "iVar4 = pSVar6->refcount + -1;" (assignment_expression "iVar4 = pSVar6->refcount + -1" identifier = (binary_expression "pSVar6->refcount + -1" (field_expression "pSVar6->refcount" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pSVar6->refcount = iVar4;" (assignment_expression "pSVar6->refcount = iVar4" (field_expression "pSVar6->refcount" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar4 < 1) {\n          sk_addr_free(pSVar6);\n        }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\n          sk_addr_free(pSVar6);\n        }" { (expression_statement "sk_addr_free(pSVar6);" (call_expression "sk_addr_free(pSVar6)" identifier (argument_list "(pSVar6)" ( identifier ))) ;) })) (expression_statement "s->addr = (SockAddr)0x0;" (assignment_expression "s->addr = (SockAddr)0x0" (field_expression "s->addr" identifier -> field_identifier) = (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) ;) })) (expression_statement "(*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5);" (call_expression "(*(*s->plug)->receive)(s->plug,SUB14(atmark == 0,0),buf,uVar5)" (parenthesized_expression "(*(*s->plug)->receive)" ( (pointer_expression "*(*s->plug)->receive" * (field_expression "(*s->plug)->receive" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(s->plug,SUB14(atmark == 0,0),buf,uVar5)" ( (field_expression "s->plug" identifier -> field_identifier) , (call_expression "SUB14(atmark == 0,0)" identifier (argument_list "(atmark == 0,0)" ( (binary_expression "atmark == 0" identifier == number_literal) , number_literal ))) , identifier , identifier ))) ;) }))))) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (s->connected != 0) {\n    iVar4 = s->sending_oob;\n    s->writable = 1;\n    iVar7 = bufchain_size(&s->output_data);\n    try_send(s);\n    iVar11 = s->sending_oob;\n    iVar8 = bufchain_size(&s->output_data);\n    iVar8 = iVar8 + iVar11;\n    if (iVar8 < iVar4 + iVar7) {\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }\n    goto LAB_00067c51;\n  }" if (parenthesized_expression "(s->connected != 0)" ( (binary_expression "s->connected != 0" (field_expression "s->connected" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    iVar4 = s->sending_oob;\n    s->writable = 1;\n    iVar7 = bufchain_size(&s->output_data);\n    try_send(s);\n    iVar11 = s->sending_oob;\n    iVar8 = bufchain_size(&s->output_data);\n    iVar8 = iVar8 + iVar11;\n    if (iVar8 < iVar4 + iVar7) {\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }\n    goto LAB_00067c51;\n  }" { (expression_statement "iVar4 = s->sending_oob;" (assignment_expression "iVar4 = s->sending_oob" identifier = (field_expression "s->sending_oob" identifier -> field_identifier)) ;) (expression_statement "s->writable = 1;" (assignment_expression "s->writable = 1" (field_expression "s->writable" identifier -> field_identifier) = number_literal) ;) (expression_statement "iVar7 = bufchain_size(&s->output_data);" (assignment_expression "iVar7 = bufchain_size(&s->output_data)" identifier = (call_expression "bufchain_size(&s->output_data)" identifier (argument_list "(&s->output_data)" ( (pointer_expression "&s->output_data" & (field_expression "s->output_data" identifier -> field_identifier)) )))) ;) (expression_statement "try_send(s);" (call_expression "try_send(s)" identifier (argument_list "(s)" ( identifier ))) ;) (expression_statement "iVar11 = s->sending_oob;" (assignment_expression "iVar11 = s->sending_oob" identifier = (field_expression "s->sending_oob" identifier -> field_identifier)) ;) (expression_statement "iVar8 = bufchain_size(&s->output_data);" (assignment_expression "iVar8 = bufchain_size(&s->output_data)" identifier = (call_expression "bufchain_size(&s->output_data)" identifier (argument_list "(&s->output_data)" ( (pointer_expression "&s->output_data" & (field_expression "s->output_data" identifier -> field_identifier)) )))) ;) (expression_statement "iVar8 = iVar8 + iVar11;" (assignment_expression "iVar8 = iVar8 + iVar11" identifier = (binary_expression "iVar8 + iVar11" identifier + identifier)) ;) (if_statement "if (iVar8 < iVar4 + iVar7) {\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }" if (parenthesized_expression "(iVar8 < iVar4 + iVar7)" ( (binary_expression "iVar8 < iVar4 + iVar7" identifier < (binary_expression "iVar4 + iVar7" identifier + identifier)) )) (compound_statement "{\n      (*(*s->plug)->sent)(s->plug,iVar8);\n    }" { (expression_statement "(*(*s->plug)->sent)(s->plug,iVar8);" (call_expression "(*(*s->plug)->sent)(s->plug,iVar8)" (parenthesized_expression "(*(*s->plug)->sent)" ( (pointer_expression "*(*s->plug)->sent" * (field_expression "(*s->plug)->sent" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) )) (argument_list "(s->plug,iVar8)" ( (field_expression "s->plug" identifier -> field_identifier) , identifier ))) ;) })) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (expression_statement "atmark = 4;" (assignment_expression "atmark = 4" identifier = number_literal) ;) (expression_statement "iVar4 = getsockopt(s->s,1,4,&err,&atmark);" (assignment_expression "iVar4 = getsockopt(s->s,1,4,&err,&atmark)" identifier = (call_expression "getsockopt(s->s,1,4,&err,&atmark)" identifier (argument_list "(s->s,1,4,&err,&atmark)" ( (field_expression "s->s" identifier -> field_identifier) , number_literal , number_literal , (pointer_expression "&err" & identifier) , (pointer_expression "&atmark" & identifier) )))) ;) (if_statement "if (iVar4 < 0) {\n    piVar9 = __errno_location();\n    pcVar10 = strerror(*piVar9);\n    local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);\n    err = *piVar9;\nLAB_00067fe0:\n    pSVar6 = s->addr;\n    if (local_5450 != (char *)0x0) {\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    pSVar6 = s->addr;\n  }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar9 = __errno_location();\n    pcVar10 = strerror(*piVar9);\n    local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);\n    err = *piVar9;\nLAB_00067fe0:\n    pSVar6 = s->addr;\n    if (local_5450 != (char *)0x0) {\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }" { (expression_statement "piVar9 = __errno_location();" (assignment_expression "piVar9 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar10 = strerror(*piVar9);" (assignment_expression "pcVar10 = strerror(*piVar9)" identifier = (call_expression "strerror(*piVar9)" identifier (argument_list "(*piVar9)" ( (pointer_expression "*piVar9" * identifier) )))) ;) (expression_statement "local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10);" (assignment_expression "local_5450 = dupprintf("getsockopt(SO_ERROR): %s",pcVar10)" identifier = (call_expression "dupprintf("getsockopt(SO_ERROR): %s",pcVar10)" identifier (argument_list "("getsockopt(SO_ERROR): %s",pcVar10)" ( (string_literal ""getsockopt(SO_ERROR): %s"" " string_content ") , identifier )))) ;) (expression_statement "err = *piVar9;" (assignment_expression "err = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (labeled_statement "LAB_00067fe0:\n    pSVar6 = s->addr;" statement_identifier : (expression_statement "pSVar6 = s->addr;" (assignment_expression "pSVar6 = s->addr" identifier = (field_expression "s->addr" identifier -> field_identifier)) ;)) (if_statement "if (local_5450 != (char *)0x0) {\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" if (parenthesized_expression "(local_5450 != (char *)0x0)" ( (binary_expression "local_5450 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);\n      pppVar12 = s->plug;\n      pSVar13 = &local_544c;\n      psVar14 = &su;\n      for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      (*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);\n      iVar4 = err;\n      while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }\n      if (s->connected == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" { (if_statement "if (pSVar6 == (SockAddr)0x0) {\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" if (parenthesized_expression "(pSVar6 == (SockAddr)0x0)" ( (binary_expression "pSVar6 == (SockAddr)0x0" identifier == (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" { comment (expression_statement "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");" (call_expression "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result")" identifier (argument_list "("s->addr","unix/uxnet.c",0x593,"net_select_result")" ( (string_literal ""s->addr"" " string_content ") , (string_literal ""unix/uxnet.c"" " string_content ") , number_literal , (string_literal ""net_select_result"" " string_content ") ))) ;) })) (expression_statement "sk_extractaddr_tmp(&local_544c,pSVar6,&s->step);" (call_expression "sk_extractaddr_tmp(&local_544c,pSVar6,&s->step)" identifier (argument_list "(&local_544c,pSVar6,&s->step)" ( (pointer_expression "&local_544c" & identifier) , identifier , (pointer_expression "&s->step" & (field_expression "s->step" identifier -> field_identifier)) ))) ;) (expression_statement "pppVar12 = s->plug;" (assignment_expression "pppVar12 = s->plug" identifier = (field_expression "s->plug" identifier -> field_identifier)) ;) (expression_statement "pSVar13 = &local_544c;" (assignment_expression "pSVar13 = &local_544c" identifier = (pointer_expression "&local_544c" & identifier)) ;) (expression_statement "psVar14 = &su;" (assignment_expression "psVar14 = &su" identifier = (pointer_expression "&su" & identifier)) ;) (for_statement "for (iVar4 = 0x84; iVar4 != 0; iVar4 = iVar4 + -1) {\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" for ( (assignment_expression "iVar4 = 0x84" identifier = number_literal) ; (binary_expression "iVar4 != 0" identifier != number_literal) ; (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ) (compound_statement "{\n        *(int *)psVar14 = pSVar13->refcount;\n        pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);\n        psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" { (expression_statement "*(int *)psVar14 = pSVar13->refcount;" (assignment_expression "*(int *)psVar14 = pSVar13->refcount" (pointer_expression "*(int *)psVar14" * (cast_expression "(int *)psVar14" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (field_expression "pSVar13->refcount" identifier -> field_identifier)) ;) (expression_statement "pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4);" (assignment_expression "pSVar13 = (SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4)" identifier = (cast_expression "(SockAddr_tag *)((int)pSVar13 + (uint)bVar15 * -8 + 4)" ( (type_descriptor "SockAddr_tag *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pSVar13 + (uint)bVar15 * -8 + 4)" ( (binary_expression "(int)pSVar13 + (uint)bVar15 * -8 + 4" (binary_expression "(int)pSVar13 + (uint)bVar15 * -8" (cast_expression "(int)pSVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -8" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4);" (assignment_expression "psVar14 = (sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4)" identifier = (cast_expression "(sockaddr_union *)((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (type_descriptor "sockaddr_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (binary_expression "(int)psVar14 + (uint)bVar15 * -8 + 4" (binary_expression "(int)psVar14 + (uint)bVar15 * -8" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -8" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "(*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err);" (call_expression "(*(*pppVar12)->log)(pppVar12,1,(SockAddr)&su,s->port,local_5450,err)" (parenthesized_expression "(*(*pppVar12)->log)" ( (pointer_expression "*(*pppVar12)->log" * (field_expression "(*pppVar12)->log" (parenthesized_expression "(*pppVar12)" ( (pointer_expression "*pppVar12" * identifier) )) -> field_identifier)) )) (argument_list "(pppVar12,1,(SockAddr)&su,s->port,local_5450,err)" ( identifier , number_literal , (binary_expression "(SockAddr)&su" (parenthesized_expression "(SockAddr)" ( identifier )) & identifier) , (field_expression "s->port" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "iVar4 = err;" (assignment_expression "iVar4 = err" identifier = identifier) ;) (while_statement "while (err = iVar4, iVar4 != 0) {\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }" while (parenthesized_expression "(err = iVar4, iVar4 != 0)" ( (comma_expression "err = iVar4, iVar4 != 0" (assignment_expression "err = iVar4" identifier = identifier) , (binary_expression "iVar4 != 0" identifier != number_literal)) )) (compound_statement "{\n        if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }\n        (s->step).ai = paVar3;\n        iVar4 = try_connect(s);\n      }" { (if_statement "if (((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)) {\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }" if (parenthesized_expression "(((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0))" ( (binary_expression "((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)) ||\n           (paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)" (parenthesized_expression "((s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0))" ( (binary_expression "(s->addr == (SockAddr)0x0) || (paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)" (parenthesized_expression "(s->addr == (SockAddr)0x0)" ( (binary_expression "s->addr == (SockAddr)0x0" (field_expression "s->addr" identifier -> field_identifier) == (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) )) || (parenthesized_expression "(paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0)" ( (comma_expression "paVar3 = (s->step).ai, paVar3 == (addrinfo *)0x0" (assignment_expression "paVar3 = (s->step).ai" identifier = (field_expression "(s->step).ai" (parenthesized_expression "(s->step)" ( (field_expression "s->step" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "paVar3 == (addrinfo *)0x0" identifier == (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) || (parenthesized_expression "(paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0)" ( (comma_expression "paVar3 = paVar3->ai_next, paVar3 == (addrinfo *)0x0" (assignment_expression "paVar3 = paVar3->ai_next" identifier = (field_expression "paVar3->ai_next" identifier -> field_identifier)) , (binary_expression "paVar3 == (addrinfo *)0x0" identifier == (cast_expression "(addrinfo *)0x0" ( (type_descriptor "addrinfo *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n          p_Var2 = (*s->plug)->closing;\n          pcVar10 = strerror(iVar4);\n          (*p_Var2)(s->plug,pcVar10,iVar4,0);\n          break;\n        }" { (expression_statement "p_Var2 = (*s->plug)->closing;" (assignment_expression "p_Var2 = (*s->plug)->closing" identifier = (field_expression "(*s->plug)->closing" (parenthesized_expression "(*s->plug)" ( (pointer_expression "*s->plug" * (field_expression "s->plug" identifier -> field_identifier)) )) -> field_identifier)) ;) (expression_statement "pcVar10 = strerror(iVar4);" (assignment_expression "pcVar10 = strerror(iVar4)" identifier = (call_expression "strerror(iVar4)" identifier (argument_list "(iVar4)" ( identifier )))) ;) (expression_statement "(*p_Var2)(s->plug,pcVar10,iVar4,0);" (call_expression "(*p_Var2)(s->plug,pcVar10,iVar4,0)" (parenthesized_expression "(*p_Var2)" ( (pointer_expression "*p_Var2" * identifier) )) (argument_list "(s->plug,pcVar10,iVar4,0)" ( (field_expression "s->plug" identifier -> field_identifier) , identifier , identifier , number_literal ))) ;) (break_statement "break;" break ;) })) (expression_statement "(s->step).ai = paVar3;" (assignment_expression "(s->step).ai = paVar3" (field_expression "(s->step).ai" (parenthesized_expression "(s->step)" ( (field_expression "s->step" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "iVar4 = try_connect(s);" (assignment_expression "iVar4 = try_connect(s)" identifier = (call_expression "try_connect(s)" identifier (argument_list "(s)" ( identifier )))) ;) })) (if_statement "if (s->connected == 0) goto LAB_00067c51;" if (parenthesized_expression "(s->connected == 0)" ( (binary_expression "s->connected == 0" (field_expression "s->connected" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (goto_statement "goto LAB_00067dbf;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    pSVar6 = s->addr;\n  }" else (compound_statement "{\n    if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    pSVar6 = s->addr;\n  }" { (if_statement "if (err != 0) {\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }" if (parenthesized_expression "(err != 0)" ( (binary_expression "err != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar10 = strerror(err);\n      local_5450 = dupstr(pcVar10);\n      goto LAB_00067fe0;\n    }" { (expression_statement "pcVar10 = strerror(err);" (assignment_expression "pcVar10 = strerror(err)" identifier = (call_expression "strerror(err)" identifier (argument_list "(err)" ( identifier )))) ;) (expression_statement "local_5450 = dupstr(pcVar10);" (assignment_expression "local_5450 = dupstr(pcVar10)" identifier = (call_expression "dupstr(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier )))) ;) (goto_statement "goto LAB_00067fe0;" goto statement_identifier ;) })) (labeled_statement "LAB_00067dbf:\n    pSVar6 = s->addr;" statement_identifier : (expression_statement "pSVar6 = s->addr;" (assignment_expression "pSVar6 = s->addr" identifier = (field_expression "s->addr" identifier -> field_identifier)) ;)) }))) (if_statement "if (pSVar6 != (SockAddr)0x0) {\n    iVar4 = pSVar6->refcount + -1;\n    pSVar6->refcount = iVar4;\n    if (iVar4 < 1) {\n      sk_addr_free(pSVar6);\n    }\n    s->addr = (SockAddr)0x0;\n  }" if (parenthesized_expression "(pSVar6 != (SockAddr)0x0)" ( (binary_expression "pSVar6 != (SockAddr)0x0" identifier != (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) )) (compound_statement "{\n    iVar4 = pSVar6->refcount + -1;\n    pSVar6->refcount = iVar4;\n    if (iVar4 < 1) {\n      sk_addr_free(pSVar6);\n    }\n    s->addr = (SockAddr)0x0;\n  }" { (expression_statement "iVar4 = pSVar6->refcount + -1;" (assignment_expression "iVar4 = pSVar6->refcount + -1" identifier = (binary_expression "pSVar6->refcount + -1" (field_expression "pSVar6->refcount" identifier -> field_identifier) + number_literal)) ;) (expression_statement "pSVar6->refcount = iVar4;" (assignment_expression "pSVar6->refcount = iVar4" (field_expression "pSVar6->refcount" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar4 < 1) {\n      sk_addr_free(pSVar6);\n    }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\n      sk_addr_free(pSVar6);\n    }" { (expression_statement "sk_addr_free(pSVar6);" (call_expression "sk_addr_free(pSVar6)" identifier (argument_list "(pSVar6)" ( identifier ))) ;) })) (expression_statement "s->addr = (SockAddr)0x0;" (assignment_expression "s->addr = (SockAddr)0x0" (field_expression "s->addr" identifier -> field_identifier) = (cast_expression "(SockAddr)0x0" ( (type_descriptor "SockAddr" type_identifier) ) number_literal)) ;) })) (expression_statement "s->writable = 1;" (assignment_expression "s->writable = 1" (field_expression "s->writable" identifier -> field_identifier) = number_literal) ;) (expression_statement "s->connected = 1;" (assignment_expression "s->connected = 1" (field_expression "s->connected" identifier -> field_identifier) = number_literal) ;) (expression_statement "uxsel_tell(s);" (call_expression "uxsel_tell(s)" identifier (argument_list "(s)" ( identifier ))) ;) (labeled_statement "LAB_00067c51:\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_00067be0(undefined4 param_1,int param_2)\n\n{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006f430();\n}\n\n" (function_definition "void FUN_00067be0(undefined4 param_1,int param_2)\n\n{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006f430();\n}" primitive_type (function_declarator "FUN_00067be0(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006f430();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ssize_t sVar9;" primitive_type identifier ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "sockaddr *psVar14;" type_identifier (pointer_declarator "*psVar14" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar15;" type_identifier identifier ;) (declaration "int local_5450;" primitive_type identifier ;) (declaration "undefined4 local_544c [133];" type_identifier (array_declarator "local_544c [133]" identifier [ number_literal ]) ;) (declaration "int local_5238;" primitive_type identifier ;) (declaration "socklen_t local_5234;" type_identifier identifier ;) (declaration "sockaddr local_5230 [33];" type_identifier (array_declarator "local_5230 [33]" identifier [ number_literal ]) ;) (declaration "undefined1 local_5020 [20480];" type_identifier (array_declarator "local_5020 [20480]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar5 = param_2;" (assignment_expression "iVar5 = param_2" identifier = identifier) ;) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x67be9;" (assignment_expression "uStack_14 = 0x67be9" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);" (assignment_expression "iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0)" identifier = (call_expression "FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0)" identifier (argument_list "(DAT_000aab00,&param_1,FUN_000662e0)" ( identifier , (pointer_expression "&param_1" & identifier) , identifier )))) ;) (if_statement "if (iVar4 == 0) goto LAB_00067c51;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (expression_statement "FUN_00068c10(iVar5);" (call_expression "FUN_00068c10(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }" if (parenthesized_expression "(iVar5 != 2)" ( (binary_expression "iVar5 != 2" identifier != number_literal) )) (compound_statement "{\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }" { (if_statement "if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }" if (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) (compound_statement "{\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }" { (if_statement "if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" if (parenthesized_expression "(*(int *)(iVar4 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x38) == 0" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }" { (expression_statement "sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);" (assignment_expression "sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1)" identifier = (call_expression "recv(*(int *)(iVar4 + 8),local_5020,0x5000,1)" identifier (argument_list "(*(int *)(iVar4 + 8),local_5020,0x5000,1)" ( (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier , number_literal , number_literal )))) ;) (expression_statement "FUN_00068c10(sVar9);" (call_expression "FUN_00068c10(sVar9)" identifier (argument_list "(sVar9)" ( identifier ))) ;) (if_statement "if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" if (parenthesized_expression "(sVar9 < 1)" ( (binary_expression "sVar9 < 1" identifier < number_literal) )) (compound_statement "{\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }" { (expression_statement "piVar10 = *(int **)(iVar4 + 0xc);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0xc)" identifier = (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "pcVar2 = *(code **)(*piVar10 + 4);" (assignment_expression "pcVar2 = *(code **)(*piVar10 + 4)" identifier = (pointer_expression "*(code **)(*piVar10 + 4)" * (cast_expression "(code **)(*piVar10 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar10 + 4)" ( (binary_expression "*piVar10 + 4" (pointer_expression "*piVar10" * identifier) + number_literal) ))))) ;) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "pcVar11 = "Internal networking trouble";" (assignment_expression "pcVar11 = "Internal networking trouble"" identifier = (string_literal ""Internal networking trouble"" " string_content ")) ;) (if_statement "if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }" if (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) (compound_statement "{\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }" { (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "piVar10 = *(int **)(iVar4 + 0xc);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0xc)" identifier = (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "(*pcVar2)(piVar10,pcVar11,iVar5,0);" (call_expression "(*pcVar2)(piVar10,pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(piVar10,pcVar11,iVar5,0)" ( identifier , identifier , identifier , number_literal ))) ;) }) (else_clause "else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" else (compound_statement "{\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" { (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }" { (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*piVar10 = iVar5 + -1;" (assignment_expression "*piVar10 = iVar5 + -1" (pointer_expression "*piVar10" * identifier) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (if_statement "if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }" if (parenthesized_expression "(iVar5 + -1 < 1)" ( (binary_expression "iVar5 + -1 < 1" (binary_expression "iVar5 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n              FUN_00066cb0();\n            }" { (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 8)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 8)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 8" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),2,local_5020,sVar9)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , number_literal , identifier , identifier ))) ;) }))) }) (else_clause "else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" else (compound_statement "{\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" { (expression_statement "*(undefined4 *)(iVar4 + 0x34) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" * (cast_expression "(undefined4 *)(iVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = number_literal) ;) }))) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (iVar5 != 1) goto LAB_00067c51;" if (parenthesized_expression "(iVar5 != 1)" ( (binary_expression "iVar5 != 1" identifier != number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (if_statement "if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }" if (parenthesized_expression "(*(int *)(iVar4 + 0x48) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x48) != 0" (pointer_expression "*(int *)(iVar4 + 0x48)" * (cast_expression "(int *)(iVar4 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x48)" ( (binary_expression "iVar4 + 0x48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }" { (expression_statement "local_5234 = 0x80;" (assignment_expression "local_5234 = 0x80" identifier = number_literal) ;) (expression_statement "psVar14 = local_5230;" (assignment_expression "psVar14 = local_5230" identifier = identifier) ;) (for_statement "for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" for ( (assignment_expression "iVar5 = 0x20" identifier = number_literal) ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" { (expression_statement "psVar14->sa_family = 0;" (assignment_expression "psVar14->sa_family = 0" (field_expression "psVar14->sa_family" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar14->sa_data[0] = '\0';" (assignment_expression "psVar14->sa_data[0] = '\0'" (subscript_expression "psVar14->sa_data[0]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar14->sa_data[1] = '\0';" (assignment_expression "psVar14->sa_data[1] = '\0'" (subscript_expression "psVar14->sa_data[1]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);" (assignment_expression "psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4)" identifier = (cast_expression "(sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar14 + (uint)bVar15 * -8 + 4)" ( (binary_expression "(int)psVar14 + (uint)bVar15 * -8 + 4" (binary_expression "(int)psVar14 + (uint)bVar15 * -8" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar15 * -8" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);" (assignment_expression "iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234)" identifier = (call_expression "accept(*(int *)(iVar4 + 8),local_5230,&local_5234)" identifier (argument_list "(*(int *)(iVar4 + 8),local_5230,&local_5234)" ( (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "&local_5234" & identifier) )))) ;) (if_statement "if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }" if (parenthesized_expression "(-1 < iVar5)" ( (binary_expression "-1 < iVar5" number_literal < identifier) )) (compound_statement "{\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }" { (expression_statement "FUN_00065db0(iVar5);" (call_expression "FUN_00065db0(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }" if (parenthesized_expression "(((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0))" ( (binary_expression "((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)" (parenthesized_expression "((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0))" ( (binary_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)" (parenthesized_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0))" ( (binary_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)" (parenthesized_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1))" ( (binary_expression "(*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)" (parenthesized_expression "(*(int *)(iVar4 + 0x5c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5c) == 0" (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)" ( (binary_expression "*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1" (pointer_expression "*(int *)(*(int *)(iVar4 + 0x5c) + 8)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x5c) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x5c) + 8)" ( (binary_expression "*(int *)(iVar4 + 0x5c) + 8" (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" * (cast_expression "(int *)(iVar4 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x28)" ( (binary_expression "iVar4 + 0x28" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar8 = FUN_00066740(), iVar8 == 0)" ( (comma_expression "iVar8 = FUN_00066740(), iVar8 == 0" (assignment_expression "iVar8 = FUN_00066740()" identifier = (call_expression "FUN_00066740()" identifier (argument_list "()" ( )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) || (parenthesized_expression "(iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)" ( (comma_expression "iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" identifier = (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0x10))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 0x10)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 0x10)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 0x10)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 0x10" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          close(iVar5);\n        }" { (expression_statement "close(iVar5);" (call_expression "close(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) })) })) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;" if (parenthesized_expression "(*(int *)(iVar4 + 0x24) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x24) != 0" (pointer_expression "*(int *)(iVar4 + 0x24)" * (cast_expression "(int *)(iVar4 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x24)" ( (binary_expression "iVar4 + 0x24" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (expression_statement "local_5234 = 1;" (assignment_expression "local_5234 = 1" identifier = number_literal) ;) (if_statement "if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" if (parenthesized_expression "((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0))" ( (binary_expression "(*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)" (parenthesized_expression "(*(int *)(iVar4 + 0x38) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x38) == 0" (pointer_expression "*(int *)(iVar4 + 0x38)" * (cast_expression "(int *)(iVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x38)" ( (binary_expression "iVar4 + 0x38" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }" { (labeled_statement "LAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;" statement_identifier : (expression_statement "iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;" (assignment_expression "iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1" identifier = (binary_expression "(-(uint)(iVar5 == 0) & 0x4fff) + 1" (parenthesized_expression "(-(uint)(iVar5 == 0) & 0x4fff)" ( (binary_expression "-(uint)(iVar5 == 0) & 0x4fff" (unary_expression "-(uint)(iVar5 == 0)" - (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;)) }) (else_clause "else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" else (compound_statement "{\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" { (expression_statement "iVar5 = ioctl(iVar8,0x8905,&local_5234);" (assignment_expression "iVar5 = ioctl(iVar8,0x8905,&local_5234)" identifier = (call_expression "ioctl(iVar8,0x8905,&local_5234)" identifier (argument_list "(iVar8,0x8905,&local_5234)" ( identifier , number_literal , (pointer_expression "&local_5234" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00067cc8;" goto statement_identifier ;) })) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" identifier = (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) ))))) ;) (if_statement "if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }" if (parenthesized_expression "(local_5234 == 0)" ( (binary_expression "local_5234 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" identifier = (pointer_expression "*(int *)(iVar4 + 0x34)" * (cast_expression "(int *)(iVar4 + 0x34)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_00067cc8;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" * (cast_expression "(undefined4 *)(iVar4 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x34)" ( (binary_expression "iVar4 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = 0x5000;" (assignment_expression "iVar5 = 0x5000" identifier = number_literal) ;) }))) (expression_statement "iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);" (assignment_expression "iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0)" identifier = (call_expression "__recv_chk(iVar8,local_5020,iVar5,0x5000,0)" identifier (argument_list "(iVar8,local_5020,iVar5,0x5000,0)" ( identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "FUN_00068c10(iVar5);" (call_expression "FUN_00068c10(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }" { (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (if_statement "if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }" if (parenthesized_expression "(iVar5 != 0xb)" ( (binary_expression "iVar5 != 0xb" identifier != number_literal) )) (compound_statement "{\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }" { (expression_statement "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);" (assignment_expression "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4)" identifier = (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);" (call_expression "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier , identifier , number_literal ))) ;) })) }) (else_clause "else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" else (if_statement "if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }" { (expression_statement "*(undefined4 *)(iVar4 + 0x40) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x40) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x40)" * (cast_expression "(undefined4 *)(iVar4 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x40)" ( (binary_expression "iVar4 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 4))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 4)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),0,0,0)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , number_literal , number_literal , number_literal ))) ;) }) (else_clause "else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" else (compound_statement "{\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" { (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;) (if_statement "if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }" { (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*piVar10 = iVar8 + -1;" (assignment_expression "*piVar10 = iVar8 + -1" (pointer_expression "*piVar10" * identifier) = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) (if_statement "if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }" if (parenthesized_expression "(iVar8 + -1 < 1)" ( (binary_expression "iVar8 + -1 < 1" (binary_expression "iVar8 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n          FUN_00066cb0();\n        }" { (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 8)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 8)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 8)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 8" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , (binary_expression "local_5234 == 0" identifier == number_literal) , identifier , identifier ))) ;) }))))) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (if_statement "if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }" if (parenthesized_expression "(*(int *)(iVar4 + 0x1c) != 0)" ( (binary_expression "*(int *)(iVar4 + 0x1c) != 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x30)" identifier = (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar6 = FUN_0001a810(iVar4 + 0x10);" (assignment_expression "iVar6 = FUN_0001a810(iVar4 + 0x10)" identifier = (call_expression "FUN_0001a810(iVar4 + 0x10)" identifier (argument_list "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) ;) (expression_statement "FUN_00067a60(iVar4);" (call_expression "FUN_00067a60(iVar4)" identifier (argument_list "(iVar4)" ( identifier ))) ;) (expression_statement "iVar8 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar8 = *(int *)(iVar4 + 0x30)" identifier = (pointer_expression "*(int *)(iVar4 + 0x30)" * (cast_expression "(int *)(iVar4 + 0x30)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x30)" ( (binary_expression "iVar4 + 0x30" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = FUN_0001a810(iVar4 + 0x10);" (assignment_expression "iVar7 = FUN_0001a810(iVar4 + 0x10)" identifier = (call_expression "FUN_0001a810(iVar4 + 0x10)" identifier (argument_list "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) ;) (expression_statement "iVar7 = iVar7 + iVar8;" (assignment_expression "iVar7 = iVar7 + iVar8" identifier = (binary_expression "iVar7 + iVar8" identifier + identifier)) ;) (if_statement "if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }" if (parenthesized_expression "(iVar7 < iVar5 + iVar6)" ( (binary_expression "iVar7 < iVar5 + iVar6" identifier < (binary_expression "iVar5 + iVar6" identifier + identifier)) )) (compound_statement "{\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }" { (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))" ( (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 0xc)" * (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 0xc)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 0xc)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 0xc" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) )) (argument_list "(*(int **)(iVar4 + 0xc),iVar7)" ( (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier ))) ;) })) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;) })) (expression_statement "local_5234 = 4;" (assignment_expression "local_5234 = 4" identifier = number_literal) ;) (expression_statement "iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);" (assignment_expression "iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" identifier = (call_expression "getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" identifier (argument_list "(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" ( (pointer_expression "*(int *)(iVar4 + 8)" * (cast_expression "(int *)(iVar4 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , number_literal , number_literal , (pointer_expression "&local_5238" & identifier) , (pointer_expression "&local_5234" & identifier) )))) ;) (if_statement "if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" if (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) )) (compound_statement "{\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }" { (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" identifier = (call_expression "__errno_location()" identifier (argument_list "()" ( )))) ;) (expression_statement "pcVar11 = strerror(*piVar10);" (assignment_expression "pcVar11 = strerror(*piVar10)" identifier = (call_expression "strerror(*piVar10)" identifier (argument_list "(*piVar10)" ( (pointer_expression "*piVar10" * identifier) )))) ;) (expression_statement "local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);" (assignment_expression "local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11)" identifier = (call_expression "FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11)" identifier (argument_list "("getsockopt(SO_ERROR): %s",pcVar11)" ( (string_literal ""getsockopt(SO_ERROR): %s"" " string_content ") , identifier )))) ;) (expression_statement "local_5238 = *piVar10;" (assignment_expression "local_5238 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (labeled_statement "LAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);" statement_identifier : (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;)) (if_statement "if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" if (parenthesized_expression "(local_5450 != 0)" ( (binary_expression "local_5450 != 0" identifier != number_literal) )) (compound_statement "{\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" { (if_statement "if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" { (expression_statement "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");" (call_expression "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result")" identifier (argument_list "("s->addr","unix/uxnet.c",0x593,"net_select_result")" ( (string_literal ""s->addr"" " string_content ") , (string_literal ""unix/uxnet.c"" " string_content ") , number_literal , (string_literal ""net_select_result"" " string_content ") ))) ;) })) (expression_statement "FUN_00066710();" (call_expression "FUN_00066710()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar3 = *(undefined4 **)(iVar4 + 0xc);" (assignment_expression "puVar3 = *(undefined4 **)(iVar4 + 0xc)" identifier = (pointer_expression "*(undefined4 **)(iVar4 + 0xc)" * (cast_expression "(undefined4 **)(iVar4 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "puVar13 = local_544c;" (assignment_expression "puVar13 = local_544c" identifier = identifier) ;) (expression_statement "psVar14 = local_5230;" (assignment_expression "psVar14 = local_5230" identifier = identifier) ;) (for_statement "for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }" for ( (assignment_expression "iVar5 = 0x84" identifier = number_literal) ; (binary_expression "iVar5 != 0" identifier != number_literal) ; (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ) (compound_statement "{\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }" { (expression_statement "uVar1 = *puVar13;" (assignment_expression "uVar1 = *puVar13" identifier = (pointer_expression "*puVar13" * identifier)) ;) (expression_statement "psVar14->sa_family = (short)uVar1;" (assignment_expression "psVar14->sa_family = (short)uVar1" (field_expression "psVar14->sa_family" identifier -> field_identifier) = (cast_expression "(short)uVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) identifier)) ;) (expression_statement "psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);" (assignment_expression "psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10)" (subscript_expression "psVar14->sa_data[0]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar1 >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar1 >> 0x10)" ( (binary_expression "(uint)uVar1 >> 0x10" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);" (assignment_expression "psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18)" (subscript_expression "psVar14->sa_data[1]" (field_expression "psVar14->sa_data" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(char)((uint)uVar1 >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)uVar1 >> 0x18)" ( (binary_expression "(uint)uVar1 >> 0x18" (cast_expression "(uint)uVar1" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "puVar13 = puVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (uint)bVar15 * -2 + 1" identifier = (binary_expression "puVar13 + (uint)bVar15 * -2 + 1" (binary_expression "puVar13 + (uint)bVar15 * -2" identifier + (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);" (assignment_expression "psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" identifier = (cast_expression "(sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" ( (type_descriptor "sockaddr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" ( (binary_expression "(int)psVar14 + ((uint)bVar15 * -2 + 1) * 4" (cast_expression "(int)psVar14" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "((uint)bVar15 * -2 + 1) * 4" (parenthesized_expression "((uint)bVar15 * -2 + 1)" ( (binary_expression "(uint)bVar15 * -2 + 1" (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal) + number_literal) )) * number_literal)) )))) ;) })) (expression_statement "(**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);" (call_expression "(**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238)" (parenthesized_expression "(**(code **)*puVar3)" ( (pointer_expression "**(code **)*puVar3" * (pointer_expression "*(code **)*puVar3" * (cast_expression "(code **)*puVar3" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "*puVar3" * identifier)))) )) (argument_list "(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238)" ( identifier , number_literal , identifier , (pointer_expression "*(undefined4 *)(iVar4 + 0x58)" * (cast_expression "(undefined4 *)(iVar4 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x58)" ( (binary_expression "iVar4 + 0x58" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar5 = local_5238;" (assignment_expression "iVar5 = local_5238" identifier = identifier) ;) (while_statement "while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }" while (parenthesized_expression "(local_5238 = iVar5, iVar5 != 0)" ( (comma_expression "local_5238 = iVar5, iVar5 != 0" (assignment_expression "local_5238 = iVar5" identifier = identifier) , (binary_expression "iVar5 != 0" identifier != number_literal)) )) (compound_statement "{\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }" { (if_statement "if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }" if (parenthesized_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0))" ( (binary_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)" (parenthesized_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0))" ( (binary_expression "(*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)" (parenthesized_expression "(*(int *)(iVar4 + 0x5c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x5c) == 0" (pointer_expression "*(int *)(iVar4 + 0x5c)" * (cast_expression "(int *)(iVar4 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) == number_literal) )) || (parenthesized_expression "(*(int *)(iVar4 + 0x60) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x60) == 0" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) == number_literal) ))) )) || (parenthesized_expression "(iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)" ( (comma_expression "iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x60) + 0x1c)" ( (binary_expression "*(int *)(iVar4 + 0x60) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) + number_literal) ))))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }" { (expression_statement "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);" (assignment_expression "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4)" identifier = (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" * (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" ( (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" * (pointer_expression "*(int **)(iVar4 + 0xc)" * (cast_expression "(int **)(iVar4 + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) ))))) + number_literal) ))))) ;) (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" identifier = (call_expression "strerror(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);" (call_expression "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier , identifier , number_literal ))) ;) (break_statement "break;" break ;) })) (expression_statement "*(int *)(iVar4 + 0x60) = iVar8;" (assignment_expression "*(int *)(iVar4 + 0x60) = iVar8" (pointer_expression "*(int *)(iVar4 + 0x60)" * (cast_expression "(int *)(iVar4 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x60)" ( (binary_expression "iVar4 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar5 = FUN_000667a0();" (assignment_expression "iVar5 = FUN_000667a0()" identifier = (call_expression "FUN_000667a0()" identifier (argument_list "()" ( )))) ;) })) (if_statement "if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;" if (parenthesized_expression "(*(int *)(iVar4 + 0x1c) == 0)" ( (binary_expression "*(int *)(iVar4 + 0x1c) == 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" * (cast_expression "(int *)(iVar4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00067c51;" goto statement_identifier ;)) (goto_statement "goto LAB_00067dbf;" goto statement_identifier ;) })) }) (else_clause "else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" else (compound_statement "{\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" { (if_statement "if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }" if (parenthesized_expression "(local_5238 != 0)" ( (binary_expression "local_5238 != 0" identifier != number_literal) )) (compound_statement "{\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }" { (expression_statement "pcVar11 = strerror(local_5238);" (assignment_expression "pcVar11 = strerror(local_5238)" identifier = (call_expression "strerror(local_5238)" identifier (argument_list "(local_5238)" ( identifier )))) ;) (expression_statement "local_5450 = FUN_0001aac0(pcVar11);" (assignment_expression "local_5450 = FUN_0001aac0(pcVar11)" identifier = (call_expression "FUN_0001aac0(pcVar11)" identifier (argument_list "(pcVar11)" ( identifier )))) ;) (goto_statement "goto LAB_00067fe0;" goto statement_identifier ;) })) (labeled_statement "LAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);" statement_identifier : (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" identifier = (pointer_expression "*(int **)(iVar4 + 0x5c)" * (cast_expression "(int **)(iVar4 + 0x5c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) ))))) ;)) }))) (if_statement "if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }" if (parenthesized_expression "(piVar10 != (int *)0x0)" ( (binary_expression "piVar10 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }" { (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" identifier = (pointer_expression "*piVar10" * identifier)) ;) (expression_statement "*piVar10 = iVar5 + -1;" (assignment_expression "*piVar10 = iVar5 + -1" (pointer_expression "*piVar10" * identifier) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) (if_statement "if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }" if (parenthesized_expression "(iVar5 + -1 < 1)" ( (binary_expression "iVar5 + -1 < 1" (binary_expression "iVar5 + -1" identifier + number_literal) < number_literal) )) (compound_statement "{\n      FUN_00066cb0();\n    }" { (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" * (cast_expression "(undefined4 *)(iVar4 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x5c)" ( (binary_expression "iVar4 + 0x5c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" * (cast_expression "(undefined4 *)(iVar4 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x20)" ( (binary_expression "iVar4 + 0x20" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar4 + 0x1c) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1c) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "FUN_0006f430();" (call_expression "FUN_0006f430()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = LIT) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , LIT ))) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT == LIT) , IDENT , IDENT ))) ;) }))))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT -> field_identifier) = (cast_expression ( (type_descriptor (sized_type_specifier short)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) + LIT) )) * LIT)) )))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression * IDENT)))) )) (argument_list ( IDENT , LIT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , LIT ))) ;) (break_statement break ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_00067be0(undefined4 param_1,int param_2)\n\n{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006f430();\n}" (primitive_type "void") (function_declarator "FUN_00067be0(undefined4 param_1,int param_2)" (identifier "FUN_00067be0") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  code *pcVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  ssize_t sVar9;\n  int *piVar10;\n  char *pcVar11;\n  int *piVar12;\n  undefined4 *puVar13;\n  sockaddr *psVar14;\n  int in_GS_OFFSET;\n  byte bVar15;\n  int local_5450;\n  undefined4 local_544c [133];\n  int local_5238;\n  socklen_t local_5234;\n  sockaddr local_5230 [33];\n  undefined1 local_5020 [20480];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar5 = param_2;\n  bVar15 = 0;\n  uStack_14 = 0x67be9;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);\n  if (iVar4 == 0) goto LAB_00067c51;\n  FUN_00068c10(iVar5);\n  if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }\n  if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }\n  local_5234 = 4;\n  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);\n  if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }\n  if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }\n  *(undefined4 *)(iVar4 + 0x20) = 1;\n  *(undefined4 *)(iVar4 + 0x1c) = 1;\n  FUN_00066500();\nLAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006f430();\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "ssize_t sVar9;" (primitive_type "ssize_t") (identifier "sVar9") (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "char *pcVar11;" (primitive_type "char") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "sockaddr *psVar14;" (type_identifier "sockaddr") (pointer_declarator "*psVar14" (* "*") (identifier "psVar14")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar15;" (type_identifier "byte") (identifier "bVar15") (; ";")) (declaration "int local_5450;" (primitive_type "int") (identifier "local_5450") (; ";")) (declaration "undefined4 local_544c [133];" (type_identifier "undefined4") (array_declarator "local_544c [133]" (identifier "local_544c") ([ "[") (number_literal "133") (] "]")) (; ";")) (declaration "int local_5238;" (primitive_type "int") (identifier "local_5238") (; ";")) (declaration "socklen_t local_5234;" (type_identifier "socklen_t") (identifier "local_5234") (; ";")) (declaration "sockaddr local_5230 [33];" (type_identifier "sockaddr") (array_declarator "local_5230 [33]" (identifier "local_5230") ([ "[") (number_literal "33") (] "]")) (; ";")) (declaration "undefined1 local_5020 [20480];" (type_identifier "undefined1") (array_declarator "local_5020 [20480]" (identifier "local_5020") ([ "[") (number_literal "20480") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "iVar5 = param_2;" (assignment_expression "iVar5 = param_2" (identifier "iVar5") (= "=") (identifier "param_2")) (; ";")) (expression_statement "bVar15 = 0;" (assignment_expression "bVar15 = 0" (identifier "bVar15") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x67be9;" (assignment_expression "uStack_14 = 0x67be9" (identifier "uStack_14") (= "=") (number_literal "0x67be9")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);" (assignment_expression "iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0)" (identifier "iVar4") (= "=") (call_expression "FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0)" (identifier "FUN_00063f80") (argument_list "(DAT_000aab00,&param_1,FUN_000662e0)" (( "(") (identifier "DAT_000aab00") (, ",") (pointer_expression "&param_1" (& "&") (identifier "param_1")) (, ",") (identifier "FUN_000662e0") () ")")))) (; ";")) (if_statement "if (iVar4 == 0) goto LAB_00067c51;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";"))) (expression_statement "FUN_00068c10(iVar5);" (call_expression "FUN_00068c10(iVar5)" (identifier "FUN_00068c10") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (iVar5 != 2) {\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }" (if "if") (parenthesized_expression "(iVar5 != 2)" (( "(") (binary_expression "iVar5 != 2" (identifier "iVar5") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n    if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }\n    if (iVar5 != 1) goto LAB_00067c51;\n    if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }\n    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;\n    iVar5 = *(int *)(iVar4 + 0x34);\n    iVar8 = *(int *)(iVar4 + 8);\n    local_5234 = 1;\n    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }\n    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);\n    FUN_00068c10(iVar5);\n    if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }\n    goto LAB_00067c51;\n  }" ({ "{") (if_statement "if (iVar5 == 4) {\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }" (if "if") (parenthesized_expression "(iVar5 == 4)" (( "(") (binary_expression "iVar5 == 4" (identifier "iVar5") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }\n      goto LAB_00067c51;\n    }" ({ "{") (if_statement "if (*(int *)(iVar4 + 0x38) == 0) {\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }\n      else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x38) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x38) == 0" (pointer_expression "*(int *)(iVar4 + 0x38)" (* "*") (cast_expression "(int *)(iVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);\n        FUN_00068c10(sVar9);\n        if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }\n      }" ({ "{") (expression_statement "sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);" (assignment_expression "sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1)" (identifier "sVar9") (= "=") (call_expression "recv(*(int *)(iVar4 + 8),local_5020,0x5000,1)" (identifier "recv") (argument_list "(*(int *)(iVar4 + 8),local_5020,0x5000,1)" (( "(") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "local_5020") (, ",") (number_literal "0x5000") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "FUN_00068c10(sVar9);" (call_expression "FUN_00068c10(sVar9)" (identifier "FUN_00068c10") (argument_list "(sVar9)" (( "(") (identifier "sVar9") () ")"))) (; ";")) (if_statement "if (sVar9 < 1) {\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }\n        else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" (if "if") (parenthesized_expression "(sVar9 < 1)" (( "(") (binary_expression "sVar9 < 1" (identifier "sVar9") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          piVar10 = *(int **)(iVar4 + 0xc);\n          pcVar2 = *(code **)(*piVar10 + 4);\n          piVar12 = __errno_location();\n          iVar5 = *piVar12;\n          pcVar11 = "Internal networking trouble";\n          if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }\n          (*pcVar2)(piVar10,pcVar11,iVar5,0);\n        }" ({ "{") (expression_statement "piVar10 = *(int **)(iVar4 + 0xc);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0xc)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "pcVar2 = *(code **)(*piVar10 + 4);" (assignment_expression "pcVar2 = *(code **)(*piVar10 + 4)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(*piVar10 + 4)" (* "*") (cast_expression "(code **)(*piVar10 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar10 + 4)" (( "(") (binary_expression "*piVar10 + 4" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "piVar12 = __errno_location();" (assignment_expression "piVar12 = __errno_location()" (identifier "piVar12") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = *piVar12;" (assignment_expression "iVar5 = *piVar12" (identifier "iVar5") (= "=") (pointer_expression "*piVar12" (* "*") (identifier "piVar12"))) (; ";")) (expression_statement "pcVar11 = "Internal networking trouble";" (assignment_expression "pcVar11 = "Internal networking trouble"" (identifier "pcVar11") (= "=") (string_literal ""Internal networking trouble"" (" """) (string_content "Internal networking trouble") (" """))) (; ";")) (if_statement "if (sVar9 != 0) {\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }" (if "if") (parenthesized_expression "(sVar9 != 0)" (( "(") (binary_expression "sVar9 != 0" (identifier "sVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar11 = strerror(iVar5);\n            piVar10 = *(int **)(iVar4 + 0xc);\n          }" ({ "{") (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" (identifier "pcVar11") (= "=") (call_expression "strerror(iVar5)" (identifier "strerror") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "piVar10 = *(int **)(iVar4 + 0xc);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0xc)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "(*pcVar2)(piVar10,pcVar11,iVar5,0);" (call_expression "(*pcVar2)(piVar10,pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "(piVar10,pcVar11,iVar5,0)" (( "(") (identifier "piVar10") (, ",") (identifier "pcVar11") (, ",") (identifier "iVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" (else "else") (compound_statement "{\n          piVar10 = *(int **)(iVar4 + 0x5c);\n          if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }\n          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);\n        }" ({ "{") (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar4 + 0x5c)" (* "*") (cast_expression "(int **)(iVar4 + 0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (piVar10 != (int *)0x0) {\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar5 = *piVar10;\n            *piVar10 = iVar5 + -1;\n            if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }\n            *(undefined4 *)(iVar4 + 0x5c) = 0;\n          }" ({ "{") (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" (identifier "iVar5") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "*piVar10 = iVar5 + -1;" (assignment_expression "*piVar10 = iVar5 + -1" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar5 + -1 < 1) {\n              FUN_00066cb0();\n            }" (if "if") (parenthesized_expression "(iVar5 + -1 < 1)" (( "(") (binary_expression "iVar5 + -1 < 1" (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n              FUN_00066cb0();\n            }" ({ "{") (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" (identifier "FUN_00066cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 8)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 8)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 8" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0xc),2,local_5020,sVar9)" (( "(") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (number_literal "2") (, ",") (identifier "local_5020") (, ",") (identifier "sVar9") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" (else "else") (compound_statement "{\n        *(undefined4 *)(iVar4 + 0x34) = 1;\n      }" ({ "{") (expression_statement "*(undefined4 *)(iVar4 + 0x34) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";")) (} "}"))) (if_statement "if (iVar5 != 1) goto LAB_00067c51;" (if "if") (parenthesized_expression "(iVar5 != 1)" (( "(") (binary_expression "iVar5 != 1" (identifier "iVar5") (!= "!=") (number_literal "1")) () ")")) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";"))) (if_statement "if (*(int *)(iVar4 + 0x48) != 0) {\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x48) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x48) != 0" (pointer_expression "*(int *)(iVar4 + 0x48)" (* "*") (cast_expression "(int *)(iVar4 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x48)" (( "(") (binary_expression "iVar4 + 0x48" (identifier "iVar4") (+ "+") (number_literal "0x48")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      local_5234 = 0x80;\n      psVar14 = local_5230;\n      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }\n      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);\n      if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }\n      goto LAB_00067c51;\n    }" ({ "{") (expression_statement "local_5234 = 0x80;" (assignment_expression "local_5234 = 0x80" (identifier "local_5234") (= "=") (number_literal "0x80")) (; ";")) (expression_statement "psVar14 = local_5230;" (assignment_expression "psVar14 = local_5230" (identifier "psVar14") (= "=") (identifier "local_5230")) (; ";")) (for_statement "for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" (for "for") (( "(") (assignment_expression "iVar5 = 0x20" (identifier "iVar5") (= "=") (number_literal "0x20")) (; ";") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        psVar14->sa_family = 0;\n        psVar14->sa_data[0] = '\0';\n        psVar14->sa_data[1] = '\0';\n        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);\n      }" ({ "{") (expression_statement "psVar14->sa_family = 0;" (assignment_expression "psVar14->sa_family = 0" (field_expression "psVar14->sa_family" (identifier "psVar14") (-> "->") (field_identifier "sa_family")) (= "=") (number_literal "0")) (; ";")) (expression_statement "psVar14->sa_data[0] = '\0';" (assignment_expression "psVar14->sa_data[0] = '\0'" (subscript_expression "psVar14->sa_data[0]" (field_expression "psVar14->sa_data" (identifier "psVar14") (-> "->") (field_identifier "sa_data")) ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "psVar14->sa_data[1] = '\0';" (assignment_expression "psVar14->sa_data[1] = '\0'" (subscript_expression "psVar14->sa_data[1]" (field_expression "psVar14->sa_data" (identifier "psVar14") (-> "->") (field_identifier "sa_data")) ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);" (assignment_expression "psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4)" (identifier "psVar14") (= "=") (cast_expression "(sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4)" (( "(") (type_descriptor "sockaddr *" (type_identifier "sockaddr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar14 + (uint)bVar15 * -8 + 4)" (( "(") (binary_expression "(int)psVar14 + (uint)bVar15 * -8 + 4" (binary_expression "(int)psVar14 + (uint)bVar15 * -8" (cast_expression "(int)psVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar14")) (+ "+") (binary_expression "(uint)bVar15 * -8" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-8"))) (+ "+") (number_literal "4")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);" (assignment_expression "iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234)" (identifier "iVar5") (= "=") (call_expression "accept(*(int *)(iVar4 + 8),local_5230,&local_5234)" (identifier "accept") (argument_list "(*(int *)(iVar4 + 8),local_5230,&local_5234)" (( "(") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "local_5230") (, ",") (pointer_expression "&local_5234" (& "&") (identifier "local_5234")) () ")")))) (; ";")) (if_statement "if (-1 < iVar5) {\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }" (if "if") (parenthesized_expression "(-1 < iVar5)" (( "(") (binary_expression "-1 < iVar5" (number_literal "-1") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n        FUN_00065db0(iVar5);\n        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }\n      }" ({ "{") (expression_statement "FUN_00065db0(iVar5);" (call_expression "FUN_00065db0(iVar5)" (identifier "FUN_00065db0") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {\n          close(iVar5);\n        }" (if "if") (parenthesized_expression "(((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0))" (( "(") (binary_expression "((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||\n           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)" (parenthesized_expression "((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0))" (( "(") (binary_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)" (parenthesized_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0))" (( "(") (binary_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&\n             (*(int *)(iVar4 + 0x28) != 0)" (parenthesized_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1))" (( "(") (binary_expression "(*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)" (parenthesized_expression "(*(int *)(iVar4 + 0x5c) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5c) == 0" (pointer_expression "*(int *)(iVar4 + 0x5c)" (* "*") (cast_expression "(int *)(iVar4 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)" (( "(") (binary_expression "*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1" (pointer_expression "*(int *)(*(int *)(iVar4 + 0x5c) + 8)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x5c) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x5c) + 8)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5c) + 8" (pointer_expression "*(int *)(iVar4 + 0x5c)" (* "*") (cast_expression "(int *)(iVar4 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "1")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(iVar4 + 0x28) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x28) != 0" (pointer_expression "*(int *)(iVar4 + 0x28)" (* "*") (cast_expression "(int *)(iVar4 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x28)" (( "(") (binary_expression "iVar4 + 0x28" (identifier "iVar4") (+ "+") (number_literal "0x28")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar8 = FUN_00066740(), iVar8 == 0)" (( "(") (comma_expression "iVar8 = FUN_00066740(), iVar8 == 0" (assignment_expression "iVar8 = FUN_00066740()" (identifier "iVar8") (= "=") (call_expression "FUN_00066740()" (identifier "FUN_00066740") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)" (( "(") (comma_expression "iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0" (assignment_expression "iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0x10))\n                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0x10))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 0x10)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 0x10)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 0x10)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 0x10" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0xc),FUN_00066620,iVar5)" (( "(") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "FUN_00066620") (, ",") (identifier "iVar5") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          close(iVar5);\n        }" ({ "{") (expression_statement "close(iVar5);" (call_expression "close(iVar5)" (identifier "close") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x24) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x24) != 0" (pointer_expression "*(int *)(iVar4 + 0x24)" (* "*") (cast_expression "(int *)(iVar4 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x24)" (( "(") (binary_expression "iVar4 + 0x24" (identifier "iVar4") (+ "+") (number_literal "0x24")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";"))) (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "local_5234 = 1;" (assignment_expression "local_5234 = 1" (identifier "local_5234") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }\n    else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" (if "if") (parenthesized_expression "((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0))" (( "(") (binary_expression "(*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)" (parenthesized_expression "(*(int *)(iVar4 + 0x38) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x38) == 0" (pointer_expression "*(int *)(iVar4 + 0x38)" (* "*") (cast_expression "(int *)(iVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x38)" (( "(") (binary_expression "iVar4 + 0x38" (identifier "iVar4") (+ "+") (number_literal "0x38")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;\n    }" ({ "{") (labeled_statement "LAB_00067cc8:\n      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;" (statement_identifier "LAB_00067cc8") (: ":") (expression_statement "iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;" (assignment_expression "iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1" (identifier "iVar5") (= "=") (binary_expression "(-(uint)(iVar5 == 0) & 0x4fff) + 1" (parenthesized_expression "(-(uint)(iVar5 == 0) & 0x4fff)" (( "(") (binary_expression "-(uint)(iVar5 == 0) & 0x4fff" (unary_expression "-(uint)(iVar5 == 0)" (- "-") (call_expression "(uint)(iVar5 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "0x4fff")) () ")")) (+ "+") (number_literal "1"))) (; ";"))) (} "}")) (else_clause "else {\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" (else "else") (compound_statement "{\n      iVar5 = ioctl(iVar8,0x8905,&local_5234);\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }\n      iVar8 = *(int *)(iVar4 + 8);\n      if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }\n      *(undefined4 *)(iVar4 + 0x34) = 0;\n      iVar5 = 0x5000;\n    }" ({ "{") (expression_statement "iVar5 = ioctl(iVar8,0x8905,&local_5234);" (assignment_expression "iVar5 = ioctl(iVar8,0x8905,&local_5234)" (identifier "iVar5") (= "=") (call_expression "ioctl(iVar8,0x8905,&local_5234)" (identifier "ioctl") (argument_list "(iVar8,0x8905,&local_5234)" (( "(") (identifier "iVar8") (, ",") (number_literal "0x8905") (, ",") (pointer_expression "&local_5234" (& "&") (identifier "local_5234")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(iVar4 + 0x34);\n        iVar8 = *(int *)(iVar4 + 8);\n        goto LAB_00067cc8;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (goto_statement "goto LAB_00067cc8;" (goto "goto") (statement_identifier "LAB_00067cc8") (; ";")) (} "}"))) (expression_statement "iVar8 = *(int *)(iVar4 + 8);" (assignment_expression "iVar8 = *(int *)(iVar4 + 8)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (local_5234 == 0) {\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }" (if "if") (parenthesized_expression "(local_5234 == 0)" (( "(") (binary_expression "local_5234 == 0" (identifier "local_5234") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(iVar4 + 0x34);\n        goto LAB_00067cc8;\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar4 + 0x34);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x34)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x34)" (* "*") (cast_expression "(int *)(iVar4 + 0x34)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (goto_statement "goto LAB_00067cc8;" (goto "goto") (statement_identifier "LAB_00067cc8") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar4 + 0x34) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x34) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x34)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x34)" (( "(") (binary_expression "iVar4 + 0x34" (identifier "iVar4") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar5 = 0x5000;" (assignment_expression "iVar5 = 0x5000" (identifier "iVar5") (= "=") (number_literal "0x5000")) (; ";")) (} "}")))) (expression_statement "iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);" (assignment_expression "iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0)" (identifier "iVar5") (= "=") (call_expression "__recv_chk(iVar8,local_5020,iVar5,0x5000,0)" (identifier "__recv_chk") (argument_list "(iVar8,local_5020,iVar5,0x5000,0)" (( "(") (identifier "iVar8") (, ",") (identifier "local_5020") (, ",") (identifier "iVar5") (, ",") (number_literal "0x5000") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "FUN_00068c10(iVar5);" (call_expression "FUN_00068c10(iVar5)" (identifier "FUN_00068c10") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (iVar5 < 0) {\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }\n    else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      piVar10 = __errno_location();\n      iVar5 = *piVar10;\n      if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }\n    }" ({ "{") (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" (identifier "piVar10") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" (identifier "iVar5") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (if_statement "if (iVar5 != 0xb) {\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }" (if "if") (parenthesized_expression "(iVar5 != 0xb)" (( "(") (binary_expression "iVar5 != 0xb" (identifier "iVar5") (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\n        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n        pcVar11 = strerror(iVar5);\n        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n      }" ({ "{") (expression_statement "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);" (assignment_expression "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" (identifier "pcVar11") (= "=") (call_expression "strerror(iVar5)" (identifier "strerror") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);" (call_expression "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "pcVar11") (, ",") (identifier "iVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" (else "else") (if_statement "if (iVar5 == 0) {\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }\n    else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(iVar4 + 0x40) = 1;\n      FUN_00066500();\n      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);\n    }" ({ "{") (expression_statement "*(undefined4 *)(iVar4 + 0x40) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x40) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x40)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x40)" (( "(") (binary_expression "iVar4 + 0x40" (identifier "iVar4") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" (identifier "FUN_00066500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 4))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 4)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0xc),0,0,0)" (( "(") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" (else "else") (compound_statement "{\n      piVar10 = *(int **)(iVar4 + 0x5c);\n      if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }\n      (**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);\n    }" ({ "{") (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar4 + 0x5c)" (* "*") (cast_expression "(int **)(iVar4 + 0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (if_statement "if (piVar10 != (int *)0x0) {\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar8 = *piVar10;\n        *piVar10 = iVar8 + -1;\n        if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }\n        *(undefined4 *)(iVar4 + 0x5c) = 0;\n      }" ({ "{") (expression_statement "iVar8 = *piVar10;" (assignment_expression "iVar8 = *piVar10" (identifier "iVar8") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "*piVar10 = iVar8 + -1;" (assignment_expression "*piVar10 = iVar8 + -1" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar8 + -1 < 1) {\n          FUN_00066cb0();\n        }" (if "if") (parenthesized_expression "(iVar8 + -1 < 1)" (( "(") (binary_expression "iVar8 + -1 < 1" (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          FUN_00066cb0();\n        }" ({ "{") (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" (identifier "FUN_00066cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))\n                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 8))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 8)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 8)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 8)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 8" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5)" (( "(") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (binary_expression "local_5234 == 0" (identifier "local_5234") (== "==") (number_literal "0")) (, ",") (identifier "local_5020") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}")))))) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x1c) != 0) {\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x1c) != 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x1c) != 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" (* "*") (cast_expression "(int *)(iVar4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = *(int *)(iVar4 + 0x30);\n    *(undefined4 *)(iVar4 + 0x20) = 1;\n    iVar6 = FUN_0001a810(iVar4 + 0x10);\n    FUN_00067a60(iVar4);\n    iVar8 = *(int *)(iVar4 + 0x30);\n    iVar7 = FUN_0001a810(iVar4 + 0x10);\n    iVar7 = iVar7 + iVar8;\n    if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }\n    goto LAB_00067c51;\n  }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x30)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x30)" (* "*") (cast_expression "(int *)(iVar4 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar6 = FUN_0001a810(iVar4 + 0x10);" (assignment_expression "iVar6 = FUN_0001a810(iVar4 + 0x10)" (identifier "iVar6") (= "=") (call_expression "FUN_0001a810(iVar4 + 0x10)" (identifier "FUN_0001a810") (argument_list "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "FUN_00067a60(iVar4);" (call_expression "FUN_00067a60(iVar4)" (identifier "FUN_00067a60") (argument_list "(iVar4)" (( "(") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "iVar8 = *(int *)(iVar4 + 0x30);" (assignment_expression "iVar8 = *(int *)(iVar4 + 0x30)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(iVar4 + 0x30)" (* "*") (cast_expression "(int *)(iVar4 + 0x30)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x30)" (( "(") (binary_expression "iVar4 + 0x30" (identifier "iVar4") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (expression_statement "iVar7 = FUN_0001a810(iVar4 + 0x10);" (assignment_expression "iVar7 = FUN_0001a810(iVar4 + 0x10)" (identifier "iVar7") (= "=") (call_expression "FUN_0001a810(iVar4 + 0x10)" (identifier "FUN_0001a810") (argument_list "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar7 = iVar7 + iVar8;" (assignment_expression "iVar7 = iVar7 + iVar8" (identifier "iVar7") (= "=") (binary_expression "iVar7 + iVar8" (identifier "iVar7") (+ "+") (identifier "iVar8"))) (; ";")) (if_statement "if (iVar7 < iVar5 + iVar6) {\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }" (if "if") (parenthesized_expression "(iVar7 < iVar5 + iVar6)" (( "(") (binary_expression "iVar7 < iVar5 + iVar6" (identifier "iVar7") (< "<") (binary_expression "iVar5 + iVar6" (identifier "iVar5") (+ "+") (identifier "iVar6"))) () ")")) (compound_statement "{\n      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);\n    }" ({ "{") (expression_statement "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);" (call_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7)" (parenthesized_expression "(**(code **)(**(int **)(iVar4 + 0xc) + 0xc))" (( "(") (pointer_expression "**(code **)(**(int **)(iVar4 + 0xc) + 0xc)" (* "*") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 0xc)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 0xc)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 0xc" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(*(int **)(iVar4 + 0xc),iVar7)" (( "(") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";")) (} "}"))) (expression_statement "local_5234 = 4;" (assignment_expression "local_5234 = 4" (identifier "local_5234") (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);" (assignment_expression "iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" (identifier "iVar5") (= "=") (call_expression "getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" (identifier "getsockopt") (argument_list "(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234)" (( "(") (pointer_expression "*(int *)(iVar4 + 8)" (* "*") (cast_expression "(int *)(iVar4 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (pointer_expression "&local_5238" (& "&") (identifier "local_5238")) (, ",") (pointer_expression "&local_5234" (& "&") (identifier "local_5234")) () ")")))) (; ";")) (if_statement "if (iVar5 < 0) {\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }\n  else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" (if "if") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    piVar10 = __errno_location();\n    pcVar11 = strerror(*piVar10);\n    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);\n    local_5238 = *piVar10;\nLAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n    if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }\n  }" ({ "{") (expression_statement "piVar10 = __errno_location();" (assignment_expression "piVar10 = __errno_location()" (identifier "piVar10") (= "=") (call_expression "__errno_location()" (identifier "__errno_location") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar11 = strerror(*piVar10);" (assignment_expression "pcVar11 = strerror(*piVar10)" (identifier "pcVar11") (= "=") (call_expression "strerror(*piVar10)" (identifier "strerror") (argument_list "(*piVar10)" (( "(") (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) () ")")))) (; ";")) (expression_statement "local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);" (assignment_expression "local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11)" (identifier "local_5450") (= "=") (call_expression "FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11)" (identifier "FUN_0001b020") (argument_list "("getsockopt(SO_ERROR): %s",pcVar11)" (( "(") (string_literal ""getsockopt(SO_ERROR): %s"" (" """) (string_content "getsockopt(SO_ERROR): %s") (" """)) (, ",") (identifier "pcVar11") () ")")))) (; ";")) (expression_statement "local_5238 = *piVar10;" (assignment_expression "local_5238 = *piVar10" (identifier "local_5238") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (labeled_statement "LAB_00067fe0:\n    piVar10 = *(int **)(iVar4 + 0x5c);" (statement_identifier "LAB_00067fe0") (: ":") (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar4 + 0x5c)" (* "*") (cast_expression "(int **)(iVar4 + 0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";"))) (if_statement "if (local_5450 != 0) {\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" (if "if") (parenthesized_expression "(local_5450 != 0)" (( "(") (binary_expression "local_5450 != 0" (identifier "local_5450") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }\n      FUN_00066710();\n      puVar3 = *(undefined4 **)(iVar4 + 0xc);\n      puVar13 = local_544c;\n      psVar14 = local_5230;\n      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }\n      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);\n      iVar5 = local_5238;\n      while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }\n      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;\n      goto LAB_00067dbf;\n    }" ({ "{") (if_statement "if (piVar10 == (int *)0x0) {\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" (if "if") (parenthesized_expression "(piVar10 == (int *)0x0)" (( "(") (binary_expression "piVar10 == (int *)0x0" (identifier "piVar10") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");\n      }" ({ "{") (expression_statement "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");" (call_expression "__assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result")" (identifier "__assert_fail") (argument_list "("s->addr","unix/uxnet.c",0x593,"net_select_result")" (( "(") (string_literal ""s->addr"" (" """) (string_content "s->addr") (" """)) (, ",") (string_literal ""unix/uxnet.c"" (" """) (string_content "unix/uxnet.c") (" """)) (, ",") (number_literal "0x593") (, ",") (string_literal ""net_select_result"" (" """) (string_content "net_select_result") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00066710();" (call_expression "FUN_00066710()" (identifier "FUN_00066710") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar3 = *(undefined4 **)(iVar4 + 0xc);" (assignment_expression "puVar3 = *(undefined4 **)(iVar4 + 0xc)" (identifier "puVar3") (= "=") (pointer_expression "*(undefined4 **)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "puVar13 = local_544c;" (assignment_expression "puVar13 = local_544c" (identifier "puVar13") (= "=") (identifier "local_544c")) (; ";")) (expression_statement "psVar14 = local_5230;" (assignment_expression "psVar14 = local_5230" (identifier "psVar14") (= "=") (identifier "local_5230")) (; ";")) (for_statement "for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }" (for "for") (( "(") (assignment_expression "iVar5 = 0x84" (identifier "iVar5") (= "=") (number_literal "0x84")) (; ";") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        uVar1 = *puVar13;\n        psVar14->sa_family = (short)uVar1;\n        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);\n        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);\n        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;\n        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);\n      }" ({ "{") (expression_statement "uVar1 = *puVar13;" (assignment_expression "uVar1 = *puVar13" (identifier "uVar1") (= "=") (pointer_expression "*puVar13" (* "*") (identifier "puVar13"))) (; ";")) (expression_statement "psVar14->sa_family = (short)uVar1;" (assignment_expression "psVar14->sa_family = (short)uVar1" (field_expression "psVar14->sa_family" (identifier "psVar14") (-> "->") (field_identifier "sa_family")) (= "=") (cast_expression "(short)uVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (identifier "uVar1"))) (; ";")) (expression_statement "psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);" (assignment_expression "psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10)" (subscript_expression "psVar14->sa_data[0]" (field_expression "psVar14->sa_data" (identifier "psVar14") (-> "->") (field_identifier "sa_data")) ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char)((uint)uVar1 >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar1 >> 0x10)" (( "(") (binary_expression "(uint)uVar1 >> 0x10" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);" (assignment_expression "psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18)" (subscript_expression "psVar14->sa_data[1]" (field_expression "psVar14->sa_data" (identifier "psVar14") (-> "->") (field_identifier "sa_data")) ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)uVar1 >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)uVar1 >> 0x18)" (( "(") (binary_expression "(uint)uVar1 >> 0x18" (cast_expression "(uint)uVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar1")) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar13 = puVar13 + (uint)bVar15 * -2 + 1;" (assignment_expression "puVar13 = puVar13 + (uint)bVar15 * -2 + 1" (identifier "puVar13") (= "=") (binary_expression "puVar13 + (uint)bVar15 * -2 + 1" (binary_expression "puVar13 + (uint)bVar15 * -2" (identifier "puVar13") (+ "+") (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);" (assignment_expression "psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" (identifier "psVar14") (= "=") (cast_expression "(sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" (( "(") (type_descriptor "sockaddr *" (type_identifier "sockaddr") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4)" (( "(") (binary_expression "(int)psVar14 + ((uint)bVar15 * -2 + 1) * 4" (cast_expression "(int)psVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "psVar14")) (+ "+") (binary_expression "((uint)bVar15 * -2 + 1) * 4" (parenthesized_expression "((uint)bVar15 * -2 + 1)" (( "(") (binary_expression "(uint)bVar15 * -2 + 1" (binary_expression "(uint)bVar15 * -2" (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (* "*") (number_literal "-2")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) () ")")))) (; ";")) (} "}"))) (expression_statement "(**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);" (call_expression "(**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238)" (parenthesized_expression "(**(code **)*puVar3)" (( "(") (pointer_expression "**(code **)*puVar3" (* "*") (pointer_expression "*(code **)*puVar3" (* "*") (cast_expression "(code **)*puVar3" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "*puVar3" (* "*") (identifier "puVar3"))))) () ")")) (argument_list "(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238)" (( "(") (identifier "puVar3") (, ",") (number_literal "1") (, ",") (identifier "local_5230") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0x58)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x58)" (( "(") (binary_expression "iVar4 + 0x58" (identifier "iVar4") (+ "+") (number_literal "0x58")) () ")")))) (, ",") (identifier "local_5450") (, ",") (identifier "local_5238") () ")"))) (; ";")) (expression_statement "iVar5 = local_5238;" (assignment_expression "iVar5 = local_5238" (identifier "iVar5") (= "=") (identifier "local_5238")) (; ";")) (while_statement "while (local_5238 = iVar5, iVar5 != 0) {\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }" (while "while") (parenthesized_expression "(local_5238 = iVar5, iVar5 != 0)" (( "(") (comma_expression "local_5238 = iVar5, iVar5 != 0" (assignment_expression "local_5238 = iVar5" (identifier "local_5238") (= "=") (identifier "iVar5")) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }\n        *(int *)(iVar4 + 0x60) = iVar8;\n        iVar5 = FUN_000667a0();\n      }" ({ "{") (if_statement "if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }" (if "if") (parenthesized_expression "(((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0))" (( "(") (binary_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||\n           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)" (parenthesized_expression "((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0))" (( "(") (binary_expression "(*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)" (parenthesized_expression "(*(int *)(iVar4 + 0x5c) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x5c) == 0" (pointer_expression "*(int *)(iVar4 + 0x5c)" (* "*") (cast_expression "(int *)(iVar4 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")")))) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(int *)(iVar4 + 0x60) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x60) == 0" (pointer_expression "*(int *)(iVar4 + 0x60)" (* "*") (cast_expression "(int *)(iVar4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x60)" (( "(") (binary_expression "iVar4 + 0x60" (identifier "iVar4") (+ "+") (number_literal "0x60")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)" (( "(") (comma_expression "iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0" (assignment_expression "iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" (identifier "iVar8") (= "=") (pointer_expression "*(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x60) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x60) + 0x1c)" (( "(") (binary_expression "*(int *)(iVar4 + 0x60) + 0x1c" (pointer_expression "*(int *)(iVar4 + 0x60)" (* "*") (cast_expression "(int *)(iVar4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x60)" (( "(") (binary_expression "iVar4 + 0x60" (identifier "iVar4") (+ "+") (number_literal "0x60")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (, ",") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);\n          pcVar11 = strerror(iVar5);\n          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);\n          break;\n        }" ({ "{") (expression_statement "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);" (assignment_expression "pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(**(int **)(iVar4 + 0xc) + 4)" (* "*") (cast_expression "(code **)(**(int **)(iVar4 + 0xc) + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)(iVar4 + 0xc) + 4)" (( "(") (binary_expression "**(int **)(iVar4 + 0xc) + 4" (pointer_expression "**(int **)(iVar4 + 0xc)" (* "*") (pointer_expression "*(int **)(iVar4 + 0xc)" (* "*") (cast_expression "(int **)(iVar4 + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")"))))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar11 = strerror(iVar5);" (assignment_expression "pcVar11 = strerror(iVar5)" (identifier "pcVar11") (= "=") (call_expression "strerror(iVar5)" (identifier "strerror") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);" (call_expression "(*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "pcVar11") (, ",") (identifier "iVar5") (, ",") (number_literal "0") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "*(int *)(iVar4 + 0x60) = iVar8;" (assignment_expression "*(int *)(iVar4 + 0x60) = iVar8" (pointer_expression "*(int *)(iVar4 + 0x60)" (* "*") (cast_expression "(int *)(iVar4 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x60)" (( "(") (binary_expression "iVar4 + 0x60" (identifier "iVar4") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "iVar5 = FUN_000667a0();" (assignment_expression "iVar5 = FUN_000667a0()" (identifier "iVar5") (= "=") (call_expression "FUN_000667a0()" (identifier "FUN_000667a0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (if_statement "if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;" (if "if") (parenthesized_expression "(*(int *)(iVar4 + 0x1c) == 0)" (( "(") (binary_expression "*(int *)(iVar4 + 0x1c) == 0" (pointer_expression "*(int *)(iVar4 + 0x1c)" (* "*") (cast_expression "(int *)(iVar4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00067c51;" (goto "goto") (statement_identifier "LAB_00067c51") (; ";"))) (goto_statement "goto LAB_00067dbf;" (goto "goto") (statement_identifier "LAB_00067dbf") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" (else "else") (compound_statement "{\n    if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }\nLAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);\n  }" ({ "{") (if_statement "if (local_5238 != 0) {\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }" (if "if") (parenthesized_expression "(local_5238 != 0)" (( "(") (binary_expression "local_5238 != 0" (identifier "local_5238") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar11 = strerror(local_5238);\n      local_5450 = FUN_0001aac0(pcVar11);\n      goto LAB_00067fe0;\n    }" ({ "{") (expression_statement "pcVar11 = strerror(local_5238);" (assignment_expression "pcVar11 = strerror(local_5238)" (identifier "pcVar11") (= "=") (call_expression "strerror(local_5238)" (identifier "strerror") (argument_list "(local_5238)" (( "(") (identifier "local_5238") () ")")))) (; ";")) (expression_statement "local_5450 = FUN_0001aac0(pcVar11);" (assignment_expression "local_5450 = FUN_0001aac0(pcVar11)" (identifier "local_5450") (= "=") (call_expression "FUN_0001aac0(pcVar11)" (identifier "FUN_0001aac0") (argument_list "(pcVar11)" (( "(") (identifier "pcVar11") () ")")))) (; ";")) (goto_statement "goto LAB_00067fe0;" (goto "goto") (statement_identifier "LAB_00067fe0") (; ";")) (} "}"))) (labeled_statement "LAB_00067dbf:\n    piVar10 = *(int **)(iVar4 + 0x5c);" (statement_identifier "LAB_00067dbf") (: ":") (expression_statement "piVar10 = *(int **)(iVar4 + 0x5c);" (assignment_expression "piVar10 = *(int **)(iVar4 + 0x5c)" (identifier "piVar10") (= "=") (pointer_expression "*(int **)(iVar4 + 0x5c)" (* "*") (cast_expression "(int **)(iVar4 + 0x5c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";"))) (} "}")))) (if_statement "if (piVar10 != (int *)0x0) {\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }" (if "if") (parenthesized_expression "(piVar10 != (int *)0x0)" (( "(") (binary_expression "piVar10 != (int *)0x0" (identifier "piVar10") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar5 = *piVar10;\n    *piVar10 = iVar5 + -1;\n    if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }\n    *(undefined4 *)(iVar4 + 0x5c) = 0;\n  }" ({ "{") (expression_statement "iVar5 = *piVar10;" (assignment_expression "iVar5 = *piVar10" (identifier "iVar5") (= "=") (pointer_expression "*piVar10" (* "*") (identifier "piVar10"))) (; ";")) (expression_statement "*piVar10 = iVar5 + -1;" (assignment_expression "*piVar10 = iVar5 + -1" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar5 + -1 < 1) {\n      FUN_00066cb0();\n    }" (if "if") (parenthesized_expression "(iVar5 + -1 < 1)" (( "(") (binary_expression "iVar5 + -1 < 1" (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      FUN_00066cb0();\n    }" ({ "{") (expression_statement "FUN_00066cb0();" (call_expression "FUN_00066cb0()" (identifier "FUN_00066cb0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar4 + 0x5c) = 0;" (assignment_expression "*(undefined4 *)(iVar4 + 0x5c) = 0" (pointer_expression "*(undefined4 *)(iVar4 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x5c)" (( "(") (binary_expression "iVar4 + 0x5c" (identifier "iVar4") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar4 + 0x20) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x20) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x20)" (( "(") (binary_expression "iVar4 + 0x20" (identifier "iVar4") (+ "+") (number_literal "0x20")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(iVar4 + 0x1c) = 1;" (assignment_expression "*(undefined4 *)(iVar4 + 0x1c) = 1" (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00066500();" (call_expression "FUN_00066500()" (identifier "FUN_00066500") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00067c51:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (statement_identifier "LAB_00067c51") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_0006f430();" (call_expression "FUN_0006f430()" (identifier "FUN_0006f430") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void function_1(int fd,int event)

{
  int var_37;
  type_1 *p_Var2;
  type_2 *var_33;
  type_3 var_3;
  int var_5;
  type_4 var_8;
  type_5 var_10;
  int var_26;
  int var_24;
  type_6 fd_00;
  int *piVar9;
  char *pcVar10;
  int var_25;
  type_7 pppVar12;
  type_8 *pSVar13;
  type_9 *psVar14;
  int var_1;
  type_10 bVar15;
  char *var_29;
  type_8 local_544c;
  int var_35;
  type_11 var_18;
  type_9 var_32;
  char buf [20480];
  
  var_5 = event;
  bVar15 = 0;
  var_37 = *(int *)(var_1 + 0x14);
  var_3 = (type_3)var_2(sktree,&fd,cmpforsearch);
  if (var_3 == (type_3)0x0) goto LAB_00067c51;
  var_4(var_5);
  if (var_5 != 2) {
    if (var_5 == 4) {
      if (var_3->oobinline == 0) {
        var_8 = var_6(var_3->var_3,buf,0x5000,1);
        var_4(var_8);
        if ((int)var_8 < 1) {
          pppVar12 = var_3->plug;
          p_Var2 = (*pppVar12)->closing;
          piVar9 = var_7();
          var_5 = *piVar9;
          pcVar10 = "Internal networking trouble";
          if (var_8 != 0) {
            pcVar10 = var_9(var_5);
            pppVar12 = var_3->plug;
          }
          (*p_Var2)(pppVar12,pcVar10,var_5,0);
        }
        else {
          var_10 = var_3->addr;
          if (var_10 != (type_5)0x0) {
            var_5 = var_10->refcount + -1;
            var_10->refcount = var_5;
            if (var_5 < 1) {
              var_11(var_10);
            }
            var_3->addr = (type_5)0x0;
          }
          (*(*var_3->plug)->receive)(var_3->plug,2,buf,var_8);
        }
      }
      else {
        var_3->oobpending = 1;
      }
      goto LAB_00067c51;
    }
    if (var_5 != 1) goto LAB_00067c51;
    if (var_3->listener != 0) {
      var_18 = 0x80;
      psVar14 = &var_32;
      for (var_5 = 0x20; var_5 != 0; var_5 = var_5 + -1) {
        *(type_12 *)psVar14 = 0;
        psVar14 = (type_9 *)((int)psVar14 + (type_13)bVar15 * -8 + 4);
      }
      fd_00.i = var_12(var_3->var_3,(type_14 *)&var_32.storage,&var_18);
      if (-1 < fd_00.i) {
        var_13(fd_00.i);
        if (((((var_3->addr == (type_5)0x0) || (var_3->addr->superfamily != var_14)) &&
             (var_3->localhost_only != 0)) && (var_5 = var_15(&var_32.sa), var_5 == 0)) ||
           (var_5 = (*(*var_3->plug)->accepting)(var_3->plug,sk_tcp_accept,fd_00), var_5 != 0)) {
          var_16(fd_00.i);
        }
      }
      goto LAB_00067c51;
    }
    if (var_3->frozen != 0) goto LAB_00067c51;
    var_5 = var_3->oobpending;
    var_25 = var_3->var_3;
    var_18 = 1;
    if ((var_3->oobinline == 0) || (var_5 == 0)) {
LAB_00067cc8:
      var_5 = (-(type_13)(var_5 == 0) & 0x4fff) + 1;
    }
    else {
      var_5 = var_17(var_25,0x8905,&var_18);
      if (var_5 != 0) {
        var_5 = var_3->oobpending;
        var_25 = var_3->var_3;
        goto LAB_00067cc8;
      }
      var_25 = var_3->var_3;
      if (var_18 == 0) {
        var_5 = var_3->oobpending;
        goto LAB_00067cc8;
      }
      var_3->oobpending = 0;
      var_5 = 0x5000;
    }
    var_8 = var_19(var_25,buf,var_5,0x5000,0);
    var_4(var_8);
    if ((int)var_8 < 0) {
      piVar9 = var_7();
      var_5 = *piVar9;
      if (var_5 != 0xb) {
        p_Var2 = (*var_3->plug)->closing;
        pcVar10 = var_9(var_5);
        (*p_Var2)(var_3->plug,pcVar10,var_5,0);
      }
    }
    else if (var_8 == 0) {
      var_3->incomingeof = 1;
      var_20(var_3);
      (*(*var_3->plug)->closing)(var_3->plug,(char *)0x0,0,0);
    }
    else {
      var_10 = var_3->addr;
      if (var_10 != (type_5)0x0) {
        var_5 = var_10->refcount + -1;
        var_10->refcount = var_5;
        if (var_5 < 1) {
          var_11(var_10);
        }
        var_3->addr = (type_5)0x0;
      }
      (*(*var_3->plug)->receive)(var_3->plug,var_21(var_18 == 0,0),buf,var_8);
    }
    goto LAB_00067c51;
  }
  if (var_3->connected != 0) {
    var_5 = var_3->sending_oob;
    var_3->writable = 1;
    var_26 = var_22(&var_3->output_data);
    var_23(var_3);
    var_25 = var_3->sending_oob;
    var_24 = var_22(&var_3->output_data);
    var_24 = var_24 + var_25;
    if (var_24 < var_5 + var_26) {
      (*(*var_3->plug)->sent)(var_3->plug,var_24);
    }
    goto LAB_00067c51;
  }
  var_18 = 4;
  var_5 = var_27(var_3->var_3,1,4,&var_35,&var_18);
  if (var_5 < 0) {
    piVar9 = var_7();
    pcVar10 = var_9(*piVar9);
    var_29 = var_28("getsockopt(SO_ERROR): %s",pcVar10);
    var_35 = *piVar9;
LAB_00067fe0:
    var_10 = var_3->addr;
    if (var_29 != (char *)0x0) {
      if (var_10 == (type_5)0x0) {
                    /* WARNING: Subroutine does not return */
        var_30("s->addr","unix/uxnet.c",0x593,"net_select_result");
      }
      var_31(&local_544c,var_10,&var_3->step);
      pppVar12 = var_3->plug;
      pSVar13 = &local_544c;
      psVar14 = &var_32;
      for (var_5 = 0x84; var_5 != 0; var_5 = var_5 + -1) {
        *(int *)psVar14 = pSVar13->refcount;
        pSVar13 = (type_8 *)((int)pSVar13 + (type_13)bVar15 * -8 + 4);
        psVar14 = (type_9 *)((int)psVar14 + (type_13)bVar15 * -8 + 4);
      }
      (*(*pppVar12)->log)(pppVar12,1,(type_5)&var_32,var_3->port,var_29,var_35);
      var_5 = var_35;
      while (var_35 = var_5, var_5 != 0) {
        if (((var_3->addr == (type_5)0x0) || (var_33 = (var_3->step).ai, var_33 == (type_2 *)0x0)) ||
           (var_33 = var_33->ai_next, var_33 == (type_2 *)0x0)) {
          p_Var2 = (*var_3->plug)->closing;
          pcVar10 = var_9(var_5);
          (*p_Var2)(var_3->plug,pcVar10,var_5,0);
          break;
        }
        (var_3->step).ai = var_33;
        var_5 = var_34(var_3);
      }
      if (var_3->connected == 0) goto LAB_00067c51;
      goto LAB_00067dbf;
    }
  }
  else {
    if (var_35 != 0) {
      pcVar10 = var_9(var_35);
      var_29 = var_36(pcVar10);
      goto LAB_00067fe0;
    }
LAB_00067dbf:
    var_10 = var_3->addr;
  }
  if (var_10 != (type_5)0x0) {
    var_5 = var_10->refcount + -1;
    var_10->refcount = var_5;
    if (var_5 < 1) {
      var_11(var_10);
    }
    var_3->addr = (type_5)0x0;
  }
  var_3->writable = 1;
  var_3->connected = 1;
  var_20(var_3);
LAB_00067c51:
  if (var_37 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_38();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (number_literal) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (identifier) (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (char_literal (escape_sequence)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (number_literal))))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal) (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal)) (identifier) (identifier))))))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (number_literal) (number_literal) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement initializer: (assignment_expression left: (identifier) right: (number_literal)) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (field_expression argument: (identifier) field: (field_identifier)) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)) right: (number_literal))) right: (number_literal))))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (pointer_expression argument: (identifier)))))) arguments: (argument_list (identifier) (number_literal) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier) (identifier) (number_literal)))) (break_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void MASKED(undefined4 param_1,int param_2)

{
  undefined4 uVar1;
  code *pcVar2;
  undefined4 *puVar3;
  int iVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  ssize_t sVar9;
  int *piVar10;
  char *pcVar11;
  int *piVar12;
  undefined4 *puVar13;
  sockaddr *psVar14;
  int in_GS_OFFSET;
  byte bVar15;
  int local_5450;
  undefined4 local_544c [133];
  int local_5238;
  socklen_t local_5234;
  sockaddr local_5230 [33];
  undefined1 local_5020 [20480];
  int local_20;
  undefined4 uStack_14;
  
  iVar5 = param_2;
  bVar15 = 0;
  uStack_14 = 0x67be9;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar4 = FUN_00063f80(DAT_000aab00,&param_1,FUN_000662e0);
  if (iVar4 == 0) goto LAB_00067c51;
  FUN_00068c10(iVar5);
  if (iVar5 != 2) {
    if (iVar5 == 4) {
      if (*(int *)(iVar4 + 0x38) == 0) {
        sVar9 = recv(*(int *)(iVar4 + 8),local_5020,0x5000,1);
        FUN_00068c10(sVar9);
        if (sVar9 < 1) {
          piVar10 = *(int **)(iVar4 + 0xc);
          pcVar2 = *(code **)(*piVar10 + 4);
          piVar12 = __errno_location();
          iVar5 = *piVar12;
          pcVar11 = "Internal networking trouble";
          if (sVar9 != 0) {
            pcVar11 = strerror(iVar5);
            piVar10 = *(int **)(iVar4 + 0xc);
          }
          (*pcVar2)(piVar10,pcVar11,iVar5,0);
        }
        else {
          piVar10 = *(int **)(iVar4 + 0x5c);
          if (piVar10 != (int *)0x0) {
            iVar5 = *piVar10;
            *piVar10 = iVar5 + -1;
            if (iVar5 + -1 < 1) {
              FUN_00066cb0();
            }
            *(undefined4 *)(iVar4 + 0x5c) = 0;
          }
          (**(code **)(**(int **)(iVar4 + 0xc) + 8))(*(int **)(iVar4 + 0xc),2,local_5020,sVar9);
        }
      }
      else {
        *(undefined4 *)(iVar4 + 0x34) = 1;
      }
      goto LAB_00067c51;
    }
    if (iVar5 != 1) goto LAB_00067c51;
    if (*(int *)(iVar4 + 0x48) != 0) {
      local_5234 = 0x80;
      psVar14 = local_5230;
      for (iVar5 = 0x20; iVar5 != 0; iVar5 = iVar5 + -1) {
        psVar14->sa_family = 0;
        psVar14->sa_data[0] = '\0';
        psVar14->sa_data[1] = '\0';
        psVar14 = (sockaddr *)((int)psVar14 + (uint)bVar15 * -8 + 4);
      }
      iVar5 = accept(*(int *)(iVar4 + 8),local_5230,&local_5234);
      if (-1 < iVar5) {
        FUN_00065db0(iVar5);
        if (((((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(*(int *)(iVar4 + 0x5c) + 8) != 1)) &&
             (*(int *)(iVar4 + 0x28) != 0)) && (iVar8 = FUN_00066740(), iVar8 == 0)) ||
           (iVar4 = (**(code **)(**(int **)(iVar4 + 0xc) + 0x10))
                              (*(int **)(iVar4 + 0xc),FUN_00066620,iVar5), iVar4 != 0)) {
          close(iVar5);
        }
      }
      goto LAB_00067c51;
    }
    if (*(int *)(iVar4 + 0x24) != 0) goto LAB_00067c51;
    iVar5 = *(int *)(iVar4 + 0x34);
    iVar8 = *(int *)(iVar4 + 8);
    local_5234 = 1;
    if ((*(int *)(iVar4 + 0x38) == 0) || (iVar5 == 0)) {
LAB_00067cc8:
      iVar5 = (-(uint)(iVar5 == 0) & 0x4fff) + 1;
    }
    else {
      iVar5 = ioctl(iVar8,0x8905,&local_5234);
      if (iVar5 != 0) {
        iVar5 = *(int *)(iVar4 + 0x34);
        iVar8 = *(int *)(iVar4 + 8);
        goto LAB_00067cc8;
      }
      iVar8 = *(int *)(iVar4 + 8);
      if (local_5234 == 0) {
        iVar5 = *(int *)(iVar4 + 0x34);
        goto LAB_00067cc8;
      }
      *(undefined4 *)(iVar4 + 0x34) = 0;
      iVar5 = 0x5000;
    }
    iVar5 = __recv_chk(iVar8,local_5020,iVar5,0x5000,0);
    FUN_00068c10(iVar5);
    if (iVar5 < 0) {
      piVar10 = __errno_location();
      iVar5 = *piVar10;
      if (iVar5 != 0xb) {
        pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);
        pcVar11 = strerror(iVar5);
        (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);
      }
    }
    else if (iVar5 == 0) {
      *(undefined4 *)(iVar4 + 0x40) = 1;
      FUN_00066500();
      (**(code **)(**(int **)(iVar4 + 0xc) + 4))(*(int **)(iVar4 + 0xc),0,0,0);
    }
    else {
      piVar10 = *(int **)(iVar4 + 0x5c);
      if (piVar10 != (int *)0x0) {
        iVar8 = *piVar10;
        *piVar10 = iVar8 + -1;
        if (iVar8 + -1 < 1) {
          FUN_00066cb0();
        }
        *(undefined4 *)(iVar4 + 0x5c) = 0;
      }
      (**(code **)(**(int **)(iVar4 + 0xc) + 8))
                (*(int **)(iVar4 + 0xc),local_5234 == 0,local_5020,iVar5);
    }
    goto LAB_00067c51;
  }
  if (*(int *)(iVar4 + 0x1c) != 0) {
    iVar5 = *(int *)(iVar4 + 0x30);
    *(undefined4 *)(iVar4 + 0x20) = 1;
    iVar6 = FUN_0001a810(iVar4 + 0x10);
    FUN_00067a60(iVar4);
    iVar8 = *(int *)(iVar4 + 0x30);
    iVar7 = FUN_0001a810(iVar4 + 0x10);
    iVar7 = iVar7 + iVar8;
    if (iVar7 < iVar5 + iVar6) {
      (**(code **)(**(int **)(iVar4 + 0xc) + 0xc))(*(int **)(iVar4 + 0xc),iVar7);
    }
    goto LAB_00067c51;
  }
  local_5234 = 4;
  iVar5 = getsockopt(*(int *)(iVar4 + 8),1,4,&local_5238,&local_5234);
  if (iVar5 < 0) {
    piVar10 = __errno_location();
    pcVar11 = strerror(*piVar10);
    local_5450 = FUN_0001b020("getsockopt(SO_ERROR): %s",pcVar11);
    local_5238 = *piVar10;
LAB_00067fe0:
    piVar10 = *(int **)(iVar4 + 0x5c);
    if (local_5450 != 0) {
      if (piVar10 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
        __assert_fail("s->addr","unix/uxnet.c",0x593,"net_select_result");
      }
      FUN_00066710();
      puVar3 = *(undefined4 **)(iVar4 + 0xc);
      puVar13 = local_544c;
      psVar14 = local_5230;
      for (iVar5 = 0x84; iVar5 != 0; iVar5 = iVar5 + -1) {
        uVar1 = *puVar13;
        psVar14->sa_family = (short)uVar1;
        psVar14->sa_data[0] = (char)((uint)uVar1 >> 0x10);
        psVar14->sa_data[1] = (char)((uint)uVar1 >> 0x18);
        puVar13 = puVar13 + (uint)bVar15 * -2 + 1;
        psVar14 = (sockaddr *)((int)psVar14 + ((uint)bVar15 * -2 + 1) * 4);
      }
      (**(code **)*puVar3)(puVar3,1,local_5230,*(undefined4 *)(iVar4 + 0x58),local_5450,local_5238);
      iVar5 = local_5238;
      while (local_5238 = iVar5, iVar5 != 0) {
        if (((*(int *)(iVar4 + 0x5c) == 0) || (*(int *)(iVar4 + 0x60) == 0)) ||
           (iVar8 = *(int *)(*(int *)(iVar4 + 0x60) + 0x1c), iVar8 == 0)) {
          pcVar2 = *(code **)(**(int **)(iVar4 + 0xc) + 4);
          pcVar11 = strerror(iVar5);
          (*pcVar2)(*(undefined4 *)(iVar4 + 0xc),pcVar11,iVar5,0);
          break;
        }
        *(int *)(iVar4 + 0x60) = iVar8;
        iVar5 = FUN_000667a0();
      }
      if (*(int *)(iVar4 + 0x1c) == 0) goto LAB_00067c51;
      goto LAB_00067dbf;
    }
  }
  else {
    if (local_5238 != 0) {
      pcVar11 = strerror(local_5238);
      local_5450 = FUN_0001aac0(pcVar11);
      goto LAB_00067fe0;
    }
LAB_00067dbf:
    piVar10 = *(int **)(iVar4 + 0x5c);
  }
  if (piVar10 != (int *)0x0) {
    iVar5 = *piVar10;
    *piVar10 = iVar5 + -1;
    if (iVar5 + -1 < 1) {
      FUN_00066cb0();
    }
    *(undefined4 *)(iVar4 + 0x5c) = 0;
  }
  *(undefined4 *)(iVar4 + 0x20) = 1;
  *(undefined4 *)(iVar4 + 0x1c) = 1;
  FUN_00066500();
LAB_00067c51:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0006f430();
}

