
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int init_client(int *sock,char *host,char *port,char *bindhost,char *bindport,int family,int type,
               int protocol)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  BIO_ADDRINFO *pBVar4;
  BIO_ADDRINFO *pBVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  undefined4 uVar8;
  char *pcVar9;
  BIO_ADDRINFO *pBVar10;
  char *pcVar11;
  int in_GS_OFFSET;
  int local_4c;
  char *local_40;
  int local_3c;
  BIO_ADDRINFO *res;
  BIO_ADDRINFO *bindaddr;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x7c3f9;
  local_40 = bindport;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  res = (BIO_ADDRINFO *)0x0;
  bindaddr = (BIO_ADDRINFO *)0x0;
  iVar1 = BIO_sock_init();
  if (iVar1 == 1) {
    iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);
    if (iVar1 == 0) {
      ERR_print_errors((BIO *)bio_err);
      local_4c = 0;
    }
    else {
      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||
         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {
        if (res != (BIO_ADDRINFO *)0x0) {
          uVar2 = 0;
          local_3c = 0;
          if (protocol == 6) {
            uVar2 = 0x10;
          }
          pBVar10 = (BIO_ADDRINFO *)0x0;
          pBVar5 = res;
          if (family != 0) goto LAB_0007c54c;
          do {
            do {
              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||
                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))
              goto LAB_0007c562;
              pBVar4 = bindaddr;
              if (bindaddr == (BIO_ADDRINFO *)0x0) {
                uVar6 = BIO_ADDRINFO_protocol(pBVar5);
                uVar7 = BIO_ADDRINFO_socktype(pBVar5);
                uVar8 = BIO_ADDRINFO_family(pBVar5);
                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);
                *sock = iVar1;
                if (iVar1 != -1) {
                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {
LAB_0007c5c4:
                    uVar6 = BIO_ADDRINFO_address(pBVar10);
                    iVar1 = BIO_bind(*sock,uVar6,1);
                    pBVar4 = pBVar10;
                    if (iVar1 == 0) {
                      BIO_closesocket(*sock);
                      *sock = -1;
                      goto LAB_0007c61d;
                    }
                  }
                  uVar6 = BIO_ADDRINFO_address(pBVar5);
                  iVar1 = BIO_connect(*sock,uVar6,uVar2);
                  if (iVar1 != 0) goto LAB_0007c610;
                  BIO_closesocket(*sock);
                  *sock = -1;
                  pBVar10 = pBVar4;
                }
              }
              else {
                do {
                  pBVar10 = pBVar4;
                  iVar1 = BIO_ADDRINFO_family(pBVar10);
                  iVar3 = BIO_ADDRINFO_family(pBVar5);
                  if (iVar1 == iVar3) {
                    local_3c = local_3c + 1;
                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);
                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);
                    uVar8 = BIO_ADDRINFO_family(pBVar5);
                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);
                    *sock = iVar1;
                    if (iVar1 == -1) goto LAB_0007c52e;
                    goto LAB_0007c5c4;
                  }
                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);
                } while (pBVar4 != (BIO_ADDRINFO *)0x0);
                pBVar10 = (BIO_ADDRINFO *)0x0;
              }
LAB_0007c52e:
              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);
              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;
            } while (family == 0);
LAB_0007c54c:
            iVar1 = BIO_ADDRINFO_family(pBVar5);
          } while (iVar1 == family);
LAB_0007c562:
                    /* WARNING: Subroutine does not return */
          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"
                      ,"../apps/s_socket.c",0x65,iVar1);
        }
        local_3c = 0;
LAB_0007c610:
        if (*sock == -1) {
LAB_0007c61d:
          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {
            pcVar11 = ":";
            if (bindport == (char *)0x0) {
              pcVar11 = "";
              local_40 = pcVar11;
            }
            if (bindhost == (char *)0x0) {
              bindhost = "";
            }
            iVar1 = BIO_ADDRINFO_family(res);
            pcVar9 = "IPv6 ";
            if (iVar1 != 10) {
              iVar1 = BIO_ADDRINFO_family(res);
              pcVar9 = "IPv4 ";
              if (iVar1 != 2) {
                iVar1 = BIO_ADDRINFO_family(res);
                pcVar9 = "unix ";
                if (iVar1 != 1) {
                  pcVar9 = "";
                }
              }
            }
            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,
                       local_40);
            ERR_clear_error();
          }
          ERR_print_errors((BIO *)bio_err);
          local_4c = 0;
        }
        else {
          ERR_clear_error();
          local_4c = 1;
        }
      }
      else {
        ERR_print_errors((BIO *)bio_err);
        local_4c = 0;
      }
      if (bindaddr != (BIO_ADDRINFO *)0x0) {
        BIO_ADDRINFO_free(bindaddr);
      }
      BIO_ADDRINFO_free(res);
    }
  }
  else {
    local_4c = 0;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return local_4c;
}



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

undefined4
FUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,
            int param_6,int param_7,int param_8)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  char *pcVar8;
  int iVar9;
  undefined *puVar10;
  int in_GS_OFFSET;
  undefined4 local_4c;
  undefined *local_40;
  int local_3c;
  int local_28;
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x7c3f9;
  local_40 = param_5;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_28 = 0;
  local_24 = 0;
  iVar1 = BIO_sock_init();
  if (iVar1 == 1) {
    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);
    if (iVar1 == 0) {
      ERR_print_errors(DAT_000c458c);
      local_4c = 0;
    }
    else {
      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||
         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {
        if (local_28 != 0) {
          uVar2 = 0;
          local_3c = 0;
          if (param_8 == 6) {
            uVar2 = 0x10;
          }
          iVar9 = 0;
          iVar1 = local_28;
          if (param_6 != 0) goto LAB_0007c54c;
          do {
            do {
              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||
                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))
              goto LAB_0007c562;
              iVar3 = local_24;
              if (local_24 == 0) {
                uVar5 = BIO_ADDRINFO_protocol(iVar1);
                uVar6 = BIO_ADDRINFO_socktype(iVar1);
                uVar7 = BIO_ADDRINFO_family(iVar1);
                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);
                *param_1 = iVar4;
                if (iVar4 != -1) {
                  if (iVar9 != 0) {
LAB_0007c5c4:
                    uVar5 = BIO_ADDRINFO_address(iVar9);
                    iVar4 = BIO_bind(*param_1,uVar5,1);
                    iVar3 = iVar9;
                    if (iVar4 == 0) {
                      BIO_closesocket(*param_1);
                      *param_1 = -1;
                      goto LAB_0007c61d;
                    }
                  }
                  uVar5 = BIO_ADDRINFO_address(iVar1);
                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);
                  if (iVar9 != 0) goto LAB_0007c610;
                  BIO_closesocket(*param_1);
                  *param_1 = -1;
                  iVar9 = iVar3;
                }
              }
              else {
                do {
                  iVar9 = iVar3;
                  iVar3 = BIO_ADDRINFO_family(iVar9);
                  iVar4 = BIO_ADDRINFO_family(iVar1);
                  if (iVar3 == iVar4) {
                    local_3c = local_3c + 1;
                    uVar5 = BIO_ADDRINFO_protocol(iVar1);
                    uVar6 = BIO_ADDRINFO_socktype(iVar1);
                    uVar7 = BIO_ADDRINFO_family(iVar1);
                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);
                    *param_1 = iVar3;
                    if (iVar3 == -1) goto LAB_0007c52e;
                    goto LAB_0007c5c4;
                  }
                  iVar3 = BIO_ADDRINFO_next(iVar9);
                } while (iVar3 != 0);
                iVar9 = 0;
              }
LAB_0007c52e:
              iVar1 = BIO_ADDRINFO_next(iVar1);
              if (iVar1 == 0) goto LAB_0007c610;
            } while (param_6 == 0);
LAB_0007c54c:
            iVar3 = BIO_ADDRINFO_family(iVar1);
          } while (iVar3 == param_6);
LAB_0007c562:
                    /* WARNING: Subroutine does not return */
          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"
                      ,"../apps/s_socket.c",0x65,iVar3);
        }
        local_3c = 0;
LAB_0007c610:
        if (*param_1 == -1) {
LAB_0007c61d:
          if ((local_24 != 0) && (local_3c == 0)) {
            puVar10 = &DAT_0008e035;
            if (param_5 == (undefined *)0x0) {
              puVar10 = &DAT_0008570a;
              local_40 = puVar10;
            }
            if (param_4 == (char *)0x0) {
              param_4 = "";
            }
            iVar1 = BIO_ADDRINFO_family(local_28);
            pcVar8 = "IPv6 ";
            if (iVar1 != 10) {
              iVar1 = BIO_ADDRINFO_family(local_28);
              pcVar8 = "IPv4 ";
              if (iVar1 != 2) {
                iVar1 = BIO_ADDRINFO_family(local_28);
                pcVar8 = "unix ";
                if (iVar1 != 1) {
                  pcVar8 = "";
                }
              }
            }
            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,
                       local_40);
            ERR_clear_error();
          }
          ERR_print_errors(DAT_000c458c);
          local_4c = 0;
        }
        else {
          ERR_clear_error();
          local_4c = 1;
        }
      }
      else {
        ERR_print_errors(DAT_000c458c);
        local_4c = 0;
      }
      if (local_24 != 0) {
        BIO_ADDRINFO_free(local_24);
      }
      BIO_ADDRINFO_free(local_28);
    }
  }
  else {
    local_4c = 0;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007d010();
  }
  return local_4c;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0002c7d0
ADD EBX,0x4067f
SUB ESP,0x3c
MOV EAX,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [ESP + 0x54]
MOV EDI,dword ptr [ESP + 0x58]
MOV dword ptr [ESP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x5c]
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x2c],EAX
XOR EAX,EAX
MOV dword ptr [ESP + 0x24],0x0
MOV dword ptr [ESP + 0x28],0x0
CALL 0x00029a20
MOV dword ptr [ESP],EAX
CMP EAX,0x1
JZ 0x0007c470
MOV dword ptr [ESP],0x0
MOV ECX,dword ptr [ESP + 0x2c]
XOR ECX,dword ptr GS:[0x14]
MOV EAX,dword ptr [ESP]
JNZ 0x0007c898
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
LEA EAX,[ESP + 0x28]
PUSH EAX
PUSH dword ptr [ESP + 0x74]
PUSH dword ptr [ESP + 0x74]
PUSH dword ptr [ESP + 0x74]
PUSH 0x0
PUSH EDI
PUSH ESI
CALL 0x000287b0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0007c820
MOV EAX,dword ptr [ESP + 0x8]
OR EAX,dword ptr [ESP + 0xc]
JNZ 0x0007c6d8
MOV ESI,dword ptr [ESP + 0x24]
TEST ESI,ESI
JZ 0x0007c86f
CMP dword ptr [ESP + 0x6c],0x6
MOV EDX,0x10
MOV EAX,0x0
MOV dword ptr [ESP + 0x10],0x0
CMOVZ EAX,EDX
XOR EDI,EDI
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [ESP + 0x64]
TEST EAX,EAX
JNZ 0x0007c54c
MOV EAX,dword ptr [ESP + 0x68]
TEST EAX,EAX
JNZ 0x0007c7f0
MOV EBP,dword ptr [ESP + 0x6c]
TEST EBP,EBP
JNZ 0x0007c7d0
MOV EBP,dword ptr [ESP + 0x28]
TEST EBP,EBP
JZ 0x0007c778
NOP
SUB ESP,0xc
PUSH EBP
CALL 0x000291d0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x000291d0
ADD ESP,0x10
CMP EDI,EAX
JZ 0x0007c580
SUB ESP,0xc
PUSH EBP
CALL 0x00029a40
ADD ESP,0x10
MOV EBP,EAX
TEST EAX,EAX
JNZ 0x0007c500
XOR EDI,EDI
SUB ESP,0xc
PUSH ESI
CALL 0x00029a40
ADD ESP,0x10
MOV ESI,EAX
TEST EAX,EAX
JZ 0x0007c610
MOV EAX,dword ptr [ESP + 0x64]
TEST EAX,EAX
JZ 0x0007c4da
SUB ESP,0xc
PUSH ESI
CALL 0x000291d0
ADD ESP,0x10
CMP EAX,dword ptr [ESP + 0x64]
JZ 0x0007c4da
PUSH EAX
LEA EAX,[EBX + 0xfffd7870]
PUSH 0x65
PUSH EAX
LEA EAX,[EBX + 0xfffd78ac]
PUSH EAX
CALL 0x000285f0
ADD dword ptr [ESP + 0x10],0x1
SUB ESP,0xc
PUSH ESI
CALL 0x00028210
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x28],EAX
CALL 0x000271a0
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x000291d0
PUSH 0x0
MOV EDX,dword ptr [ESP + 0x2c]
PUSH EDX
PUSH EDI
PUSH EAX
CALL 0x00028e40
MOV EDX,dword ptr [ESP + 0x24]
ADD ESP,0x20
MOV dword ptr [EDX],EAX
CMP EAX,-0x1
JZ 0x0007c728
SUB ESP,0xc
PUSH EBP
CALL 0x00029420
ADD ESP,0xc
PUSH 0x1
PUSH EAX
MOV EAX,dword ptr [ESP + 0x10]
PUSH dword ptr [EAX]
CALL 0x00027270
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0007c87c
SUB ESP,0xc
PUSH ESI
CALL 0x00029420
ADD ESP,0xc
PUSH dword ptr [ESP + 0x18]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x10]
PUSH dword ptr [EAX]
CALL 0x000278a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0007c840
MOV EAX,dword ptr [ESP + 0x4]
CMP dword ptr [EAX],-0x1
JNZ 0x0007c810
MOV ECX,dword ptr [ESP + 0x28]
TEST ECX,ECX
JZ 0x0007c730
MOV EDX,dword ptr [ESP + 0x10]
TEST EDX,EDX
JNZ 0x0007c730
MOV EAX,dword ptr [ESP + 0xc]
LEA EDI,[EBX + 0xfffd15bd]
TEST EAX,EAX
JZ 0x0007c85e
MOV EAX,dword ptr [ESP + 0x8]
LEA ESI,[EBX + 0xfffc8c92]
TEST EAX,EAX
CMOVZ EAX,ESI
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],EAX
PUSH dword ptr [ESP + 0x30]
CALL 0x000291d0
ADD ESP,0x10
LEA EDX,[EBX + 0xfffd7864]
CMP EAX,0xa
JZ 0x0007c6a9
SUB ESP,0xc
PUSH dword ptr [ESP + 0x30]
CALL 0x000291d0
ADD ESP,0x10
LEA EDX,[EBX + 0xfffd786a]
CMP EAX,0x2
JZ 0x0007c6a9
SUB ESP,0xc
PUSH dword ptr [ESP + 0x30]
CALL 0x000291d0
ADD ESP,0x10
LEA EDX,[EBX + 0xfffd785e]
CMP EAX,0x1
CMOVNZ EDX,ESI
LEA ESI,[EBX + 0x7b14]
SUB ESP,0x8
LEA EAX,[EBX + 0xfffd796c]
PUSH dword ptr [ESP + 0x14]
PUSH EDI
PUSH dword ptr [ESP + 0x18]
PUSH EDX
PUSH EAX
PUSH dword ptr [ESI]
CALL 0x00027240
ADD ESP,0x20
CALL 0x00027d00
JMP 0x0007c736
SUB ESP,0x4
LEA EAX,[ESP + 0x2c]
PUSH EAX
PUSH dword ptr [ESP + 0x74]
PUSH dword ptr [ESP + 0x74]
PUSH dword ptr [ESP + 0x74]
PUSH 0x0
PUSH dword ptr [ESP + 0x24]
PUSH dword ptr [ESP + 0x24]
CALL 0x000287b0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x0007c4a6
LEA EAX,[EBX + 0x7b14]
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x0002c0c0
ADD ESP,0x10
MOV dword ptr [ESP],0x0
JMP 0x0007c74a
MOV EDI,EBP
JMP 0x0007c52e
LEA ESI,[EBX + 0x7b14]
SUB ESP,0xc
PUSH dword ptr [ESI]
CALL 0x0002c0c0
ADD ESP,0x10
MOV dword ptr [ESP],0x0
MOV EAX,dword ptr [ESP + 0x28]
TEST EAX,EAX
JZ 0x0007c75e
SUB ESP,0xc
PUSH EAX
CALL 0x000297a0
ADD ESP,0x10
SUB ESP,0xc
PUSH dword ptr [ESP + 0x30]
CALL 0x000297a0
ADD ESP,0x10
JMP 0x0007c452
SUB ESP,0xc
PUSH ESI
CALL 0x00028210
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x2c],EAX
CALL 0x000271a0
MOV dword ptr [ESP],ESI
MOV dword ptr [ESP + 0x28],EAX
CALL 0x000291d0
PUSH 0x0
MOV ECX,dword ptr [ESP + 0x30]
PUSH ECX
MOV EDX,dword ptr [ESP + 0x30]
PUSH EDX
PUSH EAX
CALL 0x00028e40
MOV ECX,dword ptr [ESP + 0x24]
ADD ESP,0x20
MOV dword ptr [ECX],EAX
CMP EAX,-0x1
JZ 0x0007c52e
TEST EDI,EDI
JZ 0x0007c5e9
MOV EBP,EDI
JMP 0x0007c5c4
SUB ESP,0xc
PUSH ESI
CALL 0x00028210
ADD ESP,0x10
CMP EAX,dword ptr [ESP + 0x6c]
JZ 0x0007c4f2
JMP 0x0007c562
SUB ESP,0xc
PUSH ESI
CALL 0x000271a0
ADD ESP,0x10
CMP EAX,dword ptr [ESP + 0x68]
JZ 0x0007c4e6
JMP 0x0007c562
CALL 0x00027d00
JMP 0x0007c74a
LEA EAX,[EBX + 0x7b14]
SUB ESP,0xc
PUSH dword ptr [EAX]
CALL 0x0002c0c0
ADD ESP,0x10
MOV dword ptr [ESP],0x0
JMP 0x0007c452
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x10]
PUSH dword ptr [EDI]
CALL 0x00029a80
MOV dword ptr [EDI],0xffffffff
ADD ESP,0x10
MOV EDI,EBP
JMP 0x0007c52e
LEA EAX,[EBX + 0xfffc8c92]
MOV dword ptr [ESP + 0xc],EAX
MOV EDI,EAX
JMP 0x0007c647
MOV dword ptr [ESP + 0x10],0x0
JMP 0x0007c610
SUB ESP,0xc
MOV EDI,dword ptr [ESP + 0x10]
PUSH dword ptr [EDI]
CALL 0x00029a80
MOV dword ptr [EDI],0xffffffff
ADD ESP,0x10
JMP 0x0007c61d
CALL 0x0007d010
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4\nFUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return local_4c;\n}\n\n" comment (function_definition "undefined4\nFUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return local_4c;\n}" type_identifier (function_declarator "FUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }\n  return local_4c;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x7c3f9;" (assignment_expression "uStack_14 = 0x7c3f9" identifier = number_literal) ;) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" identifier = identifier) ;) (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 "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = BIO_sock_init();" (assignment_expression "iVar1 = BIO_sock_init()" identifier = (call_expression "BIO_sock_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }" { (expression_statement "iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);" (assignment_expression "iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28)" identifier = (call_expression "BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28)" identifier (argument_list "(param_2,param_3,0,param_6,param_7,param_8,&local_28)" ( identifier , identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }" { (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" else (compound_statement "{\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" { (if_statement "if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" if (parenthesized_expression "((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0))" ( (binary_expression "(param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)" (parenthesized_expression "(param_4 == (char *)0x0 && param_5 == (undefined *)0x0)" ( (binary_expression "param_4 == (char *)0x0 && param_5 == (undefined *)0x0" (binary_expression "param_4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "param_5 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) || (parenthesized_expression "(iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)" ( (comma_expression "iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0" (assignment_expression "iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24)" identifier = (call_expression "BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24)" identifier (argument_list "(param_4,param_5,0,param_6,param_7,param_8,&local_24)" ( identifier , identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }" { (if_statement "if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }" if (parenthesized_expression "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (if_statement "if (param_8 == 6) {\n            uVar2 = 0x10;\n          }" if (parenthesized_expression "(param_8 == 6)" ( (binary_expression "param_8 == 6" identifier == number_literal) )) (compound_statement "{\n            uVar2 = 0x10;\n          }" { (expression_statement "uVar2 = 0x10;" (assignment_expression "uVar2 = 0x10" identifier = number_literal) ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = local_28;" (assignment_expression "iVar1 = local_28" identifier = identifier) ;) (if_statement "if (param_6 != 0) goto LAB_0007c54c;" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007c54c;" goto statement_identifier ;)) (do_statement "do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);" do (compound_statement "{\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          }" { (do_statement "do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);" do (compound_statement "{\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            }" { (if_statement "if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;" if (parenthesized_expression "(((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))" ( (binary_expression "((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)))" (parenthesized_expression "((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7))" ( (binary_expression "(param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)" (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)" ( (comma_expression "iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7" (assignment_expression "iVar3 = BIO_ADDRINFO_socktype(iVar1)" identifier = (call_expression "BIO_ADDRINFO_socktype(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "iVar3 != param_7" identifier != identifier)) ))) )) || (parenthesized_expression "((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)))" ( (parenthesized_expression "(param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))" ( (binary_expression "param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)" (binary_expression "param_8 != 0" identifier != number_literal) && (parenthesized_expression "(iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)" ( (comma_expression "iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8" (assignment_expression "iVar3 = BIO_ADDRINFO_protocol(iVar1)" identifier = (call_expression "BIO_ADDRINFO_protocol(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "iVar3 != param_8" identifier != identifier)) ))) )) ))) )) (goto_statement "goto LAB_0007c562;" goto statement_identifier ;)) (expression_statement "iVar3 = local_24;" (assignment_expression "iVar3 = local_24" identifier = identifier) ;) (if_statement "if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }" { (expression_statement "uVar5 = BIO_ADDRINFO_protocol(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_protocol(iVar1)" identifier = (call_expression "BIO_ADDRINFO_protocol(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar6 = BIO_ADDRINFO_socktype(iVar1);" (assignment_expression "uVar6 = BIO_ADDRINFO_socktype(iVar1)" identifier = (call_expression "BIO_ADDRINFO_socktype(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar7 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "uVar7 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);" (assignment_expression "iVar4 = BIO_socket(uVar7,uVar6,uVar5,0)" identifier = (call_expression "BIO_socket(uVar7,uVar6,uVar5,0)" identifier (argument_list "(uVar7,uVar6,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }" { (if_statement "if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" { (labeled_statement "LAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);" statement_identifier : (expression_statement "uVar5 = BIO_ADDRINFO_address(iVar9);" (assignment_expression "uVar5 = BIO_ADDRINFO_address(iVar9)" identifier = (call_expression "BIO_ADDRINFO_address(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;)) (expression_statement "iVar4 = BIO_bind(*param_1,uVar5,1);" (assignment_expression "iVar4 = BIO_bind(*param_1,uVar5,1)" identifier = (call_expression "BIO_bind(*param_1,uVar5,1)" identifier (argument_list "(*param_1,uVar5,1)" ( (pointer_expression "*param_1" * identifier) , identifier , number_literal )))) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }" { (expression_statement "BIO_closesocket(*param_1);" (call_expression "BIO_closesocket(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) (expression_statement "*param_1 = -1;" (assignment_expression "*param_1 = -1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (goto_statement "goto LAB_0007c61d;" goto statement_identifier ;) })) })) (expression_statement "uVar5 = BIO_ADDRINFO_address(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_address(iVar1)" identifier = (call_expression "BIO_ADDRINFO_address(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar9 = BIO_connect(*param_1,uVar5,uVar2);" (assignment_expression "iVar9 = BIO_connect(*param_1,uVar5,uVar2)" identifier = (call_expression "BIO_connect(*param_1,uVar5,uVar2)" identifier (argument_list "(*param_1,uVar5,uVar2)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0007c610;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007c610;" goto statement_identifier ;)) (expression_statement "BIO_closesocket(*param_1);" (call_expression "BIO_closesocket(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) (expression_statement "*param_1 = -1;" (assignment_expression "*param_1 = -1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) })) }) (else_clause "else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" else (compound_statement "{\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" { (do_statement "do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);" do (compound_statement "{\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                }" { (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = BIO_ADDRINFO_family(iVar9);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(iVar9)" identifier = (call_expression "BIO_ADDRINFO_family(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "iVar4 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "iVar4 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" if (parenthesized_expression "(iVar3 == iVar4)" ( (binary_expression "iVar3 == iVar4" identifier == identifier) )) (compound_statement "{\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" { (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = BIO_ADDRINFO_protocol(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_protocol(iVar1)" identifier = (call_expression "BIO_ADDRINFO_protocol(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar6 = BIO_ADDRINFO_socktype(iVar1);" (assignment_expression "uVar6 = BIO_ADDRINFO_socktype(iVar1)" identifier = (call_expression "BIO_ADDRINFO_socktype(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar7 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "uVar7 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);" (assignment_expression "iVar3 = BIO_socket(uVar7,uVar6,uVar5,0)" identifier = (call_expression "BIO_socket(uVar7,uVar6,uVar5,0)" identifier (argument_list "(uVar7,uVar6,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*param_1 = iVar3;" (assignment_expression "*param_1 = iVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (iVar3 == -1) goto LAB_0007c52e;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0007c52e;" goto statement_identifier ;)) (goto_statement "goto LAB_0007c5c4;" goto statement_identifier ;) })) (expression_statement "iVar3 = BIO_ADDRINFO_next(iVar9);" (assignment_expression "iVar3 = BIO_ADDRINFO_next(iVar9)" identifier = (call_expression "BIO_ADDRINFO_next(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);" statement_identifier : (expression_statement "iVar1 = BIO_ADDRINFO_next(iVar1);" (assignment_expression "iVar1 = BIO_ADDRINFO_next(iVar1)" identifier = (call_expression "BIO_ADDRINFO_next(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;)) (if_statement "if (iVar1 == 0) goto LAB_0007c610;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007c610;" goto statement_identifier ;)) }) while (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) ;) (labeled_statement "LAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);" statement_identifier : (expression_statement "iVar3 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;)) }) while (parenthesized_expression "(iVar3 == param_6)" ( (binary_expression "iVar3 == param_6" identifier == identifier) )) ;) (labeled_statement "LAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);" statement_identifier : comment (expression_statement "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);" (call_expression "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3)" identifier (argument_list "("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3)" ( (string_literal ""assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"" " string_content ") , (string_literal ""../apps/s_socket.c"" " string_content ") , number_literal , identifier ))) ;)) })) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (labeled_statement "LAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" statement_identifier : (if_statement "if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" if (parenthesized_expression "(*param_1 == -1)" ( (binary_expression "*param_1 == -1" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }" { (labeled_statement "LAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" statement_identifier : (if_statement "if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" if (parenthesized_expression "((local_24 != 0) && (local_3c == 0))" ( (binary_expression "(local_24 != 0) && (local_3c == 0)" (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) ))) )) (compound_statement "{\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" { (expression_statement "puVar10 = &DAT_0008e035;" (assignment_expression "puVar10 = &DAT_0008e035" identifier = (pointer_expression "&DAT_0008e035" & identifier)) ;) (if_statement "if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }" if (parenthesized_expression "(param_5 == (undefined *)0x0)" ( (binary_expression "param_5 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }" { (expression_statement "puVar10 = &DAT_0008570a;" (assignment_expression "puVar10 = &DAT_0008570a" identifier = (pointer_expression "&DAT_0008570a" & identifier)) ;) (expression_statement "local_40 = puVar10;" (assignment_expression "local_40 = puVar10" identifier = identifier) ;) })) (if_statement "if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }" if (parenthesized_expression "(param_4 == (char *)0x0)" ( (binary_expression "param_4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              param_4 = "";\n            }" { (expression_statement "param_4 = "";" (assignment_expression "param_4 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" identifier = (call_expression "BIO_ADDRINFO_family(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "pcVar8 = "IPv6 ";" (assignment_expression "pcVar8 = "IPv6 "" identifier = (string_literal ""IPv6 "" " string_content ")) ;) (if_statement "if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }" if (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) (compound_statement "{\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }" { (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" identifier = (call_expression "BIO_ADDRINFO_family(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "pcVar8 = "IPv4 ";" (assignment_expression "pcVar8 = "IPv4 "" identifier = (string_literal ""IPv4 "" " string_content ")) ;) (if_statement "if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }" { (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" identifier = (call_expression "BIO_ADDRINFO_family(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "pcVar8 = "unix ";" (assignment_expression "pcVar8 = "unix "" identifier = (string_literal ""unix "" " string_content ")) ;) (if_statement "if (iVar1 != 1) {\n                  pcVar8 = "";\n                }" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (compound_statement "{\n                  pcVar8 = "";\n                }" { (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ identifier = (string_literal """" " ")) ;) })) })) })) (expression_statement "BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);" (call_expression "BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40)" identifier (argument_list "(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40)" ( identifier , (string_literal ""Can\'t bind %saddress for %s%s%s\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" else (compound_statement "{\n          ERR_clear_error();\n          local_4c = 1;\n        }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) })))) }) (else_clause "else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" else (compound_statement "{\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" { (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (if_statement "if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n        BIO_ADDRINFO_free(local_24);\n      }" { (expression_statement "BIO_ADDRINFO_free(local_24);" (call_expression "BIO_ADDRINFO_free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) })) (expression_statement "BIO_ADDRINFO_free(local_28);" (call_expression "BIO_ADDRINFO_free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) }))) }) (else_clause "else {\n    local_4c = 0;\n  }" else (compound_statement "{\n    local_4c = 0;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\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                    /* WARNING: Subroutine does not return */\n    FUN_0007d010();\n  }" { comment (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_4c;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nint init_client(int *sock,char *host,char *port,char *bindhost,char *bindport,int family,int type,\n               int protocol)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  BIO_ADDRINFO *pBVar4;\n  BIO_ADDRINFO *pBVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  BIO_ADDRINFO *pBVar10;\n  char *pcVar11;\n  int in_GS_OFFSET;\n  int local_4c;\n  char *local_40;\n  int local_3c;\n  BIO_ADDRINFO *res;\n  BIO_ADDRINFO *bindaddr;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = bindport;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  res = (BIO_ADDRINFO *)0x0;\n  bindaddr = (BIO_ADDRINFO *)0x0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);\n    if (iVar1 == 0) {\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }\n    else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_4c;\n}\n\n" comment comment (function_definition "int init_client(int *sock,char *host,char *port,char *bindhost,char *bindport,int family,int type,\n               int protocol)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  BIO_ADDRINFO *pBVar4;\n  BIO_ADDRINFO *pBVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  BIO_ADDRINFO *pBVar10;\n  char *pcVar11;\n  int in_GS_OFFSET;\n  int local_4c;\n  char *local_40;\n  int local_3c;\n  BIO_ADDRINFO *res;\n  BIO_ADDRINFO *bindaddr;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = bindport;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  res = (BIO_ADDRINFO *)0x0;\n  bindaddr = (BIO_ADDRINFO *)0x0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);\n    if (iVar1 == 0) {\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }\n    else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_4c;\n}" primitive_type (function_declarator "init_client(int *sock,char *host,char *port,char *bindhost,char *bindport,int family,int type,\n               int protocol)" identifier (parameter_list "(int *sock,char *host,char *port,char *bindhost,char *bindport,int family,int type,\n               int protocol)" ( (parameter_declaration "int *sock" primitive_type (pointer_declarator "*sock" * identifier)) , (parameter_declaration "char *host" primitive_type (pointer_declarator "*host" * identifier)) , (parameter_declaration "char *port" primitive_type (pointer_declarator "*port" * identifier)) , (parameter_declaration "char *bindhost" primitive_type (pointer_declarator "*bindhost" * identifier)) , (parameter_declaration "char *bindport" primitive_type (pointer_declarator "*bindport" * identifier)) , (parameter_declaration "int family" primitive_type identifier) , (parameter_declaration "int type" primitive_type identifier) , (parameter_declaration "int protocol" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  BIO_ADDRINFO *pBVar4;\n  BIO_ADDRINFO *pBVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  BIO_ADDRINFO *pBVar10;\n  char *pcVar11;\n  int in_GS_OFFSET;\n  int local_4c;\n  char *local_40;\n  int local_3c;\n  BIO_ADDRINFO *res;\n  BIO_ADDRINFO *bindaddr;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = bindport;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  res = (BIO_ADDRINFO *)0x0;\n  bindaddr = (BIO_ADDRINFO *)0x0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);\n    if (iVar1 == 0) {\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }\n    else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return local_4c;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "BIO_ADDRINFO *pBVar4;" type_identifier (pointer_declarator "*pBVar4" * identifier) ;) (declaration "BIO_ADDRINFO *pBVar5;" type_identifier (pointer_declarator "*pBVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "BIO_ADDRINFO *pBVar10;" type_identifier (pointer_declarator "*pBVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "int local_4c;" primitive_type identifier ;) (declaration "char *local_40;" primitive_type (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "BIO_ADDRINFO *res;" type_identifier (pointer_declarator "*res" * identifier) ;) (declaration "BIO_ADDRINFO *bindaddr;" type_identifier (pointer_declarator "*bindaddr" * identifier) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x7c3f9;" (assignment_expression "uStack_14 = 0x7c3f9" identifier = number_literal) ;) (expression_statement "local_40 = bindport;" (assignment_expression "local_40 = bindport" identifier = identifier) ;) (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 "res = (BIO_ADDRINFO *)0x0;" (assignment_expression "res = (BIO_ADDRINFO *)0x0" identifier = (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bindaddr = (BIO_ADDRINFO *)0x0;" (assignment_expression "bindaddr = (BIO_ADDRINFO *)0x0" identifier = (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar1 = BIO_sock_init();" (assignment_expression "iVar1 = BIO_sock_init()" identifier = (call_expression "BIO_sock_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);\n    if (iVar1 == 0) {\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }\n    else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }\n  }\n  else {\n    local_4c = 0;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);\n    if (iVar1 == 0) {\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }\n    else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }\n  }" { (expression_statement "iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res);" (assignment_expression "iVar1 = BIO_lookup_ex(host,port,0,family,type,protocol,&res)" identifier = (call_expression "BIO_lookup_ex(host,port,0,family,type,protocol,&res)" identifier (argument_list "(host,port,0,family,type,protocol,&res)" ( identifier , identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&res" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }\n    else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_print_errors((BIO *)bio_err);\n      local_4c = 0;\n    }" { (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }" else (compound_statement "{\n      if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }\n      if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }\n      BIO_ADDRINFO_free(res);\n    }" { (if_statement "if ((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)) {\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }" if (parenthesized_expression "((bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0))" ( (binary_expression "(bindhost == (char *)0x0 && bindport == (char *)0x0) ||\n         (iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)" (parenthesized_expression "(bindhost == (char *)0x0 && bindport == (char *)0x0)" ( (binary_expression "bindhost == (char *)0x0 && bindport == (char *)0x0" (binary_expression "bindhost == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "bindport == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) )) || (parenthesized_expression "(iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0)" ( (comma_expression "iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr), iVar1 != 0" (assignment_expression "iVar1 = BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr)" identifier = (call_expression "BIO_lookup_ex(bindhost,bindport,0,family,type,protocol,&bindaddr)" identifier (argument_list "(bindhost,bindport,0,family,type,protocol,&bindaddr)" ( identifier , identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&bindaddr" & identifier) )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }" { (if_statement "if (res != (BIO_ADDRINFO *)0x0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }" if (parenthesized_expression "(res != (BIO_ADDRINFO *)0x0)" ( (binary_expression "res != (BIO_ADDRINFO *)0x0" identifier != (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar2 = 0;\n          local_3c = 0;\n          if (protocol == 6) {\n            uVar2 = 0x10;\n          }\n          pBVar10 = (BIO_ADDRINFO *)0x0;\n          pBVar5 = res;\n          if (family != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);\nLAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (if_statement "if (protocol == 6) {\n            uVar2 = 0x10;\n          }" if (parenthesized_expression "(protocol == 6)" ( (binary_expression "protocol == 6" identifier == number_literal) )) (compound_statement "{\n            uVar2 = 0x10;\n          }" { (expression_statement "uVar2 = 0x10;" (assignment_expression "uVar2 = 0x10" identifier = number_literal) ;) })) (expression_statement "pBVar10 = (BIO_ADDRINFO *)0x0;" (assignment_expression "pBVar10 = (BIO_ADDRINFO *)0x0" identifier = (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pBVar5 = res;" (assignment_expression "pBVar5 = res" identifier = identifier) ;) (if_statement "if (family != 0) goto LAB_0007c54c;" if (parenthesized_expression "(family != 0)" ( (binary_expression "family != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007c54c;" goto statement_identifier ;)) (do_statement "do {\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          } while (iVar1 == family);" do (compound_statement "{\n            do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);\nLAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);\n          }" { (do_statement "do {\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            } while (family == 0);" do (compound_statement "{\n              if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;\n              pBVar4 = bindaddr;\n              if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }\nLAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);\n              if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;\n            }" { (if_statement "if (((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))\n              goto LAB_0007c562;" if (parenthesized_expression "(((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))))" ( (binary_expression "((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)) ||\n                 ((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol)))" (parenthesized_expression "((type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type))" ( (binary_expression "(type != 0) && (iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)" (parenthesized_expression "(type != 0)" ( (binary_expression "type != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type)" ( (comma_expression "iVar1 = BIO_ADDRINFO_socktype(pBVar5), iVar1 != type" (assignment_expression "iVar1 = BIO_ADDRINFO_socktype(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_socktype(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) , (binary_expression "iVar1 != type" identifier != identifier)) ))) )) || (parenthesized_expression "((protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol)))" ( (parenthesized_expression "(protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol))" ( (binary_expression "protocol != 0 && (iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol)" (binary_expression "protocol != 0" identifier != number_literal) && (parenthesized_expression "(iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol)" ( (comma_expression "iVar1 = BIO_ADDRINFO_protocol(pBVar5), iVar1 != protocol" (assignment_expression "iVar1 = BIO_ADDRINFO_protocol(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_protocol(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) , (binary_expression "iVar1 != protocol" identifier != identifier)) ))) )) ))) )) (goto_statement "goto LAB_0007c562;" goto statement_identifier ;)) (expression_statement "pBVar4 = bindaddr;" (assignment_expression "pBVar4 = bindaddr" identifier = identifier) ;) (if_statement "if (bindaddr == (BIO_ADDRINFO *)0x0) {\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }\n              else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }" if (parenthesized_expression "(bindaddr == (BIO_ADDRINFO *)0x0)" ( (binary_expression "bindaddr == (BIO_ADDRINFO *)0x0" identifier == (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                uVar8 = BIO_ADDRINFO_family(pBVar5);\n                iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                *sock = iVar1;\n                if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }\n              }" { (expression_statement "uVar6 = BIO_ADDRINFO_protocol(pBVar5);" (assignment_expression "uVar6 = BIO_ADDRINFO_protocol(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_protocol(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "uVar7 = BIO_ADDRINFO_socktype(pBVar5);" (assignment_expression "uVar7 = BIO_ADDRINFO_socktype(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_socktype(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "uVar8 = BIO_ADDRINFO_family(pBVar5);" (assignment_expression "uVar8 = BIO_ADDRINFO_family(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_family(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);" (assignment_expression "iVar1 = BIO_socket(uVar8,uVar7,uVar6,0)" identifier = (call_expression "BIO_socket(uVar8,uVar7,uVar6,0)" identifier (argument_list "(uVar8,uVar7,uVar6,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*sock = iVar1;" (assignment_expression "*sock = iVar1" (pointer_expression "*sock" * identifier) = identifier) ;) (if_statement "if (iVar1 != -1) {\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }" if (parenthesized_expression "(iVar1 != -1)" ( (binary_expression "iVar1 != -1" identifier != number_literal) )) (compound_statement "{\n                  if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar6 = BIO_ADDRINFO_address(pBVar5);\n                  iVar1 = BIO_connect(*sock,uVar6,uVar2);\n                  if (iVar1 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*sock);\n                  *sock = -1;\n                  pBVar10 = pBVar4;\n                }" { (if_statement "if (pBVar10 != (BIO_ADDRINFO *)0x0) {\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" if (parenthesized_expression "(pBVar10 != (BIO_ADDRINFO *)0x0)" ( (binary_expression "pBVar10 != (BIO_ADDRINFO *)0x0" identifier != (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);\n                    iVar1 = BIO_bind(*sock,uVar6,1);\n                    pBVar4 = pBVar10;\n                    if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" { (labeled_statement "LAB_0007c5c4:\n                    uVar6 = BIO_ADDRINFO_address(pBVar10);" statement_identifier : (expression_statement "uVar6 = BIO_ADDRINFO_address(pBVar10);" (assignment_expression "uVar6 = BIO_ADDRINFO_address(pBVar10)" identifier = (call_expression "BIO_ADDRINFO_address(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;)) (expression_statement "iVar1 = BIO_bind(*sock,uVar6,1);" (assignment_expression "iVar1 = BIO_bind(*sock,uVar6,1)" identifier = (call_expression "BIO_bind(*sock,uVar6,1)" identifier (argument_list "(*sock,uVar6,1)" ( (pointer_expression "*sock" * identifier) , identifier , number_literal )))) ;) (expression_statement "pBVar4 = pBVar10;" (assignment_expression "pBVar4 = pBVar10" identifier = identifier) ;) (if_statement "if (iVar1 == 0) {\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n                      BIO_closesocket(*sock);\n                      *sock = -1;\n                      goto LAB_0007c61d;\n                    }" { (expression_statement "BIO_closesocket(*sock);" (call_expression "BIO_closesocket(*sock)" identifier (argument_list "(*sock)" ( (pointer_expression "*sock" * identifier) ))) ;) (expression_statement "*sock = -1;" (assignment_expression "*sock = -1" (pointer_expression "*sock" * identifier) = number_literal) ;) (goto_statement "goto LAB_0007c61d;" goto statement_identifier ;) })) })) (expression_statement "uVar6 = BIO_ADDRINFO_address(pBVar5);" (assignment_expression "uVar6 = BIO_ADDRINFO_address(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_address(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "iVar1 = BIO_connect(*sock,uVar6,uVar2);" (assignment_expression "iVar1 = BIO_connect(*sock,uVar6,uVar2)" identifier = (call_expression "BIO_connect(*sock,uVar6,uVar2)" identifier (argument_list "(*sock,uVar6,uVar2)" ( (pointer_expression "*sock" * identifier) , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) goto LAB_0007c610;" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007c610;" goto statement_identifier ;)) (expression_statement "BIO_closesocket(*sock);" (call_expression "BIO_closesocket(*sock)" identifier (argument_list "(*sock)" ( (pointer_expression "*sock" * identifier) ))) ;) (expression_statement "*sock = -1;" (assignment_expression "*sock = -1" (pointer_expression "*sock" * identifier) = number_literal) ;) (expression_statement "pBVar10 = pBVar4;" (assignment_expression "pBVar10 = pBVar4" identifier = identifier) ;) })) }) (else_clause "else {\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }" else (compound_statement "{\n                do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);\n                pBVar10 = (BIO_ADDRINFO *)0x0;\n              }" { (do_statement "do {\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                } while (pBVar4 != (BIO_ADDRINFO *)0x0);" do (compound_statement "{\n                  pBVar10 = pBVar4;\n                  iVar1 = BIO_ADDRINFO_family(pBVar10);\n                  iVar3 = BIO_ADDRINFO_family(pBVar5);\n                  if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);\n                }" { (expression_statement "pBVar10 = pBVar4;" (assignment_expression "pBVar10 = pBVar4" identifier = identifier) ;) (expression_statement "iVar1 = BIO_ADDRINFO_family(pBVar10);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(pBVar10)" identifier = (call_expression "BIO_ADDRINFO_family(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier )))) ;) (expression_statement "iVar3 = BIO_ADDRINFO_family(pBVar5);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_family(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (if_statement "if (iVar1 == iVar3) {\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" if (parenthesized_expression "(iVar1 == iVar3)" ( (binary_expression "iVar1 == iVar3" identifier == identifier) )) (compound_statement "{\n                    local_3c = local_3c + 1;\n                    uVar6 = BIO_ADDRINFO_protocol(pBVar5);\n                    uVar7 = BIO_ADDRINFO_socktype(pBVar5);\n                    uVar8 = BIO_ADDRINFO_family(pBVar5);\n                    iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);\n                    *sock = iVar1;\n                    if (iVar1 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" { (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "uVar6 = BIO_ADDRINFO_protocol(pBVar5);" (assignment_expression "uVar6 = BIO_ADDRINFO_protocol(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_protocol(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "uVar7 = BIO_ADDRINFO_socktype(pBVar5);" (assignment_expression "uVar7 = BIO_ADDRINFO_socktype(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_socktype(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "uVar8 = BIO_ADDRINFO_family(pBVar5);" (assignment_expression "uVar8 = BIO_ADDRINFO_family(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_family(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;) (expression_statement "iVar1 = BIO_socket(uVar8,uVar7,uVar6,0);" (assignment_expression "iVar1 = BIO_socket(uVar8,uVar7,uVar6,0)" identifier = (call_expression "BIO_socket(uVar8,uVar7,uVar6,0)" identifier (argument_list "(uVar8,uVar7,uVar6,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*sock = iVar1;" (assignment_expression "*sock = iVar1" (pointer_expression "*sock" * identifier) = identifier) ;) (if_statement "if (iVar1 == -1) goto LAB_0007c52e;" if (parenthesized_expression "(iVar1 == -1)" ( (binary_expression "iVar1 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0007c52e;" goto statement_identifier ;)) (goto_statement "goto LAB_0007c5c4;" goto statement_identifier ;) })) (expression_statement "pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10);" (assignment_expression "pBVar4 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10)" identifier = (cast_expression "(BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar10)" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_ADDRINFO_next(pBVar10)" identifier (argument_list "(pBVar10)" ( identifier ))))) ;) }) while (parenthesized_expression "(pBVar4 != (BIO_ADDRINFO *)0x0)" ( (binary_expression "pBVar4 != (BIO_ADDRINFO *)0x0" identifier != (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pBVar10 = (BIO_ADDRINFO *)0x0;" (assignment_expression "pBVar10 = (BIO_ADDRINFO *)0x0" identifier = (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (labeled_statement "LAB_0007c52e:\n              pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);" statement_identifier : (expression_statement "pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5);" (assignment_expression "pBVar5 = (BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5)" identifier = (cast_expression "(BIO_ADDRINFO *)BIO_ADDRINFO_next(pBVar5)" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "BIO_ADDRINFO_next(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier ))))) ;)) (if_statement "if (pBVar5 == (BIO_ADDRINFO *)0x0) goto LAB_0007c610;" if (parenthesized_expression "(pBVar5 == (BIO_ADDRINFO *)0x0)" ( (binary_expression "pBVar5 == (BIO_ADDRINFO *)0x0" identifier == (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0007c610;" goto statement_identifier ;)) }) while (parenthesized_expression "(family == 0)" ( (binary_expression "family == 0" identifier == number_literal) )) ;) (labeled_statement "LAB_0007c54c:\n            iVar1 = BIO_ADDRINFO_family(pBVar5);" statement_identifier : (expression_statement "iVar1 = BIO_ADDRINFO_family(pBVar5);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(pBVar5)" identifier = (call_expression "BIO_ADDRINFO_family(pBVar5)" identifier (argument_list "(pBVar5)" ( identifier )))) ;)) }) while (parenthesized_expression "(iVar1 == family)" ( (binary_expression "iVar1 == family" identifier == identifier) )) ;) (labeled_statement "LAB_0007c562:\n                    /* WARNING: Subroutine does not return */\n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);" statement_identifier : comment (expression_statement "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1);" (call_expression "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1)" identifier (argument_list "("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar1)" ( (string_literal ""assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"" " string_content ") , (string_literal ""../apps/s_socket.c"" " string_content ") , number_literal , identifier ))) ;)) })) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (labeled_statement "LAB_0007c610:\n        if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" statement_identifier : (if_statement "if (*sock == -1) {\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" if (parenthesized_expression "(*sock == -1)" ( (binary_expression "*sock == -1" (pointer_expression "*sock" * identifier) == number_literal) )) (compound_statement "{\nLAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors((BIO *)bio_err);\n          local_4c = 0;\n        }" { (labeled_statement "LAB_0007c61d:\n          if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }" statement_identifier : (if_statement "if ((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)) {\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }" if (parenthesized_expression "((bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0))" ( (binary_expression "(bindaddr != (BIO_ADDRINFO *)0x0) && (local_3c == 0)" (parenthesized_expression "(bindaddr != (BIO_ADDRINFO *)0x0)" ( (binary_expression "bindaddr != (BIO_ADDRINFO *)0x0" identifier != (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) ))) )) (compound_statement "{\n            pcVar11 = ":";\n            if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }\n            if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(res);\n            pcVar9 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }\n            BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);\n            ERR_clear_error();\n          }" { (expression_statement "pcVar11 = ":";" (assignment_expression "pcVar11 = ":"" identifier = (string_literal "":"" " string_content ")) ;) (if_statement "if (bindport == (char *)0x0) {\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }" if (parenthesized_expression "(bindport == (char *)0x0)" ( (binary_expression "bindport == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              pcVar11 = "";\n              local_40 = pcVar11;\n            }" { (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (expression_statement "local_40 = pcVar11;" (assignment_expression "local_40 = pcVar11" identifier = identifier) ;) })) (if_statement "if (bindhost == (char *)0x0) {\n              bindhost = "";\n            }" if (parenthesized_expression "(bindhost == (char *)0x0)" ( (binary_expression "bindhost == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bindhost = "";\n            }" { (expression_statement "bindhost = "";" (assignment_expression "bindhost = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar1 = BIO_ADDRINFO_family(res);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(res)" identifier = (call_expression "BIO_ADDRINFO_family(res)" identifier (argument_list "(res)" ( identifier )))) ;) (expression_statement "pcVar9 = "IPv6 ";" (assignment_expression "pcVar9 = "IPv6 "" identifier = (string_literal ""IPv6 "" " string_content ")) ;) (if_statement "if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }" if (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) (compound_statement "{\n              iVar1 = BIO_ADDRINFO_family(res);\n              pcVar9 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }\n            }" { (expression_statement "iVar1 = BIO_ADDRINFO_family(res);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(res)" identifier = (call_expression "BIO_ADDRINFO_family(res)" identifier (argument_list "(res)" ( identifier )))) ;) (expression_statement "pcVar9 = "IPv4 ";" (assignment_expression "pcVar9 = "IPv4 "" identifier = (string_literal ""IPv4 "" " string_content ")) ;) (if_statement "if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n                iVar1 = BIO_ADDRINFO_family(res);\n                pcVar9 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar9 = "";\n                }\n              }" { (expression_statement "iVar1 = BIO_ADDRINFO_family(res);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(res)" identifier = (call_expression "BIO_ADDRINFO_family(res)" identifier (argument_list "(res)" ( identifier )))) ;) (expression_statement "pcVar9 = "unix ";" (assignment_expression "pcVar9 = "unix "" identifier = (string_literal ""unix "" " string_content ")) ;) (if_statement "if (iVar1 != 1) {\n                  pcVar9 = "";\n                }" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (compound_statement "{\n                  pcVar9 = "";\n                }" { (expression_statement "pcVar9 = "";" (assignment_expression "pcVar9 = """ identifier = (string_literal """" " ")) ;) })) })) })) (expression_statement "BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40);" (call_expression "BIO_printf((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40)" identifier (argument_list "((BIO *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,bindhost,pcVar11,\n                       local_40)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""Can\'t bind %saddress for %s%s%s\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" else (compound_statement "{\n          ERR_clear_error();\n          local_4c = 1;\n        }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) })))) }) (else_clause "else {\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }" else (compound_statement "{\n        ERR_print_errors((BIO *)bio_err);\n        local_4c = 0;\n      }" { (expression_statement "ERR_print_errors((BIO *)bio_err);" (call_expression "ERR_print_errors((BIO *)bio_err)" identifier (argument_list "((BIO *)bio_err)" ( (cast_expression "(BIO *)bio_err" ( (type_descriptor "BIO *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (if_statement "if (bindaddr != (BIO_ADDRINFO *)0x0) {\n        BIO_ADDRINFO_free(bindaddr);\n      }" if (parenthesized_expression "(bindaddr != (BIO_ADDRINFO *)0x0)" ( (binary_expression "bindaddr != (BIO_ADDRINFO *)0x0" identifier != (cast_expression "(BIO_ADDRINFO *)0x0" ( (type_descriptor "BIO_ADDRINFO *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        BIO_ADDRINFO_free(bindaddr);\n      }" { (expression_statement "BIO_ADDRINFO_free(bindaddr);" (call_expression "BIO_ADDRINFO_free(bindaddr)" identifier (argument_list "(bindaddr)" ( identifier ))) ;) })) (expression_statement "BIO_ADDRINFO_free(res);" (call_expression "BIO_ADDRINFO_free(res)" identifier (argument_list "(res)" ( identifier ))) ;) }))) }) (else_clause "else {\n    local_4c = 0;\n  }" else (compound_statement "{\n    local_4c = 0;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\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                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_4c;" return identifier ;) })))
(translation_unit "undefined4\nFUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_4c;\n}\n\n" (function_definition "undefined4\nFUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_4c;\n}" type_identifier (function_declarator "FUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)" identifier (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "int param_8" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_4c;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "undefined *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_28;" primitive_type identifier ;) (declaration "int local_24;" primitive_type identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x7c3f9;" (assignment_expression "uStack_14 = 0x7c3f9" identifier = number_literal) ;) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" identifier = identifier) ;) (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 "local_28 = 0;" (assignment_expression "local_28 = 0" identifier = number_literal) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = BIO_sock_init();" (assignment_expression "iVar1 = BIO_sock_init()" identifier = (call_expression "BIO_sock_init()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }" if (parenthesized_expression "(iVar1 == 1)" ( (binary_expression "iVar1 == 1" identifier == number_literal) )) (compound_statement "{\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }" { (expression_statement "iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);" (assignment_expression "iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28)" identifier = (call_expression "BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28)" identifier (argument_list "(param_2,param_3,0,param_6,param_7,param_8,&local_28)" ( identifier , identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }" { (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" else (compound_statement "{\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" { (if_statement "if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" if (parenthesized_expression "((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0))" ( (binary_expression "(param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)" (parenthesized_expression "(param_4 == (char *)0x0 && param_5 == (undefined *)0x0)" ( (binary_expression "param_4 == (char *)0x0 && param_5 == (undefined *)0x0" (binary_expression "param_4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "param_5 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) || (parenthesized_expression "(iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)" ( (comma_expression "iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0" (assignment_expression "iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24)" identifier = (call_expression "BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24)" identifier (argument_list "(param_4,param_5,0,param_6,param_7,param_8,&local_24)" ( identifier , identifier , number_literal , identifier , identifier , identifier , (pointer_expression "&local_24" & identifier) )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }" { (if_statement "if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }" if (parenthesized_expression "(local_28 != 0)" ( (binary_expression "local_28 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }" { (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (if_statement "if (param_8 == 6) {\n            uVar2 = 0x10;\n          }" if (parenthesized_expression "(param_8 == 6)" ( (binary_expression "param_8 == 6" identifier == number_literal) )) (compound_statement "{\n            uVar2 = 0x10;\n          }" { (expression_statement "uVar2 = 0x10;" (assignment_expression "uVar2 = 0x10" identifier = number_literal) ;) })) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = local_28;" (assignment_expression "iVar1 = local_28" identifier = identifier) ;) (if_statement "if (param_6 != 0) goto LAB_0007c54c;" if (parenthesized_expression "(param_6 != 0)" ( (binary_expression "param_6 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007c54c;" goto statement_identifier ;)) (do_statement "do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);" do (compound_statement "{\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          }" { (do_statement "do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);" do (compound_statement "{\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            }" { (if_statement "if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;" if (parenthesized_expression "(((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))" ( (binary_expression "((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)))" (parenthesized_expression "((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7))" ( (binary_expression "(param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)" (parenthesized_expression "(param_7 != 0)" ( (binary_expression "param_7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)" ( (comma_expression "iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7" (assignment_expression "iVar3 = BIO_ADDRINFO_socktype(iVar1)" identifier = (call_expression "BIO_ADDRINFO_socktype(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "iVar3 != param_7" identifier != identifier)) ))) )) || (parenthesized_expression "((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)))" ( (parenthesized_expression "(param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))" ( (binary_expression "param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)" (binary_expression "param_8 != 0" identifier != number_literal) && (parenthesized_expression "(iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)" ( (comma_expression "iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8" (assignment_expression "iVar3 = BIO_ADDRINFO_protocol(iVar1)" identifier = (call_expression "BIO_ADDRINFO_protocol(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) , (binary_expression "iVar3 != param_8" identifier != identifier)) ))) )) ))) )) (goto_statement "goto LAB_0007c562;" goto statement_identifier ;)) (expression_statement "iVar3 = local_24;" (assignment_expression "iVar3 = local_24" identifier = identifier) ;) (if_statement "if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" if (parenthesized_expression "(local_24 == 0)" ( (binary_expression "local_24 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }" { (expression_statement "uVar5 = BIO_ADDRINFO_protocol(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_protocol(iVar1)" identifier = (call_expression "BIO_ADDRINFO_protocol(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar6 = BIO_ADDRINFO_socktype(iVar1);" (assignment_expression "uVar6 = BIO_ADDRINFO_socktype(iVar1)" identifier = (call_expression "BIO_ADDRINFO_socktype(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar7 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "uVar7 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);" (assignment_expression "iVar4 = BIO_socket(uVar7,uVar6,uVar5,0)" identifier = (call_expression "BIO_socket(uVar7,uVar6,uVar5,0)" identifier (argument_list "(uVar7,uVar6,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }" if (parenthesized_expression "(iVar4 != -1)" ( (binary_expression "iVar4 != -1" identifier != number_literal) )) (compound_statement "{\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }" { (if_statement "if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" { (labeled_statement "LAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);" statement_identifier : (expression_statement "uVar5 = BIO_ADDRINFO_address(iVar9);" (assignment_expression "uVar5 = BIO_ADDRINFO_address(iVar9)" identifier = (call_expression "BIO_ADDRINFO_address(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;)) (expression_statement "iVar4 = BIO_bind(*param_1,uVar5,1);" (assignment_expression "iVar4 = BIO_bind(*param_1,uVar5,1)" identifier = (call_expression "BIO_bind(*param_1,uVar5,1)" identifier (argument_list "(*param_1,uVar5,1)" ( (pointer_expression "*param_1" * identifier) , identifier , number_literal )))) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) (if_statement "if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }" { (expression_statement "BIO_closesocket(*param_1);" (call_expression "BIO_closesocket(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) (expression_statement "*param_1 = -1;" (assignment_expression "*param_1 = -1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (goto_statement "goto LAB_0007c61d;" goto statement_identifier ;) })) })) (expression_statement "uVar5 = BIO_ADDRINFO_address(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_address(iVar1)" identifier = (call_expression "BIO_ADDRINFO_address(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar9 = BIO_connect(*param_1,uVar5,uVar2);" (assignment_expression "iVar9 = BIO_connect(*param_1,uVar5,uVar2)" identifier = (call_expression "BIO_connect(*param_1,uVar5,uVar2)" identifier (argument_list "(*param_1,uVar5,uVar2)" ( (pointer_expression "*param_1" * identifier) , identifier , identifier )))) ;) (if_statement "if (iVar9 != 0) goto LAB_0007c610;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0007c610;" goto statement_identifier ;)) (expression_statement "BIO_closesocket(*param_1);" (call_expression "BIO_closesocket(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) ))) ;) (expression_statement "*param_1 = -1;" (assignment_expression "*param_1 = -1" (pointer_expression "*param_1" * identifier) = number_literal) ;) (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) })) }) (else_clause "else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" else (compound_statement "{\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" { (do_statement "do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);" do (compound_statement "{\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                }" { (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" identifier = identifier) ;) (expression_statement "iVar3 = BIO_ADDRINFO_family(iVar9);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(iVar9)" identifier = (call_expression "BIO_ADDRINFO_family(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;) (expression_statement "iVar4 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "iVar4 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (if_statement "if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" if (parenthesized_expression "(iVar3 == iVar4)" ( (binary_expression "iVar3 == iVar4" identifier == identifier) )) (compound_statement "{\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" { (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" identifier = (binary_expression "local_3c + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = BIO_ADDRINFO_protocol(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_protocol(iVar1)" identifier = (call_expression "BIO_ADDRINFO_protocol(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar6 = BIO_ADDRINFO_socktype(iVar1);" (assignment_expression "uVar6 = BIO_ADDRINFO_socktype(iVar1)" identifier = (call_expression "BIO_ADDRINFO_socktype(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "uVar7 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "uVar7 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);" (assignment_expression "iVar3 = BIO_socket(uVar7,uVar6,uVar5,0)" identifier = (call_expression "BIO_socket(uVar7,uVar6,uVar5,0)" identifier (argument_list "(uVar7,uVar6,uVar5,0)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "*param_1 = iVar3;" (assignment_expression "*param_1 = iVar3" (pointer_expression "*param_1" * identifier) = identifier) ;) (if_statement "if (iVar3 == -1) goto LAB_0007c52e;" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (goto_statement "goto LAB_0007c52e;" goto statement_identifier ;)) (goto_statement "goto LAB_0007c5c4;" goto statement_identifier ;) })) (expression_statement "iVar3 = BIO_ADDRINFO_next(iVar9);" (assignment_expression "iVar3 = BIO_ADDRINFO_next(iVar9)" identifier = (call_expression "BIO_ADDRINFO_next(iVar9)" identifier (argument_list "(iVar9)" ( identifier )))) ;) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);" statement_identifier : (expression_statement "iVar1 = BIO_ADDRINFO_next(iVar1);" (assignment_expression "iVar1 = BIO_ADDRINFO_next(iVar1)" identifier = (call_expression "BIO_ADDRINFO_next(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;)) (if_statement "if (iVar1 == 0) goto LAB_0007c610;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0007c610;" goto statement_identifier ;)) }) while (parenthesized_expression "(param_6 == 0)" ( (binary_expression "param_6 == 0" identifier == number_literal) )) ;) (labeled_statement "LAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);" statement_identifier : (expression_statement "iVar3 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(iVar1)" identifier = (call_expression "BIO_ADDRINFO_family(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;)) }) while (parenthesized_expression "(iVar3 == param_6)" ( (binary_expression "iVar3 == param_6" identifier == identifier) )) ;) (labeled_statement "LAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);" statement_identifier : (expression_statement "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);" (call_expression "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3)" identifier (argument_list "("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3)" ( (string_literal ""assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"" " string_content ") , (string_literal ""../apps/s_socket.c"" " string_content ") , number_literal , identifier ))) ;)) })) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (labeled_statement "LAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" statement_identifier : (if_statement "if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" if (parenthesized_expression "(*param_1 == -1)" ( (binary_expression "*param_1 == -1" (pointer_expression "*param_1" * identifier) == number_literal) )) (compound_statement "{\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }" { (labeled_statement "LAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" statement_identifier : (if_statement "if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" if (parenthesized_expression "((local_24 != 0) && (local_3c == 0))" ( (binary_expression "(local_24 != 0) && (local_3c == 0)" (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) && (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) ))) )) (compound_statement "{\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" { (expression_statement "puVar10 = &DAT_0008e035;" (assignment_expression "puVar10 = &DAT_0008e035" identifier = (pointer_expression "&DAT_0008e035" & identifier)) ;) (if_statement "if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }" if (parenthesized_expression "(param_5 == (undefined *)0x0)" ( (binary_expression "param_5 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }" { (expression_statement "puVar10 = &DAT_0008570a;" (assignment_expression "puVar10 = &DAT_0008570a" identifier = (pointer_expression "&DAT_0008570a" & identifier)) ;) (expression_statement "local_40 = puVar10;" (assignment_expression "local_40 = puVar10" identifier = identifier) ;) })) (if_statement "if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }" if (parenthesized_expression "(param_4 == (char *)0x0)" ( (binary_expression "param_4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              param_4 = "";\n            }" { (expression_statement "param_4 = "";" (assignment_expression "param_4 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" identifier = (call_expression "BIO_ADDRINFO_family(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "pcVar8 = "IPv6 ";" (assignment_expression "pcVar8 = "IPv6 "" identifier = (string_literal ""IPv6 "" " string_content ")) ;) (if_statement "if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }" if (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) (compound_statement "{\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }" { (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" identifier = (call_expression "BIO_ADDRINFO_family(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "pcVar8 = "IPv4 ";" (assignment_expression "pcVar8 = "IPv4 "" identifier = (string_literal ""IPv4 "" " string_content ")) ;) (if_statement "if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }" if (parenthesized_expression "(iVar1 != 2)" ( (binary_expression "iVar1 != 2" identifier != number_literal) )) (compound_statement "{\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }" { (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" identifier = (call_expression "BIO_ADDRINFO_family(local_28)" identifier (argument_list "(local_28)" ( identifier )))) ;) (expression_statement "pcVar8 = "unix ";" (assignment_expression "pcVar8 = "unix "" identifier = (string_literal ""unix "" " string_content ")) ;) (if_statement "if (iVar1 != 1) {\n                  pcVar8 = "";\n                }" if (parenthesized_expression "(iVar1 != 1)" ( (binary_expression "iVar1 != 1" identifier != number_literal) )) (compound_statement "{\n                  pcVar8 = "";\n                }" { (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ identifier = (string_literal """" " ")) ;) })) })) })) (expression_statement "BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);" (call_expression "BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40)" identifier (argument_list "(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40)" ( identifier , (string_literal ""Can\'t bind %saddress for %s%s%s\n"" " string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }) (else_clause "else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" else (compound_statement "{\n          ERR_clear_error();\n          local_4c = 1;\n        }" { (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) })))) }) (else_clause "else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" else (compound_statement "{\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" { (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" identifier (argument_list "(DAT_000c458c)" ( identifier ))) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (if_statement "if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }" if (parenthesized_expression "(local_24 != 0)" ( (binary_expression "local_24 != 0" identifier != number_literal) )) (compound_statement "{\n        BIO_ADDRINFO_free(local_24);\n      }" { (expression_statement "BIO_ADDRINFO_free(local_24);" (call_expression "BIO_ADDRINFO_free(local_24)" identifier (argument_list "(local_24)" ( identifier ))) ;) })) (expression_statement "BIO_ADDRINFO_free(local_28);" (call_expression "BIO_ADDRINFO_free(local_28)" identifier (argument_list "(local_28)" ( identifier ))) ;) }))) }) (else_clause "else {\n    local_4c = 0;\n  }" else (compound_statement "{\n    local_4c = 0;\n  }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\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                    \n    FUN_0007d010();\n  }" { (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return local_4c;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = 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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != IDENT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != IDENT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT == IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , IDENT ))) ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( 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 = (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 = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (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 { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "undefined4\nFUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)\n\n{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_4c;\n}" (type_identifier "undefined4") (function_declarator "FUN_0007c3f0(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)" (identifier "FUN_0007c3f0") (parameter_list "(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,\n            int param_6,int param_7,int param_8)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined *param_5" (type_identifier "undefined") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "int param_8" (primitive_type "int") (identifier "param_8")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined4 uVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  undefined4 uVar7;\n  char *pcVar8;\n  int iVar9;\n  undefined *puVar10;\n  int in_GS_OFFSET;\n  undefined4 local_4c;\n  undefined *local_40;\n  int local_3c;\n  int local_28;\n  int local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x7c3f9;\n  local_40 = param_5;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  local_28 = 0;\n  local_24 = 0;\n  iVar1 = BIO_sock_init();\n  if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\n  }\n  return local_4c;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "undefined *local_40;" (type_identifier "undefined") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_28;" (primitive_type "int") (identifier "local_28") (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x7c3f9;" (assignment_expression "uStack_14 = 0x7c3f9" (identifier "uStack_14") (= "=") (number_literal "0x7c3f9")) (; ";")) (expression_statement "local_40 = param_5;" (assignment_expression "local_40 = param_5" (identifier "local_40") (= "=") (identifier "param_5")) (; ";")) (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 "local_28 = 0;" (assignment_expression "local_28 = 0" (identifier "local_28") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = BIO_sock_init();" (assignment_expression "iVar1 = BIO_sock_init()" (identifier "iVar1") (= "=") (call_expression "BIO_sock_init()" (identifier "BIO_sock_init") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar1 == 1) {\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }\n  else {\n    local_4c = 0;\n  }" (if "if") (parenthesized_expression "(iVar1 == 1)" (( "(") (binary_expression "iVar1 == 1" (identifier "iVar1") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);\n    if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }\n  }" ({ "{") (expression_statement "iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);" (assignment_expression "iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28)" (identifier "iVar1") (= "=") (call_expression "BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28)" (identifier "BIO_lookup_ex") (argument_list "(param_2,param_3,0,param_6,param_7,param_8,&local_28)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }\n    else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ERR_print_errors(DAT_000c458c);\n      local_4c = 0;\n    }" ({ "{") (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" (else "else") (compound_statement "{\n      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }\n      if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }\n      BIO_ADDRINFO_free(local_28);\n    }" ({ "{") (if_statement "if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }\n      else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" (if "if") (parenthesized_expression "((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0))" (( "(") (binary_expression "(param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||\n         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)" (parenthesized_expression "(param_4 == (char *)0x0 && param_5 == (undefined *)0x0)" (( "(") (binary_expression "param_4 == (char *)0x0 && param_5 == (undefined *)0x0" (binary_expression "param_4 == (char *)0x0" (identifier "param_4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (binary_expression "param_5 == (undefined *)0x0" (identifier "param_5") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")")) (|| "||") (parenthesized_expression "(iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)" (( "(") (comma_expression "iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0" (assignment_expression "iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24)" (identifier "iVar1") (= "=") (call_expression "BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24)" (identifier "BIO_lookup_ex") (argument_list "(param_4,param_5,0,param_6,param_7,param_8,&local_24)" (( "(") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (number_literal "0") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (pointer_expression "&local_24" (& "&") (identifier "local_24")) () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }\n        local_3c = 0;\nLAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }\n      }" ({ "{") (if_statement "if (local_28 != 0) {\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }" (if "if") (parenthesized_expression "(local_28 != 0)" (( "(") (binary_expression "local_28 != 0" (identifier "local_28") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar2 = 0;\n          local_3c = 0;\n          if (param_8 == 6) {\n            uVar2 = 0x10;\n          }\n          iVar9 = 0;\n          iVar1 = local_28;\n          if (param_6 != 0) goto LAB_0007c54c;\n          do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);\nLAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);\n        }" ({ "{") (expression_statement "uVar2 = 0;" (assignment_expression "uVar2 = 0" (identifier "uVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_8 == 6) {\n            uVar2 = 0x10;\n          }" (if "if") (parenthesized_expression "(param_8 == 6)" (( "(") (binary_expression "param_8 == 6" (identifier "param_8") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n            uVar2 = 0x10;\n          }" ({ "{") (expression_statement "uVar2 = 0x10;" (assignment_expression "uVar2 = 0x10" (identifier "uVar2") (= "=") (number_literal "0x10")) (; ";")) (} "}"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = local_28;" (assignment_expression "iVar1 = local_28" (identifier "iVar1") (= "=") (identifier "local_28")) (; ";")) (if_statement "if (param_6 != 0) goto LAB_0007c54c;" (if "if") (parenthesized_expression "(param_6 != 0)" (( "(") (binary_expression "param_6 != 0" (identifier "param_6") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007c54c;" (goto "goto") (statement_identifier "LAB_0007c54c") (; ";"))) (do_statement "do {\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          } while (iVar3 == param_6);" (do "do") (compound_statement "{\n            do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);\nLAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);\n          }" ({ "{") (do_statement "do {\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            } while (param_6 == 0);" (do "do") (compound_statement "{\n              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;\n              iVar3 = local_24;\n              if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }\nLAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);\n              if (iVar1 == 0) goto LAB_0007c610;\n            }" ({ "{") (if_statement "if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))\n              goto LAB_0007c562;" (if "if") (parenthesized_expression "(((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))" (( "(") (binary_expression "((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||\n                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)))" (parenthesized_expression "((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7))" (( "(") (binary_expression "(param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)" (parenthesized_expression "(param_7 != 0)" (( "(") (binary_expression "param_7 != 0" (identifier "param_7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)" (( "(") (comma_expression "iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7" (assignment_expression "iVar3 = BIO_ADDRINFO_socktype(iVar1)" (identifier "iVar3") (= "=") (call_expression "BIO_ADDRINFO_socktype(iVar1)" (identifier "BIO_ADDRINFO_socktype") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (, ",") (binary_expression "iVar3 != param_7" (identifier "iVar3") (!= "!=") (identifier "param_7"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)))" (( "(") (parenthesized_expression "(param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))" (( "(") (binary_expression "param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)" (binary_expression "param_8 != 0" (identifier "param_8") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8)" (( "(") (comma_expression "iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8" (assignment_expression "iVar3 = BIO_ADDRINFO_protocol(iVar1)" (identifier "iVar3") (= "=") (call_expression "BIO_ADDRINFO_protocol(iVar1)" (identifier "BIO_ADDRINFO_protocol") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (, ",") (binary_expression "iVar3 != param_8" (identifier "iVar3") (!= "!=") (identifier "param_8"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0007c562;" (goto "goto") (statement_identifier "LAB_0007c562") (; ";"))) (expression_statement "iVar3 = local_24;" (assignment_expression "iVar3 = local_24" (identifier "iVar3") (= "=") (identifier "local_24")) (; ";")) (if_statement "if (local_24 == 0) {\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }\n              else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" (if "if") (parenthesized_expression "(local_24 == 0)" (( "(") (binary_expression "local_24 == 0" (identifier "local_24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                uVar7 = BIO_ADDRINFO_family(iVar1);\n                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);\n                *param_1 = iVar4;\n                if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }\n              }" ({ "{") (expression_statement "uVar5 = BIO_ADDRINFO_protocol(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_protocol(iVar1)" (identifier "uVar5") (= "=") (call_expression "BIO_ADDRINFO_protocol(iVar1)" (identifier "BIO_ADDRINFO_protocol") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "uVar6 = BIO_ADDRINFO_socktype(iVar1);" (assignment_expression "uVar6 = BIO_ADDRINFO_socktype(iVar1)" (identifier "uVar6") (= "=") (call_expression "BIO_ADDRINFO_socktype(iVar1)" (identifier "BIO_ADDRINFO_socktype") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "uVar7 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "uVar7 = BIO_ADDRINFO_family(iVar1)" (identifier "uVar7") (= "=") (call_expression "BIO_ADDRINFO_family(iVar1)" (identifier "BIO_ADDRINFO_family") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);" (assignment_expression "iVar4 = BIO_socket(uVar7,uVar6,uVar5,0)" (identifier "iVar4") (= "=") (call_expression "BIO_socket(uVar7,uVar6,uVar5,0)" (identifier "BIO_socket") (argument_list "(uVar7,uVar6,uVar5,0)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_1 = iVar4;" (assignment_expression "*param_1 = iVar4" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (iVar4 != -1) {\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }" (if "if") (parenthesized_expression "(iVar4 != -1)" (( "(") (binary_expression "iVar4 != -1" (identifier "iVar4") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                  if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }\n                  uVar5 = BIO_ADDRINFO_address(iVar1);\n                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);\n                  if (iVar9 != 0) goto LAB_0007c610;\n                  BIO_closesocket(*param_1);\n                  *param_1 = -1;\n                  iVar9 = iVar3;\n                }" ({ "{") (if_statement "if (iVar9 != 0) {\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);\n                    iVar4 = BIO_bind(*param_1,uVar5,1);\n                    iVar3 = iVar9;\n                    if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }\n                  }" ({ "{") (labeled_statement "LAB_0007c5c4:\n                    uVar5 = BIO_ADDRINFO_address(iVar9);" (statement_identifier "LAB_0007c5c4") (: ":") (expression_statement "uVar5 = BIO_ADDRINFO_address(iVar9);" (assignment_expression "uVar5 = BIO_ADDRINFO_address(iVar9)" (identifier "uVar5") (= "=") (call_expression "BIO_ADDRINFO_address(iVar9)" (identifier "BIO_ADDRINFO_address") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";"))) (expression_statement "iVar4 = BIO_bind(*param_1,uVar5,1);" (assignment_expression "iVar4 = BIO_bind(*param_1,uVar5,1)" (identifier "iVar4") (= "=") (call_expression "BIO_bind(*param_1,uVar5,1)" (identifier "BIO_bind") (argument_list "(*param_1,uVar5,1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "uVar5") (, ",") (number_literal "1") () ")")))) (; ";")) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" (identifier "iVar3") (= "=") (identifier "iVar9")) (; ";")) (if_statement "if (iVar4 == 0) {\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      BIO_closesocket(*param_1);\n                      *param_1 = -1;\n                      goto LAB_0007c61d;\n                    }" ({ "{") (expression_statement "BIO_closesocket(*param_1);" (call_expression "BIO_closesocket(*param_1)" (identifier "BIO_closesocket") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (expression_statement "*param_1 = -1;" (assignment_expression "*param_1 = -1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "-1")) (; ";")) (goto_statement "goto LAB_0007c61d;" (goto "goto") (statement_identifier "LAB_0007c61d") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar5 = BIO_ADDRINFO_address(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_address(iVar1)" (identifier "uVar5") (= "=") (call_expression "BIO_ADDRINFO_address(iVar1)" (identifier "BIO_ADDRINFO_address") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "iVar9 = BIO_connect(*param_1,uVar5,uVar2);" (assignment_expression "iVar9 = BIO_connect(*param_1,uVar5,uVar2)" (identifier "iVar9") (= "=") (call_expression "BIO_connect(*param_1,uVar5,uVar2)" (identifier "BIO_connect") (argument_list "(*param_1,uVar5,uVar2)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "uVar5") (, ",") (identifier "uVar2") () ")")))) (; ";")) (if_statement "if (iVar9 != 0) goto LAB_0007c610;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007c610;" (goto "goto") (statement_identifier "LAB_0007c610") (; ";"))) (expression_statement "BIO_closesocket(*param_1);" (call_expression "BIO_closesocket(*param_1)" (identifier "BIO_closesocket") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")"))) (; ";")) (expression_statement "*param_1 = -1;" (assignment_expression "*param_1 = -1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (number_literal "-1")) (; ";")) (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" (identifier "iVar9") (= "=") (identifier "iVar3")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" (else "else") (compound_statement "{\n                do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);\n                iVar9 = 0;\n              }" ({ "{") (do_statement "do {\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                } while (iVar3 != 0);" (do "do") (compound_statement "{\n                  iVar9 = iVar3;\n                  iVar3 = BIO_ADDRINFO_family(iVar9);\n                  iVar4 = BIO_ADDRINFO_family(iVar1);\n                  if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }\n                  iVar3 = BIO_ADDRINFO_next(iVar9);\n                }" ({ "{") (expression_statement "iVar9 = iVar3;" (assignment_expression "iVar9 = iVar3" (identifier "iVar9") (= "=") (identifier "iVar3")) (; ";")) (expression_statement "iVar3 = BIO_ADDRINFO_family(iVar9);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(iVar9)" (identifier "iVar3") (= "=") (call_expression "BIO_ADDRINFO_family(iVar9)" (identifier "BIO_ADDRINFO_family") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (expression_statement "iVar4 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "iVar4 = BIO_ADDRINFO_family(iVar1)" (identifier "iVar4") (= "=") (call_expression "BIO_ADDRINFO_family(iVar1)" (identifier "BIO_ADDRINFO_family") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (if_statement "if (iVar3 == iVar4) {\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" (if "if") (parenthesized_expression "(iVar3 == iVar4)" (( "(") (binary_expression "iVar3 == iVar4" (identifier "iVar3") (== "==") (identifier "iVar4")) () ")")) (compound_statement "{\n                    local_3c = local_3c + 1;\n                    uVar5 = BIO_ADDRINFO_protocol(iVar1);\n                    uVar6 = BIO_ADDRINFO_socktype(iVar1);\n                    uVar7 = BIO_ADDRINFO_family(iVar1);\n                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);\n                    *param_1 = iVar3;\n                    if (iVar3 == -1) goto LAB_0007c52e;\n                    goto LAB_0007c5c4;\n                  }" ({ "{") (expression_statement "local_3c = local_3c + 1;" (assignment_expression "local_3c = local_3c + 1" (identifier "local_3c") (= "=") (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = BIO_ADDRINFO_protocol(iVar1);" (assignment_expression "uVar5 = BIO_ADDRINFO_protocol(iVar1)" (identifier "uVar5") (= "=") (call_expression "BIO_ADDRINFO_protocol(iVar1)" (identifier "BIO_ADDRINFO_protocol") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "uVar6 = BIO_ADDRINFO_socktype(iVar1);" (assignment_expression "uVar6 = BIO_ADDRINFO_socktype(iVar1)" (identifier "uVar6") (= "=") (call_expression "BIO_ADDRINFO_socktype(iVar1)" (identifier "BIO_ADDRINFO_socktype") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "uVar7 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "uVar7 = BIO_ADDRINFO_family(iVar1)" (identifier "uVar7") (= "=") (call_expression "BIO_ADDRINFO_family(iVar1)" (identifier "BIO_ADDRINFO_family") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);" (assignment_expression "iVar3 = BIO_socket(uVar7,uVar6,uVar5,0)" (identifier "iVar3") (= "=") (call_expression "BIO_socket(uVar7,uVar6,uVar5,0)" (identifier "BIO_socket") (argument_list "(uVar7,uVar6,uVar5,0)" (( "(") (identifier "uVar7") (, ",") (identifier "uVar6") (, ",") (identifier "uVar5") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_1 = iVar3;" (assignment_expression "*param_1 = iVar3" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (iVar3 == -1) goto LAB_0007c52e;" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (goto_statement "goto LAB_0007c52e;" (goto "goto") (statement_identifier "LAB_0007c52e") (; ";"))) (goto_statement "goto LAB_0007c5c4;" (goto "goto") (statement_identifier "LAB_0007c5c4") (; ";")) (} "}"))) (expression_statement "iVar3 = BIO_ADDRINFO_next(iVar9);" (assignment_expression "iVar3 = BIO_ADDRINFO_next(iVar9)" (identifier "iVar3") (= "=") (call_expression "BIO_ADDRINFO_next(iVar9)" (identifier "BIO_ADDRINFO_next") (argument_list "(iVar9)" (( "(") (identifier "iVar9") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0007c52e:\n              iVar1 = BIO_ADDRINFO_next(iVar1);" (statement_identifier "LAB_0007c52e") (: ":") (expression_statement "iVar1 = BIO_ADDRINFO_next(iVar1);" (assignment_expression "iVar1 = BIO_ADDRINFO_next(iVar1)" (identifier "iVar1") (= "=") (call_expression "BIO_ADDRINFO_next(iVar1)" (identifier "BIO_ADDRINFO_next") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";"))) (if_statement "if (iVar1 == 0) goto LAB_0007c610;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0007c610;" (goto "goto") (statement_identifier "LAB_0007c610") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(param_6 == 0)" (( "(") (binary_expression "param_6 == 0" (identifier "param_6") (== "==") (number_literal "0")) () ")")) (; ";")) (labeled_statement "LAB_0007c54c:\n            iVar3 = BIO_ADDRINFO_family(iVar1);" (statement_identifier "LAB_0007c54c") (: ":") (expression_statement "iVar3 = BIO_ADDRINFO_family(iVar1);" (assignment_expression "iVar3 = BIO_ADDRINFO_family(iVar1)" (identifier "iVar3") (= "=") (call_expression "BIO_ADDRINFO_family(iVar1)" (identifier "BIO_ADDRINFO_family") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar3 == param_6)" (( "(") (binary_expression "iVar3 == param_6" (identifier "iVar3") (== "==") (identifier "param_6")) () ")")) (; ";")) (labeled_statement "LAB_0007c562:\n                    \n          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);" (statement_identifier "LAB_0007c562") (: ":") (expression_statement "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3);" (call_expression "OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3)" (identifier "OPENSSL_die") (argument_list "("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"\n                      ,"../apps/s_socket.c",0x65,iVar3)" (( "(") (string_literal ""assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"" (" """) (string_content "assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))") (" """)) (, ",") (string_literal ""../apps/s_socket.c"" (" """) (string_content "../apps/s_socket.c") (" """)) (, ",") (number_literal "0x65") (, ",") (identifier "iVar3") () ")"))) (; ";"))) (} "}"))) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0007c610:\n        if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" (statement_identifier "LAB_0007c610") (: ":") (if_statement "if (*param_1 == -1) {\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }\n        else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" (if "if") (parenthesized_expression "(*param_1 == -1)" (( "(") (binary_expression "*param_1 == -1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (== "==") (number_literal "-1")) () ")")) (compound_statement "{\nLAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }\n          ERR_print_errors(DAT_000c458c);\n          local_4c = 0;\n        }" ({ "{") (labeled_statement "LAB_0007c61d:\n          if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" (statement_identifier "LAB_0007c61d") (: ":") (if_statement "if ((local_24 != 0) && (local_3c == 0)) {\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" (if "if") (parenthesized_expression "((local_24 != 0) && (local_3c == 0))" (( "(") (binary_expression "(local_24 != 0) && (local_3c == 0)" (parenthesized_expression "(local_24 != 0)" (( "(") (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            puVar10 = &DAT_0008e035;\n            if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }\n            if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }\n            iVar1 = BIO_ADDRINFO_family(local_28);\n            pcVar8 = "IPv6 ";\n            if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }\n            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);\n            ERR_clear_error();\n          }" ({ "{") (expression_statement "puVar10 = &DAT_0008e035;" (assignment_expression "puVar10 = &DAT_0008e035" (identifier "puVar10") (= "=") (pointer_expression "&DAT_0008e035" (& "&") (identifier "DAT_0008e035"))) (; ";")) (if_statement "if (param_5 == (undefined *)0x0) {\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }" (if "if") (parenthesized_expression "(param_5 == (undefined *)0x0)" (( "(") (binary_expression "param_5 == (undefined *)0x0" (identifier "param_5") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              puVar10 = &DAT_0008570a;\n              local_40 = puVar10;\n            }" ({ "{") (expression_statement "puVar10 = &DAT_0008570a;" (assignment_expression "puVar10 = &DAT_0008570a" (identifier "puVar10") (= "=") (pointer_expression "&DAT_0008570a" (& "&") (identifier "DAT_0008570a"))) (; ";")) (expression_statement "local_40 = puVar10;" (assignment_expression "local_40 = puVar10" (identifier "local_40") (= "=") (identifier "puVar10")) (; ";")) (} "}"))) (if_statement "if (param_4 == (char *)0x0) {\n              param_4 = "";\n            }" (if "if") (parenthesized_expression "(param_4 == (char *)0x0)" (( "(") (binary_expression "param_4 == (char *)0x0" (identifier "param_4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              param_4 = "";\n            }" ({ "{") (expression_statement "param_4 = "";" (assignment_expression "param_4 = """ (identifier "param_4") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" (identifier "iVar1") (= "=") (call_expression "BIO_ADDRINFO_family(local_28)" (identifier "BIO_ADDRINFO_family") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")")))) (; ";")) (expression_statement "pcVar8 = "IPv6 ";" (assignment_expression "pcVar8 = "IPv6 "" (identifier "pcVar8") (= "=") (string_literal ""IPv6 "" (" """) (string_content "IPv6 ") (" """))) (; ";")) (if_statement "if (iVar1 != 10) {\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar1 != 10)" (( "(") (binary_expression "iVar1 != 10" (identifier "iVar1") (!= "!=") (number_literal "10")) () ")")) (compound_statement "{\n              iVar1 = BIO_ADDRINFO_family(local_28);\n              pcVar8 = "IPv4 ";\n              if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }\n            }" ({ "{") (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" (identifier "iVar1") (= "=") (call_expression "BIO_ADDRINFO_family(local_28)" (identifier "BIO_ADDRINFO_family") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")")))) (; ";")) (expression_statement "pcVar8 = "IPv4 ";" (assignment_expression "pcVar8 = "IPv4 "" (identifier "pcVar8") (= "=") (string_literal ""IPv4 "" (" """) (string_content "IPv4 ") (" """))) (; ";")) (if_statement "if (iVar1 != 2) {\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }" (if "if") (parenthesized_expression "(iVar1 != 2)" (( "(") (binary_expression "iVar1 != 2" (identifier "iVar1") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                iVar1 = BIO_ADDRINFO_family(local_28);\n                pcVar8 = "unix ";\n                if (iVar1 != 1) {\n                  pcVar8 = "";\n                }\n              }" ({ "{") (expression_statement "iVar1 = BIO_ADDRINFO_family(local_28);" (assignment_expression "iVar1 = BIO_ADDRINFO_family(local_28)" (identifier "iVar1") (= "=") (call_expression "BIO_ADDRINFO_family(local_28)" (identifier "BIO_ADDRINFO_family") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")")))) (; ";")) (expression_statement "pcVar8 = "unix ";" (assignment_expression "pcVar8 = "unix "" (identifier "pcVar8") (= "=") (string_literal ""unix "" (" """) (string_content "unix ") (" """))) (; ";")) (if_statement "if (iVar1 != 1) {\n                  pcVar8 = "";\n                }" (if "if") (parenthesized_expression "(iVar1 != 1)" (( "(") (binary_expression "iVar1 != 1" (identifier "iVar1") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n                  pcVar8 = "";\n                }" ({ "{") (expression_statement "pcVar8 = "";" (assignment_expression "pcVar8 = """ (identifier "pcVar8") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40);" (call_expression "BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40)" (identifier "BIO_printf") (argument_list "(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,\n                       local_40)" (( "(") (identifier "DAT_000c458c") (, ",") (string_literal ""Can\'t bind %saddress for %s%s%s\n"" (" """) (string_content "Can") (escape_sequence "\'") (string_content "t bind %saddress for %s%s%s") (escape_sequence "\n") (" """)) (, ",") (identifier "pcVar8") (, ",") (identifier "param_4") (, ",") (identifier "puVar10") (, ",") (identifier "local_40") () ")"))) (; ";")) (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          ERR_clear_error();\n          local_4c = 1;\n        }" (else "else") (compound_statement "{\n          ERR_clear_error();\n          local_4c = 1;\n        }" ({ "{") (expression_statement "ERR_clear_error();" (call_expression "ERR_clear_error()" (identifier "ERR_clear_error") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" (identifier "local_4c") (= "=") (number_literal "1")) (; ";")) (} "}"))))) (} "}")) (else_clause "else {\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" (else "else") (compound_statement "{\n        ERR_print_errors(DAT_000c458c);\n        local_4c = 0;\n      }" ({ "{") (expression_statement "ERR_print_errors(DAT_000c458c);" (call_expression "ERR_print_errors(DAT_000c458c)" (identifier "ERR_print_errors") (argument_list "(DAT_000c458c)" (( "(") (identifier "DAT_000c458c") () ")"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (local_24 != 0) {\n        BIO_ADDRINFO_free(local_24);\n      }" (if "if") (parenthesized_expression "(local_24 != 0)" (( "(") (binary_expression "local_24 != 0" (identifier "local_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        BIO_ADDRINFO_free(local_24);\n      }" ({ "{") (expression_statement "BIO_ADDRINFO_free(local_24);" (call_expression "BIO_ADDRINFO_free(local_24)" (identifier "BIO_ADDRINFO_free") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")"))) (; ";")) (} "}"))) (expression_statement "BIO_ADDRINFO_free(local_28);" (call_expression "BIO_ADDRINFO_free(local_28)" (identifier "BIO_ADDRINFO_free") (argument_list "(local_28)" (( "(") (identifier "local_28") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    local_4c = 0;\n  }" (else "else") (compound_statement "{\n    local_4c = 0;\n  }" ({ "{") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_0007d010();\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                    \n    FUN_0007d010();\n  }" ({ "{") (expression_statement "FUN_0007d010();" (call_expression "FUN_0007d010()" (identifier "FUN_0007d010") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return local_4c;" (return "return") (identifier "local_4c") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention */

int function_1(int *sock,char *host,char *port,char *var_6,char *var_7,int var_10,int var_11,
               int var_9)

{
  int var_3;
  type_1 uVar2;
  int var_22;
  type_2 *var_25;
  type_2 *var_26;
  type_1 uVar6;
  type_1 uVar7;
  type_1 uVar8;
  char *pcVar9;
  type_2 *var_17;
  char *pcVar11;
  int var_1;
  int local_4c;
  char *local_40;
  int var_23;
  type_2 *var_8;
  type_2 *var_14;
  int var_31;
  type_1 uStack_14;
  
  uStack_14 = 0x7c3f9;
  local_40 = var_7;
  var_31 = *(int *)(var_1 + 0x14);
  var_8 = (type_2 *)0x0;
  var_14 = (type_2 *)0x0;
  var_3 = var_2();
  if (var_3 == 1) {
    var_3 = var_4(host,port,0,var_10,var_11,var_9,&var_8);
    if (var_3 == 0) {
      var_5((type_3 *)bio_err);
      local_4c = 0;
    }
    else {
      if ((var_6 == (char *)0x0 && var_7 == (char *)0x0) ||
         (var_3 = var_4(var_6,var_7,0,var_10,var_11,var_9,&var_14), var_3 != 0)) {
        if (var_8 != (type_2 *)0x0) {
          uVar2 = 0;
          var_23 = 0;
          if (var_9 == 6) {
            uVar2 = 0x10;
          }
          var_17 = (type_2 *)0x0;
          var_26 = var_8;
          if (var_10 != 0) goto LAB_0007c54c;
          do {
            do {
              if (((var_11 != 0) && (var_3 = var_12(var_26), var_3 != var_11)) ||
                 ((var_9 != 0 && (var_3 = var_13(var_26), var_3 != var_9))))
              goto LAB_0007c562;
              var_25 = var_14;
              if (var_14 == (type_2 *)0x0) {
                uVar6 = var_13(var_26);
                uVar7 = var_12(var_26);
                uVar8 = var_15(var_26);
                var_3 = var_16(uVar8,uVar7,uVar6,0);
                *sock = var_3;
                if (var_3 != -1) {
                  if (var_17 != (type_2 *)0x0) {
LAB_0007c5c4:
                    uVar6 = var_18(var_17);
                    var_3 = var_19(*sock,uVar6,1);
                    var_25 = var_17;
                    if (var_3 == 0) {
                      var_20(*sock);
                      *sock = -1;
                      goto LAB_0007c61d;
                    }
                  }
                  uVar6 = var_18(var_26);
                  var_3 = var_21(*sock,uVar6,uVar2);
                  if (var_3 != 0) goto LAB_0007c610;
                  var_20(*sock);
                  *sock = -1;
                  var_17 = var_25;
                }
              }
              else {
                do {
                  var_17 = var_25;
                  var_3 = var_15(var_17);
                  var_22 = var_15(var_26);
                  if (var_3 == var_22) {
                    var_23 = var_23 + 1;
                    uVar6 = var_13(var_26);
                    uVar7 = var_12(var_26);
                    uVar8 = var_15(var_26);
                    var_3 = var_16(uVar8,uVar7,uVar6,0);
                    *sock = var_3;
                    if (var_3 == -1) goto LAB_0007c52e;
                    goto LAB_0007c5c4;
                  }
                  var_25 = (type_2 *)var_24(var_17);
                } while (var_25 != (type_2 *)0x0);
                var_17 = (type_2 *)0x0;
              }
LAB_0007c52e:
              var_26 = (type_2 *)var_24(var_26);
              if (var_26 == (type_2 *)0x0) goto LAB_0007c610;
            } while (var_10 == 0);
LAB_0007c54c:
            var_3 = var_15(var_26);
          } while (var_3 == var_10);
LAB_0007c562:
                    /* WARNING: Subroutine does not return */
          var_27("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"
                      ,"../apps/s_socket.c",0x65,var_3);
        }
        var_23 = 0;
LAB_0007c610:
        if (*sock == -1) {
LAB_0007c61d:
          if ((var_14 != (type_2 *)0x0) && (var_23 == 0)) {
            pcVar11 = ":";
            if (var_7 == (char *)0x0) {
              pcVar11 = "";
              local_40 = pcVar11;
            }
            if (var_6 == (char *)0x0) {
              var_6 = "";
            }
            var_3 = var_15(var_8);
            pcVar9 = "IPv6 ";
            if (var_3 != 10) {
              var_3 = var_15(var_8);
              pcVar9 = "IPv4 ";
              if (var_3 != 2) {
                var_3 = var_15(var_8);
                pcVar9 = "unix ";
                if (var_3 != 1) {
                  pcVar9 = "";
                }
              }
            }
            var_28((type_3 *)bio_err,"Can\'t bind %saddress for %s%s%s\n",pcVar9,var_6,pcVar11,
                       local_40);
            var_29();
          }
          var_5((type_3 *)bio_err);
          local_4c = 0;
        }
        else {
          var_29();
          local_4c = 1;
        }
      }
      else {
        var_5((type_3 *)bio_err);
        local_4c = 0;
      }
      if (var_14 != (type_2 *)0x0) {
        var_30(var_14);
      }
      var_30(var_8);
    }
  }
  else {
    local_4c = 0;
  }
  if (var_31 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_32();
  }
  return local_4c;
}


(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) 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: (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: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))) (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) (identifier) (number_literal) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (number_literal) (identifier) (identifier) (identifier) (pointer_expression argument: (identifier))))) right: (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 (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (identifier)))))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (identifier))))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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 (identifier))))) (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))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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 (labeled_statement label: (statement_identifier) (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 (pointer_expression argument: (identifier)) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))))) (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 (pointer_expression argument: (identifier)) (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 (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (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))))) (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) (identifier) (identifier) (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) 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: (identifier) right: (identifier))))) (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: (string_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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: (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: (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: (string_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) (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 (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement (identifier)))))

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

undefined4
MASKED(int *param_1,undefined4 param_2,undefined4 param_3,char *param_4,undefined *param_5,
            int param_6,int param_7,int param_8)

{
  int iVar1;
  undefined4 uVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  undefined4 uVar7;
  char *pcVar8;
  int iVar9;
  undefined *puVar10;
  int in_GS_OFFSET;
  undefined4 local_4c;
  undefined *local_40;
  int local_3c;
  int local_28;
  int local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x7c3f9;
  local_40 = param_5;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  local_28 = 0;
  local_24 = 0;
  iVar1 = BIO_sock_init();
  if (iVar1 == 1) {
    iVar1 = BIO_lookup_ex(param_2,param_3,0,param_6,param_7,param_8,&local_28);
    if (iVar1 == 0) {
      ERR_print_errors(DAT_000c458c);
      local_4c = 0;
    }
    else {
      if ((param_4 == (char *)0x0 && param_5 == (undefined *)0x0) ||
         (iVar1 = BIO_lookup_ex(param_4,param_5,0,param_6,param_7,param_8,&local_24), iVar1 != 0)) {
        if (local_28 != 0) {
          uVar2 = 0;
          local_3c = 0;
          if (param_8 == 6) {
            uVar2 = 0x10;
          }
          iVar9 = 0;
          iVar1 = local_28;
          if (param_6 != 0) goto LAB_0007c54c;
          do {
            do {
              if (((param_7 != 0) && (iVar3 = BIO_ADDRINFO_socktype(iVar1), iVar3 != param_7)) ||
                 ((param_8 != 0 && (iVar3 = BIO_ADDRINFO_protocol(iVar1), iVar3 != param_8))))
              goto LAB_0007c562;
              iVar3 = local_24;
              if (local_24 == 0) {
                uVar5 = BIO_ADDRINFO_protocol(iVar1);
                uVar6 = BIO_ADDRINFO_socktype(iVar1);
                uVar7 = BIO_ADDRINFO_family(iVar1);
                iVar4 = BIO_socket(uVar7,uVar6,uVar5,0);
                *param_1 = iVar4;
                if (iVar4 != -1) {
                  if (iVar9 != 0) {
LAB_0007c5c4:
                    uVar5 = BIO_ADDRINFO_address(iVar9);
                    iVar4 = BIO_bind(*param_1,uVar5,1);
                    iVar3 = iVar9;
                    if (iVar4 == 0) {
                      BIO_closesocket(*param_1);
                      *param_1 = -1;
                      goto LAB_0007c61d;
                    }
                  }
                  uVar5 = BIO_ADDRINFO_address(iVar1);
                  iVar9 = BIO_connect(*param_1,uVar5,uVar2);
                  if (iVar9 != 0) goto LAB_0007c610;
                  BIO_closesocket(*param_1);
                  *param_1 = -1;
                  iVar9 = iVar3;
                }
              }
              else {
                do {
                  iVar9 = iVar3;
                  iVar3 = BIO_ADDRINFO_family(iVar9);
                  iVar4 = BIO_ADDRINFO_family(iVar1);
                  if (iVar3 == iVar4) {
                    local_3c = local_3c + 1;
                    uVar5 = BIO_ADDRINFO_protocol(iVar1);
                    uVar6 = BIO_ADDRINFO_socktype(iVar1);
                    uVar7 = BIO_ADDRINFO_family(iVar1);
                    iVar3 = BIO_socket(uVar7,uVar6,uVar5,0);
                    *param_1 = iVar3;
                    if (iVar3 == -1) goto LAB_0007c52e;
                    goto LAB_0007c5c4;
                  }
                  iVar3 = BIO_ADDRINFO_next(iVar9);
                } while (iVar3 != 0);
                iVar9 = 0;
              }
LAB_0007c52e:
              iVar1 = BIO_ADDRINFO_next(iVar1);
              if (iVar1 == 0) goto LAB_0007c610;
            } while (param_6 == 0);
LAB_0007c54c:
            iVar3 = BIO_ADDRINFO_family(iVar1);
          } while (iVar3 == param_6);
LAB_0007c562:
                    /* WARNING: Subroutine does not return */
          OPENSSL_die("assertion failed: (family == AF_UNSPEC || family == BIO_ADDRINFO_family(ai)) && (type == 0 || type == BIO_ADDRINFO_socktype(ai)) && (protocol == 0 || protocol == BIO_ADDRINFO_protocol(ai))"
                      ,"../apps/s_socket.c",0x65,iVar3);
        }
        local_3c = 0;
LAB_0007c610:
        if (*param_1 == -1) {
LAB_0007c61d:
          if ((local_24 != 0) && (local_3c == 0)) {
            puVar10 = &DAT_0008e035;
            if (param_5 == (undefined *)0x0) {
              puVar10 = &DAT_0008570a;
              local_40 = puVar10;
            }
            if (param_4 == (char *)0x0) {
              param_4 = "";
            }
            iVar1 = BIO_ADDRINFO_family(local_28);
            pcVar8 = "IPv6 ";
            if (iVar1 != 10) {
              iVar1 = BIO_ADDRINFO_family(local_28);
              pcVar8 = "IPv4 ";
              if (iVar1 != 2) {
                iVar1 = BIO_ADDRINFO_family(local_28);
                pcVar8 = "unix ";
                if (iVar1 != 1) {
                  pcVar8 = "";
                }
              }
            }
            BIO_printf(DAT_000c458c,"Can\'t bind %saddress for %s%s%s\n",pcVar8,param_4,puVar10,
                       local_40);
            ERR_clear_error();
          }
          ERR_print_errors(DAT_000c458c);
          local_4c = 0;
        }
        else {
          ERR_clear_error();
          local_4c = 1;
        }
      }
      else {
        ERR_print_errors(DAT_000c458c);
        local_4c = 0;
      }
      if (local_24 != 0) {
        BIO_ADDRINFO_free(local_24);
      }
      BIO_ADDRINFO_free(local_28);
    }
  }
  else {
    local_4c = 0;
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_0007d010();
  }
  return local_4c;
}

